tanbin 1 рік тому
батько
коміт
ac457c077c

+ 11 - 16
device-api-service/src/main/java/com/xy/service/DeviceChargingServiceImpl.java

@@ -4,7 +4,6 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.collections.list.JArrayList;
 import com.xy.collections.list.JList;
@@ -68,7 +67,7 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
 
     private AlipayDeviceService alipayDeviceService;
 
-    private MercFeeConfigAlgorithmTypeServiceImpl mercFeeConfigAlgorithmTypeService;
+    private MercFeeConfigService mercFeeConfigService;
 
     @PostMapping("del")
     @ApiOperation("删除")
@@ -93,11 +92,15 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
         if (cover.size() > 1) {
             return R.fail("设备类型必须一致");
         }
+        //佣金配置查询
+        MercFeeConfigDto.FeeConfigByMercVO mercFeeConfig = R.feignCheckData(mercFeeConfigService.getFeeConfigByMerc(new MercFeeConfigDto.FeeConfigByMerc().setMercCode(list.get(0).getMercCode())));
+
         //查询设备状态信息
         List<DeviceStatus> deviceStatuses = deviceStatusService.list(new LambdaQueryWrapper<DeviceStatus>().in(DeviceStatus::getDeviceId, deviceIds));
         JMap<Long, DeviceStatus> deviceStatusesJMaps = new JArrayList<>(deviceStatuses).toMap(DeviceStatus::getDeviceId).cover();
         List<String> mercCodes = new ArrayList<>();
-        deviceAlgorithmChargingService.getMercCodes(list.get(0).getMercCode(), mercCodes);
+        deviceAlgorithmChargingService.getMercCodes(list.get(0).getMercCode(), mercCodes)
+        ;
         //查询设备计费配置表  设备管理费
         List<DeviceChargingConfig> deviceChargingConfigs = deviceChargingConfigService.list(new LambdaQueryWrapper<DeviceChargingConfig>()
                 .in(DeviceChargingConfig::getMercCode, mercCodes)
@@ -105,8 +108,8 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
                 .eq(DeviceChargingConfig::getDeviceType, list.get(0).getDeviceType())
                 .orderByDesc(DeviceChargingConfig::getMercCode)
         );
-        //有则使用,无则使用默认字典 设备管理费+代理商费用getExtraMoney
-        int standard = Emptys.check(deviceChargingConfigs) ? (deviceChargingConfigs.get(0).getConfigValue() + deviceChargingConfigs.get(0).getExtraMoney())
+        //设备管理费
+        int standard = Emptys.check(deviceChargingConfigs) ? (deviceChargingConfigs.get(0).getConfigValue() + mercFeeConfig.getFeeDevice())
                 : SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), String.valueOf(list.get(0).getDeviceType()), Integer.class);
         String deviceTypeName = SysDictUtils.get(EnumDeviceType.Code.CODE.getCode(), String.valueOf(list.get(0).getDeviceType())).getMsg();
         //查询算法预充配置  设备激活
@@ -132,13 +135,6 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
                 algorithmPayConfigMap.put(algorithmId, algorithmPayConfig.getValue());
             }
         }
-        //算法计费自定义
-        List<MercFeeConfigAlgorithmType> mercFeeConfigAlgorithmTypes = mercFeeConfigAlgorithmTypeService.list(Wrappers.<MercFeeConfigAlgorithmType>lambdaQuery()
-                .in(MercFeeConfigAlgorithmType::getMercCode, mercCodes)
-                .in(MercFeeConfigAlgorithmType::getAlgorithmId, algorithmIds)
-        );
-        JMap<Long, MercFeeConfigAlgorithmType> mercFeeConfigAlgorithmTypesJMaps = Emptys.check(mercFeeConfigAlgorithmTypes) ? new JArrayList<>(mercFeeConfigAlgorithmTypes).toMap(MercFeeConfigAlgorithmType::getAlgorithmId).cover()
-                : new JHashMap<>();
 
         for (DeviceInfo deviceInfo : list) {
             //封装设备信息
@@ -154,10 +150,9 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
             String algorithmPayConfig = algorithmPayConfigMap.get(deviceInfo.getAlgorithmId());
             DeviceAlgorithmChargingDto.AlgorithmMoonConfig algorithmMoonConfig = JSONUtil.parseObj(algorithmPayConfig).toBean(DeviceAlgorithmChargingDto.AlgorithmMoonConfig.class);
             DeviceAlgorithmChargingDto.AlgorithmMoonConfig.Inf inf = algorithmMoonConfig.getInf();
-            //算法计费自定义
-            MercFeeConfigAlgorithmType mercFeeConfigAlgorithmType = mercFeeConfigAlgorithmTypesJMaps.get(deviceInfo.getAlgorithmId());
+
             //单笔算法费用 代理商额外收取
-            int extraSingleMoney = mercFeeConfigAlgorithmType == null ? 0 : mercFeeConfigAlgorithmType.getExtraSingleMoney();
+            int extraSingleMoney = mercFeeConfig.getFeeAlgorithm();
             DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging infDeviceAlgorithmCharging = Beans.copy(DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging.class, deviceInfo)
                     .setDeviceTypeName(deviceTypeName)
                     .setAlgorithmId(deviceInfo.getAlgorithmId())
@@ -165,7 +160,7 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
                     //算法计费标准
                     .setStandard(BigDecimal.valueOf(algorithmMoonConfig.getPrice() + extraSingleMoney).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN).doubleValue() + "元/每笔(" + inf.getSize() + "笔)")
                     //设备激活 代理商费用 deviceTypeAlgorithmBeforConfig.getExtraMoney()
-                    .setMoney(deviceTypeAlgorithmBeforConfig == null ? inf.getMoney() : deviceTypeAlgorithmBeforConfig.getMoney() + deviceTypeAlgorithmBeforConfig.getExtraMoney());
+                    .setMoney(deviceTypeAlgorithmBeforConfig == null ? inf.getMoney() : deviceTypeAlgorithmBeforConfig.getMoney() + mercFeeConfig.getFeeActive());
             //封装算法包月信息
             DeviceAlgorithmChargingDto.AlgorithmMoonConfig.Moon moon = algorithmMoonConfig.getMoon();
             DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging moonDeviceAlgorithmCharging = Beans.copy(DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging.class, deviceInfo)