Pārlūkot izejas kodu

流量观看提醒,和优化流量扣除逻辑

吴树波 4 dienas atpakaļ
vecāks
revīzija
2bc83e07dc

+ 20 - 4
fs-service/src/main/java/com/fs/company/service/impl/CompanyTrafficRecordServiceImpl.java

@@ -3,6 +3,7 @@ package com.fs.company.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.exception.base.BaseException;
@@ -56,6 +57,8 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
 
     @Autowired
     private ICompanyTrafficRecordLogService companyTrafficRecordLogService;
+    @Autowired
+    private CompanyTrafficRecordMapper companyTrafficRecordMapper;
 
     @Autowired
     private FsCourseTrafficLogMapper fsCourseTrafficLogMapper;
@@ -103,14 +106,15 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
     @Override
     public void refreshTraffic() {
         log.info("【定时更新流量】:{}", "开始");
-        List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
-        for (CompanyTrafficRecord companyTrafficRecord : companyTrafficRecords) {
-            doReduce(companyTrafficRecord);
+        List<Company> companyList = companyService.selectCompanyList(new Company());
+//        List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
+        for (Company company : companyList) {
+            doReduce(company);
         }
     }
 
     //通过redis更新表流量并添加扣除日志
-    private void doReduce(CompanyTrafficRecord companyTrafficRecord) {
+    private void doReduce(Company company) {
         LocalDateTime now = LocalDateTime.now();
         // 获取上一个小时的开始时间
         LocalDateTime startTime = now.minusHours(1)
@@ -120,6 +124,18 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
         LocalDateTime endTime = startTime
                 .withMinute(59)
                 .withSecond(59);
+        CompanyTrafficRecord companyTrafficRecord = companyTrafficRecordMapper.selectOne(new QueryWrapper<CompanyTrafficRecord>().eq("company_id", company.getCompanyId()));
+        if(companyTrafficRecord == null){
+            companyTrafficRecord = new CompanyTrafficRecord();
+            companyTrafficRecord.setBalance(0L);
+            companyTrafficRecord.setCompanyId(company.getCompanyId());
+            companyTrafficRecord.setDeptId(company.getDeptId());
+            companyTrafficRecord.setCompanyName(company.getCompanyName());
+            companyTrafficRecord.setCreateTime(new Date());
+            companyTrafficRecord.setCreateBy(company.getUserId());
+            companyTrafficRecord.setDeptId(company.getDeptId());
+            baseMapper.insert(companyTrafficRecord);
+        }
         //根据fs_course_traffic_log表获取公司昨天流量
         Long trafficAmountYesterday = fsCourseTrafficLogMapper.sumTrafficByCompanyYesterday(companyTrafficRecord.getCompanyId(), DateUtil.formatLocalDateTime(startTime), DateUtil.formatLocalDateTime(endTime));
         if (trafficAmountYesterday != null && trafficAmountYesterday > 0) {

+ 1 - 1
fs-service/src/main/resources/mapper/company/CompanyMapper.xml

@@ -48,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select * from company
     </sql>
 
-    <select id="selectCompanyList" parameterType="Company" resultMap="CompanyResult">
+    <select id="selectCompanyList" parameterType="com.fs.company.domain.Company" resultType="com.fs.company.domain.Company">
         <include refid="selectCompanyVo"/>
         <where>
             <if test="companyId != null"> and company_id = #{companyId}</if>