|
@@ -1,13 +1,14 @@
|
|
|
package com.xy.service;
|
|
|
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xy.collections.list.JArrayList;
|
|
|
import com.xy.collections.list.JList;
|
|
|
import com.xy.collections.map.JMap;
|
|
|
-import com.xy.device.EnumDeviceCharging;
|
|
|
-import com.xy.device.EnumDeviceChargingHistoryStatus;
|
|
|
+import com.xy.device.*;
|
|
|
+import com.xy.dto.DeviceAlgorithmChargingDto;
|
|
|
import com.xy.dto.DeviceChargingDto;
|
|
|
import com.xy.dto.DeviceInfoDto;
|
|
|
import com.xy.entity.DeviceCharging;
|
|
@@ -25,6 +26,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -52,6 +54,44 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
|
|
|
private DeviceChargingServiceImpl deviceChargingService;
|
|
|
|
|
|
+ @PostMapping("payCheck")
|
|
|
+ @ApiOperation("购买反显")
|
|
|
+ public R<DeviceChargingDto.PayCheckVo> payCheck(@RequestBody @Validated DeviceChargingDto.PayCheck payCheck) {
|
|
|
+ DeviceInfoDto.Vo deviceInfo = deviceInfoService.obj(new DeviceInfoDto.Obj().setDeviceId(payCheck.getDeviceId()).setIsStatus(true)).getData();
|
|
|
+ if (deviceInfo == null) {
|
|
|
+ return R.fail("设备不存在");
|
|
|
+ }
|
|
|
+ //封装设备信息
|
|
|
+ DeviceChargingDto.PayCheckVo payCheckVo = new DeviceChargingDto.PayCheckVo();
|
|
|
+ String deviceTypeName = SysDictUtils.get(EnumDeviceType.Code.CODE.getCode(), String.valueOf(deviceInfo.getDeviceType())).getMsg();
|
|
|
+ Integer standard = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), String.valueOf(deviceInfo.getDeviceType()), Integer.class);
|
|
|
+ DeviceChargingDto.PayCheckVo.DeviceInfo deviceInfoObj = Beans.copy(Beans.copy(DeviceChargingDto.PayCheckVo.DeviceInfo.class, deviceInfo), deviceInfo.getDeviceStatus())
|
|
|
+ .setDeviceTypeName(deviceTypeName)
|
|
|
+ .setStandard(BigDecimal.valueOf(standard).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN).doubleValue() + "元/年")
|
|
|
+ .setMoney(standard);
|
|
|
+ //封装算法购买信息
|
|
|
+ SysDictRedis moonAlgorithmTypes = SysDictUtils.get(EnumAlgorithmTypes.Code.CODE.getCode(), String.valueOf(deviceInfo.getAlgorithmId()));
|
|
|
+ String algorithmPayConfig = SysDictUtils.getValue(EnumAlgorithmPayConfig.Code.CODE.getCode(), String.valueOf(deviceInfo.getAlgorithmId()), String.class);
|
|
|
+ DeviceAlgorithmChargingDto.AlgorithmMoonConfig algorithmMoonConfig = JSONUtil.parseObj(algorithmPayConfig).toBean(DeviceAlgorithmChargingDto.AlgorithmMoonConfig.class);
|
|
|
+ DeviceAlgorithmChargingDto.AlgorithmMoonConfig.Inf inf = algorithmMoonConfig.getInf();
|
|
|
+ DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging infDeviceAlgorithmCharging = Beans.copy(DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging.class, deviceInfo)
|
|
|
+ .setDeviceTypeName(deviceTypeName)
|
|
|
+ .setAlgorithmId(deviceInfo.getAlgorithmId())
|
|
|
+ .setAlgorithmName(moonAlgorithmTypes.getMsg())
|
|
|
+ .setStandard(BigDecimal.valueOf(algorithmMoonConfig.getPrice()).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN).doubleValue() + "元/每笔(" + inf.getSize() + "笔)")
|
|
|
+ .setMoney(inf.getMoney());
|
|
|
+ //封装算法包月信息
|
|
|
+ DeviceAlgorithmChargingDto.AlgorithmMoonConfig.Moon moon = algorithmMoonConfig.getMoon();
|
|
|
+ DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging moonDeviceAlgorithmCharging = Beans.copy(DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging.class, deviceInfo)
|
|
|
+ .setDeviceTypeName(deviceTypeName)
|
|
|
+ .setAlgorithmId(deviceInfo.getAlgorithmId())
|
|
|
+ .setAlgorithmName(moonAlgorithmTypes.getMsg())
|
|
|
+ .setStandard(BigDecimal.valueOf(algorithmMoonConfig.getPrice()).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN).doubleValue() + "元/包月(" + moon.getSize() + "笔)")
|
|
|
+ .setMoney(moon.getMoney());
|
|
|
+ payCheckVo.setDeviceInfo(deviceInfoObj).setInfDeviceAlgorithmCharging(infDeviceAlgorithmCharging).setMoonDeviceAlgorithmCharging(moonDeviceAlgorithmCharging);
|
|
|
+ return R.ok(payCheckVo);
|
|
|
+ }
|
|
|
+
|
|
|
@PostMapping("check")
|
|
|
@ApiOperation("检查")
|
|
|
public R check(@RequestBody @Validated DeviceChargingDto.Check check) {
|