Ver Fonte

优化消息中心API方法逻辑,增加传入tenantId的处理逻辑,解决一个用户拥有多个租户消息隔离和刷选的问题

james há 5 dias atrás
pai
commit
eb0d0f597c

+ 5 - 1
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/MceRequestVO.java

@@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
-import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -112,6 +111,11 @@ public class MceRequestVO extends BaseEntity {
      */
     private String alarmSendType;
 
+    /**
+     * 租户Id
+     */
+    private Integer tenantId;
+
     @Override
     public String toString() {
         ObjectMapper objectMapper = new ObjectMapper();

+ 1 - 3
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TokenController.java

@@ -8,7 +8,6 @@ import com.usky.common.core.exception.BusinessException;
 import com.usky.common.core.util.BeanMapperUtils;
 import com.usky.common.core.util.JwtUtils;
 import com.usky.common.core.util.StringUtils;
-import com.usky.common.redis.core.RedisHelper;
 import com.usky.common.security.auth.AuthUtil;
 import com.usky.common.security.service.TokenService;
 import com.usky.common.security.utils.SecurityUtils;
@@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDateTime;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 
 /**
  * token 控制
@@ -131,7 +129,7 @@ public class TokenController {
         }
 
         LambdaQueryWrapper<MceSetting> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(MceSetting::getCreateBy,userInfo.getUserName());
+        queryWrapper.eq(MceSetting::getCreateBy,userInfo.getUserName()).eq(MceSetting::getTenantId,userInfo.getTenantId());
         List<MceSetting> list = mceSettingService.list(queryWrapper);
         if(CollectionUtils.isEmpty(list)){
             //新增消息设置记录

+ 17 - 17
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/MceReceiveServiceImpl.java

@@ -276,17 +276,17 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
             mceRequestVO.setInfoTypeName(infoTypeName);
         }
 
-        // 获取发送者租户ID
-        Integer tenantId = getUserTenantId(mceRequestVO.getUserName());
-        if (tenantId == null) {
-            log.error("获取用户租户ID失败,未找到用户: {}", mceRequestVO.getUserName());
-            return;
-        }
+//        // 获取发送者租户ID
+//        Integer tenantId = getUserTenantId(mceRequestVO.getUserName());
+//        if (tenantId == null) {
+//            log.error("获取用户租户ID失败,未找到用户: {}", mceRequestVO.getUserName());
+//            return;
+//        }
 
         // 获取租户所有用户信息
-        List<SysUser> allUsers = userMapper.tenantIdUserList(tenantId);
+        List<SysUser> allUsers = userMapper.tenantIdUserList(mceRequestVO.getTenantId());
         if (CollectionUtils.isEmpty(allUsers)) {
-            log.warn("租户下未找到任何用户,租户ID: {}", tenantId);
+            log.warn("租户下未找到任何用户,租户ID: {}", mceRequestVO.getTenantId());
             return;
         }
 
@@ -327,7 +327,7 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
 
         // 获取消息发送设置
         List<MceSetting> settings = mceSettingService.list(Wrappers.lambdaQuery(MceSetting.class)
-                .eq(MceSetting::getCreateBy, mceRequestVO.getUserName()));
+                .eq(MceSetting::getCreateBy, mceRequestVO.getUserName()).eq(MceSetting::getTenantId, mceRequestVO.getTenantId()));
 
         if (CollectionUtils.isEmpty(settings)) {
             log.warn("未找到消息发送设置,用户: {}", mceRequestVO.getUserName());
@@ -638,13 +638,13 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
             mceReceiveVO.put("infoTypeName", infoTypeName);
         }
 
-        Integer tenantId = null;
-        try {
-            tenantId = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, mceReceiveVO.get("userName")).select(SysUser::getTenantId)).getTenantId();
-        } catch (Exception e) {
-            log.error("获取用户租户ID失败,报错信息:{}, 未找到用户-{}-的租户", e.getMessage(), mceReceiveVO.get("userName"));
-        }
-        List<SysUser> list = userMapper.tenantIdUserList(tenantId);
+//        Integer tenantId = null;
+//        try {
+//            tenantId = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, mceReceiveVO.get("userName")).select(SysUser::getTenantId)).getTenantId();
+//        } catch (Exception e) {
+//            log.error("获取用户租户ID失败,报错信息:{}, 未找到用户-{}-的租户", e.getMessage(), mceReceiveVO.get("userName"));
+//        }
+        List<SysUser> list = userMapper.tenantIdUserList(Integer.valueOf(mceReceiveVO.get("tenantId").toString()));
         // 获取用户昵称与真实姓名Map
         Map<String, String> userNameNickNameMap = list.stream().collect(Collectors.toMap(SysUser::getUserName, SysUser::getNickName));
         MceContent mceContent = new MceContent();
@@ -701,7 +701,7 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
                             Integer mceReceiveId = mceReceive1.getId();
 
                             LambdaQueryWrapper<MceSetting> lambdaQuery = Wrappers.lambdaQuery();
-                            lambdaQuery.eq(MceSetting::getCreateBy, list.get(i).getUserName());
+                            lambdaQuery.eq(MceSetting::getCreateBy, list.get(i).getUserName()).eq(MceSetting::getTenantId, list.get(i).getTenantId());
                             List<MceSetting> list1 = mceSettingService.list(lambdaQuery);
 
                             if (CollectionUtils.isNotEmpty(list1)) {