From 85f968c63cadfe780120deb4b77b8239037d6082 Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期五, 27 三月 2026 10:16:28 +0800
Subject: [PATCH] 用户中心客户代码提交
---
/dev/null | 44 -------
src/main/java/com/product/saas/config/SaasCode.java | 10 +
src/main/java/com/product/saas/controller/SaasClientController.java | 64 ++++++++++
src/main/java/com/product/saas/service/TenantContractService.java | 35 +++++
src/main/java/com/product/saas/service/idel/ISaasClientService.java | 8 +
src/main/java/com/product/saas/service/SaasClientService.java | 107 ++++++++++++++++-
src/main/java/com/product/saas/controller/TenantContractController.java | 65 ++++++++++
src/main/java/com/product/saas/config/SaasConst.java | 1
8 files changed, 278 insertions(+), 56 deletions(-)
diff --git a/src/main/java/com/product/saas/config/SaasCode.java b/src/main/java/com/product/saas/config/SaasCode.java
index 10665a3..a74d4de 100644
--- a/src/main/java/com/product/saas/config/SaasCode.java
+++ b/src/main/java/com/product/saas/config/SaasCode.java
@@ -24,7 +24,15 @@
TENANT_APPLY_LICENSE_FILE_COPY_FAIL("绉熸埛鐢宠License鏂囦欢COPY澶辫触", 11),
// 绉熸埛淇℃伅
- TENANT_INFO_GET_LIST_FAIL("绉熸埛淇℃伅鍒楄〃鏌ヨ澶辫触", 12),
+ CLIENT_INFO_GET_LIST_FAIL("绉熸埛淇℃伅鍒楄〃鏌ヨ澶辫触锛�", 12),
+ CLIENT_INFO_GET_DETAIL_FAIL("绉熸埛淇℃伅璇︽儏鏌ヨ澶辫触锛�", 13),
+ CLIENT_CHANGE_GET_LIST_FAIL("绉熸埛鍙樻洿鍒楄〃鏌ヨ澶辫触锛�", 14),
+ CLIENT_CHANGE_CONFIRM_FAIL("绉熸埛鍙樻洿纭淇濆瓨澶辫触锛�", 15),
+ CLIENT_CHANGE_CONFIRM_SAVEFAIL("绉熸埛鍙樻洿纭淇濆瓨澶辫触锛�", 16),
+
+ // 绉熸埛鍚堝悓
+ CLIENT_CONTRACT_GET_LIST_FAIL("绉熸埛鍚堝悓鍒楄〃鏌ヨ澶辫触锛�", 17),
+ CLIENT_CONTRACT_GET_FIND_FAIL("绉熸埛鍚堝悓璇︽儏鏌ヨ澶辫触锛�", 18),
;
private String text;
diff --git a/src/main/java/com/product/saas/config/SaasConst.java b/src/main/java/com/product/saas/config/SaasConst.java
index 6647200..e943d91 100644
--- a/src/main/java/com/product/saas/config/SaasConst.java
+++ b/src/main/java/com/product/saas/config/SaasConst.java
@@ -11,6 +11,7 @@
public static final String PRODUCT_SYS_TENANT_APPLY = "product_sys_tenant_apply";
public static final String PRODUCT_SYS_CLIENTS = "product_sys_clients";
public static final String PRODUCT_SYS_CONTRACT = "product_sys_contract";
+ public static final String PRODUCT_SYS_TENANT_CHANGE = "product_sys_tenant_change";
//瀛楁甯搁噺
}
diff --git a/src/main/java/com/product/saas/controller/SaasClientController.java b/src/main/java/com/product/saas/controller/SaasClientController.java
index 516a00c..8d96935 100644
--- a/src/main/java/com/product/saas/controller/SaasClientController.java
+++ b/src/main/java/com/product/saas/controller/SaasClientController.java
@@ -9,10 +9,13 @@
import com.product.admin.config.SystemCode;
import com.product.core.controller.support.AbstractBaseController;
import com.product.core.entity.FieldSetEntity;
+import com.product.core.exception.BaseException;
+import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.module.sys.version.ApiVersion;
import com.product.saas.config.SaasCode;
import com.product.saas.config.SaasConst;
import com.product.saas.service.SaasClientService;
+import com.product.saas.service.idel.ISaasClientService;
import com.product.util.BaseUtil;
/**
@@ -40,14 +43,17 @@
return error(SystemCode.SYSTEM_CPAGES_NOT_NULL.getValue(), SystemCode.SYSTEM_CPAGES_NOT_NULL.getText());
}
return OK_List(saasClientService.listClient(fse));
+ } catch (BaseException e) {
+ e.printStackTrace();
+ return error(e);
} catch (Exception e) {
e.printStackTrace();
- return error(SaasCode.TENANT_INFO_GET_LIST_FAIL.getValue(), SaasCode.TENANT_INFO_GET_LIST_FAIL.getText() + e.getMessage());
+ return error(SaasCode.CLIENT_INFO_GET_LIST_FAIL.getValue(), SaasCode.CLIENT_INFO_GET_LIST_FAIL.getText() + e.getMessage());
}
}
/**
- * 绉熸埛鍒楄〃
+ * 绉熸埛璇︽儏
* @param request
* @return
*/
@@ -57,12 +63,62 @@
try {
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_CLIENTS);
if(BaseUtil.strIsNull(fse.getUUID())) {
- return error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
+ fse.setValue("uuid", SpringMVCContextHolder.getCurrentUser().getClient_uuid());
+// return error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText());
}
return OK_List(saasClientService.findClient(fse.getUUID()));
+ } catch (BaseException e) {
+ e.printStackTrace();
+ return error(e);
} catch (Exception e) {
e.printStackTrace();
- return error(SaasCode.TENANT_INFO_GET_LIST_FAIL.getValue(), SaasCode.TENANT_INFO_GET_LIST_FAIL.getText() + e.getMessage());
+ return error(SaasCode.CLIENT_INFO_GET_DETAIL_FAIL.getValue(), SaasCode.CLIENT_INFO_GET_DETAIL_FAIL.getText() + e.getMessage());
+ }
+ }
+
+ /**
+ * 绉熸埛淇℃伅鍙樻洿鍒楄〃
+ * @param request
+ * @return
+ */
+ @RequestMapping("/list-client-change/{version}")
+ @ApiVersion(1)
+ public String listClientChange(HttpServletRequest request) {
+ try {
+ FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_TENANT_CHANGE);
+
+ return OK_List(saasClientService.listClientChange(fse));
+ } catch (BaseException e) {
+ e.printStackTrace();
+ return error(e);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return error(SaasCode.CLIENT_CHANGE_GET_LIST_FAIL.getValue(), SaasCode.CLIENT_CHANGE_GET_LIST_FAIL.getText() + e.getMessage());
+ }
+ }
+
+ /**
+ * 绉熸埛淇℃伅鍙樻洿杩涚▼
+ * @param request
+ * @return
+ */
+ @RequestMapping("/change-process/{version}")
+ @ApiVersion(1)
+ public String clientChangeProcess(HttpServletRequest request) {
+ try {
+ FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_TENANT_CHANGE);
+ ISaasClientService service = (ISaasClientService)getProxyInstance(saasClientService);
+ boolean succ = service.clientChangeProcess(fse);
+ if (succ) {
+ return OK();
+ }
+ return error(SaasCode.CLIENT_CHANGE_CONFIRM_SAVEFAIL.getValue(), SaasCode.CLIENT_CHANGE_CONFIRM_SAVEFAIL.getText());
+ } catch (BaseException e) {
+ e.printStackTrace();
+ return error(e);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return error(SaasCode.CLIENT_CHANGE_CONFIRM_FAIL.getValue(), SaasCode.CLIENT_CHANGE_CONFIRM_FAIL.getText() + e.getMessage());
}
}
}
diff --git a/src/main/java/com/product/saas/controller/SystemContractController.java b/src/main/java/com/product/saas/controller/SystemContractController.java
deleted file mode 100644
index 196aefa..0000000
--- a/src/main/java/com/product/saas/controller/SystemContractController.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.product.saas.controller;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.product.admin.config.SystemCode;
-import com.product.saas.config.SaasConst;
-import com.product.saas.service.SystemContractService;
-import com.product.core.controller.support.AbstractBaseController;
-import com.product.core.entity.FieldSetEntity;
-import com.product.core.exception.BaseException;
-import com.product.module.sys.version.ApiVersion;
-import com.product.util.BaseUtil;
-
-@RequestMapping("/api/system-contract")
-@RestController
-public class SystemContractController extends AbstractBaseController{
-
- @Autowired
- SystemContractService systemContractService;
-
- /**
- * 鑾峰彇绉熸埛鏈�鏂板悎鍚屼俊鎭�
- * @param request
- * @return
- */
- @RequestMapping("/find-contract/{version}")
- @ApiVersion(1)
- public String findContract(HttpServletRequest request){
- try {
- FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_CONTRACT);
- return OK_List(systemContractService.findContract(fse.getString("uuid")));
- } catch (BaseException e) {
- e.printStackTrace();
- return this.error(e);
- }catch (Exception e){
- e.printStackTrace();
- return error(SystemCode.GET_FUNCTION_TREE_FAIL.getValue(),SystemCode.GET_FUNCTION_TREE_FAIL.getText()+e.getMessage());
- }
- }
-}
diff --git a/src/main/java/com/product/saas/controller/TenantContractController.java b/src/main/java/com/product/saas/controller/TenantContractController.java
new file mode 100644
index 0000000..3026caa
--- /dev/null
+++ b/src/main/java/com/product/saas/controller/TenantContractController.java
@@ -0,0 +1,65 @@
+package com.product.saas.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.product.saas.config.SaasCode;
+import com.product.saas.config.SaasConst;
+import com.product.saas.service.TenantContractService;
+import com.product.core.controller.support.AbstractBaseController;
+import com.product.core.entity.FieldSetEntity;
+import com.product.core.exception.BaseException;
+import com.product.module.sys.version.ApiVersion;
+import com.product.util.BaseUtil;
+
+
+@RequestMapping("/api/tenant-contract")
+@RestController
+public class TenantContractController extends AbstractBaseController{
+
+ @Autowired
+ TenantContractService tenantContractService;
+
+ /**
+ * 鑾峰彇鍚堝悓淇℃伅
+ * @param request
+ * @return
+ */
+ @RequestMapping("/list-contract/{version}")
+ @ApiVersion(1)
+ public String listContract(HttpServletRequest request){
+ try {
+ FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_CONTRACT);
+ return OK_List(tenantContractService.listContract(fse));
+ } catch (BaseException e) {
+ e.printStackTrace();
+ return this.error(e);
+ }catch (Exception e){
+ e.printStackTrace();
+ return error(SaasCode.CLIENT_CONTRACT_GET_LIST_FAIL.getValue(), SaasCode.CLIENT_CONTRACT_GET_LIST_FAIL.getText()+e.getMessage());
+ }
+ }
+
+ /**
+ * 鑾峰彇绉熸埛鏈�鏂板悎鍚屼俊鎭�
+ * @param request
+ * @return
+ */
+ @RequestMapping("/find-contract/{version}")
+ @ApiVersion(1)
+ public String findContract(HttpServletRequest request){
+ try {
+ FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_CONTRACT);
+ return OK_List(tenantContractService.findContract(fse.getString("uuid")));
+ } catch (BaseException e) {
+ e.printStackTrace();
+ return this.error(e);
+ }catch (Exception e){
+ e.printStackTrace();
+ return error(SaasCode.CLIENT_CONTRACT_GET_FIND_FAIL.getValue(), SaasCode.CLIENT_CONTRACT_GET_FIND_FAIL.getText()+e.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/com/product/saas/service/SaasClientService.java b/src/main/java/com/product/saas/service/SaasClientService.java
index 60820d0..7874513 100644
--- a/src/main/java/com/product/saas/service/SaasClientService.java
+++ b/src/main/java/com/product/saas/service/SaasClientService.java
@@ -11,7 +11,9 @@
import com.product.core.entity.FieldSetEntity;
import com.product.core.service.support.AbstractBaseService;
import com.product.core.spring.context.SpringMVCContextHolder;
+import com.product.core.transfer.Transactional;
import com.product.module.sys.entity.SystemUser;
+import com.product.saas.service.idel.ISaasClientService;
import com.product.util.BaseUtil;
/**
@@ -19,7 +21,7 @@
*
*/
@Service
-public class SaasClientService extends AbstractBaseService{
+public class SaasClientService extends AbstractBaseService implements ISaasClientService{
@Autowired
BaseDao baseDao;
@@ -34,7 +36,7 @@
if (user == null) {
return null;
}
- List<Object> param = new ArrayList<>();;
+ List<Object> param = new ArrayList<>();
StringBuilder sql = new StringBuilder();
sql.append("\n SELECT");
sql.append("\n A.uuid,A.client_name,A.client_unit_type,A.platform_admin,A.expiration_date,B.apply_status,");
@@ -46,9 +48,14 @@
sql.append("\n LEFT JOIN product_sys_users E ON E.user_id = D.user_id ");
sql.append("\n WHERE A.uuid != '00000000-0000-0000-0000-000000000000' ");
FieldSetEntity fsePost = user.getJobPost();
- if(fsePost.getString("job_post_name").contains("骞冲彴绠$悊鍛�")) {
- param.add(user.getUser_id());
- sql.append("\n AND A.platform_admin = ?");
+ if (fsePost == null) {
+ param.add(user.getClient_uuid());
+ sql.append("\n AND A.uuid = ?");
+ } else {
+ if(fsePost.getString("job_post_name").contains("骞冲彴绠$悊鍛�")) {
+ param.add(user.getUser_id());
+ sql.append("\n AND A.platform_admin = ?");
+ }
}
DataTableEntity dte = baseDao.listTable(sql.toString(), param.toArray(), fse.getInteger("pagesize"), fse.getInteger("cpage"));
if (!BaseUtil.dataTableIsEmpty(dte)) {
@@ -71,6 +78,94 @@
sql.append("\n LEFT JOIN product_sys_org_manager D ON D.org_level_uuid = C.uuid ");
sql.append("\n LEFT JOIN product_sys_users E ON E.user_id = D.user_id ");
sql.append("\n WHERE A.uuid = ? ");
- return baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[] {uuid}, false);
+ FieldSetEntity fseClient = baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[] {uuid}, false);
+ if(fseClient != null) {
+ DataTableEntity dtClientChange = baseDao.listTable("product_sys_tenant_change", "client_uuid = ?", new Object[] {uuid});
+ fseClient.addSubDataTable(dtClientChange);
+ }
+ return fseClient;
+ }
+
+ /**
+ * 绉熸埛淇℃伅鍙樻洿鍒楄〃
+ * @param fse
+ * @return
+ */
+ public DataTableEntity listClientChange(FieldSetEntity fse) {
+ SystemUser user = SpringMVCContextHolder.getCurrentUser();
+ if (user == null) {
+ return null;
+ }
+ List<Object> param = new ArrayList<>();
+ StringBuilder sql = new StringBuilder();
+ sql.append("\n SELECT * FROM product_sys_tenant_change A");
+ sql.append("\n LEFT JOIN product_sys_clients B ON B.uuid = A.client_uuid");
+ FieldSetEntity fsePost = user.getJobPost();
+ String filter = fse.getString("filter");
+ if (fsePost == null) {
+ param.add(user.getClient_uuid());
+ sql.append("\n WHERE client_uuid = ?");
+ if ("entrance".equals(filter)) {
+ sql.append("\n AND (change_status IS NULL OR change_status = 0)");
+ } else {
+ sql.append("\n AND (change_status = 1 OR change_status = 2)");
+ }
+ } else {
+ if(fsePost.getString("job_post_name").contains("骞冲彴绠$悊鍛�")) {
+ param.add(user.getUser_id());
+ sql.append("\n WHERE B.platform_admin = ?");
+ if ("entrance".equals(filter)) {
+ sql.append("\n AND change_status = 1");
+ } else {
+ sql.append("\n AND change_status = 2");
+ }
+ }
+ }
+ sql.append("\n ORDER BY created_utc_datetime");
+ DataTableEntity dte = baseDao.listTable(sql.toString(), param.toArray(), fse.getInteger("pagesize"), fse.getInteger("cpage"));
+ if (!BaseUtil.dataTableIsEmpty(dte)) {
+ baseDao.loadPromptData(dte);
+ }
+ return dte;
+ }
+
+ /**
+ * 瀹㈡埛淇℃伅鍙樻洿杩涚▼
+ * @param fseChange
+ * @return
+ */
+ @Transactional
+ public boolean clientChangeProcess(FieldSetEntity fseChange) {
+ String changeStatus = fseChange.getString("change_status");
+ if (BaseUtil.strIsNull(changeStatus) || "0".equals(changeStatus)) {
+ // 绉熸埛绠$悊鍛樻彁浜ゅ彉鏇�
+ fseChange.setValue("change_status", 1);
+ } else {
+ // 绠$悊鍛樼‘璁ゅ彉鏇�
+ String clientUUID = fseChange.getString("client_uuid");
+ String newClientName = fseChange.getString("new_client_name");
+ if (!BaseUtil.strIsNull(newClientName)) {
+ String oldClientName = fseChange.getString("old_client_name");
+ // 鍙樻洿瀹㈡埛鍚嶇О
+ baseDao.executeUpdate("UPDATE product_sys_clients SET client_name = ? WHERE uuid = ?", new Object[] {newClientName, clientUUID});
+ // 鍙樻洿缁勭粐鏈烘瀯鍚嶇О,鍏ㄧО
+ baseDao.executeUpdate("UPDATE product_sys_org_levels SET org_level_name = REPLACE(org_level_name, ?, ?),org_level_all = REPLACE(org_level_all, ?, ?) WHERE org_level_all LIKE ?",
+ new Object[] {oldClientName, newClientName, oldClientName, newClientName, "%"+oldClientName+"%"});
+ }
+ String newClientAdmin = fseChange.getString("new_client_admin");
+ if (!BaseUtil.strIsNull(newClientAdmin)) {
+// String oldClientAdmin = fseChange.getString("old_client_admin");
+ // 鍘绘帀鏃х鐞嗗憳
+ // 鐢熸垚鏂扮鐞嗗憳
+ }
+ String newBusinessLicense = fseChange.getString("new_business_license");
+ if (!BaseUtil.strIsNull(newBusinessLicense)) {
+// String oldBusinessLicense = fseChange.getString("old_business_license");
+ // 灏嗘柊钀ヤ笟鎵х収褰掑叆瀹㈡埛淇℃伅涓�
+ baseDao.executeUpdate("UPDATE product_sys_tenant_apply SET business_license = ? WHERE client_uuid = ?", new Object[] {newBusinessLicense, clientUUID});
+ }
+ fseChange.setValue("change_status", 2);
+ }
+ return baseDao.saveFieldSetEntity(fseChange);
}
}
diff --git a/src/main/java/com/product/saas/service/SystemContractService.java b/src/main/java/com/product/saas/service/TenantContractService.java
similarity index 78%
rename from src/main/java/com/product/saas/service/SystemContractService.java
rename to src/main/java/com/product/saas/service/TenantContractService.java
index a5c20ea..92856f0 100644
--- a/src/main/java/com/product/saas/service/SystemContractService.java
+++ b/src/main/java/com/product/saas/service/TenantContractService.java
@@ -1,6 +1,8 @@
package com.product.saas.service;
import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -12,17 +14,48 @@
import com.product.core.entity.FieldSetEntity;
import com.product.core.exception.BaseException;
import com.product.core.service.support.AbstractBaseService;
+import com.product.core.spring.context.SpringMVCContextHolder;
+import com.product.module.sys.entity.SystemUser;
import com.product.saas.config.SaasCode;
import com.product.saas.config.SaasConst;
+import com.product.util.BaseUtil;
import cn.hutool.core.io.FileUtil;
@Component
-public class SystemContractService extends AbstractBaseService{
+public class TenantContractService extends AbstractBaseService{
@Autowired
BaseDao baseDao;
+ public DataTableEntity listContract(FieldSetEntity fse) {
+ SystemUser user = SpringMVCContextHolder.getCurrentUser();
+ if (user == null) {
+ return null;
+ }
+ List<Object> param = new ArrayList<>();;
+ StringBuilder sql = new StringBuilder();
+ sql.append("\n SELECT A.*");
+ sql.append("\n FROM product_sys_contract A");
+ sql.append("\n LEFT JOIN product_sys_clients B ON B.uuid = A.client_uuid");
+ sql.append("\n WHERE ").append(fse.getString("filter"));
+ FieldSetEntity fsePost = user.getJobPost();
+ if (fsePost == null) {
+ param.add(user.getClient_uuid());
+ sql.append("\n AND A.client_uuid = ?");
+ } else {
+ if(fsePost.getString("job_post_name").contains("骞冲彴绠$悊鍛�")) {
+ param.add(user.getUser_id());
+ sql.append("\n AND B.platform_admin = ?");
+ }
+ }
+ DataTableEntity dte = baseDao.listTable(sql.toString(), param.toArray(), fse.getInteger("pagesize"), fse.getInteger("cpage"));
+ if (!BaseUtil.dataTableIsEmpty(dte)) {
+ baseDao.loadPromptData(dte);
+ }
+ return dte;
+ }
+
/**
* 鑾峰彇鍚堝悓璇︽儏(娴佺▼璇︽儏璋冪敤)
* @param fse
diff --git a/src/main/java/com/product/saas/service/idel/ISaasClientService.java b/src/main/java/com/product/saas/service/idel/ISaasClientService.java
new file mode 100644
index 0000000..5395227
--- /dev/null
+++ b/src/main/java/com/product/saas/service/idel/ISaasClientService.java
@@ -0,0 +1,8 @@
+package com.product.saas.service.idel;
+
+import com.product.core.entity.FieldSetEntity;
+
+public interface ISaasClientService {
+
+ public boolean clientChangeProcess(FieldSetEntity fseChange);
+}
--
Gitblit v1.9.2