Ver código fonte

refactor(消费服务): 优化缓存数据解析与日志记录

1. 调整`RedisUtils`缓存值解析逻辑,统一使用`JsonUtils.parseObject`方法将缓存数据解析为`RemoteCardVo`对象,确保数据解析的准确性与一致性。
2. 新增验证失败日志输出,记录异常信息,提升问题排查效率。
autumnal_wind 11 meses atrás
pai
commit
80456e7c0a

+ 2 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/CardBusiness.java

@@ -17,6 +17,7 @@ import org.dromara.common.core.domain.model.ErrorResult;
 import org.dromara.common.core.enums.BagNameEnum;
 import org.dromara.common.core.enums.ResultCodeEnum;
 import org.dromara.common.encrypt.utils.YcEncryptUtil;
+import org.dromara.common.json.utils.JsonUtils;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.server.consume.domain.bo.PtBagBo;
 import org.dromara.server.consume.domain.vo.PtBagVo;
@@ -55,7 +56,7 @@ public class CardBusiness {
     public ReturnResult getCardBagsByCardNo(Long cardNo) {
         // RemoteCardVo remoteCardVo = remoteCardService.queryCardByCardNo(cardNo);
         String strCardNo = String.valueOf(cardNo);
-        RemoteCardVo remoteCardVo = RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_NO, strCardNo);
+        RemoteCardVo remoteCardVo = JsonUtils.parseObject(RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_NO, strCardNo).toString(), RemoteCardVo.class);
         if (ObjectUtil.isEmpty(remoteCardVo)) {
             ErrorResult result = new ErrorResult();
             result.setStatusCode(HttpStatus.NOT_FOUND.value());

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

@@ -66,7 +66,7 @@ public class EmployeeBusiness {
 
         // RemoteCardVo remoteCardVo = remoteCardService.queryMainCardByUserId(userAccountVo.getUserId());
         String userId = String.valueOf(userAccountVo.getUserId());
-        RemoteCardVo remoteCardVo = JsonUtils.parseObject(String.valueOf(RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_USER_ID, userId)), RemoteCardVo.class);
+        RemoteCardVo remoteCardVo = JsonUtils.parseObject(RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_USER_ID, userId).toString(), RemoteCardVo.class);
         UserCardVo userCardVo = new UserCardVo();
         Long cardNo = 0L;
         if (ObjectUtil.isNotEmpty(remoteCardVo)) {

+ 3 - 2
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/check/CommonCheck.java

@@ -106,6 +106,7 @@ public class CommonCheck {
                         taskExecutor.getThreadPoolExecutor().getQueue().clear();
                     }
                 } catch (Exception e) {
+                    log.info("验证失败-{}", e.getMessage(), e);
                     if (firstError.compareAndSet(null, createError(TradeStatusEnum.SysError))) {
                         taskExecutor.getThreadPoolExecutor().getQueue().clear();
                     }
@@ -413,8 +414,8 @@ public class CommonCheck {
     private RemoteCardVo getCardFromCache(Long checkParam, Integer checkMode) {
         String cacheKey = checkParam.toString();
         return checkMode.equals(cardIdMode) ?
-            JsonUtils.parseObject(String.valueOf(RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_USER_ID, cacheKey)), RemoteCardVo.class) :
-            JsonUtils.parseObject(String.valueOf(RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_NO, cacheKey)), RemoteCardVo.class);
+            JsonUtils.parseObject(RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_USER_ID, cacheKey).toString(), RemoteCardVo.class) :
+            JsonUtils.parseObject(RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_NO, cacheKey).toString(), RemoteCardVo.class);
         // RedisUtils.getCacheMapValue(CacheNames.PT_USER_CARD_NO, cacheKey);
     }
     // endregion