浏览代码

医健宝-医健宝流量扣除,细节优化;点播播放源页面新增所属公司,修改类型

chenguo 1 月之前
父节点
当前提交
518ad037af

+ 1 - 1
fs-service/src/main/java/com/fs/company/constant/CompanyTrafficConstants.java

@@ -1,5 +1,5 @@
 package com.fs.company.constant;
 
 public class CompanyTrafficConstants {
-    public static final String CACHE_KEY = "company:traffic:record:";
+    public static final String CACHE_KEY = "company:traffic:record";
 }

+ 1 - 0
fs-service/src/main/java/com/fs/company/param/CompanyTrafficRecordLogQueryParam.java

@@ -13,6 +13,7 @@ public class CompanyTrafficRecordLogQueryParam {
     private Long companyId;
     private List<Long> companyIds;
     private Long userId;
+    private String userName;
     private Integer operationType; // 1-充值 2-扣费
     private Date createTime;
     private Date createTimeStart;

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

@@ -15,6 +15,7 @@ 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;
@@ -66,17 +67,36 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
     public void refreshTraffic() {
         List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
         for (CompanyTrafficRecord companyTrafficRecord : companyTrafficRecords) {
-            updateRedisCache(companyTrafficRecord);
+            doReduce(companyTrafficRecord);
         }
     }
 
     //通过redis更新表流量并添加扣除日志
-    private void updateRedisCache(CompanyTrafficRecord companyTrafficRecord){
+    private void doReduce(CompanyTrafficRecord companyTrafficRecord) {
+        //redis获取剩余流量
         Long balance = redisCache.getCacheObject(CompanyTrafficConstants.CACHE_KEY
                 + ":" + companyTrafficRecord.getDeptId()
                 + ":" + companyTrafficRecord.getCompanyId());
-        if(balance != null)
-            baseMapper.updateById(CompanyTrafficRecord.builder().id(companyTrafficRecord.getId()).balance(balance).build());
+        if (balance != null) {
+            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());
+            }
+        }
     }
 
     @Override
@@ -97,14 +117,14 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
                 //获取转换后的流量
                 Long trafficAmount = trafficConversion(record.getChargeAmount());
                 record.setChangeTraffic(trafficAmount);//用于处理日志
-                if(companyRecord != null) {
+                if (companyRecord != null) {
                     //不是第一次充值  增加流量
                     companyTrafficRecord.setBalance(companyRecord.getBalance() + trafficAmount);
                     companyTrafficRecord.setId(companyRecord.getId());
                     companyTrafficRecord.setUpdateTime(new Date());
                     companyTrafficRecord.setUpdateBy(record.getUserId());
                     baseMapper.updateById(companyTrafficRecord);
-                }else{
+                } else {
                     companyTrafficRecord.setBalance(trafficAmount);
                     companyTrafficRecord.setCompanyId(record.getCompanyId());
                     companyTrafficRecord.setDeptId(record.getCompany().getDeptId());
@@ -129,29 +149,29 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
                 throw new IllegalArgumentException("非法的操作类型");
         }
         // 更新Redis缓存
-        updateRedisCache(record, companyTrafficRecord);
+        doRefresh(record, companyTrafficRecord);
 
-        return doLog(companyTrafficRecord,record);
+        return doLog(companyTrafficRecord, record);
     }
 
