kaiyu
2021-06-18 4ad67c20b9c5e6625babefeee59ccee155cfc3aa
Merge branch 'dev' of http://blit.7drlb.com:8888/r/moral into dev
1 files modified
52 ■■■■■ changed files
screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java 52 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java
@@ -16,6 +16,7 @@
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
@@ -51,6 +52,9 @@
    @Autowired
    LogUtils logUtils;
    @Autowired
    RedisTemplate redisTemplate;
    @Override
    @Transactional
    public Map<String, Object> insertOne(DeviceAdjustValue deviceAdjustValue) {
@@ -81,11 +85,13 @@
            resultMap.put("msg",ResponseCodeEnum.SENSOR_IS_NOT_EXIST.getMsg());
            return resultMap;
        }
        deviceAdjustValueMapper.insert(deviceAdjustValue);
        //deviceAdjustValueMapper.insert(deviceAdjustValue);
        //操作插入日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        String content = "添加了"+deviceAdjustValue.getMac()+"设备"+deviceAdjustValue.getSensorCode()+"传感器"+deviceAdjustValue.getStartTime()+"到"+deviceAdjustValue.getEndTime()+"的校准信息:"+";";
        logUtils.saveOperationForManage(request,content,Constants.INSERT_OPERATE_TYPE);
        //logUtils.saveOperationForManage(request,content,Constants.INSERT_OPERATE_TYPE);
        //刷新缓存
        refreshCache(deviceAdjustValue.getMac());
        resultMap.put("code", ResponseCodeEnum.SUCCESS.getCode());
        resultMap.put("msg", ResponseCodeEnum.SUCCESS.getMsg());
        return resultMap;
@@ -162,6 +168,8 @@
            }
        }
        logUtils.saveOperationForManage(request,content,Constants.UPDATE_OPERATE_TYPE);
        //刷新缓存
        refreshCache(deviceAdjustValueOld.getMac());
        resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode());
        resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg());
        return resultMap;
@@ -192,6 +200,8 @@
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        String content = "删除了"+deviceAdjustValue.getMac()+"设备"+deviceAdjustValue.getSensorCode()+"传感器"+deviceAdjustValue.getStartTime()+"到"+deviceAdjustValue.getEndTime()+"的校准信息:"+";";
        logUtils.saveOperationForManage(request,content,Constants.DELETE_OPERATE_TYPE);
        //刷新缓存
        refreshCache(deviceAdjustValue.getMac());
        resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode());
        resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg());
        return resultMap;
@@ -231,4 +241,42 @@
        return resultMap;
    }
    private Map<String,Object> getDeviceAdjustValueFromDB(String mac){
        QueryWrapper<DeviceAdjustValue> wapper_redis = new QueryWrapper<>();
        wapper_redis.eq("mac",mac);
        wapper_redis.eq("is_delete",Constants.NOT_DELETE);
        List<DeviceAdjustValue> deviceAdjustValueList = deviceAdjustValueMapper.selectList(wapper_redis);
        if (deviceAdjustValueList.size()==0){
            return null;
        }
        Map<String, Object> deviceAdjustValueMap = new HashMap<>();
        for (DeviceAdjustValue deviceAdjustValue:deviceAdjustValueList) {
            String sensor_code = deviceAdjustValue.getSensorCode();
            List<DeviceAdjustValue> timeSlotValueList = new ArrayList<>();
            for (DeviceAdjustValue deviceAdjustValueIn:deviceAdjustValueList) {
                if (deviceAdjustValueIn.getSensorCode().equals(sensor_code)){
                    Map<String, Object> timeSlot_value = new HashMap<>();
                    timeSlot_value.put("start_time",deviceAdjustValue.getStartTime());
                    timeSlot_value.put("end_time",deviceAdjustValue.getEndTime());
                    timeSlot_value.put("value",deviceAdjustValue.getValue());
                    timeSlotValueList.add(deviceAdjustValueIn);
                }
            }
            deviceAdjustValueMap.put(sensor_code,timeSlotValueList);
        }
        return deviceAdjustValueMap;
    }
    private void refreshCache(String mac){
        Map<String, Object> deviceAdjustValueMap = getDeviceAdjustValueFromDB(mac);
        refreshCache(deviceAdjustValueMap,mac);
    }
    private void refreshCache(Map<String,Object> deviceAdjustValueMap,String mac){
        //删除缓存
        redisTemplate.delete("adjust_"+mac);
        //添加缓存
        redisTemplate.opsForHash().putAll("adjust_"+mac,deviceAdjustValueMap);
    }
}