myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java
@@ -43,7 +43,7 @@ // 全局配置 GlobalConfig gc = new GlobalConfig(); //String projectPath = System.getProperty("user.dir"); String projectPath="D:\\tools\\IdeaProjects\\moral\\screen-job"; String projectPath="C:\\Users\\cdl\\Desktop\\comProject\\newProject\\moral\\screen-api"; gc.setOutputDir(projectPath + "/src/main/java"); gc.setAuthor("moral"); gc.setOpen(false); @@ -68,7 +68,7 @@ // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"); dsc.setUrl("jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai"); //dsc.setUrl("jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("moral_123456"); screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java
@@ -19,15 +19,17 @@ * @Date 2021/6/15 14:49 * @Version TODO **/ //@Component @Component public class SecondDataConsumer implements ConsumerSeekAware { @KafkaListener(topics = "second_data",groupId = "SecondsDataGroup3") public void listen(ConsumerRecord<String, String> record , Consumer consumer) throws Exception { String messageStr = record.value(); Map<String,String> message = (Map<String,String>)JSON.parse(messageStr); System.out.println(message); CopyOnWriteArraySet<SingleDeviceServer> sockets = SingleDeviceServer.sockets; for (SingleDeviceServer socket : sockets) { //判断消息书否数据该socket socket.sendMessage(message.toString()); } System.out.println(message); screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java
@@ -26,6 +26,8 @@ private String mac; @OnOpen public void onOpen(Session session, @PathParam("mac") String mac) throws Exception { this.session = session; screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java
screen-manage/src/main/java/com/moral/api/service/SensorService.java
@@ -34,4 +34,6 @@ Map<String, Object> getSensorByFuzzy(Map map); Map<String, Sensor> getAllSensorFromCache(); void refreshCache(); } screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java
@@ -74,4 +74,13 @@ */ Map<String,SysDictData> getDictDatasByType(String type); /** * @Description: 刷新字典类型缓存 * @Param: [] * @return: void * @Author: 陈凯裕 * @Date: 2021/6/28 */ void refreshCache(); } screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java
@@ -74,6 +74,15 @@ */ SysDictType getDictTypeById(Integer id); /** * @Description: 刷新缓存 * @Param: [] * @return: void * @Author: 陈凯裕 * @Date: 2021/6/28 */ void refreshCache(); } screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -123,7 +123,7 @@ //设备信息存入redis setDeviceInfoToRedis(mac, deviceInfo); //刷新deviceInfo缓存 CacheUtils.flushDeviceAlarmInfo(); CacheUtils.refreshDeviceAlarmInfo(); //操作日志记录 HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); @@ -146,7 +146,7 @@ Integer orgId = device.getOrganizationId(); deleteOrganizationUnitAlarm(orgId, versionId); //刷新deviceInfo缓存 CacheUtils.flushDeviceAlarmInfo(); CacheUtils.refreshDeviceAlarmInfo(); //操作日志记录 HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); @@ -182,7 +182,7 @@ //设备信息存入redis setDeviceInfoToRedis(mac, deviceInfo); //刷新deviceInfo缓存 CacheUtils.flushDeviceAlarmInfo(); CacheUtils.refreshDeviceAlarmInfo(); //操作日志记录 HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java
@@ -78,7 +78,7 @@ //获取更新后的记录用于插入日志 OrganizationUnitAlarm newRecord = organizationUnitAlarmMapper.selectById(organizationUnitAlarm.getId()); //刷新deviceInfo缓存 CacheUtils.flushDeviceAlarmInfo(); CacheUtils.refreshDeviceAlarmInfo(); //封装返回对象 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
@@ -141,7 +141,7 @@ organizationUnitAlarm.setSensorCode(updateSensorMap.get("code").toString()); organizationUnitAlarmMapper.update(organizationUnitAlarm,wrapper_OUA); //刷新deviceInfo缓存 CacheUtils.flushDeviceAlarmInfo(); CacheUtils.refreshDeviceAlarmInfo(); } HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String content = "修改因子:"+oldSensor.getName()+";"; @@ -359,6 +359,12 @@ return sensors; } @Override public void refreshCache(){ Map<String, Sensor> sensors = getAllSensorFromDB(); refreshCache(sensors); } private Map<String,Sensor> getAllSensorFromDB(){ QueryWrapper<Sensor> wrapper = new QueryWrapper<>(); wrapper.eq("is_delete",Constants.NOT_DELETE); @@ -368,11 +374,6 @@ result.put(sensor.getCode(),sensor); } return result; } private void refreshCache(){ Map<String, Sensor> sensors = getAllSensorFromDB(); refreshCache(sensors); } private void refreshCache(Map<String,Sensor> sensors){ screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
@@ -61,8 +61,8 @@ deleteWrapper.set("is_delete", Constants.DELETE); deleteWrapper.eq("id", id); sysDictDataMapper.update(null, deleteWrapper); //删除缓存 CacheUtils.clearDictionariesCache(); //刷新缓存 refreshCache(); //封装返回对象 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -95,8 +95,8 @@ } //执行更新 sysDictDataMapper.updateById(sysDictData); //清除缓存 CacheUtils.clearDictionariesCache(); //刷新缓存 refreshCache(); //封装返回结果 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -136,8 +136,8 @@ } //执行插入 sysDictDataMapper.insert(sysDictData); //清除缓存 CacheUtils.clearDictionariesCache(); //刷新缓存 refreshCache(); //封装返回结果 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -188,6 +188,13 @@ return result; } @Override public void refreshCache(){ redisTemplate.delete(RedisConstants.DICT_DATA_KEY); Map<String, List<SysDictData>> datas = getDictDataFromDB(); redisTemplate.opsForValue().set(RedisConstants.DICT_DATA_KEY, datas); } /** * @Description: 从数据库中根据字典类型读取字典数据,返回Map Key:类型名称 value:数据集合 screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
@@ -72,8 +72,8 @@ deleteDataWrapper.eq("dict_type_id",typeId); deleteDataWrapper.set("is_delete",Constants.DELETE); sysDictDataService.update(null,deleteDataWrapper); //清除缓存数据 CacheUtils.clearDictionariesCache(); //刷新缓存数据 refreshCache(); //封装返回数据 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -102,8 +102,8 @@ sysDictTypeMapper.updateById(type); //获取更新后的对象 SysDictType sysDictType = sysDictTypeMapper.selectById(type.getId()); //清除缓存 CacheUtils.clearDictionariesCache(); //刷新缓存 refreshCache(); //封装返回对象 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -129,8 +129,8 @@ } //插入类型 sysDictTypeMapper.insert(sysDictType); //清除缓存 CacheUtils.clearDictionariesCache(); //刷新缓存 refreshCache(); //封装返回对象 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -200,5 +200,12 @@ return sysDictTypes; } @Override public void refreshCache(){ redisTemplate.delete(RedisConstants.DICT_TYPE_KEY); List<SysDictType> types = getAllDictTypeFromDB(); redisTemplate.opsForValue().set(RedisConstants.DICT_TYPE_KEY,types); } } screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
@@ -14,6 +14,7 @@ import com.moral.api.pojo.form.version.*; import com.moral.api.service.VersionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.util.CacheUtils; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import com.moral.util.ConvertUtils; @@ -265,6 +266,8 @@ organizationUnitAlarmMapper.insert(organizationUnitAlarm); } } //刷新deviceInfo缓存 CacheUtils.refreshDeviceAlarmInfo(); //封装返回结果 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
@@ -66,12 +66,8 @@ CacheUtils.unitConversionMapper = unitConversionMapper; } public static void clearDictionariesCache() { redisTemplate.delete(RedisConstants.DICT_DATA_KEY); redisTemplate.delete(RedisConstants.DICT_TYPE_KEY); } public static void flushDeviceAlarmInfo() { public static void refreshDeviceAlarmInfo() { //删除缓存 redisTemplate.delete(RedisConstants.DEVICE_INFO); //重新添加缓存 @@ -119,4 +115,12 @@ //存入redis redisTemplate.opsForHash().putAll(RedisConstants.DEVICE_INFO,result); } public static void refreshSensor(){ sensorService.refreshCache(); } public static void refreshDicTypeAndData(){ } } screen.iml
@@ -4,14 +4,17 @@ <output url="file://$MODULE_DIR$/target/classes" /> <output-test url="file://$MODULE_DIR$/target/test-classes" /> <content url="file://$MODULE_DIR$"> <excludeFolder url="file://$MODULE_DIR$/target" /> <excludeFolder url="file://$MODULE_DIR$/home" /> <excludeFolder url="file://$MODULE_DIR$/home/moral/soft/log/screen-manage/%d{yyyy-MM-dd}" /> <excludeFolder url="file://$MODULE_DIR$/home/moral/soft/log/screen-manage/2021-06-08" /> <excludeFolder url="file://$MODULE_DIR$/home/moral/soft/log/springAppName_IS_UNDEFINED" /> <excludeFolder url="file://$MODULE_DIR$/home" /> <excludeFolder url="file://$MODULE_DIR$/target" /> </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" scope="TEST" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" /> <orderEntry type="library" name="Maven: com.googlecode.aviator:aviator:5.2.5" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.13.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.13.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.13.RELEASE" level="project" /> @@ -110,8 +113,6 @@ <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.14.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.14.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" /> <orderEntry type="library" name="Maven: com.google.code.kaptcha:kaptcha:2.3.2" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.1.13.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.14.RELEASE" level="project" />