From 3ea7e207b7c33edcea6f493baef53928133eecaf Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Wed, 19 Jan 2022 13:05:43 +0800
Subject: [PATCH] 服务范围添加边界绑定设备接口

---
 screen-manage/src/main/java/com/moral/api/service/ServicesScopeService.java                 |   11 +++
 screen-manage/src/main/java/com/moral/api/pojo/form/ServiceScope/AddBoundaryBindDevice.java |   18 ++++++
 screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java        |   62 ++++++++++++++++++++
 screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml                       |    8 ++
 screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java             |   12 ++++
 screen-manage/src/main/java/com/moral/api/controller/ServicesScopeController.java           |   25 ++++++++
 6 files changed, 135 insertions(+), 1 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/controller/ServicesScopeController.java b/screen-manage/src/main/java/com/moral/api/controller/ServicesScopeController.java
index 639358e..39d1c7a 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/ServicesScopeController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/ServicesScopeController.java
@@ -5,6 +5,7 @@
 import com.moral.api.entity.Organization;
 import com.moral.api.entity.ServicesScope;
 import com.moral.api.mapper.OrganizationMapper;
+import com.moral.api.pojo.form.ServiceScope.AddBoundaryBindDevice;
 import com.moral.api.service.OrganizationService;
 import com.moral.api.service.ServicesScopeService;
 import com.moral.constant.Constants;
@@ -109,4 +110,28 @@
         return ResultMessage.ok();
     }
 
