Pārlūkot izejas kodu

refactor(消费服务): 移除对RemoteCardService的依赖并优化缓存处理逻辑

1. 删除`RemoteCardService`的注入与相关调用,改为从缓存中获取卡片信息。
2. 增加缓存为空时的日志记录,避免空数据导致的异常。
autumnal_wind 11 mēneši atpakaļ
vecāks
revīzija
bbd147c450

+ 6 - 5
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/EmployeeBusiness.java

@@ -4,7 +4,6 @@ import cn.hutool.core.util.ObjectUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.dromara.backstage.api.RemoteCardService;
 import org.dromara.backstage.api.RemoteUserAccountService;
 import org.dromara.backstage.api.domain.vo.RemoteCardVo;
 import org.dromara.backstage.api.domain.vo.RemoteUserAccountVo;
@@ -39,7 +38,6 @@ public class EmployeeBusiness {
     @DubboReference
     private final RemoteDeptService remoteDeptService;
     @DubboReference
-    private final RemoteCardService remoteCardService;
 
 
     public ReturnResult getEmployeeVoByNumb(String userNumb) {
@@ -64,10 +62,13 @@ public class EmployeeBusiness {
         departmentVo.setParentDepartmentID(remoteDeptVo.getParentId().toString());
         departmentVo.setDepartmentName(remoteDeptVo.getDeptName());
 
-        // RemoteCardVo remoteCardVo = remoteCardService.queryMainCardByUserId(userAccountVo.getUserId());
-        log.info("userNumb:{},userId:{}", userAccountVo.getUserNumb(), userAccountVo.getUserId());
         String userId = String.valueOf(userAccountVo.getUserId());
-        RemoteCardVo remoteCardVo = JsonUtils.parseObject(RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_USER_ID, userId).toString(), RemoteCardVo.class);
+        Object objCard = RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_USER_ID, userId);
+        if (objCard == null) {
+            log.info("无人员卡片信息,userNumb:{},userId:{}", userAccountVo.getUserNumb(), userAccountVo.getUserId());
+            return null;
+        }
+        RemoteCardVo remoteCardVo = JsonUtils.parseObject(objCard.toString(), RemoteCardVo.class);
         UserCardVo userCardVo = new UserCardVo();
         Long cardNo = 0L;
         if (ObjectUtil.isNotEmpty(remoteCardVo)) {