浏览代码

医健宝-首页统计,定时任务

chenguo 5 天之前
父节点
当前提交
56e21650da

+ 3 - 0
fs-admin/src/main/java/com/fs/api/controller/IndexStatisticsController.java

@@ -5,6 +5,8 @@ import com.fs.common.core.redis.RedisCache;
 import com.fs.company.constant.CompanyTrafficConstants;
 import com.fs.company.domain.Company;
 import com.fs.company.service.ICompanyService;
+import com.fs.company.service.ICompanyTrafficRecordService;
+import com.fs.company.service.impl.CompanyTrafficRecordServiceImpl;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.hisStore.config.MedicalMallConfig;
 import com.fs.statis.StatisticsRedisConstant;
@@ -14,6 +16,7 @@ import com.fs.system.domain.SysConfig;
 import com.fs.system.service.ISysConfigService;
 import com.fs.system.service.ISysDeptService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;

+ 24 - 0
fs-admin/src/main/java/com/fs/company/controller/CompanyTrafficController.java

@@ -12,10 +12,13 @@ import com.fs.company.param.CompanyTrafficRecordChargeParam;
 import com.fs.company.param.CompanyTrafficRecordQueryParam;
 import com.fs.company.service.ICompanyTrafficRecordService;
 import com.fs.framework.web.service.TokenService;
+import com.fs.hisStore.config.MedicalMallConfig;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.PostConstruct;
 import java.util.List;
 
 @RestController
@@ -28,6 +31,27 @@ public class CompanyTrafficController extends BaseController {
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private MedicalMallConfig medicalMallConfig;
+
+    /**
+     * 每天扣除流量余额
+     * */
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void refreshTraffic(){
+        if("1".equals(medicalMallConfig.getStatics()))
+            companyTrafficRecordService.refreshTraffic();
+    }
+
+    /**
+     * 重启时重新计算并更新公司缓存
+     * */
+    @PostConstruct
+    public void init() {
+        if("1".equals(medicalMallConfig.getStatics()))
+            companyTrafficRecordService.init();
+    }
+
     /** 充值流量 */
     @PreAuthorize("@ss.hasPermi('company:traffic:charge')")
     @Log(title = "公司流量充值", businessType = BusinessType.INSERT)

+ 5 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyTrafficRecordService.java

@@ -7,6 +7,11 @@ import com.fs.company.param.CompanyTrafficRecordQueryParam;
 import java.util.List;
 
 public interface ICompanyTrafficRecordService {
+    //启动时初始化流量
+    void init();
+
+    void refreshTraffic();
+
     //添加流量记录
     boolean recharge(CompanyTrafficRecordChargeParam record);
     //查询流量记录列表

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

@@ -19,11 +19,9 @@ import com.fs.system.domain.SysConfig;
 import com.fs.system.service.ISysConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.PostConstruct;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -50,8 +48,8 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
     @Autowired
     private FsCourseTrafficLogMapper fsCourseTrafficLogMapper;
 
-    //启动时初始化流量
-    @PostConstruct
+    //启动时初始化部门流量缓存
+    @Override
     public void init() {
         List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
         Map<Long,Long> deptTrafficMap = new HashMap<>();
@@ -79,7 +77,7 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
         calculateTotalTrafficByDeptId(deptTrafficMap);
     }
 
-    @Scheduled(cron = "0 0 0 * * ?")
+    @Override
     public void refreshTraffic() {
         log.info("【定时更新流量】:{}", "开始");
         List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());