Bladeren bron

Merge branch 'test'

李进 2 jaren geleden
bovenliggende
commit
31f594f2df
1 gewijzigde bestanden met toevoegingen van 41 en 11 verwijderingen
  1. 41 11
      device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

+ 41 - 11
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -22,11 +22,13 @@ import com.xy.collections.list.JList;
 import com.xy.config.DeviceThreadPoolConfig;
 import com.xy.consts.DictConsts;
 import com.xy.dto.*;
+import com.xy.dto.be.MercDto;
 import com.xy.entity.*;
 import com.xy.enums.FileExportType;
 import com.xy.error.CommRuntimeException;
 import com.xy.mapper.DeviceInfoMapper;
 import com.xy.mapper.entity.DeviceInfoQueryPage;
+import com.xy.service.be.MercFeignService;
 import com.xy.util.ExcelUtils;
 import com.xy.utils.*;
 import com.xy.utils.enums.*;
@@ -63,6 +65,7 @@ import static com.xy.utils.PlusBeans.*;
 @Api(tags = "设备-信息")
 public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceInfo> implements DeviceInfoService {
 
+    private final MercFeignService mercFeignService;
     private final DeviceSysinfoServiceImpl deviceSysinfoService;
 
     private final DeviceStatusServiceImpl deviceStatusService;
@@ -88,6 +91,10 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     private final OrderRefundService refundService;
 
     private final String keyPrefix = "device:history:";
+    /**
+     * 质检商户code
+     */
+    public static final String QA_MERC_CODE = "10001";
 
 
     @Override
@@ -365,6 +372,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         List<DeviceInfo> deviceInfos = this.listByIds(deviceIds);
         for (DeviceInfo deviceInfo : deviceInfos) {
             int refMercId = deviceInfo.getMercId().intValue();
+            String refMercCode = deviceInfo.getMercCode();
             //  只有解绑后,才能给顶级商户授权
             if (refMercId != -1 && refMercId != mercId.intValue()) {
                 StrBuilder sb = StrBuilder.create();
@@ -375,8 +383,12 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
                         .append(deviceInfo.getMercName())
                         .append("]绑定,请先进行解绑!")
                         .toString();
-                //已关联别商户
-                return R.fail(errMsg, Boolean.FALSE);
+                //非质检商户需要进行判断,质检商户跳过
+                if (!QA_MERC_CODE.equals(refMercCode)) {
+                    //已关联别商户
+                    return R.fail(errMsg, Boolean.FALSE);
+                }
+
             }
             //绑定关系
             deviceInfo.setMercId(mercId).setMercCode(mercCode).setAlgorithmId(algorithmId).setMercName(mercName);
@@ -421,13 +433,14 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
      * @return
      */
     private Boolean removeMerRefDevicesToTopMerc(List<DeviceInfo> deviceInfos) {
+        MercDto.Vo mercCheck = R.feignCheckData(mercFeignService.obj(new MercDto.ListDTO().setMercCode(QA_MERC_CODE)));
         if (CollUtil.isNotEmpty(deviceInfos)) {
             deviceInfos.forEach(deviceInfo -> {
                 //回收
-                deviceInfo.setMercId(-1L);
+                deviceInfo.setMercId(mercCheck.getId());
                 deviceInfo.setMercDeviceCode(StrUtil.EMPTY);
-                deviceInfo.setMercName(StrUtil.EMPTY);
-                deviceInfo.setMercCode(StrUtil.EMPTY);
+                deviceInfo.setMercName(mercCheck.getName());
+                deviceInfo.setMercCode(QA_MERC_CODE);
             });
             //批量更新
             return updateBatchById(deviceInfos);
@@ -448,16 +461,33 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             deviceInfos.forEach(deviceInfo -> {
                 //非顶级兴元商户,解绑后,机器归父商户
                 if (parentId != 1) {
-                    deviceInfo.setMercId(parentId);
+                    MercDto.Vo mercParent = R.feignCheckData(mercFeignService.obj(new MercDto.ListDTO().setId(parentId)));
+                    if (mercParent != null) {
+                        deviceInfo.setMercId(mercParent.getId());
+                        deviceInfo.setMercName(mercParent.getName());
+                        deviceInfo.setMercCode(mercParent.getMercCode());
+                    } else {
+                        deviceInfo.setMercId(-1L);
+                        deviceInfo.setMercName(StrUtil.EMPTY);
+                        deviceInfo.setMercCode(StrUtil.EMPTY);
+                    }
+
                 }
                 //一级商户,解绑后,直接释放
                 if (parentId == 0) {
-                    //兴元等级 0 释放关系
-                    deviceInfo.setMercId(-1L);
+                    MercDto.Vo mercCheck = R.feignCheckData(mercFeignService.obj(new MercDto.ListDTO().setMercCode(QA_MERC_CODE)));
+                    if (mercCheck != null) {
+                        deviceInfo.setMercId(mercCheck.getId());
+                        deviceInfo.setMercName(mercCheck.getName());
+                        deviceInfo.setMercCode(mercCheck.getMercCode());
+                    } else {
+                        deviceInfo.setMercId(-1L);
+                        deviceInfo.setMercName(StrUtil.EMPTY);
+                        deviceInfo.setMercCode(StrUtil.EMPTY);
+                    }
+
                 }
 
-                deviceInfo.setMercName(StrUtil.EMPTY);
-                deviceInfo.setMercCode(StrUtil.EMPTY);
             });
             //批量更新
             return updateBatchById(deviceInfos);
@@ -490,7 +520,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
 
         if (StrUtil.isNotEmpty(deviceSearch)) {
             queryWrapper.and(wrapper -> wrapper.likeRight(LambdaUtils.getUnderlineCaseName(DeviceInfo::getDeviceName), deviceSearch).or()
-                    .eq(LambdaUtils.getUnderlineCaseName(DeviceInfo::getMercDeviceCode), deviceSearch));
+                    .eq(LambdaUtils.getUnderlineCaseName(DeviceInfo::getDeviceId), deviceSearch));
         }
 
         if (CollUtil.isNotEmpty(columnList)) {