From b664b9891d2988182ddfa34f816355f94f4714c8 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Sat, 23 Jun 2018 16:22:06 +0800
Subject: [PATCH] 添加 通过 mac 获取三级警报功能

---
 src/main/resources/mapper/AlarmConfigMapper.xml                  |   10 ++++++++++
 src/main/java/com/moral/service/AlarmConfigService.java          |    3 +++
 src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java |   10 ++++++++++
 src/main/java/com/moral/controller/ScreenController.java         |    4 +++-
 src/main/java/com/moral/mapper/AlarmConfigMapper.java            |    2 ++
 5 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 79beb59..66467dd 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -155,7 +155,7 @@
 	 * @return the alarm levels
 	 */
 	@GetMapping("alarm-levels")
-	public Object getAlarmLevels(HttpServletRequest request, Optional<Integer> orgId, Optional<Integer> mpId) {
+	public Object getAlarmLevels(HttpServletRequest request, Optional<Integer> orgId, Optional<Integer> mpId,Optional<String> mac) {
         List<Map<String,Object>> sensorAlarmList = null;
 	    try {
             AlarmConfig alarmConfig = null;
@@ -163,6 +163,8 @@
                  alarmConfig = alarmConfigService.queryValueByOrganizationId(orgId.get()).get();
              }else if(mpId.isPresent()){
                  alarmConfig = alarmConfigService.queryByMonitorPointId(mpId.get()).get();
+             } else if(mac.isPresent() ){
+                 alarmConfig = alarmConfigService.queryByDeviceMac(mac.get()).get();
              }
              //���������������
              if(alarmConfig.getValue()!=null&&alarmConfig.getValue().getAlarmLevels()!=null){
diff --git a/src/main/java/com/moral/mapper/AlarmConfigMapper.java b/src/main/java/com/moral/mapper/AlarmConfigMapper.java
index 31858d3..848dd0a 100644
--- a/src/main/java/com/moral/mapper/AlarmConfigMapper.java
+++ b/src/main/java/com/moral/mapper/AlarmConfigMapper.java
@@ -21,4 +21,6 @@
     int updateByPrimaryKey(AlarmConfig record);
 
     AlarmConfig selectByMonitorPointId(Integer mpId);
+
+    AlarmConfig selectByDeviceMac(String mac);
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/AlarmConfigService.java b/src/main/java/com/moral/service/AlarmConfigService.java
index ec6bb06..e34dad5 100644
--- a/src/main/java/com/moral/service/AlarmConfigService.java
+++ b/src/main/java/com/moral/service/AlarmConfigService.java
@@ -10,6 +10,9 @@
     public Optional<AlarmConfig> queryByOrganizationId(int organizationId);
     public Optional<AlarmConfig> queryByMonitorPointId(int mpId);
     public  AlarmConfigValue getDefaultAlarmConfigValue();
+
+    Optional<AlarmConfig> queryByDeviceMac(String mac);
+
     void addOrModify(AlarmConfig alarmConfig);
 
 }
diff --git a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
index 75017d5..6ea34b6 100644
--- a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
@@ -85,6 +85,16 @@
     }
 
     @Override
+    public Optional<AlarmConfig> queryByDeviceMac(String mac) {
+        AlarmConfig alarmConfig = alarmConfigMapper.selectByDeviceMac(mac);
+        if(alarmConfig==null){
+            alarmConfig = new AlarmConfig();
+            alarmConfig.setValue(getDefaultAlarmConfigValue());
+        }
+        return Optional.ofNullable(alarmConfig);
+    }
+
+    @Override
     public void addOrModify(AlarmConfig alarmConfig) {
         try{
             if(alarmConfig.getId()==null){
diff --git a/src/main/resources/mapper/AlarmConfigMapper.xml b/src/main/resources/mapper/AlarmConfigMapper.xml
index 32e25ad..f8c95ff 100644
--- a/src/main/resources/mapper/AlarmConfigMapper.xml
+++ b/src/main/resources/mapper/AlarmConfigMapper.xml
@@ -103,5 +103,15 @@
     from alarm_config acg
     LEFT JOIN monitor_point mpt on acg.organization_id = mpt.organization_id
     where mpt.id = #{mpId,jdbcType=INTEGER}
+    limit 0,1
+  </select>
+  <select id="selectByDeviceMac" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select
+    acg.*
+    from alarm_config acg
+    LEFT JOIN monitor_point mpt on acg.organization_id = mpt.organization_id
+    LEFT JOIN device dev on mpt.id = dev.monitor_point_id
+    where dev.mac = #{mac,jdbcType=VARCHAR}
+    limit 0,1
   </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0