فهرست منبع

查redis dubble接口

czh 2 سال پیش
والد
کامیت
5def9e6dc1

+ 3 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java

@@ -139,6 +139,9 @@ public class Global {
     /**+符号**/
     public static final String PLUS = "+";
 
+    /**#符号**/
+    public static final String POUND = "#";
+
     /**下划线拼接*/
     public static final String BRACKET = "()";
     public static final String BRACKET_LEFT = "(";

+ 9 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -32,6 +32,15 @@ public interface RemoteSystemService {
      */
     SysDictResDto queryDictByTypeAndValue(String type, String value);
 
+    /**
+     * @param type 字典类型
+     * @return SysDictResDto
+     * @desc: 根据字典类型和key查字典
+     * @author: czh
+     * @date: 2023/7/7
+     */
+    List<SysDictGroupResDto> queryDictGroupByType(String type);
+
     /**
      * @param  type 字典类型,value key
      * @return SysDictGroupResDto

+ 56 - 4
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -9,6 +9,7 @@ import com.sckw.core.utils.StringUtils;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.*;
+import com.sckw.system.api.model.pojo.DeptInfoPojo;
 import com.sckw.system.dao.SysDictDao;
 import com.sckw.system.model.KwsUser;
 import com.sckw.system.model.SysDict;
@@ -71,7 +72,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
      */
     @Override
     public SysDictResDto queryDictByTypeAndValue(String type, String value) {
-        String key = Global.REDIS_SYS_DICT_PREFIX + type + "#" + value;
+        String key = Global.REDIS_SYS_DICT_PREFIX + type + Global.POUND + value;
         String dictCache = RedissonUtils.getString(key);
         //从redis查,查不到从数据库查,并写入redis
         if (StringUtils.isBlank(dictCache)) {
@@ -87,6 +88,37 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         return JSONObject.parseObject(dictCache, SysDictResDto.class);
     }
 
+    /**
+     * @param type 字典类型
+     * @return SysDictResDto
+     * @desc: 根据字典类型和key查字典
+     * @author: czh
+     * @date: 2023/7/7
+     */
+    @Override
+    public List<SysDictGroupResDto> queryDictGroupByType(String type) {
+        List<SysDict> sysDicts = sysDictDao.queryByType(type);
+        if (CollectionUtils.isEmpty(sysDicts)) {
+            return Collections.emptyList();
+        }
+
+        //取最顶层去递归
+        List<SysDictGroupResDto> list = new ArrayList<>();
+        sysDicts = sysDicts.stream().filter(item -> item.getParentId().equals(String.valueOf(Global.NO))).toList();
+        if (CollectionUtils.isEmpty(sysDicts)) {
+            return Collections.emptyList();
+        }
+
+        sysDicts.forEach(item -> {
+            SysDictGroupResDto sysDictGroupResDto = queryDictGroupByTypeAndValue(type, item.getValue());
+            if (!Objects.isNull(sysDictGroupResDto)) {
+                list.add(sysDictGroupResDto);
+            }
+        });
+
+        return list;
+    }
+
     /**
      * @param  type 字典类型,value key
      * @return SysDictGroupResDto
@@ -96,7 +128,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
      */
     @Override
     public SysDictGroupResDto queryDictGroupByTypeAndValue(String type, String value) {
-        String key = Global.REDIS_SYS_DICT_GROUP_PREFIX + type + "#" + value;
+        String key = Global.REDIS_SYS_DICT_GROUP_PREFIX + type + Global.POUND + value;
         String dictCache = RedissonUtils.getString(key);
         //从redis查,查不到从数据库查,并写入redis
         if (StringUtils.isBlank(dictCache)) {
@@ -164,12 +196,32 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
             userCacheResDto.setRoleInfo(remoteBaseService.queryRoleInfoByUserId(userId));
 
             List<KwsUserDeptResDto> kwsUserDeptResDtos = remoteBaseService.queryUserDeptByUserId(userId);
-            if (!CollectionUtils.isEmpty(kwsUserDeptResDtos)) {
+            if (CollectionUtils.isEmpty(kwsUserDeptResDtos)) {
+                return userCacheResDto;
+            }
+
+            List<Long> deptIds = kwsUserDeptResDtos.stream().map(KwsUserDeptResDto::getDeptId).toList();
+            List<KwsDeptResDto> kwsDeptResDtos = remoteBaseService.queryDeptByIds(deptIds);
+            if (CollectionUtils.isEmpty(kwsDeptResDtos)) {
+                return userCacheResDto;
             }
 
+            Long entId = kwsDeptResDtos.get(0).getEntId();
+            KwsEnterpriseResDto kwsEnterpriseResDto = remoteBaseService.queryEnterpriseById(entId);
+            if (Objects.isNull(kwsEnterpriseResDto)) {
+                return userCacheResDto;
+            }
+
+            EntCacheResDto entCacheResDto = new EntCacheResDto();
+            BeanUtils.copyProperties(kwsEnterpriseResDto, entCacheResDto);
+            entCacheResDto.setDeptInfo(BeanUtils.copyToList(kwsDeptResDtos, DeptInfoPojo.class));
+            entCacheResDto.setCertificateInfo(remoteBaseService.queryCertificateByEntId(entId));
+            userCacheResDto.setEntInfo(entCacheResDto);
+            RedissonUtils.putString(key, JSON.toJSONString(userCacheResDto), Global.COMMON_EXPIRE);
+            return userCacheResDto;
         }
 
-        return null;
+        return JSONObject.parseObject(dictCache, UserCacheResDto.class);
     }
 
     /**