浏览代码

医健宝扣除流量缺陷修复

chenguo 1 月之前
父节点
当前提交
82c7fc0119
共有 1 个文件被更改,包括 28 次插入24 次删除
  1. 28 24
      fs-service/src/main/java/com/fs/company/service/impl/CompanyTrafficRecordServiceImpl.java

+ 28 - 24
fs-service/src/main/java/com/fs/company/service/impl/CompanyTrafficRecordServiceImpl.java

@@ -15,7 +15,6 @@ import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyTrafficRecordLogService;
 import com.fs.company.service.ICompanyTrafficRecordService;
 import com.fs.system.domain.SysConfig;
-import com.fs.system.mapper.SysUserMapper;
 import com.fs.system.service.ISysConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +49,9 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
     public void init() {
         List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
         for (CompanyTrafficRecord companyTrafficRecord : companyTrafficRecords) {
+            //同步redis缓存 更新getBalance()
+            doReduce(companyTrafficRecord,"重启同步流量");
+
             // 获取公司流量
             Long balance = companyTrafficRecord.getBalance();
             // 获取部门ID
@@ -57,6 +59,8 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
             // 获取公司ID
             Long companyId = companyTrafficRecord.getCompanyId();
             // 缓存 key=CACHE_KEY:deptId:companyId  value=剩余流量
+
+
             //序列化问题,使用incr创建缓存
             //删除缓存
             redisCache.deleteObject(CompanyTrafficConstants.CACHE_KEY + ":" + deptId + ":" + companyId);
@@ -66,38 +70,38 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
         }
     }
 
-    @Scheduled(cron = "0 0 3 * * ?")
+    @Scheduled(cron = "0 0 0 * * ?")
     public void refreshTraffic() {
         List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
         for (CompanyTrafficRecord companyTrafficRecord : companyTrafficRecords) {
-            doReduce(companyTrafficRecord);
+            doReduce(companyTrafficRecord,"定时更新扣除流量");
         }
     }
 
     //通过redis更新表流量并添加扣除日志
-    private void doReduce(CompanyTrafficRecord companyTrafficRecord) {
+    private void doReduce(CompanyTrafficRecord companyTrafficRecord, String remark) {
         //redis获取剩余流量
-        Long balance = redisCache.getCacheObject(CompanyTrafficConstants.CACHE_KEY
-                + ":" + companyTrafficRecord.getDeptId()
-                + ":" + companyTrafficRecord.getCompanyId());
-        if (balance != null) {
+        Object traffic = redisCache.getCacheObject(CompanyTrafficConstants.CACHE_KEY + ":" + companyTrafficRecord.getDeptId() + ":" + companyTrafficRecord.getCompanyId());
+        if(traffic!=null) {
+            Long balance = ((Integer) traffic).longValue();
             long trafficAmount = companyTrafficRecord.getBalance() - balance;
-            if(trafficAmount != 0){
-            baseMapper.updateById(CompanyTrafficRecord.builder()
-                    .id(companyTrafficRecord.getId())
-                    .balance(balance)
-                    .updateTime(new Date())
-                    .updateBy(1L).build());
-            companyTrafficRecordLogService.save(CompanyTrafficRecordLog.builder()
-                    .balance(companyTrafficRecord.getBalance())
-                    .trafficAmount(trafficAmount)
-                    .companyId(companyTrafficRecord.getCompanyId())
-                    .createTime(new Date())
-                    .operationType(2)
-                    .userId(1L)//表示amdin
-                    .remark("定时更新扣除流量")
-                    .userName("admin")
-                    .build());
+            companyTrafficRecord.setBalance(balance);
+            if (trafficAmount != 0) {
+                baseMapper.updateById(CompanyTrafficRecord.builder()
+                        .id(companyTrafficRecord.getId())
+                        .balance(balance)
+                        .updateTime(new Date())
+                        .updateBy(1L).build());
+                companyTrafficRecordLogService.save(CompanyTrafficRecordLog.builder()
+                        .balance(balance)
+                        .trafficAmount(trafficAmount)
+                        .companyId(companyTrafficRecord.getCompanyId())
+                        .createTime(new Date())
+                        .operationType(2)
+                        .userId(1L)//表示amdin
+                        .remark(remark)
+                        .userName("admin")
+                        .build());
             }
         }
     }