From 9d8b9fabbea813e980d7f8e67ee633a55d205955 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期四, 16 一月 2025 11:50:19 +0800
Subject: [PATCH] update 优化 ws模块替换session的时候关闭session连接
---
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java | 69 ++++++++++++++++++++++------------
1 files changed, 44 insertions(+), 25 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
index 7d6ca5b..f31bd30 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
@@ -1,6 +1,7 @@
package org.dromara.system.service.impl;
import cn.dev33.satoken.secure.BCrypt;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
@@ -11,8 +12,10 @@
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.Constants;
+import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.constant.TenantConstants;
import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.core.service.WorkflowService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StreamUtils;
@@ -119,7 +122,9 @@
// 鑾峰彇鎵�鏈夌鎴风紪鍙�
List<String> tenantIds = baseMapper.selectObjs(
- new LambdaQueryWrapper<SysTenant>().select(SysTenant::getTenantId), x -> {return Convert.toStr(x);});
+ new LambdaQueryWrapper<SysTenant>().select(SysTenant::getTenantId), x -> {
+ return Convert.toStr(x);
+ });
String tenantId = generateTenantId(tenantIds);
add.setTenantId(tenantId);
boolean flag = baseMapper.insert(add) > 0;
@@ -189,6 +194,13 @@
config.setTenantId(tenantId);
}
configMapper.insertBatch(sysConfigList);
+
+ // 鏈紑鍚伐浣滄祦涓嶆墽琛屼笅鏂规搷浣�
+ if (SpringUtils.getProperty("warm-flow.enabled", Boolean.class, false)) {
+ WorkflowService workflowService = SpringUtils.getBean(WorkflowService.class);
+ // 鏂板绉熸埛娴佺▼瀹氫箟
+ workflowService.syncDef(tenantId);
+ }
return true;
}
@@ -203,7 +215,7 @@
String numbers = RandomUtil.randomNumbers(6);
// 鍒ゆ柇鏄惁瀛樺湪锛屽鏋滃瓨鍦ㄥ垯閲嶆柊鐢熸垚
if (tenantIds.contains(numbers)) {
- generateTenantId(tenantIds);
+ return generateTenantId(tenantIds);
}
return numbers;
}
@@ -230,7 +242,7 @@
role.setRoleName(TenantConstants.TENANT_ADMIN_ROLE_NAME);
role.setRoleKey(TenantConstants.TENANT_ADMIN_ROLE_KEY);
role.setRoleSort(1);
- role.setStatus(TenantConstants.NORMAL);
+ role.setStatus(SystemConstants.NORMAL);
roleMapper.insert(role);
Long roleId = role.getRoleId();
@@ -397,7 +409,9 @@
// 鑾峰彇鎵�鏈夌鎴风紪鍙�
List<String> tenantIds = baseMapper.selectObjs(
new LambdaQueryWrapper<SysTenant>().select(SysTenant::getTenantId)
- .eq(SysTenant::getStatus, TenantConstants.NORMAL), x -> {return Convert.toStr(x);});
+ .eq(SysTenant::getStatus, SystemConstants.NORMAL), x -> {
+ return Convert.toStr(x);
+ });
List<SysDictType> saveTypeList = new ArrayList<>();
List<SysDictData> saveDataList = new ArrayList<>();
Set<String> set = new HashSet<>();
@@ -413,43 +427,48 @@
Map<String, SysDictData> map = StreamUtils.toIdentityMap(dataListTenant, SysDictData::getDictValue);
for (SysDictData dictData : dataList) {
if (!map.containsKey(dictData.getDictValue())) {
+ SysDictData data = BeanUtil.toBean(dictData, SysDictData.class);
// 璁剧疆瀛楀吀缂栫爜涓� null
- dictData.setDictCode(null);
- dictData.setTenantId(tenantId);
- dictData.setCreateTime(null);
- dictData.setUpdateTime(null);
+ data.setDictCode(null);
+ data.setTenantId(tenantId);
+ data.setCreateTime(null);
+ data.setUpdateTime(null);
set.add(tenantId);
- saveDataList.add(dictData);
+ saveDataList.add(data);
}
}
} else {
- dictType.setDictId(null);
- dictType.setTenantId(tenantId);
- dictType.setCreateTime(null);
- dictType.setUpdateTime(null);
+ SysDictType type = BeanUtil.toBean(dictType, SysDictType.class);
+ type.setDictId(null);
+ type.setTenantId(tenantId);
+ type.setCreateTime(null);
+ type.setUpdateTime(null);
set.add(tenantId);
- saveTypeList.add(dictType);
+ saveTypeList.add(type);
if (CollUtil.isNotEmpty(dataList)) {
// 绛涢�夊嚭 dictType 瀵瑰簲鐨� data
for (SysDictData dictData : dataList) {
+ SysDictData data = BeanUtil.toBean(dictData, SysDictData.class);
// 璁剧疆瀛楀吀缂栫爜涓� null
- dictData.setDictCode(null);
- dictData.setTenantId(tenantId);
- dictData.setCreateTime(null);
- dictData.setUpdateTime(null);
+ data.setDictCode(null);
+ data.setTenantId(tenantId);
+ data.setCreateTime(null);
+ data.setUpdateTime(null);
set.add(tenantId);
+ saveDataList.add(data);
}
- saveDataList.addAll(dataList);
}
}
}
}
- if (CollUtil.isNotEmpty(saveTypeList)) {
- dictTypeMapper.insertBatch(saveTypeList);
- }
- if (CollUtil.isNotEmpty(saveDataList)) {
- dictDataMapper.insertBatch(saveDataList);
- }
+ TenantHelper.ignore(() -> {
+ if (CollUtil.isNotEmpty(saveTypeList)) {
+ dictTypeMapper.insertBatch(saveTypeList);
+ }
+ if (CollUtil.isNotEmpty(saveDataList)) {
+ dictDataMapper.insertBatch(saveDataList);
+ }
+ });
for (String tenantId : set) {
TenantHelper.dynamic(tenantId, () -> CacheUtils.clear(CacheNames.SYS_DICT));
}
--
Gitblit v1.9.3