-    private boolean validCompany(CompanyTrafficRecordChargeParam  record){
+    private boolean validCompany(CompanyTrafficRecordChargeParam record) {
         Company company = new Company();
         company.setCompanyId(record.getCompanyId());
         company.setIsDel(0);
         List<Company> companies = companyService.selectCompanyList(company);
-        if(companies != null && companies.size() == 1){
+        if (companies != null && companies.size() == 1) {
             record.setCompany(companies.get(0));
             return true;
-        }else{
+        } else {
             return false;
         }
     }
     /**
      * 更新Redis缓存
-     * @param record 充值参数
+     * @param record               充值参数
      * @param companyTrafficRecord 公司流量记录
      */
-    private void updateRedisCache(CompanyTrafficRecordChargeParam record, CompanyTrafficRecord companyTrafficRecord) {
+    private void doRefresh(CompanyTrafficRecordChargeParam record, CompanyTrafficRecord companyTrafficRecord) {
         if (record.getCompany() != null && record.getCompany().getDeptId() != null) {
             // 更新缓存 key=CACHE_KEY:deptId:companyId  value=剩余流量
             redisCache.setCacheObject(CompanyTrafficConstants.CACHE_KEY + ":" + record.getCompany().getDeptId() + ":" + record.getCompanyId(),
@@ -159,7 +179,7 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
 
             // 计算该部门下所有公司流量总和
             calculateTotalTrafficByDeptId(record.getCompany().getDeptId());
-        }else {
+        } else {
             // 抛出异常
             throw new IllegalArgumentException("缓存ID异常");
         }
@@ -167,24 +187,24 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
 
     /**
      * 部门下所有公司流量总和
-     * */
+     */
     private void calculateTotalTrafficByDeptId(Long deptId) {
         Long totalTraffic = baseMapper.calculateTotalTrafficByDeptId(deptId);
         redisCache.setCacheObject(CompanyTrafficConstants.CACHE_KEY + ":" + deptId, totalTraffic);
     }
 
-    private boolean doLog(CompanyTrafficRecord companyTrafficRecord,CompanyTrafficRecordChargeParam record){
+    private boolean doLog(CompanyTrafficRecord companyTrafficRecord, CompanyTrafficRecordChargeParam record) {
         return companyTrafficRecordLogService.save(CompanyTrafficRecordLog.builder()
-                        .balance(companyTrafficRecord.getBalance())
-                        .trafficAmount(record.getChangeTraffic())
-                        .chargeAmount(record.getChargeAmount())
-                        .companyId(record.getCompanyId())
-                        .createTime(new Date())
-                        .operationType(record.getOperationType())
-                        .userId(record.getUserId())
-                        .remark(record.getRemark())
-                        .userName(record.getUserName())
-                        .build());
+                .balance(companyTrafficRecord.getBalance())
+                .trafficAmount(record.getChangeTraffic())
+                .chargeAmount(record.getChargeAmount())
+                .companyId(record.getCompanyId())
+                .createTime(new Date())
+                .operationType(record.getOperationType())
+                .userId(record.getUserId())
+                .remark(record.getRemark())
+                .userName(record.getUserName())
+                .build());
     }
 
     @Override
@@ -201,10 +221,12 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
     }
 
 
-    /** 充值金额转换流量KB*/
+    /**
+     * 充值金额转换流量KB
+     */
     @Override
     public Long trafficConversion(Long amount) {
-        if(this.config == null) {
+        if (this.config == null) {
             this.config = iSysConfigService.selectConfigByConfigKey("statis.config");
         }
         JSONObject jsonObject = JSONObject.parseObject(this.config.getConfigValue());

+ 5 - 1
fs-service/src/main/java/com/fs/course/param/FsCoursePlaySourceConfigCreateParam.java

@@ -40,6 +40,10 @@ public class FsCoursePlaySourceConfigCreateParam {
     private String msgDataFormat;
 
     @NotNull(message = "类型不能为空")
-    @ApiModelProperty("类型 1小程序 2公众号")
+    @ApiModelProperty("类型 1主要小程序 2公众号 3炮灰小程序")
     private Integer type;
+
+    @NotNull(message = "所属公司不能为空")
+    @ApiModelProperty("所属公司")
+    private Long companyId;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseServiceImpl.java

@@ -57,6 +57,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import com.fs.course.service.IFsUserCourseService;
 import org.springframework.transaction.annotation.Transactional;
@@ -116,6 +117,7 @@ public class FsUserCourseServiceImpl implements IFsUserCourseService
     private IFsUserCourseService fsUserCourseService;
 
     @Autowired
+    @Lazy
     private IFsUserCourseVideoService fsUserCourseVideoService;
 
     @Autowired

+ 4 - 1
fs-service/src/main/java/com/fs/course/vo/FsCoursePlaySourceConfigVO.java

@@ -36,9 +36,12 @@ public class FsCoursePlaySourceConfigVO {
     @ApiModelProperty("msgDataFormat")
     private String msgDataFormat;
 
-    @ApiModelProperty("类型 1小程序 2公众号")
+    @ApiModelProperty("类型 1主要小程序 2公众号 3炮灰小程序")
     private Integer type;
 
+    @ApiModelProperty("所属公司")
+    private Long companyId;
+
     @ApiModelProperty("创建时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;