From 16500ff805484fb876ff9736d21021b242f1d7cd Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 01 Jul 2021 09:03:55 +0800
Subject: [PATCH] screen-manage                      添加websocket实时界面

---
 screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java |    2 
 screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java                     |    2 
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java                |    6 +-
 screen.iml                                                                                   |    9 +-
 screen-manage/src/main/java/com/moral/api/util/CacheUtils.java                               |   14 +++-
 screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java              |    8 +-
 screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java                    |    9 +++
 screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java                |   13 ++--
 screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java               |    5 +
 screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java           |   19 ++++--
 screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java                    |    9 +++
 screen-manage/src/main/java/com/moral/api/service/SensorService.java                         |    2 
 screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java           |   19 ++++--
 myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java                              |    4 
 screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java                |    4 +
 15 files changed, 86 insertions(+), 39 deletions(-)

diff --git a/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java b/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java
index 1ace387..10e56d0 100644
--- a/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java
+++ b/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");
diff --git a/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java b/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java
index 6865acf..54fab17 100644
--- a/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java
+++ b/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);
diff --git a/screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java b/screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java
index fa1a3b3..107357d 100644
--- a/screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java
+++ b/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;
diff --git a/screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java b/screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java
index da7a6e8..e54d163 100644
--- a/screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java
@@ -20,15 +20,15 @@
     @Transactional
     Map<String, Object> insertOne(DeviceAdjustValue deviceAdjustValue);
 
-    Map<String,Object> getDataByCondition(Map map);
+    Map<String, Object> getDataByCondition(Map map);
 
     @Transactional
-    Map<String,Object> updateOne(Map map);
+    Map<String, Object> updateOne(Map map);
 
     @Transactional
-    Map<String,Object> deleteOne(Map map);
+    Map<String, Object> deleteOne(Map map);
 
-    Map<String,Object> getTimeSlot(Map map);
+    Map<String, Object> getTimeSlot(Map map);
 
     Map<String,Object> refreshRedis();
 
diff --git a/screen-manage/src/main/java/com/moral/api/service/SensorService.java b/screen-manage/src/main/java/com/moral/api/service/SensorService.java
index c95ad47..3ea51ff 100644
--- a/screen-manage/src/main/java/com/moral/api/service/SensorService.java
+++ b/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();
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java b/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java
index b7c1f99..7262fab 100644
--- a/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java
+++ b/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();
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java b/screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java
index fe7d376..c36517c 100644
--- a/screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java
+++ b/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();
+
 
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index f3d42c9..6e0e9b3 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/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();
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java
index 1a8aa11..31078ec 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java
+++ b/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());
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
index a8323c5..953468c 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
+++ b/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){
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
index 78aaf42..20efc91 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
+++ b/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���������������
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
index a0aa05b..fd27610 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
+++ b/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);
+    }
+
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
index 69f528d..7af8572 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
+++ b/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;
@@ -100,7 +101,7 @@
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         return dto;
     }
-
+    
     @Override
     @Transactional
     public VersionDTO update(VersionUpdateForm form) {
@@ -265,6 +266,8 @@
                 organizationUnitAlarmMapper.insert(organizationUnitAlarm);
             }
         }
+        //������deviceInfo������
+        CacheUtils.refreshDeviceAlarmInfo();
         //������������������
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
diff --git a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
index 4975afd..62c0b4f 100644
--- a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
+++ b/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(){
+
+    }
 }
diff --git a/screen.iml b/screen.iml
index 5933ffe..c7561d7 100644
--- a/screen.iml
+++ b/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" />

--
Gitblit v1.8.0