|
|
@@ -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());
|
|
|
}
|
|
|
}
|
|
|
}
|