Selaa lähdekoodia

refactor(消费服务): 优化日志输出与缓存清理逻辑

1. 调整多处日志内容,修正错误描述并提升语义准确性,包括钱包余额更新、设备校时成功日志等。
2. 新增多处缓存清理逻辑,确保初始化或更新前清除旧数据,涉及用户余额、人员卡片、人员账户等相关缓存。
autumnal_wind 11 kuukautta sitten
vanhempi
commit
c1b559597b

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

@@ -287,7 +287,8 @@ public class BaseBusiness {
             throw new ConsumeException("更新设备日统计表失败");
         }
         // 4.更新钱包余额
-        log.warn("[上传交易]-[更新钱包余额]-[{}]", JSONUtil.toJsonStr(bo));
+
+        log.warn("[上传交易]-[更新钱包余额]-[{}]", JSONUtil.toJsonStr(JSONUtil.toJsonStr(bagVos)));
         bagService.updateConsumeBalance(bagVos);
 
         // 5.消费记录入库完成后的一些后续任务

+ 12 - 2
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/InitBusiness.java

@@ -154,7 +154,7 @@ public class InitBusiness {
     public void initUserBalance() {
         List<Long> idList = remoteUserAccountService.getUserAccountIdList();
         if (CollUtil.isNotEmpty(idList)) {
-            RedisUtils.deleteKeys(CacheNames.T_XF_LIMITEDTERM);
+            RedisUtils.deleteKeys(CacheNames.USER_TOTAL_BALANCE);
             idList.forEach(id -> {
                 String userId = String.valueOf(id);
                 BigDecimal balance = bagService.getUserBalance(id);
@@ -173,6 +173,7 @@ public class InitBusiness {
     public void initUserBalanceByUserId(Long id) {
         String userId = String.valueOf(id);
         BigDecimal balance = bagService.getUserBalance(id);
+        RedisUtils.delCacheMapValue(CacheNames.USER_TOTAL_BALANCE, userId);
         RedisUtils.setCacheMapValue(CacheNames.USER_TOTAL_BALANCE, userId, balance);
         log.info("初始化指定人员余额完成,人员Id:{}", id);
     }
@@ -208,6 +209,9 @@ public class InitBusiness {
             String cardNo = String.valueOf(cardVo.getCardNo());
             String userId = String.valueOf(id);
 
+            RedisUtils.delCacheMapValue(CacheNames.PT_USER_CARD_NO, cardNo);
+            RedisUtils.delCacheMapValue(CacheNames.PT_USER_CARD_USER_ID, userId);
+
             RedisUtils.setCacheMapValue(CacheNames.PT_USER_CARD_NO, cardNo, cardVo);
             RedisUtils.setCacheMapValue(CacheNames.PT_USER_CARD_USER_ID, userId, cardVo);
         }
@@ -231,8 +235,10 @@ public class InitBusiness {
             list.forEach(v -> {
                 Long userId = v.getUserId();
                 String strUserId = String.valueOf(userId);
+                String strUserNo = String.valueOf(v.getUserNo());
+
                 RedisUtils.setCacheMapValue(CacheNames.PT_USER_ACCOUNT_ID, strUserId, v);
-                RedisUtils.setCacheMapValue(CacheNames.PT_USER_ACCOUNT_NO, v.getUserNo().toString(), v);
+                RedisUtils.setCacheMapValue(CacheNames.PT_USER_ACCOUNT_NO, strUserNo, v);
 
                 BigDecimal balance = bagService.getUserBalance(userId);
                 RedisUtils.setCacheMapValue(CacheNames.USER_TOTAL_BALANCE, strUserId, balance);
@@ -257,10 +263,14 @@ public class InitBusiness {
             String strUserId = String.valueOf(id);
             String strUserNo = String.valueOf(accountVo.getUserNo());
 
+            RedisUtils.delCacheMapValue(CacheNames.PT_USER_ACCOUNT_ID, strUserId);
+            RedisUtils.delCacheMapValue(CacheNames.PT_USER_ACCOUNT_NO, strUserNo);
+
             RedisUtils.setCacheMapValue(CacheNames.PT_USER_ACCOUNT_ID, strUserId, accountVo);
             RedisUtils.setCacheMapValue(CacheNames.PT_USER_ACCOUNT_NO, strUserNo, accountVo);
 
             BigDecimal balance = bagService.getUserBalance(id);
+            RedisUtils.delCacheMapValue(CacheNames.PT_USER_CARD_NO, strUserId);
             RedisUtils.setCacheMapValue(CacheNames.USER_TOTAL_BALANCE, strUserId, balance);
         }
         log.info("初始化指定人员账户参数完成,人员Id:{}", id);

+ 4 - 4
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/check/ConsumeUploadCheck.java

@@ -192,8 +192,8 @@ public class ConsumeUploadCheck {
                 bagVo.setBalance(balance);
                 sb.append(BagNameEnum.getMessage(Integer.valueOf(bagCode)));
                 doBagVos.add(bagVo);
-                log.warn("[上传交易]-[扣费钱包]-[钱包代码:{},钱包余额:{},消费金额:{},扣款金额:{},姓名:{}]", bagCode, balance, consumeMoney, doMoney,
-                    userAccountVo.getRealName());
+                // log.warn("[上传交易]-[扣费钱包]-[钱包代码:{},钱包余额:{},消费金额:{},扣款金额:{},姓名:{}]", bagCode, balance, consumeMoney, doMoney,
+                //     userAccountVo.getRealName());
                 break;
             } else {
                 // 如果消费金额>0,则可能会需要多钱包扣费
@@ -205,8 +205,8 @@ public class ConsumeUploadCheck {
                         bagVo.setBalance(balance.subtract(doMoney));
                         sb.append(BagNameEnum.getMessage(Integer.parseInt(bagCode)));
                         doBagVos.add(bagVo);
-                        log.warn("[上传交易]-[扣费钱包]-[钱包代码:{},钱包余额:{},消费金额:{},扣款金额:{},姓名:{}]", bagCode, balance, consumeMoney,
-                            doMoney, userAccountVo.getRealName());
+                        // log.warn("[上传交易]-[扣费钱包]-[钱包代码:{},钱包余额:{},消费金额:{},扣款金额:{},姓名:{}]", bagCode, balance, consumeMoney,
+                        //     doMoney, userAccountVo.getRealName());
                         break;
                     } else {
                         // 将钱包扣费为0,剩余待扣金额=消费金额-原钱包余额

+ 1 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/controller/v1/TermsController.java

@@ -84,7 +84,7 @@ public class TermsController {
                 log.error("{}-[失败:{}]", logPrefix, result.getMsg());
                 return ErrorResult.badRequestResponse("设备校时失败: " + result.getMsg());
             }
-            log.info("{}-[成功:{}]-[耗时 {} ms]", logPrefix, result.getData(), System.currentTimeMillis() - startTime);
+            log.info("{}-[成功:{}]-[耗时 {} ms]", logPrefix, JSONUtil.toJsonStr(result.getData()), System.currentTimeMillis() - startTime);
             return ResponseEntity.ok(result.getData());
 
         } catch (Exception e) {