From 1fc8c9de17129666afd99d591a694c04aacade10 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Fri, 13 Aug 2021 17:47:25 +0800
Subject: [PATCH] 特殊因子新建接口

---
 screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 84 insertions(+), 5 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index 5038125..d08d880 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -9,9 +9,13 @@
 import com.moral.api.service.SpecialDeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.constant.Constants;
+import com.moral.constant.RedisConstants;
 import com.moral.constant.ResponseCodeEnum;
+import org.springframework.beans.BeanUtils;
 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 java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -48,6 +52,30 @@
     @Autowired(required = false)
     private OrganizationMapper organizationMapper;
 
+    @Autowired(required = false)
+    private RedisTemplate redisTemplate;
+
+    /*
+     * ���redis������������������
+     * */
+    private Map<String, Object> getDeviceInfoFromRedis(String mac) {
+        return (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE, mac);
+    }
+
+    /*
+     * ������������������redis
+     */
+    private void setDeviceInfoToRedis(String mac, Map<String, Object> deviceInfo) {
+        redisTemplate.opsForHash().put(RedisConstants.DEVICE, mac, deviceInfo);
+    }
+
+    /*
+     * ���redis������������������
+     */
+    private void delDeviceInfoFromRedis(String mac) {
+        redisTemplate.opsForHash().delete(RedisConstants.DEVICE, mac);
+    }
+
     @Override
     public Map<String, Object> getDataByCondition(Map map) {
         Map<String,Object> resultMap = new HashMap<>();
@@ -62,13 +90,15 @@
         QueryWrapper<SpecialDevice> wrapper_Condition = new QueryWrapper<>();
         wrapper_Condition.eq("is_delete",Constants.NOT_DELETE);
         if (!ObjectUtils.isEmpty(map.get("organization_id"))){
-            wrapper_Condition.like("organization_id",map.get("organization_id").toString());
+            wrapper_Condition.eq("organization_id",map.get("organization_id").toString());
         }
         if (!ObjectUtils.isEmpty(map.get("keyword"))){
-            wrapper_Condition.like("name",map.get("keyword").toString()).or().like("mac",map.get("keyword").toString());
+            wrapper_Condition.and(wc -> wc.like("name",map.get("keyword").toString()).or().like("mac",map.get("keyword").toString()));
+            //wrapper_Condition.like("name",map.get("keyword").toString()).or().like("mac",map.get("keyword").toString());
         }
         wrapper_Condition.orderByDesc("create_time");
         Page resultPage = specialDeviceMapper.selectPage(page,wrapper_Condition);
+        int totalNumber = specialDeviceMapper.selectCount(wrapper_Condition);
         List<SpecialDevice> specialDevices = resultPage.getRecords();
         SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         List<Map<String,Object>> specialDeviceList = new ArrayList<>();
@@ -112,7 +142,7 @@
                     deviceVersionMap.put("name",version.getName());
                 }
             }
-            specialDeviceMap.put("deviceVersion",deviceVersionMap);
+            specialDeviceMap.put("version",deviceVersionMap);
             Map<String,Object> specialTypeMap = new HashMap<>();
             if (!ObjectUtils.isEmpty(specialDevice.getSpecialType()) && specialDevice.getSpecialType()!=null && !"".equals(specialDevice.getSpecialType())){
                 int specialTypeId = Integer.parseInt(specialDevice.getSpecialType().toString());
@@ -123,6 +153,7 @@
                 SysDictData sysDictData = sysDictDataMapper.selectOne(wapper_sysDictData);
                 if (!ObjectUtils.isEmpty(sysDictData)){
                     specialTypeMap.put("id",sysDictData.getId());
+                    specialTypeMap.put("dataKey",sysDictData.getDataKey());
                     specialTypeMap.put("name",sysDictData.getDataValue());
                 }
             }
@@ -139,7 +170,7 @@
                     organizationMap.put("name",organization.getName());
                 }
             }
