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