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