Ver Fonte

Merge branch '商家费用分账模式'

lijin há 2 dias atrás
pai
commit
3a216c4cbf

+ 20 - 3
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -135,6 +135,8 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
 
     private final DeviceAnnualFeeServiceImpl deviceAnnualFeeService;
 
+    private final MercDeviceCostConfigService mercDeviceCostConfigService;
+
 
     @Override
     @ApiOperation("设备列表-管理员")
@@ -212,9 +214,6 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     }
 
 
-
-
-
     @PostMapping("eventList")
     @ApiOperation("根据事件编码查询设备")
     public R<PageBean<DeviceInfoDto.EventListVo>> eventList(@RequestBody @Validated DeviceInfoDto.EventList eventList) {
@@ -921,6 +920,23 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
                 deviceAnnualFeeService.saveOrUpdate(saveOrUpdateInfo);
             });
         };
+        //商家费用分账模式设备初始化
+        FunctionUtils.ParamsNoResult<List<DeviceInfo>> mercDeviceCost = deviceInfos -> {
+            MercDeviceCostConfigDto.Vo mercDeviceCostConfig = mercDeviceCostConfigService.query(new MercDeviceCostConfigDto.Query()
+                    .setMercId(auth.getMercId())
+                    .setType(1)
+            ).getData();
+            if (mercDeviceCostConfig == null) {
+                return;
+            }
+            deviceInfos.forEach(deviceInfo -> mercDeviceCostConfigService.set(new MercDeviceCostConfigDto.Set()
+                    .setMercId(auth.getMercId())
+                    .setType(2)
+                    .setDeviceId(deviceInfo.getDeviceId())
+                    .setDayAmount(mercDeviceCostConfig.getDayAmount())
+                    .setSingleOrdersAmount(mercDeviceCostConfig.getSingleOrdersAmount())
+            ));
+        };
         check.run();
         Long mercId = auth.getMercId();
         String mercCode = auth.getMercCode();
@@ -1011,6 +1027,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             deviceStatusService.updateBatchById(deviceStatuses);
         }
         deviceAnnualFee.run(deviceInfos);
+        mercDeviceCost.run(deviceInfos);
         String log = String.format("商户设备授权:授权商户:%s,授权设备:%s", auth.getMercId() + "," + auth.getMercName(), deviceIds.size() == 0 ? "取消所有设备授权" : CollUtil.join(deviceIds, ","));
         return R.ok(Boolean.TRUE).setLogMsg(log);
     }

+ 12 - 1
device-api-service/src/main/java/com/xy/service/factory/device/impl/open/OpenDeviceFactoryImpl.java

@@ -78,8 +78,11 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
     private DeviceFaultMonitorConfigServiceImpl deviceFaultMonitorConfigService;
 
     private MercService mercService;
+
     private AlipayDeviceService alipayDeviceService;
 
+    private MercDeviceCostConfigService mercDeviceCostConfigService;
+
     @Override
     public R save(DeviceRegisterDto.Save save) {
         LocalDateTime now = LocalDateTime.now();
@@ -159,8 +162,16 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
         if (count > 0) {
             return R.fail("机器已激活");
         }
-        //提现模式商户无需算法费
         DeviceInfo deviceInfo = deviceInfoService.getById(deviceIds.get(0));
+        //分账服务费模式无法自主激活
+        MercDeviceCostConfigDto.Vo mercDeviceCostConfig = mercDeviceCostConfigService.query(new MercDeviceCostConfigDto.Query()
+                .setMercId(deviceInfo.getMercId())
+                .setType(1)
+        ).getData();
+        if (mercDeviceCostConfig != null) {
+            return R.fail("分账服务费模式商家无需付款激活,请联系运营人员免费激活");
+        }
+        //提现模式商户无需算法费
         Boolean isDraw = mercService.isDraw(new MercDto.IsDraw().setMercId(deviceInfo.getMercId())).getData();
         if (isDraw) {
             active.setIsDeviceAlgorithmCharging(false);