From 4e250e6a954ab426cc54dcf11caec806eb8df688 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Wed, 20 Sep 2023 17:21:02 +0800
Subject: [PATCH] feat:添加测试更新guid

---
 screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
index a1b608f..2c9f744 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
@@ -4,11 +4,13 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.Device;
 import com.moral.api.entity.GovMonitorPoint;
 import com.moral.api.entity.Organization;
 import com.moral.api.entity.SysArea;
+import com.moral.api.exception.BusinessException;
 import com.moral.api.mapper.DeviceMapper;
 import com.moral.api.mapper.GovMonitorPointMapper;
 import com.moral.api.mapper.SysAreaMapper;
@@ -20,6 +22,7 @@
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
 import com.moral.util.RegionCodeUtils;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,6 +61,9 @@
 
     @Resource
     private OrganizationService organizationService;
+
+    @Resource
+    private DeviceService deviceService;
 
     @Autowired(required = false)
     private DeviceMapper deviceMapper;
@@ -213,6 +219,47 @@
     }
 
     @Override
+    @Transactional
+    public void updateList(Integer id, String guid) {
+        QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
+        wrapper_govMonitorPoint.eq("is_delete", Constants.NOT_DELETE);
+        wrapper_govMonitorPoint.eq("id", id);
+        List<GovMonitorPoint> govMonitorPoints = govMonitorPointMapper.selectList(wrapper_govMonitorPoint);
+        if (govMonitorPoints.size() == 0) {
+            throw new BusinessException("������������������");
+        }
+        GovMonitorPoint govMonitorPoint = govMonitorPoints.get(0);
+        String oldGuid = govMonitorPoint.getGuid();
+        if(!oldGuid.equals(guid)){
+            govMonitorPoint.setGuid(guid);
+            govMonitorPointMapper.updateById(govMonitorPoint);
+            //������redis
+            delGovMonitorPointInfoFromRedis(id.toString());
+            //������redis
+            setGovMonitorPointInfoToRedis(id.toString(), selectGovMonitorPointInfoById(id));
+            //������������������
+            HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+            StringBuilder content = new StringBuilder();
+            content.append("������������������������").append("id:").append(govMonitorPoint.getId() + ";");
+            if (!ObjectUtils.isEmpty(govMonitorPoint.getGuid())) {
+                content.append("guid:").append(oldGuid).append("->").append(guid).append(";");
+            }
+            LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+            LambdaQueryChainWrapper<Device> wrapper = deviceService.lambdaQuery();
+            wrapper.eq(Device::getIsDelete,0);
+            wrapper.eq(Device::getGuid,oldGuid);
+            List<Device> list = wrapper.list();
+            list.forEach(it->it.setGuid(guid));
+            deviceService.updateBatchById(list);
+            for(Device d : list){
+                Map<String, Object> deviceInfo = deviceService.selectDeviceInfoById(d.getId());
+                redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac());
+                redisTemplate.opsForHash().put(RedisConstants.DEVICE, d.getMac(), deviceInfo);
+            }
+        }
+    }
+
+    @Override
     public void delete(Integer id) {
         UpdateWrapper<GovMonitorPoint> wrapper_delete = new UpdateWrapper<>();
         wrapper_delete.eq("id", id).set("is_delete", Constants.DELETE);

--
Gitblit v1.8.0