+    @RequestMapping(value = "addBoundaryBindDevice",method = RequestMethod.POST)
+    @ResponseBody
+    public ResultMessage addBoundaryBindDevice(@RequestBody AddBoundaryBindDevice addBoundaryBindDevice){
+        if (ObjectUtils.isEmpty(addBoundaryBindDevice)){
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        QueryWrapper<ServicesScope> servicesScopeQueryWrapper = new QueryWrapper<>();
+        servicesScopeQueryWrapper.eq("id",addBoundaryBindDevice.getServicesScope().getId()).eq("is_delete",Constants.NOT_DELETE);
+        ServicesScope servicesScopeRes = servicesScopeService.getOne(servicesScopeQueryWrapper);
+        if (ObjectUtils.isEmpty(servicesScopeRes)){
+            return ResultMessage.fail(ResponseCodeEnum.SERVICES_SCOPE_IS_NOT_EXIST.getCode(), ResponseCodeEnum.SERVICES_SCOPE_IS_NOT_EXIST.getMsg());
+        }
+        /*if (!ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getOrganizationId())){
+            QueryWrapper<Organization> organizationQueryWrapper = new QueryWrapper<>();
+            organizationQueryWrapper.eq("id",addBoundaryBindDevice.getServicesScope().getOrganizationId()).eq("is_delete",Constants.NOT_DELETE);
+            Organization organization = organizationService.getOne(organizationQueryWrapper);
+            if (ObjectUtils.isEmpty(organization)){
+                return ResultMessage.fail(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode(), ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
+            }
+        }*/
+        servicesScopeService.addBoundaryBindDevice(addBoundaryBindDevice);
+        return ResultMessage.ok();
+    }
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java
index 2eabe2e..0d04b2e 100644
--- a/screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java
+++ b/screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java
@@ -2,6 +2,9 @@
 
 import com.moral.api.entity.ServicesScopeDevice;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,13 @@
  */
 public interface ServicesScopeDeviceMapper extends BaseMapper<ServicesScopeDevice> {
 
+    /**
+      *@Description: ������������
+      *@Param: [servicesScopeId, list]
+      *@return: void 
+      *@Author: lizijie
+      *@Date: 2022/1/18 10:53
+     **/
+    void insertBatch(@Param("servicesScopeId")Integer servicesScopeId, @Param("list")List list);
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/ServiceScope/AddBoundaryBindDevice.java b/screen-manage/src/main/java/com/moral/api/pojo/form/ServiceScope/AddBoundaryBindDevice.java
new file mode 100644
index 0000000..f8362cd
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/ServiceScope/AddBoundaryBindDevice.java
@@ -0,0 +1,18 @@
+package com.moral.api.pojo.form.ServiceScope;
+
+import com.moral.api.entity.ServicesScope;
+import lombok.Data;
+
+/**
+ * @program: screen
+ * @description: ������������������������
+ * @author: lizijie
+ * @create: 2022-01-17 14:57
+ **/
+@Data
+public class AddBoundaryBindDevice {
+
+    private String devices;
+
+    private ServicesScope servicesScope;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/ServicesScopeService.java b/screen-manage/src/main/java/com/moral/api/service/ServicesScopeService.java
index 5905297..6815fd0 100644
--- a/screen-manage/src/main/java/com/moral/api/service/ServicesScopeService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/ServicesScopeService.java
@@ -2,6 +2,7 @@
 
 import com.moral.api.entity.ServicesScope;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.pojo.form.ServiceScope.AddBoundaryBindDevice;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
@@ -56,5 +57,15 @@
     **/
    @Transactional
    void delete(int id);
+   
+   /**
+     *@Description: ���������������������������
+     *@Param: [addBoundaryBindDevice]
+     *@return: void 
+     *@Author: lizijie
+     *@Date: 2022/1/17 16:05
+    **/
+   @Transactional
+   void addBoundaryBindDevice(AddBoundaryBindDevice addBoundaryBindDevice);
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java
index 43f3da5..541f6f9 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java
@@ -5,8 +5,11 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.Organization;
 import com.moral.api.entity.ServicesScope;
+import com.moral.api.entity.ServicesScopeDevice;
 import com.moral.api.mapper.OrganizationMapper;
+import com.moral.api.mapper.ServicesScopeDeviceMapper;
 import com.moral.api.mapper.ServicesScopeMapper;
+import com.moral.api.pojo.form.ServiceScope.AddBoundaryBindDevice;
 import com.moral.api.service.ServicesScopeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.api.util.LogUtils;
@@ -21,6 +24,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -38,6 +42,9 @@
 
     @Autowired
     private OrganizationMapper organizationMapper;
+
+    @Autowired
+    private ServicesScopeDeviceMapper servicesScopeDeviceMapper;
 
     @Override
     public Map<String, Object> getDataByCondition(Map<String, Object> map) {
@@ -113,7 +120,7 @@
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
-        content.append("������������������������").append("id:").append(servicesScope.getId() + ";");
+        content.append("������������������������").append("id:").append(servicesScope.getId() + ";");
         if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(servicesScope.getOrganizationId())) {
             content.append("organization_id:").append(oldServicesScope.getOrganizationId()).append("->").append(newServicesScope.getOrganizationId()).append(";");
         }
@@ -145,4 +152,57 @@
         content.append("������������������������").append("id:").append(id).append(";");
         LogUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
     }
+
+    @Override
+    @Transactional
+    public void addBoundaryBindDevice(AddBoundaryBindDevice addBoundaryBindDevice) {
+        String devices = addBoundaryBindDevice.getDevices();
+        if (!ObjectUtils.isEmpty(devices) && !devices.equals("")){
+            String[] deviceIds = devices.split(",");
+            List<String> deviceIds_String = Arrays.asList(deviceIds);
+            List<Integer> deviceIdList = new ArrayList<>();
+            for (String deviceId_String:deviceIds_String) {
+                deviceIdList.add(Integer.parseInt(deviceId_String));
+            }
+            QueryWrapper<ServicesScopeDevice> servicesScopeDeviceQueryWrapper = new QueryWrapper<>();
+            servicesScopeDeviceQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
+            servicesScopeDeviceQueryWrapper.eq("services_scope_id",addBoundaryBindDevice.getServicesScope().getId());
+            List<ServicesScopeDevice> servicesScopeDevices = servicesScopeDeviceMapper.selectList(servicesScopeDeviceQueryWrapper);
+            List<Integer> oldDeviceIds = servicesScopeDevices.stream().map(p -> p.getDeviceId()).collect(Collectors.toList());
+            List<Integer> insertList = new ArrayList<>();
+            for (Integer deviceId:deviceIdList) {
+                if (!oldDeviceIds.contains(deviceId)){
+                    insertList.add(deviceId);
+                }
+            }
+            servicesScopeDeviceMapper.insertBatch(addBoundaryBindDevice.getServicesScope().getId(),insertList);
+            servicesScopeDeviceQueryWrapper.notIn("device_id",deviceIdList);
+            ServicesScopeDevice servicesScopeDevice = new ServicesScopeDevice();
+            servicesScopeDevice.setIsDelete(Constants.DELETE);
+            servicesScopeDeviceMapper.update(servicesScopeDevice,servicesScopeDeviceQueryWrapper);
+        }
+        ServicesScope oldServicesScope = servicesScopeMapper.selectById(addBoundaryBindDevice.getServicesScope().getId());
+        servicesScopeMapper.updateById(addBoundaryBindDevice.getServicesScope());
+        ServicesScope newServicesScope = servicesScopeMapper.selectById(addBoundaryBindDevice.getServicesScope().getId());
+        //������������������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        StringBuilder content = new StringBuilder();
+        content.append("������������������������").append("id:").append(addBoundaryBindDevice.getServicesScope().getId() + ";");
+        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getOrganizationId())) {
+            content.append("organization_id:").append(oldServicesScope.getOrganizationId()).append("->").append(newServicesScope.getOrganizationId()).append(";");
+        }
+        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getName())) {
+            content.append("name:").append(oldServicesScope.getName()).append("->").append(newServicesScope.getName()).append(";");
+        }
+        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getCenterLongitude())) {
+            content.append("center_longitude:").append(oldServicesScope.getCenterLongitude()).append("->").append(newServicesScope.getCenterLongitude()).append(";");
+        }
+        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getCenterLatitude())) {
+            content.append("center_latitude:").append(oldServicesScope.getCenterLatitude()).append("->").append(newServicesScope.getCenterLatitude()).append(";");
+        }
+        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getBoundary())) {
+            content.append("boundary:").append("������������").append(";");
+        }
+        LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+    }
 }
diff --git a/screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml b/screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml
index 9bfd9fa..b4686fa 100644
--- a/screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml
+++ b/screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml
@@ -12,4 +12,12 @@
                     <result column="is_delete" property="isDelete" />
         </resultMap>
 
+    <insert id="insertBatch" parameterType="java.util.List">
+        insert into services_scope_device(services_scope_id, device_id)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{servicesScopeId}, #{item})
+        </foreach>
+    </insert>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0