Преглед изворни кода

feat:
新增系统用户下拉框选择

18339543638 пре 2 година
родитељ
комит
ec6c8c3bde

+ 49 - 0
tr-modules-api/tr-module-export-api/src/main/java/cn/tr/module/export/converter/SysUserCascadeSelectConverter.java

@@ -0,0 +1,49 @@
+package cn.tr.module.export.converter;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.lang.Pair;
+import cn.hutool.extra.spring.SpringUtil;
+import cn.tr.module.api.sys.user.SysUserApi;
+import cn.tr.module.export.handler.AbstractCascadeSelectConverter;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : DictComboConverter
+ * @Description :
+ * @Author : LF
+ * @Date: 2023年06月01日
+ */
+
+public class SysUserCascadeSelectConverter extends AbstractCascadeSelectConverter<String> {
+    private final SysUserApi sysUserApi;
+
+    public SysUserCascadeSelectConverter() {
+        this.sysUserApi = SpringUtil.getBean(SysUserApi.class);
+    }
+
+    @Override
+    public Map<String, List<String>> buildCascadeSelectList(Collection<String> params) {
+        Map<String, List<String>> result = new HashMap<>();
+        List<Pair<String, String>> userIdAndNickName = sysUserApi.selectAllUserIdAndNickName();
+        if(CollectionUtil.isNotEmpty(userIdAndNickName)){
+            for (Pair<String, String> pair : userIdAndNickName) {
+                result.put(pair.getValue(),null);
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public  List<Pair<String, String>>  doGetSelectPairs(Collection<String> params) {
+        return sysUserApi.selectAllUserIdAndNickName();
+    }
+
+    @Override
+    public Class<String> doSupportJavaTypeKey() {
+        return String.class;
+    }
+}

+ 8 - 1
tr-modules-api/tr-module-system-api/src/main/java/cn/tr/module/api/sys/user/SysUserApi.java

@@ -1,5 +1,8 @@
 package cn.tr.module.api.sys.user;
 
+import cn.hutool.core.lang.Pair;
+
+import java.util.*;
 /**
  * @ClassName : SysUserApi
  * @Description :
@@ -8,5 +11,9 @@ package cn.tr.module.api.sys.user;
  */
 
 public interface SysUserApi {
-
+    /**
+     * 查询所有用户的id和昵称
+     * @return
+     */
+    List<Pair<String,String >> selectAllUserIdAndNickName();
 }

+ 9 - 1
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/provider/SysUserNickNameProvider.java

@@ -1,11 +1,14 @@
 package cn.tr.module.sys.user.provider;
 
+import cn.hutool.core.lang.Pair;
 import cn.tr.core.utils.UserUtil;
+import cn.tr.module.api.sys.user.SysUserApi;
 import cn.tr.module.sys.user.service.ISysUserService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
+import java.util.List;
 
 /**
  * @ClassName : SysUserNickNameProvider
@@ -15,7 +18,7 @@ import javax.annotation.PostConstruct;
  */
 @Component
 @AllArgsConstructor
-public class SysUserNickNameProvider {
+public class SysUserNickNameProvider implements SysUserApi {
     private final ISysUserService userService;
 
 
@@ -23,4 +26,9 @@ public class SysUserNickNameProvider {
     public void init(){
         UserUtil.userNickNameSupplier=userService::selectNickNameAndAvatarById;
     }
+
+    @Override
+    public List<Pair<String, String>> selectAllUserIdAndNickName() {
+        return userService.selectAllUserIdAndNickName();
+    }
 }

+ 8 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/service/ISysUserService.java

@@ -109,4 +109,12 @@ public interface ISysUserService {
      * @param cityInfo
      */
     void updateLastLoginInfo(String id, Date loginTime, String ip, String cityInfo);
+
+    @Cacheable(value = "user:nickname&avatar",key = "'all'")
+    List<Pair<String, String>> selectAllUserIdAndNickName();
+
+    @CacheEvict(value = "user:nickname&id",key = "'all'")
+    default void delUserIdAndNickNameCache(){
+
+    }
 }

+ 16 - 1
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/service/impl/SysUserServiceImpl.java

@@ -155,6 +155,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserRepository,SysUserPO>
             assignUserRole(source.getId(),source.getRoleIds());
             assignUserPortal(source.getId(),source.getPortalIds());
             assignUserPosition(source.getId(),source.getPostIds());
+            sysUserService.delUserIdAndNickNameCache();
         }
         return result;
     }
@@ -172,7 +173,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserRepository,SysUserPO>
         if(CollectionUtil.isEmpty(ids)){
             throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
         }
-        return baseMapper.deleteBatchIds(ids);
+        int result = baseMapper.deleteBatchIds(ids);
+        sysUserService.delUserIdAndNickNameCache();
+        return result;
     }
 
     @Override
@@ -203,6 +206,18 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserRepository,SysUserPO>
         user.setLastLoginIp(ip);
         user.setLastLoginAddress(cityInfo);
         this.updateById(user);
+        sysUserService.delUserIdAndNickNameCache();
+    }
+
+    @Override
+    public List<Pair<String, String>> selectAllUserIdAndNickName() {
+        List<SysUserPO> allUser = baseMapper.selectList(new LambdaQueryWrapper<SysUserPO>()
+                .select(SysUserPO::getId, SysUserPO::getNickname));
+        List<Pair<String, String>> result = new ArrayList<>();
+        for (SysUserPO userPO : allUser) {
+            result.add(Pair.of(userPO.getId(),userPO.getNickname()));
+        }
+        return result;
     }