|
@@ -4,6 +4,7 @@ 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;
|
|
@@ -67,6 +68,8 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
|
|
|
private AlipayDeviceService alipayDeviceService;
|
|
|
|
|
|
+ private MercFeeConfigAlgorithmTypeServiceImpl mercFeeConfigAlgorithmTypeService;
|
|
|
+
|
|
|
@PostMapping("del")
|
|
|
@ApiOperation("删除")
|
|
|
public R del(@RequestBody @Validated DeviceChargingDto.Del del) {
|
|
@@ -95,22 +98,22 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
JMap<Long, DeviceStatus> deviceStatusesJMaps = new JArrayList<>(deviceStatuses).toMap(DeviceStatus::getDeviceId).cover();
|
|
|
List<String> mercCodes = new ArrayList<>();
|
|
|
deviceAlgorithmChargingService.getMercCodes(list.get(0).getMercCode(), mercCodes);
|
|
|
- //查询设备计费配置表
|
|
|
+ //查询设备计费配置表 设备管理费
|
|
|
List<DeviceChargingConfig> deviceChargingConfigs = deviceChargingConfigService.list(new LambdaQueryWrapper<DeviceChargingConfig>()
|
|
|
.in(DeviceChargingConfig::getMercCode, mercCodes)
|
|
|
.eq(DeviceChargingConfig::getType, SysDictUtils.getValue(EnumDeviceChargingConfigType.Code.CODE.getCode(), EnumDeviceChargingConfigType.N_2.getCode(), Integer.class))
|
|
|
.eq(DeviceChargingConfig::getDeviceType, list.get(0).getDeviceType())
|
|
|
.orderByDesc(DeviceChargingConfig::getMercCode)
|
|
|
);
|
|
|
- //有则使用,无则使用默认字典
|
|
|
- int standard = Emptys.check(deviceChargingConfigs) ? deviceChargingConfigs.get(0).getConfigValue()
|
|
|
+ //有则使用,无则使用默认字典 设备管理费+代理商费用getExtraMoney
|
|
|
+ int standard = Emptys.check(deviceChargingConfigs) ? (deviceChargingConfigs.get(0).getConfigValue() + deviceChargingConfigs.get(0).getExtraMoney())
|
|
|
: 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();
|
|
|
- //查询算法预充配置
|
|
|
+ //查询算法预充配置 设备激活
|
|
|
JList<DeviceInfo> values = cover.getValues();
|
|
|
List<DeviceTypeAlgorithmBeforConfig> deviceTypeAlgorithmBeforConfigs = deviceTypeAlgorithmBeforConfigService.list(new LambdaQueryWrapper<DeviceTypeAlgorithmBeforConfig>()
|
|
|
.eq(DeviceTypeAlgorithmBeforConfig::getDeviceType, list.get(0).getDeviceType())
|
|
|
- .eq(DeviceTypeAlgorithmBeforConfig::getMercId, list.get(0).getMercId())
|
|
|
+ .in(DeviceTypeAlgorithmBeforConfig::getMercCode, mercCodes)
|
|
|
.in(DeviceTypeAlgorithmBeforConfig::getAlgorithmId, values.getProperty(DeviceInfo::getAlgorithmId))
|
|
|
);
|
|
|
JMap<Long, DeviceTypeAlgorithmBeforConfig> deviceTypeAlgorithmBeforConfigsJMaps = Emptys.check(deviceTypeAlgorithmBeforConfigs) ? new JArrayList<>(deviceTypeAlgorithmBeforConfigs).toMap(DeviceTypeAlgorithmBeforConfig::getAlgorithmId).cover()
|
|
@@ -129,6 +132,14 @@ 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) {
|
|
|
//封装设备信息
|
|
|
DeviceChargingDto.PayCheckVo payCheckVo = new DeviceChargingDto.PayCheckVo();
|
|
@@ -143,12 +154,18 @@ 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();
|
|
|
DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging infDeviceAlgorithmCharging = Beans.copy(DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging.class, deviceInfo)
|
|
|
.setDeviceTypeName(deviceTypeName)
|
|
|
.setAlgorithmId(deviceInfo.getAlgorithmId())
|
|
|
.setAlgorithmName(algorithmName)
|
|
|
- .setStandard(BigDecimal.valueOf(algorithmMoonConfig.getPrice()).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN).doubleValue() + "元/每笔(" + inf.getSize() + "笔)")
|
|
|
- .setMoney(deviceTypeAlgorithmBeforConfig == null ? inf.getMoney() : deviceTypeAlgorithmBeforConfig.getMoney());
|
|
|
+ //算法计费标准
|
|
|
+ .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());
|
|
|
//封装算法包月信息
|
|
|
DeviceAlgorithmChargingDto.AlgorithmMoonConfig.Moon moon = algorithmMoonConfig.getMoon();
|
|
|
DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging moonDeviceAlgorithmCharging = Beans.copy(DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging.class, deviceInfo)
|