Преглед на файлове

看课流量单位为Byte,添加定时任务启动日志输出,流量初始化逻辑更新

chenguo преди 1 седмица
родител
ревизия
cf6ad3b41b

+ 7 - 5
fs-service/src/main/java/com/fs/company/service/impl/CompanyTrafficRecordServiceImpl.java

@@ -50,18 +50,20 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
     public void init() {
         List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
         for (CompanyTrafficRecord companyTrafficRecord : companyTrafficRecords) {
+            // 获取部门ID
+            //Long deptId = companyTrafficRecord.getDeptId();从company表获取部门id
+            // 获取公司ID
+            Long companyId = companyTrafficRecord.getCompanyId();
+            Long deptId = companyService.selectCompanyById(companyId).getDeptId();
+            companyTrafficRecord.setDeptId(deptId);
+
             //同步redis缓存 更新getBalance()
             doReduce(companyTrafficRecord,"0");
 
             // 获取公司流量
             Long balance = companyTrafficRecord.getBalance();
-            // 获取部门ID
-            Long deptId = companyTrafficRecord.getDeptId();
-            // 获取公司ID
-            Long companyId = companyTrafficRecord.getCompanyId();
             // 缓存 key=CACHE_KEY:deptId:companyId  value=剩余流量
 
-
             //序列化问题,使用incr创建缓存
             //删除缓存
             redisCache.deleteObject(CompanyTrafficConstants.CACHE_KEY + ":" + deptId + ":" + companyId);

+ 15 - 5
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -852,14 +852,24 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         String monthKey = CompanyTrafficConstants.CACHE_KEY+ ":1:"+ YearMonth.now();
         String lockKey = companyKey + ":lock";
         //销售公司剩余流量
-        Long companyTraffic = ((Integer)redisCache.getCacheObject(companyKey)).longValue();
-        if(companyTraffic == null || companyTraffic<0){
-            return companyTraffic == null?0:companyTraffic;
+        Object companyTraffic = redisCache.getCacheObject(companyKey);
+        Long balance;
+        if(companyTraffic instanceof Long) {
+            balance = (Long) companyTraffic;
+        }else if(companyTraffic instanceof Integer){
+            balance = ((Integer) companyTraffic).longValue();
+        }else if(companyTraffic instanceof String){
+            balance = Long.parseLong(companyTraffic.toString());
+        }else{
+            throw new IllegalArgumentException("流量转换异常");
+        }
+        if(balance<0){
+            return balance;
         }
         try {
             if (redisCache.setIfAbsent(lockKey, "1", 3, TimeUnit.SECONDS)) {
                 try {
-                   companyTraffic = redisCache.decr(companyKey, traffic);
+                    balance = redisCache.decr(companyKey, traffic);
                    redisCache.decr(deptKey, traffic);
                    redisCache.incr(companyDayKey, traffic);
                    redisCache.incr(dayKey, traffic);
@@ -873,7 +883,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             logger.error("【更新Redis缓存失败】企业ID: {}, 流量: {}, 错误信息:{}", company.getCompanyId(), traffic, e.getMessage(), e);
             throw e;
         }
-        return companyTraffic;
+        return balance;
     }
 
 

+ 1 - 1
fs-user-app/src/main/java/com/fs/app/controller/store/ProductScrmController.java

@@ -110,7 +110,7 @@ public class ProductScrmController extends AppBaseController {
             fsStoreScrm = storeScrmService.selectFsStoreByStoreId(Long.parseLong(product.getStoreId()));
         }
         List<FsStoreProductAttrScrm> productAttr=attrService.selectFsStoreProductAttrByProductId(product.getProductId());
-        List<FsStoreProductAttrValueScrm> productValues=attrValueService.selectFsStoreProductAttrValueByProductId(product.getProductId(),storeId);
+        List<FsStoreProductAttrValueScrm> productValues=attrValueService.selectFsStoreProductAttrValueByProductId(product.getProductId());
 
 //        for(FsStoreProductAttrValue value:productValues){
 //            if(StringUtils.isEmpty(value.getGroupBarCode())){