Kaynağa Gözat

加盟商设备授权,解绑逻辑完善

tanbin 1 yıl önce
ebeveyn
işleme
ed4ac77cf3

+ 6 - 0
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -31,6 +31,7 @@ import com.xy.dto.be.MercDto;
 import com.xy.dto.common.MercPlaceDto;
 import com.xy.dto.device.DeviceQueryDTO;
 import com.xy.dto.device.DeviceRegDTO;
+import com.xy.dto.mini.MiniDeviceInfoDto;
 import com.xy.entity.*;
 import com.xy.enums.FileExportType;
 import com.xy.error.CommRuntimeException;
@@ -849,6 +850,8 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         }
         // 更新商户设备授权
         List<DeviceInfo> deviceInfos = this.listByIds(deviceIds);
+        // 绑定前,先进行旧的用户设备关联表清理
+        R.feignCheckData(mercService.unBindSubMercDevice(new MiniDeviceInfoDto.MercDeviceUnBindDto().setDeviceIds(deviceIds)));
         List<DeviceStatus> deviceStatuses = new ArrayList<>();
         for (DeviceInfo deviceInfo : deviceInfos) {
             Integer deviceType = deviceInfo.getDeviceType();
@@ -961,6 +964,9 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
                 deviceInfo.setMercName(dto.getMercName());
                 deviceInfo.setMercCode(dto.getMercCode());
             });
+            // 用户设备关联表清理
+            List<Long> deviceIds = deviceInfos.stream().map(DeviceInfo::getDeviceId).collect(Collectors.toList());
+            R.feignCheckData(mercService.unBindSubMercDevice(new MiniDeviceInfoDto.MercDeviceUnBindDto().setDeviceIds(deviceIds)));
             // 批量更新
             return updateBatchById(deviceInfos);
         }