|
@@ -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)) {
|