From bb229d0324c082a85b14c72ddf7ef1a46622266d Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期五, 17 四月 2026 09:42:28 +0800
Subject: [PATCH] 定时任务-租户扫描
---
src/main/java/com/product/saas/service/TenantApplyService.java | 20 ++++++++++++++------
src/main/java/com/product/saas/service/SaasClientService.java | 29 ++++++++++++++++++++++++++++-
2 files changed, 42 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/product/saas/service/SaasClientService.java b/src/main/java/com/product/saas/service/SaasClientService.java
index a1bdfba..f989c5b 100644
--- a/src/main/java/com/product/saas/service/SaasClientService.java
+++ b/src/main/java/com/product/saas/service/SaasClientService.java
@@ -2,17 +2,21 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import com.product.admin.service.SaasUserService;
import com.product.core.dao.BaseDao;
import com.product.core.entity.DataTableEntity;
import com.product.core.entity.FieldSetEntity;
+import com.product.core.message.MessageFactory;
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.config.SaasConst;
import com.product.saas.service.idel.ISaasClientService;
import com.product.util.BaseUtil;
@@ -20,12 +24,35 @@
* 绉熸埛淇℃伅
*
*/
-@Service
+@Service("saasClientService")
public class SaasClientService extends AbstractBaseService implements ISaasClientService{
@Autowired
BaseDao baseDao;
+ @Autowired
+ MessageFactory messageFactory;
+
+ @Autowired
+ SaasUserService saasUserService;
+
+ /**
+ * 瀹氭椂浠诲姟鎵弿娌℃湁绉熸埛绠$悊鍛樼殑绉熸埛
+ */
+ public void autoDetectTenant() {
+ DataTableEntity dt = baseDao.listTable(SaasConst.PRODUCT_SYS_CLIENTS, "platform_admin IS NULL OR platform_admin = ''");
+ if (!BaseUtil.dataTableIsEmpty(dt)) {
+ String clientName = BaseUtil.joinObjectArray(dt.getFieldAllValues(SaasConst.CLIENT_NAME), ",");
+
+ Set<String> platformDirector = saasUserService.getPlatformSuperAdmin();
+ // 鍙戦�佹秷鎭粰骞冲彴涓荤
+ messageFactory.sendMessage(String.join(",", platformDirector),
+ "銆�" + clientName + "銆戠瓑绉熸埛娌℃湁骞冲彴绠$悊鍛�",
+ "绉熸埛缂轰箯骞冲彴绠$悊鍛�", 1, "5", null,
+ SaasConst.PRODUCT_SYS_CLIENTS, "23432432423", 1, new String[] {"system"}, null);
+ }
+ }
+
/**
* 绉熸埛鍒楄〃
* @param fse
diff --git a/src/main/java/com/product/saas/service/TenantApplyService.java b/src/main/java/com/product/saas/service/TenantApplyService.java
index 4549700..d973791 100644
--- a/src/main/java/com/product/saas/service/TenantApplyService.java
+++ b/src/main/java/com/product/saas/service/TenantApplyService.java
@@ -50,6 +50,8 @@
@Autowired
FileManagerService fileManagerService;
+
+
/**
* 绉熸埛淇℃伅璇诲彇鍜岄獙璇�
* @param fse
@@ -71,11 +73,11 @@
}
// 鎯呭喌2锛氬彧瀛樺湪鎵嬫満鍙� -> 鎵嬫満鍙峰凡鐢宠
if (fseTenantByPhone != null && fseTenantByName == null) {
- throw new BaseException(SaasCode.TENANT_APPLY_VALID_UNIT_HAS_APPLY.getValue(), SaasCode.TENANT_APPLY_VALID_UNIT_HAS_APPLY.getText());
+ throw new BaseException(SaasCode.TENANT_APPLY_VALID_PHONE_HAS_APPLY.getValue(), SaasCode.TENANT_APPLY_VALID_PHONE_HAS_APPLY.getText());
}
// 鎯呭喌3锛氬彧瀛樺湪鍗曚綅鍚� -> 鍗曚綅宸茬敵璇�
if (fseTenantByPhone == null && fseTenantByName != null) {
- throw new BaseException(SaasCode.TENANT_APPLY_VALID_PHONE_HAS_APPLY.getValue(), SaasCode.TENANT_APPLY_VALID_PHONE_HAS_APPLY.getText());
+ throw new BaseException(SaasCode.TENANT_APPLY_VALID_UNIT_HAS_APPLY.getValue(), SaasCode.TENANT_APPLY_VALID_UNIT_HAS_APPLY.getText());
}
// 鎯呭喌4锛氶兘瀛樺湪 -> 妫�鏌ユ槸鍚︽槸鍚屼竴鏉¤褰�
if (fseTenantByPhone.getUUID().equals(fseTenantByName.getUUID())) {
@@ -215,7 +217,7 @@
fseClient.setValue("client_address_city_id", fseApply.getString("area_city"));
fseClient.setValue("client_address_county_id", fseApply.getString("area_county"));
fseClient.setValue("client_address_line_one", fseApply.getString("address"));
- fseClient.setValue(CmnConst.CREATED_BY, "1");
+ fseClient.setValue(CmnConst.CREATED_BY, 1);
fseClient.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
baseDao.add(fseClient);
// 澶嶅埗license鍒皐eb妯″潡
@@ -229,8 +231,9 @@
fseOrgUnit.setValue("org_level_code", codeService.createCode("product_sys_org_levels", "org_level_code", "001"));
fseOrgUnit.setValue("org_level_code_parent", "001");
fseOrgUnit.setValue("org_level_type", 0);
+ fseOrgUnit.setValue("org_level_status", 0);
fseOrgUnit.setValue("sequence", 1);
- fseOrgUnit.setValue(CmnConst.CREATED_BY, "1");
+ fseOrgUnit.setValue(CmnConst.CREATED_BY, 1);
fseOrgUnit.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
baseDao.add(fseOrgUnit);
// 鍒涘缓绉熸埛绠$悊鍛樼敤鎴蜂俊鎭�
@@ -242,7 +245,7 @@
fseUser.setValue(CmnConst.USER_PWD, userService.createPassWord(fseApply.getString("applicant_phone"), fseApply.getString("applicant_pwd")));
fseUser.setValue(CmnConst.IS_MANAGER, 1);
fseUser.setValue(CmnConst.STATUS, 1);
- fseUser.setValue(CmnConst.CREATED_BY, "1");
+ fseUser.setValue(CmnConst.CREATED_BY, 1);
fseUser.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
baseDao.add(fseUser);
FieldSetEntity fseUserInfo = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_USERS, fseUser.getUUID(), false);
@@ -254,10 +257,15 @@
fseManager.setValue(CmnConst.ROLE_UUIDS, "eabb00f3-2118-4165-967b-a7d88f472f67-notchange");
fseManager.setValue(CmnConst.IS_USED, 1);
fseManager.setValue(CmnConst.CLIENT_UUID, fseClient.getUUID());
- fseManager.setValue(CmnConst.CREATED_BY, "1");
+ fseManager.setValue(CmnConst.CREATED_BY, 1);
fseManager.setValue(CmnConst.CREATED_UTC_DATETIME, new Date());
baseDao.add(fseManager);
baseDao.executeUpdate("UPDATE product_sys_tenant_apply SET client_uuid = ? WHERE uuid = ?", new Object[] {fseClient.getUUID(), fseApply.getUUID()});
+
+ // 鍙戦�佷俊鎭粰绉熸埛绠$悊鍛�
+ FieldSetEntity fse = new FieldSetEntity("temp");
+ fse.setValue("applicant_phone", fseApply.getString("applicant_phone"));
+ loginAuthService.sendMessage(fse, "绉熸埛娉ㄥ唽鎴愬姛", "temp");
}
/**
--
Gitblit v1.9.2