|
@@ -756,23 +756,30 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
|
|
|
}
|
|
|
int refMercId = deviceInfo.getMercId().intValue();
|
|
|
String refMercCode = deviceInfo.getMercCode();
|
|
|
- // 只有解绑后,才能给顶级商户授权
|
|
|
- if (refMercId != -1 && refMercId != mercId.intValue()) {
|
|
|
- StrBuilder sb = StrBuilder.create();
|
|
|
- String errMsg = sb.append("设备[")
|
|
|
- .append(deviceInfo.getDeviceId())
|
|
|
- .append("]")
|
|
|
- .append("已被商户[")
|
|
|
- .append(deviceInfo.getMercName())
|
|
|
- .append("]绑定,请先进行解绑!")
|
|
|
- .toString();
|
|
|
- //非质检商户需要进行判断,质检商户跳过
|
|
|
- if (!QA_MERC_CODE.equals(refMercCode)) {
|
|
|
- //已关联别商户
|
|
|
- return R.fail(errMsg, Boolean.FALSE);
|
|
|
- }
|
|
|
|
|
|
+ if (BooleanUtil.isFalse(auth.getMercOperate())) {
|
|
|
+ //非商户操作
|
|
|
+ // 只有解绑后,才能给顶级商户授权
|
|
|
+ if (refMercId != -1 && refMercId != mercId.intValue()) {
|
|
|
+ StrBuilder sb = StrBuilder.create();
|
|
|
+ String errMsg = sb.append("设备[")
|
|
|
+ .append(deviceInfo.getDeviceId())
|
|
|
+ .append("]")
|
|
|
+ .append("已被商户[")
|
|
|
+ .append(deviceInfo.getMercName())
|
|
|
+ .append("]绑定,请先进行解绑!")
|
|
|
+ .toString();
|
|
|
+ //非质检商户需要进行判断,质检商户跳过
|
|
|
+ if (!QA_MERC_CODE.equals(refMercCode)) {
|
|
|
+ //已关联别商户
|
|
|
+ return R.fail(errMsg, Boolean.FALSE);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //商户操作直接转移给子商户
|
|
|
}
|
|
|
+
|
|
|
//绑定关系
|
|
|
deviceInfo.setMercId(mercId).setMercCode(mercCode).setAlgorithmId(algorithmId).setMercName(mercName);
|
|
|
//标记机器可交易
|
|
@@ -800,6 +807,41 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
|
|
|
return R.ok(removeMerRefDevicesToTopMerc(deviceInfos));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 商户解绑设备 --商家端
|
|
|
+ *
|
|
|
+ * @param dto
|
|
|
+ * @return {@link Boolean}
|
|
|
+ */
|
|
|
+ public Boolean unBindDeviceByMerc(DeviceInfoDto.MercDeviceUnBindDto dto) {
|
|
|
+ List<DeviceInfo> deviceInfos = this.listByIds(dto.getDeviceIds());
|
|
|
+ if (CollUtil.isNotEmpty(deviceInfos)) {
|
|
|
+ List<Long> mercIds = deviceInfos.stream().map(DeviceInfo::getMercId).collect(Collectors.toList());
|
|
|
+ mercIds.forEach(mercId -> {
|
|
|
+ if (mercId.longValue() == dto.getMercId().longValue()) {
|
|
|
+ throw new CommRuntimeException("只能选择子商户设备进行解绑,请检查是否选择了当前商户下的设备!");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return removeMerDevicesByDeviceIds(dto, deviceInfos);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Boolean removeMerDevicesByDeviceIds(DeviceInfoDto.MercDeviceUnBindDto dto, List<DeviceInfo> deviceInfos) {
|
|
|
+ if (CollUtil.isNotEmpty(deviceInfos)) {
|
|
|
+ deviceInfos.forEach(deviceInfo -> {
|
|
|
+ //回收 到当前操作商户
|
|
|
+ deviceInfo.setMercId(dto.getMercId());
|
|
|
+ deviceInfo.setMercDeviceCode(StrUtil.EMPTY);
|
|
|
+ deviceInfo.setMercName(dto.getMercName());
|
|
|
+ deviceInfo.setMercCode(dto.getMercCode());
|
|
|
+ });
|
|
|
+ //批量更新
|
|
|
+ return updateBatchById(deviceInfos);
|
|
|
+ }
|
|
|
+
|
|
|
+ return Boolean.FALSE;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 回收机器
|