|
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.github.yitter.idgen.YitIdHelper;
|
|
import com.github.yitter.idgen.YitIdHelper;
|
|
import com.xy.device.EnumDeviceCharging;
|
|
import com.xy.device.EnumDeviceCharging;
|
|
|
|
+import com.xy.device.EnumDeviceChargingConfigType;
|
|
import com.xy.dto.DeviceChargingConfigDto;
|
|
import com.xy.dto.DeviceChargingConfigDto;
|
|
import com.xy.dto.be.MercDto;
|
|
import com.xy.dto.be.MercDto;
|
|
import com.xy.entity.DeviceChargingConfig;
|
|
import com.xy.entity.DeviceChargingConfig;
|
|
@@ -63,14 +64,27 @@ public class DeviceChargingConfigServiceImpl extends ServiceImpl<DeviceChargingC
|
|
MercDto.Vo merc = mercService.obj(new MercDto.Vo().setId(dto.getMercId())).getData();
|
|
MercDto.Vo merc = mercService.obj(new MercDto.Vo().setId(dto.getMercId())).getData();
|
|
LambdaQueryWrapper<DeviceChargingConfig> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(dto, DeviceChargingConfig.class)
|
|
LambdaQueryWrapper<DeviceChargingConfig> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(dto, DeviceChargingConfig.class)
|
|
.in(DeviceChargingConfig::getDeviceType, dto.getDeviceTypes())
|
|
.in(DeviceChargingConfig::getDeviceType, dto.getDeviceTypes())
|
|
|
|
+ .eq(DeviceChargingConfig::getType, SysDictUtils.getValue(EnumDeviceChargingConfigType.Code.CODE.getCode(), EnumDeviceChargingConfigType.N_2.getCode(), Integer.class))
|
|
.eq(DeviceChargingConfig::getMercCode, merc.getMercCode())
|
|
.eq(DeviceChargingConfig::getMercCode, merc.getMercCode())
|
|
.build();
|
|
.build();
|
|
- //默认配置
|
|
|
|
|
|
+ //默认配置 type 2预充 1赠送天数
|
|
List<DeviceChargingConfig> list = list(lambdaQueryWrapper);
|
|
List<DeviceChargingConfig> list = list(lambdaQueryWrapper);
|
|
Map<Integer, DeviceChargingConfig> typeConfigMap = MapUtil.newHashMap();
|
|
Map<Integer, DeviceChargingConfig> typeConfigMap = MapUtil.newHashMap();
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
typeConfigMap = list.stream().collect(Collectors.toMap(DeviceChargingConfig::getDeviceType, c -> c));
|
|
typeConfigMap = list.stream().collect(Collectors.toMap(DeviceChargingConfig::getDeviceType, c -> c));
|
|
}
|
|
}
|
|
|
|
+ //赠送天数
|
|
|
|
+ LambdaQueryWrapper<DeviceChargingConfig> lambdaQueryWrapper2 = new MybatisPlusQuery().eqWrapper(dto, DeviceChargingConfig.class)
|
|
|
|
+ .in(DeviceChargingConfig::getDeviceType, dto.getDeviceTypes())
|
|
|
|
+ .eq(DeviceChargingConfig::getType, SysDictUtils.getValue(EnumDeviceChargingConfigType.Code.CODE.getCode(), EnumDeviceChargingConfigType.N_1.getCode(), Integer.class))
|
|
|
|
+ .eq(DeviceChargingConfig::getMercCode, merc.getMercCode())
|
|
|
|
+ .build();
|
|
|
|
+ List<DeviceChargingConfig> list2 = list(lambdaQueryWrapper2);
|
|
|
|
+ Map<Integer, DeviceChargingConfig> typeConfigMap2 = MapUtil.newHashMap();
|
|
|
|
+ if (CollUtil.isNotEmpty(list2)) {
|
|
|
|
+ typeConfigMap2 = list2.stream().collect(Collectors.toMap(DeviceChargingConfig::getDeviceType, c -> c));
|
|
|
|
+ }
|
|
|
|
+
|
|
List<DeviceChargingConfigDto.FeeConfigVO> voList = new ArrayList<>();
|
|
List<DeviceChargingConfigDto.FeeConfigVO> voList = new ArrayList<>();
|
|
List<Integer> deviceTypes = dto.getDeviceTypes();
|
|
List<Integer> deviceTypes = dto.getDeviceTypes();
|
|
for (Integer type : deviceTypes) {//默认年费,赠送天数
|
|
for (Integer type : deviceTypes) {//默认年费,赠送天数
|
|
@@ -78,17 +92,45 @@ public class DeviceChargingConfigServiceImpl extends ServiceImpl<DeviceChargingC
|
|
int defaultMoney = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), String.valueOf(type), Integer.class);
|
|
int defaultMoney = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), String.valueOf(type), Integer.class);
|
|
//默认赠送天数
|
|
//默认赠送天数
|
|
int giveDays = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), EnumDeviceCharging.N_X.getCode(), Integer.class);
|
|
int giveDays = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), EnumDeviceCharging.N_X.getCode(), Integer.class);
|
|
- if (CollUtil.isNotEmpty(typeConfigMap) && typeConfigMap.get(type) != null) {
|
|
|
|
- //存在自定义配置
|
|
|
|
- DeviceChargingConfig deviceChargingConfig = typeConfigMap.get(type);
|
|
|
|
- BeanUtil.copyProperties(deviceChargingConfig, vo);
|
|
|
|
- vo.setDefFee(defaultMoney);
|
|
|
|
- vo.setDefGiveDay(giveDays);
|
|
|
|
- voList.add(vo);
|
|
|
|
|
|
+ if ((CollUtil.isNotEmpty(typeConfigMap) && typeConfigMap.get(type) != null) || (CollUtil.isNotEmpty(typeConfigMap2) && typeConfigMap2.get(type) != null)) {
|
|
|
|
+ DeviceChargingConfig deviceChargingConfig = new DeviceChargingConfig();
|
|
|
|
+ //存在自定义配置 预充
|
|
|
|
+ if (CollUtil.isNotEmpty(typeConfigMap) && typeConfigMap.get(type) != null) {
|
|
|
|
+ deviceChargingConfig = typeConfigMap.get(type);
|
|
|
|
+ BeanUtil.copyProperties(deviceChargingConfig, vo);
|
|
|
|
+ vo.setDefFee(defaultMoney);
|
|
|
|
+ vo.setDefGiveDay(giveDays);
|
|
|
|
+ vo.setFee(deviceChargingConfig.getConfigValue());
|
|
|
|
+ vo.setGiveDay(giveDays);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //存在自定义配置 赠送天数
|
|
|
|
+ if (CollUtil.isNotEmpty(typeConfigMap2) && typeConfigMap2.get(type) != null) {
|
|
|
|
+ if (deviceChargingConfig != null) {
|
|
|
|
+ DeviceChargingConfig deviceChargingConfig2 = typeConfigMap2.get(type);
|
|
|
|
+ vo.setDefFee(defaultMoney);
|
|
|
|
+ vo.setDefGiveDay(giveDays);
|
|
|
|
+ vo.setGiveDay(deviceChargingConfig2.getConfigValue());
|
|
|
|
+ voList.add(vo);
|
|
|
|
+ } else {
|
|
|
|
+ //未设置预充
|
|
|
|
+ deviceChargingConfig = typeConfigMap2.get(type);
|
|
|
|
+ BeanUtil.copyProperties(deviceChargingConfig, vo);
|
|
|
|
+ vo.setDefFee(defaultMoney);
|
|
|
|
+ vo.setDefGiveDay(giveDays);
|
|
|
|
+ vo.setFee(defaultMoney);
|
|
|
|
+ vo.setGiveDay(deviceChargingConfig.getConfigValue());
|
|
|
|
+ voList.add(vo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
//不存在,则取字典默认值
|
|
//不存在,则取字典默认值
|
|
vo.setId(YitIdHelper.nextId());
|
|
vo.setId(YitIdHelper.nextId());
|
|
- vo.setConfigValue(defaultMoney);
|
|
|
|
|
|
+ vo.setFee(defaultMoney);
|
|
|
|
+ vo.setGiveDay(giveDays);
|
|
vo.setDeviceType(type);
|
|
vo.setDeviceType(type);
|
|
vo.setMercCode(merc.getMercCode());
|
|
vo.setMercCode(merc.getMercCode());
|
|
vo.setDefFee(defaultMoney);
|
|
vo.setDefFee(defaultMoney);
|