-            specialDeviceMap.put("organazation",organizationMap);
+            specialDeviceMap.put("organization",organizationMap);
             List<Map<String,Object>> organizationList = new ArrayList<>();
             QueryWrapper<SpecialDeviceHistory> wapper_specialDeviceHistory = new QueryWrapper<>();
             wapper_specialDeviceHistory.eq("is_delete",Constants.NOT_DELETE);
@@ -165,7 +196,6 @@
             specialDeviceList.add(specialDeviceMap);
         }
         resultMap.put("specialDevices",specialDeviceList);
-        int totalNumber = specialDevices.size();
         resultMap.put("totalNumber",totalNumber);
         resultMap.put("current",current);
         int totalPageNumber = totalNumber/size;
@@ -175,4 +205,53 @@
         resultMap.put("totalPageNumber",totalPageNumber);
         return resultMap;
     }
+
+    @Transactional
+    @Override
+    public Map<String, Object> insert(SpecialDevice specialDevice) {
+        Map<String,Object> resultMap = new HashMap<>();
+        String name = specialDevice.getName();
+        String mac = specialDevice.getMac();
+        int organizationId = specialDevice.getOrganizationId();
+        int deviceVersionId = specialDevice.getDeviceVersionId();
+        String operateIds = specialDevice.getOperateIds();
+        String specialType = specialDevice.getSpecialType();
+        if (ObjectUtils.isEmpty(name) || ObjectUtils.isEmpty(mac) || ObjectUtils.isEmpty(specialType) || ObjectUtils.isEmpty(organizationId) || ObjectUtils.isEmpty(deviceVersionId)){
+            resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
+            resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+            return resultMap;
+        }
+        if (name.equals("") || mac.equals("") || specialType.equals("")){
+            resultMap.put("code",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getCode());
+            resultMap.put("msg",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getMsg());
+            return resultMap;
+        }
+        QueryWrapper<SpecialDevice> wrapper_mac = new QueryWrapper<>();
+        wrapper_mac.eq("is_delete",Constants.NOT_DELETE);
+        wrapper_mac.eq("mac",mac);
+        int macNum = specialDeviceMapper.selectCount(wrapper_mac);
+        if (macNum>0){
+            resultMap.put("code",ResponseCodeEnum.MAC_IS_EXIST.getCode());
+            resultMap.put("msg",ResponseCodeEnum.MAC_IS_EXIST.getMsg());
+            return resultMap;
+        }
+        specialDeviceMapper.insert(specialDevice);
+        QueryWrapper<SpecialDeviceHistory> wrapper_specialDeviceHistory = new QueryWrapper<>();
+        wrapper_specialDeviceHistory.eq("is_delete",Constants.NOT_DELETE);
+        wrapper_specialDeviceHistory.eq("mac",mac);
+        wrapper_specialDeviceHistory.eq("organization_id",organizationId);
+        SpecialDeviceHistory specialDeviceHistory = specialDeviceHistoryMapper.selectOne(wrapper_specialDeviceHistory);
+        SpecialDeviceHistory insertSpecialDeviceHistory = new SpecialDeviceHistory();
+        BeanUtils.copyProperties(specialDevice,insertSpecialDeviceHistory);
+        if (ObjectUtils.isEmpty(specialDeviceHistory)){
+            specialDeviceHistoryMapper.insert(insertSpecialDeviceHistory);
+        }else {
+            /*UpdateWrapper<SpecialDeviceHistory> wrapper_insertSpecialDeviceHistory = new UpdateWrapper<>();
+            wrapper_specialDeviceHistory.eq("is_delete",Constants.NOT_DELETE);
+            wrapper_specialDeviceHistory.eq("mac",mac);
+            wrapper_specialDeviceHistory.eq("organization_id",organizationId);*/
+            specialDeviceHistoryMapper.update(insertSpecialDeviceHistory,wrapper_specialDeviceHistory);
+        }
+        return null;
+    }
 }

--
Gitblit v1.8.0