瀏覽代碼

Merge remote-tracking branch 'origin/test' into test

tanbin 9 月之前
父節點
當前提交
078b807b8c

+ 13 - 0
device-api-service/src/main/java/com/xy/job/DeviceAlgorithmChargingJob.java

@@ -10,12 +10,14 @@ import com.xy.collections.list.JList;
 import com.xy.collections.map.JMap;
 import com.xy.dto.MercAccountDto;
 import com.xy.dto.MercArrearageConfigDto;
+import com.xy.dto.be.MercDto;
 import com.xy.entity.DeviceAlgorithmCharging;
 import com.xy.entity.DeviceInfo;
 import com.xy.service.DeviceAlgorithmChargingServiceImpl;
 import com.xy.service.DeviceInfoServiceImpl;
 import com.xy.service.MercAccountService;
 import com.xy.service.MercArrearageConfigService;
+import com.xy.service.be.MercService;
 import com.xy.sys.EnumMercCostMsgConfig;
 import com.xy.utils.Emptys;
 import com.xy.utils.SysDictUtils;
@@ -27,6 +29,7 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 设备算法费job
@@ -36,6 +39,8 @@ import java.util.List;
 @AllArgsConstructor
 public class DeviceAlgorithmChargingJob {
 
+    private MercService mercService;
+
     private MercAccountService mercAccountService;
 
     private DeviceInfoServiceImpl deviceInfoService;
@@ -67,6 +72,9 @@ public class DeviceAlgorithmChargingJob {
         selectList.setType(2);
         List<MercArrearageConfigDto.Vo> data = mercArrearageConfigService.list(selectList).getData();
         JMap<Long, MercArrearageConfigDto.Vo> mercArrearageConfigJMaps = new JArrayList<>(data).toMap(MercArrearageConfigDto.Vo::getMercId).cover();
+        //查询是否提现模式
+        Map<Long, Boolean> isDrawMaps = mercService.isDrawList(new MercDto.IsDrawList().setMercIds(new JArrayList<>(list).getProperty(MercAccountDto.Vo::getMercId))).getData();
+        //循环处理
         mercAccounts.forEach(vo -> {
             //验证白名单
             MercArrearageConfigDto.Vo mercArrearageConfig = mercArrearageConfigJMaps.get(vo.getMercId());
@@ -75,6 +83,11 @@ public class DeviceAlgorithmChargingJob {
                     return;
                 }
             }
+            //验证是否提现模式
+            Boolean isDraw = isDrawMaps.get(vo.getMercId());
+            if (isDraw) {
+                return;
+            }
             //查询商户未冻结设备
             List<DeviceInfo> deviceInfos = deviceInfoService.list(new LambdaQueryWrapper<DeviceInfo>()
                     .in(DeviceInfo::getDeviceType, Arrays.asList(1, 2))

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

@@ -14,6 +14,7 @@ import com.xy.collections.map.JMap;
 import com.xy.device.EnumDeviceActiveStatus;
 import com.xy.device.EnumDeviceBusyStatus;
 import com.xy.dto.*;
+import com.xy.dto.be.MercDto;
 import com.xy.entity.*;
 import com.xy.enums.SysCodeConfigureEnum;
 import com.xy.mapper.DeviceCreateIdsMapper;
@@ -21,6 +22,7 @@ import com.xy.mapper.DeviceInfoMapper;
 import com.xy.mapper.DeviceStatusMapper;
 import com.xy.mapper.DeviceSysinfoMapper;
 import com.xy.service.*;
+import com.xy.service.be.MercService;
 import com.xy.service.factory.cmd.CmdService;
 import com.xy.service.factory.device.DeviceFactory;
 import com.xy.utils.*;
@@ -71,6 +73,8 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
 
     private DeviceFaultMonitorConfigServiceImpl deviceFaultMonitorConfigService;
 
+    private MercService mercService;
+
     @Override
     public R save(DeviceRegisterDto.Save save) {
         LocalDateTime now = LocalDateTime.now();
@@ -150,6 +154,11 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
         if (count > 0) {
             return R.fail("机器已激活");
         }
+        //提现模式商户无需算法费
+        Boolean isDraw = mercService.isDraw(new MercDto.IsDraw().setMercId(deviceIds.get(0))).getData();
+        if (isDraw) {
+            active.setIsDeviceAlgorithmCharging(false);
+        }
         //检查费用
         deviceIds.forEach(deviceId -> {
             R deviceChargingCheck = active.getIsDeviceCharging() ? deviceChargingService.check(new DeviceChargingDto.Check().setDeviceId(deviceId)) : R.ok();