Преглед на файлове

#ADD 商户设备解绑

谭斌 преди 2 години
родител
ревизия
9bac5d10fa

+ 29 - 16
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -338,25 +338,38 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             deviceInfo.setMercId(mercId).setMercCode(mercCode).setAlgorithmId(algorithmId).setMercName(mercName);
         }
         saveOrUpdateBatch(deviceInfos);
-        //原来存在的设备关系,不在最终设备列表中的移除
-        if (CollUtil.isNotEmpty(devices)) {
-            List<Long> oldIds = new ArrayList<>();
-            List<Long> removeIds = new ArrayList<>();
-            devices.forEach(device -> oldIds.add(device.getDeviceId()));
-            oldIds.forEach(deviceId -> {
-                //不在最终设备列表中的待移除
-                if (!deviceIds.contains(deviceId)) {
-                    removeIds.add(deviceId);
-                }
-            });
-            if (CollUtil.isNotEmpty(removeIds)) {
-                List<DeviceInfo> removeList = this.listByIds(removeIds);
-                removeMerRefDevices(removeList, parentId);
-            }
-        }
+//        //原来存在的设备关系,不在最终设备列表中的移除
+//        if (CollUtil.isNotEmpty(devices)) {
+//            List<Long> oldIds = new ArrayList<>();
+//            List<Long> removeIds = new ArrayList<>();
+//            devices.forEach(device -> oldIds.add(device.getDeviceId()));
+//            oldIds.forEach(deviceId -> {
+//                //不在最终设备列表中的待移除
+//                if (!deviceIds.contains(deviceId)) {
+//                    removeIds.add(deviceId);
+//                }
+//            });
+//            if (CollUtil.isNotEmpty(removeIds)) {
+//                List<DeviceInfo> removeList = this.listByIds(removeIds);
+//                removeMerRefDevices(removeList, parentId);
+//            }
+//        }
         return R.ok(Boolean.TRUE);
     }
 
+    /**
+     * 解绑机器
+     *
+     * @param dto
+     * @return
+     */
+    @Override
+    public R<Boolean> unBindMercDevice(DeviceInfoDto.MercDeviceUnBindDto dto) {
+        Long parentId = dto.getParentId();
+        List<DeviceInfo> deviceInfos = this.listByIds(dto.getDeviceIds());
+        return R.ok(removeMerRefDevices(deviceInfos, parentId));
+    }
+
     /**
      * 批量移除商户设备绑定关系
      *

+ 16 - 1
device-api/src/main/java/com/xy/dto/DeviceInfoDto.java

@@ -442,7 +442,7 @@ public class DeviceInfoDto {
         @ApiModelProperty("商户设备资产编号")
         private String mercDeviceCode;
 
-     
+
         @ExcelProperty(value = "商户编码")
         @ApiModelProperty("商户编码")
         private String mercCode;
@@ -504,6 +504,21 @@ public class DeviceInfoDto {
         private Long algorithmId;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class MercDeviceUnBindDto {
+        @ApiModelProperty(value = "对应商户的全量设备ID(传空则取消商户所有机器)", required = false)
+        private List<Long> deviceIds;
+
+        @ApiModelProperty(value = "商户ID", required = true)
+        private Long mercId;
+
+        @ApiModelProperty(value = "父商户ID", hidden = true)
+        private Long parentId;
+
+    }
+
+
     @Data
     @Accessors(chain = true)
     public static class MercAlgorithmIdListDto {

+ 3 - 0
device-api/src/main/java/com/xy/service/DeviceInfoService.java

@@ -58,6 +58,9 @@ public interface DeviceInfoService {
     @PostMapping("mercDeviceAuth")
     R<Boolean> mercDeviceAuth(@RequestBody @Validated DeviceInfoDto.MercDeviceAuthDto auth);
 
+    @PostMapping("unBindMercDevice")
+    R<Boolean> unBindMercDevice(@RequestBody @Validated DeviceInfoDto.MercDeviceUnBindDto dto);
+
 
     /**
      * 集合查询