|
@@ -1,17 +1,17 @@
|
|
package com.xy.service;
|
|
package com.xy.service;
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.xy.collections.list.JArrayList;
|
|
import com.xy.collections.list.JArrayList;
|
|
import com.xy.collections.list.JList;
|
|
import com.xy.collections.list.JList;
|
|
|
|
+import com.xy.collections.map.JHashMap;
|
|
import com.xy.collections.map.JMap;
|
|
import com.xy.collections.map.JMap;
|
|
|
|
+import com.xy.config.DeviceThreadPoolConfig;
|
|
import com.xy.device.*;
|
|
import com.xy.device.*;
|
|
-import com.xy.dto.DeviceAlgorithmChargingDto;
|
|
|
|
-import com.xy.dto.DeviceChargingConfigDto;
|
|
|
|
-import com.xy.dto.DeviceChargingDto;
|
|
|
|
-import com.xy.dto.DeviceInfoDto;
|
|
|
|
|
|
+import com.xy.dto.*;
|
|
import com.xy.entity.*;
|
|
import com.xy.entity.*;
|
|
import com.xy.mapper.DeviceChargingMapper;
|
|
import com.xy.mapper.DeviceChargingMapper;
|
|
import com.xy.utils.*;
|
|
import com.xy.utils.*;
|
|
@@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -59,6 +60,12 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
|
|
|
private DeviceAlgorithmChargingServiceImpl deviceAlgorithmChargingService;
|
|
private DeviceAlgorithmChargingServiceImpl deviceAlgorithmChargingService;
|
|
|
|
|
|
|
|
+ private DeviceStatusServiceImpl deviceStatusService;
|
|
|
|
+
|
|
|
|
+ private DeviceSysinfoServiceImpl deviceSysinfoService;
|
|
|
|
+
|
|
|
|
+ private AlipayDeviceService alipayDeviceService;
|
|
|
|
+
|
|
@PostMapping("init")
|
|
@PostMapping("init")
|
|
@ApiOperation("初始化")
|
|
@ApiOperation("初始化")
|
|
public R init() {
|
|
public R init() {
|
|
@@ -86,56 +93,93 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
|
|
|
@PostMapping("payCheck")
|
|
@PostMapping("payCheck")
|
|
@ApiOperation("购买反显")
|
|
@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) {
|
|
|
|
|
|
+ public R<Map<Long, DeviceChargingDto.PayCheckVo>> payCheck(@RequestBody @Validated DeviceChargingDto.PayCheck payCheck) {
|
|
|
|
+ Map<Long, DeviceChargingDto.PayCheckVo> result = new HashMap<>();
|
|
|
|
+ List<Long> deviceIds = payCheck.getDeviceId();
|
|
|
|
+ List<DeviceInfo> list = deviceInfoService.list(new LambdaQueryWrapper<DeviceInfo>()
|
|
|
|
+ .in(DeviceInfo::getDeviceId, deviceIds)
|
|
|
|
+ );
|
|
|
|
+ if (!Emptys.check(list)) {
|
|
return R.fail("设备不存在");
|
|
return R.fail("设备不存在");
|
|
}
|
|
}
|
|
- //封装设备信息
|
|
|
|
- DeviceChargingDto.PayCheckVo payCheckVo = new DeviceChargingDto.PayCheckVo();
|
|
|
|
- String deviceTypeName = SysDictUtils.get(EnumDeviceType.Code.CODE.getCode(), String.valueOf(deviceInfo.getDeviceType())).getMsg();
|
|
|
|
- //查询设备计费配置表
|
|
|
|
|
|
+ JList<DeviceInfo> deviceInfos = new JArrayList<>(list);
|
|
|
|
+ JMap<Integer, DeviceInfo> cover = deviceInfos.toMap(DeviceInfo::getDeviceType).cover();
|
|
|
|
+ if (cover.size() > 1) {
|
|
|
|
+ return R.fail("设备类型必须一致");
|
|
|
|
+ }
|
|
|
|
+ //查询设备状态信息
|
|
|
|
+ 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<>();
|
|
List<String> mercCodes = new ArrayList<>();
|
|
- deviceAlgorithmChargingService.getMercCodes(deviceInfo.getMercCode(), mercCodes);
|
|
|
|
|
|
+ deviceAlgorithmChargingService.getMercCodes(list.get(0).getMercCode(), mercCodes);
|
|
|
|
+ //查询设备计费配置表
|
|
List<DeviceChargingConfig> deviceChargingConfigs = deviceChargingConfigService.list(new LambdaQueryWrapper<DeviceChargingConfig>()
|
|
List<DeviceChargingConfig> deviceChargingConfigs = deviceChargingConfigService.list(new LambdaQueryWrapper<DeviceChargingConfig>()
|
|
.in(DeviceChargingConfig::getMercCode, mercCodes)
|
|
.in(DeviceChargingConfig::getMercCode, mercCodes)
|
|
.eq(DeviceChargingConfig::getType, SysDictUtils.getValue(EnumDeviceChargingConfigType.Code.CODE.getCode(), EnumDeviceChargingConfigType.N_2.getCode(), Integer.class))
|
|
.eq(DeviceChargingConfig::getType, SysDictUtils.getValue(EnumDeviceChargingConfigType.Code.CODE.getCode(), EnumDeviceChargingConfigType.N_2.getCode(), Integer.class))
|
|
- .eq(DeviceChargingConfig::getDeviceType, deviceInfo.getDeviceType())
|
|
|
|
|
|
+ .eq(DeviceChargingConfig::getDeviceType, list.get(0).getDeviceType())
|
|
.orderByDesc(DeviceChargingConfig::getMercCode)
|
|
.orderByDesc(DeviceChargingConfig::getMercCode)
|
|
);
|
|
);
|
|
//有则使用,无则使用默认字典
|
|
//有则使用,无则使用默认字典
|
|
int standard = Emptys.check(deviceChargingConfigs) ? deviceChargingConfigs.get(0).getConfigValue()
|
|
int standard = Emptys.check(deviceChargingConfigs) ? deviceChargingConfigs.get(0).getConfigValue()
|
|
- : 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);
|
|
|
|
- //封装算法购买信息
|
|
|
|
- DeviceTypeAlgorithmBeforConfig deviceTypeAlgorithmBeforConfig = deviceTypeAlgorithmBeforConfigService.getOne(new LambdaQueryWrapper<DeviceTypeAlgorithmBeforConfig>()
|
|
|
|
- .eq(DeviceTypeAlgorithmBeforConfig::getDeviceType, deviceInfo.getDeviceType())
|
|
|
|
- .eq(DeviceTypeAlgorithmBeforConfig::getMercId, deviceInfo.getMercId())
|
|
|
|
- .eq(DeviceTypeAlgorithmBeforConfig::getAlgorithmId, deviceInfo.getAlgorithmId())
|
|
|
|
|
|
+ : 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::getAlgorithmId, values.getProperty(DeviceInfo::getAlgorithmId))
|
|
);
|
|
);
|
|
- 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(deviceTypeAlgorithmBeforConfig == null ? inf.getMoney() : deviceTypeAlgorithmBeforConfig.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);
|
|
|
|
|
|
+ JMap<Long, DeviceTypeAlgorithmBeforConfig> deviceTypeAlgorithmBeforConfigsJMaps = Emptys.check(deviceTypeAlgorithmBeforConfigs) ? new JArrayList<>(deviceTypeAlgorithmBeforConfigs).toMap(DeviceTypeAlgorithmBeforConfig::getAlgorithmId).cover()
|
|
|
|
+ : new JHashMap<>();
|
|
|
|
+ //查询默认算法信息
|
|
|
|
+ JList<Long> algorithmIds = deviceInfos.getProperty(DeviceInfo::getAlgorithmId);
|
|
|
|
+ Map<Long, String> moonAlgorithmTypesMap = new HashMap<>();
|
|
|
|
+ Map<Long, String> algorithmPayConfigMap = new HashMap<>();
|
|
|
|
+ for (Long algorithmId : algorithmIds) {
|
|
|
|
+ SysDictRedis moonAlgorithmTypes = SysDictUtils.get(EnumAlgorithmTypes.Code.CODE.getCode(), String.valueOf(algorithmId));
|
|
|
|
+ SysDictRedis algorithmPayConfig = SysDictUtils.get(EnumAlgorithmPayConfig.Code.CODE.getCode(), String.valueOf(algorithmId));
|
|
|
|
+ if (Emptys.check(moonAlgorithmTypes)) {
|
|
|
|
+ moonAlgorithmTypesMap.put(algorithmId, moonAlgorithmTypes.getMsg());
|
|
|
|
+ }
|
|
|
|
+ if (Emptys.check(algorithmPayConfig)) {
|
|
|
|
+ algorithmPayConfigMap.put(algorithmId, algorithmPayConfig.getValue());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for (DeviceInfo deviceInfo : list) {
|
|
|
|
+ //封装设备信息
|
|
|
|
+ DeviceChargingDto.PayCheckVo payCheckVo = new DeviceChargingDto.PayCheckVo();
|
|
|
|
+ DeviceStatus deviceStatus = deviceStatusesJMaps.get(deviceInfo.getDeviceId());
|
|
|
|
+ DeviceChargingDto.PayCheckVo.DeviceInfo deviceInfoObj = Beans.copy(Beans.copy(DeviceChargingDto.PayCheckVo.DeviceInfo.class, deviceInfo), deviceStatus)
|
|
|
|
+ .setDeviceTypeName(deviceTypeName)
|
|
|
|
+ .setStandard(BigDecimal.valueOf(standard).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN).doubleValue() + "元/年")
|
|
|
|
+ .setMoney(standard);
|
|
|
|
+ //封装算法购买信息
|
|
|
|
+ DeviceTypeAlgorithmBeforConfig deviceTypeAlgorithmBeforConfig = deviceTypeAlgorithmBeforConfigsJMaps.get(deviceInfo.getAlgorithmId());
|
|
|
|
+ String algorithmName = moonAlgorithmTypesMap.get(deviceInfo.getAlgorithmId());
|
|
|
|
+ String algorithmPayConfig = algorithmPayConfigMap.get(deviceInfo.getAlgorithmId());
|
|
|
|
+ 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(algorithmName)
|
|
|
|
+ .setStandard(BigDecimal.valueOf(algorithmMoonConfig.getPrice()).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN).doubleValue() + "元/每笔(" + inf.getSize() + "笔)")
|
|
|
|
+ .setMoney(deviceTypeAlgorithmBeforConfig == null ? inf.getMoney() : deviceTypeAlgorithmBeforConfig.getMoney());
|
|
|
|
+ //封装算法包月信息
|
|
|
|
+ DeviceAlgorithmChargingDto.AlgorithmMoonConfig.Moon moon = algorithmMoonConfig.getMoon();
|
|
|
|
+ DeviceChargingDto.PayCheckVo.DeviceAlgorithmCharging moonDeviceAlgorithmCharging = 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() + "元/包月(" + moon.getSize() + "笔)")
|
|
|
|
+ .setMoney(moon.getMoney());
|
|
|
|
+ payCheckVo.setDeviceInfo(deviceInfoObj)
|
|
|
|
+ .setInfDeviceAlgorithmCharging(infDeviceAlgorithmCharging)
|
|
|
|
+ .setMoonDeviceAlgorithmCharging(moonDeviceAlgorithmCharging);
|
|
|
|
+ result.put(deviceInfo.getDeviceId(), payCheckVo);
|
|
|
|
+ }
|
|
|
|
+ return R.ok(result);
|
|
}
|
|
}
|
|
|
|
|
|
@PostMapping("check")
|
|
@PostMapping("check")
|
|
@@ -178,6 +222,7 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
@ApiOperation("分页查询")
|
|
@ApiOperation("分页查询")
|
|
public R<PageBean<DeviceChargingDto.PageVo>> page(@RequestBody DeviceChargingDto.Page page) {
|
|
public R<PageBean<DeviceChargingDto.PageVo>> page(@RequestBody DeviceChargingDto.Page page) {
|
|
Integer value = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), EnumDeviceCharging.N_200.getCode(), Integer.class);
|
|
Integer value = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), EnumDeviceCharging.N_200.getCode(), Integer.class);
|
|
|
|
+ Integer prep = SysDictUtils.getValue(EnumDeviceChargingConfigType.Code.CODE.getCode(), EnumDeviceChargingConfigType.N_2.getCode(), Integer.class);
|
|
String theTime = DataTime.getStringAround(0, 0, value, 0, 0, 0);
|
|
String theTime = DataTime.getStringAround(0, 0, value, 0, 0, 0);
|
|
page.setThisTime(LocalDateTime.now()).setTheTime(DataTime.toLocal(theTime));
|
|
page.setThisTime(LocalDateTime.now()).setTheTime(DataTime.toLocal(theTime));
|
|
IPage<DeviceChargingDto.PageVo> iPage = baseMapper.page(toIPage(page.getPage()), page);
|
|
IPage<DeviceChargingDto.PageVo> iPage = baseMapper.page(toIPage(page.getPage()), page);
|
|
@@ -197,12 +242,11 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
}
|
|
}
|
|
record.getDeviceCharging().setTimeoutStatus(timeoutStatus);
|
|
record.getDeviceCharging().setTimeoutStatus(timeoutStatus);
|
|
DeviceInfoDto.Vo deviceInfo = record.getDeviceInfo();
|
|
DeviceInfoDto.Vo deviceInfo = record.getDeviceInfo();
|
|
-
|
|
|
|
//查询设备计费配置
|
|
//查询设备计费配置
|
|
DeviceChargingConfigDto.SelectList selectList = new DeviceChargingConfigDto.SelectList()
|
|
DeviceChargingConfigDto.SelectList selectList = new DeviceChargingConfigDto.SelectList()
|
|
.setDeviceType(deviceInfo.getDeviceType())
|
|
.setDeviceType(deviceInfo.getDeviceType())
|
|
.setMercId(deviceInfo.getMercId());
|
|
.setMercId(deviceInfo.getMercId());
|
|
- selectList.setType(value);
|
|
|
|
|
|
+ selectList.setType(prep);
|
|
List<DeviceChargingConfigDto.Vo> deviceChargingConfigs = deviceChargingConfigService.list2(selectList).getData();
|
|
List<DeviceChargingConfigDto.Vo> deviceChargingConfigs = deviceChargingConfigService.list2(selectList).getData();
|
|
if (Emptys.check(deviceChargingConfigs)) {
|
|
if (Emptys.check(deviceChargingConfigs)) {
|
|
//获取自定义配置计费标准
|
|
//获取自定义配置计费标准
|
|
@@ -259,9 +303,13 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
}
|
|
}
|
|
LocalDateTime now = LocalDateTime.now();
|
|
LocalDateTime now = LocalDateTime.now();
|
|
JList<DeviceChargingHistory> deviceChargingHistories = new JArrayList<>(list);
|
|
JList<DeviceChargingHistory> deviceChargingHistories = new JArrayList<>(list);
|
|
|
|
+ int aliDeviceType = SysDictUtils.getValue(EnumDeviceType.Code.CODE.getCode(), EnumDeviceType.N_5.getCode(), Integer.class);
|
|
//查询设备信息
|
|
//查询设备信息
|
|
List<DeviceInfo> deviceInfos = deviceInfoService.list(new LambdaQueryWrapper<DeviceInfo>().in(DeviceInfo::getDeviceId, deviceChargingHistories.getProperty(DeviceChargingHistory::getDeviceId)));
|
|
List<DeviceInfo> deviceInfos = deviceInfoService.list(new LambdaQueryWrapper<DeviceInfo>().in(DeviceInfo::getDeviceId, deviceChargingHistories.getProperty(DeviceChargingHistory::getDeviceId)));
|
|
JMap<Long, DeviceInfo> deviceInfoJMap = new JArrayList<>(deviceInfos).toMap(DeviceInfo::getDeviceId).cover();
|
|
JMap<Long, DeviceInfo> deviceInfoJMap = new JArrayList<>(deviceInfos).toMap(DeviceInfo::getDeviceId).cover();
|
|
|
|
+ //查询设备系统信息
|
|
|
|
+ List<DeviceSysinfoDto.Vo> deviceSysinfos = deviceSysinfoService.list(new DeviceSysinfoDto.SelectList().setDeviceIds(deviceChargingHistories.getProperty(DeviceChargingHistory::getDeviceId))).getData();
|
|
|
|
+ JMap<Long, DeviceSysinfoDto.Vo> deviceSysinfosJMaps = new JArrayList<>(deviceSysinfos).toMap(DeviceSysinfoDto.Vo::getDeviceId).cover();
|
|
//查询设备计费表
|
|
//查询设备计费表
|
|
List<DeviceCharging> deviceChargings = list(new LambdaQueryWrapper<DeviceCharging>().in(DeviceCharging::getDeviceId, deviceChargingHistories.getProperty(DeviceChargingHistory::getDeviceId)));
|
|
List<DeviceCharging> deviceChargings = list(new LambdaQueryWrapper<DeviceCharging>().in(DeviceCharging::getDeviceId, deviceChargingHistories.getProperty(DeviceChargingHistory::getDeviceId)));
|
|
JMap<Long, DeviceCharging> deviceChargingsJMaps = new JArrayList<>(deviceChargings).toMap(DeviceCharging::getDeviceId).cover();
|
|
JMap<Long, DeviceCharging> deviceChargingsJMaps = new JArrayList<>(deviceChargings).toMap(DeviceCharging::getDeviceId).cover();
|
|
@@ -270,7 +318,9 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
JList<DeviceCharging> updateDeviceCharging = new JArrayList<>();
|
|
JList<DeviceCharging> updateDeviceCharging = new JArrayList<>();
|
|
JList<DeviceInfoDto.Update> updateDeviceInfos = new JArrayList<>();
|
|
JList<DeviceInfoDto.Update> updateDeviceInfos = new JArrayList<>();
|
|
JList<DeviceChargingHistory> updateDeviceChargingHistory = new JArrayList<>();
|
|
JList<DeviceChargingHistory> updateDeviceChargingHistory = new JArrayList<>();
|
|
|
|
+ JList<Tuple.Tuple2<BindDeviceDTO, BindActiveDTO>> ailiActive = new JArrayList<>();
|
|
for (DeviceChargingHistory deviceChargingHistory : deviceChargingHistories) {
|
|
for (DeviceChargingHistory deviceChargingHistory : deviceChargingHistories) {
|
|
|
|
+ DeviceInfo deviceInfo = deviceInfoJMap.get(deviceChargingHistory.getDeviceId());
|
|
DeviceCharging deviceCharging = deviceChargingsJMaps.get(deviceChargingHistory.getDeviceId())
|
|
DeviceCharging deviceCharging = deviceChargingsJMaps.get(deviceChargingHistory.getDeviceId())
|
|
.setLastChargingPayType(deviceChargingHistory.getChargingType())
|
|
.setLastChargingPayType(deviceChargingHistory.getChargingType())
|
|
.setLastChargingMoney(deviceChargingHistory.getChargingMoney())
|
|
.setLastChargingMoney(deviceChargingHistory.getChargingMoney())
|
|
@@ -294,7 +344,6 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
updateDeviceInfo.setBusyState(1);
|
|
updateDeviceInfo.setBusyState(1);
|
|
//激活设备
|
|
//激活设备
|
|
if (deviceChargingHistory.getChargingType() != 100) {
|
|
if (deviceChargingHistory.getChargingType() != 100) {
|
|
- DeviceInfo deviceInfo = deviceInfoJMap.get(deviceChargingHistory.getDeviceId());
|
|
|
|
if (deviceInfo.getActiveState() == 2) {
|
|
if (deviceInfo.getActiveState() == 2) {
|
|
updateDeviceInfo.setActiveState(1);
|
|
updateDeviceInfo.setActiveState(1);
|
|
}
|
|
}
|
|
@@ -304,6 +353,21 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
}
|
|
}
|
|
updateDeviceInfos.add(updateDeviceInfo);
|
|
updateDeviceInfos.add(updateDeviceInfo);
|
|
}
|
|
}
|
|
|
|
+ //支付宝设备
|
|
|
|
+ if (deviceInfo.getDeviceType() == aliDeviceType) {
|
|
|
|
+ if (deviceChargingHistory.getChargingType() != 100 && deviceInfo.getActiveState() == 2) {
|
|
|
|
+ //支付宝绑定
|
|
|
|
+ DeviceSysinfoDto.Vo deviceSysinfo = deviceSysinfosJMaps.get(deviceChargingHistory.getDeviceId());
|
|
|
|
+ BindDeviceDTO bindDeviceDTO = new BindDeviceDTO().setTerminalId(String.valueOf(deviceInfo.getDeviceId()))
|
|
|
|
+ .setBoardSn(deviceSysinfo.getDeviceSn());
|
|
|
|
+ //支付宝激活
|
|
|
|
+ BindActiveDTO bindActiveDTO = new BindActiveDTO()
|
|
|
|
+ .setTerminalId(String.valueOf(deviceInfo.getDeviceId()))
|
|
|
|
+ .setBoardSn(deviceSysinfo.getDeviceSn())
|
|
|
|
+ .setDeviceName(StrUtil.isNotEmpty(deviceInfo.getDeviceName()) ? deviceInfo.getDeviceName() : String.valueOf(deviceInfo.getDeviceId()));
|
|
|
|
+ ailiActive.add(new Tuple.Tuple2<>(bindDeviceDTO, bindActiveDTO));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
updateDeviceCharging.add(deviceCharging);
|
|
updateDeviceCharging.add(deviceCharging);
|
|
updateDeviceChargingHistory.add(deviceChargingHistory);
|
|
updateDeviceChargingHistory.add(deviceChargingHistory);
|
|
}
|
|
}
|
|
@@ -323,6 +387,17 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
JList<JList<DeviceInfoDto.Update>> partition = updateDeviceInfos.partition(size);
|
|
JList<JList<DeviceInfoDto.Update>> partition = updateDeviceInfos.partition(size);
|
|
partition.forEach(data -> deviceInfoService.updateBatch(data));
|
|
partition.forEach(data -> deviceInfoService.updateBatch(data));
|
|
}
|
|
}
|
|
|
|
+ //支付宝刷脸柜激活请求
|
|
|
|
+ log.info("支付宝刷脸柜激活请求参数:{}", ailiActive.toString());
|
|
|
|
+ if (Emptys.check(ailiActive)) {
|
|
|
|
+ ThreadPoolUtils.Execute execute = ThreadPoolUtils.excPoll(DeviceThreadPoolConfig.ALI_DEVICE_ACTIVE, ailiActive.size());
|
|
|
|
+ ailiActive.forEach(bindDeviceDTOBindActiveDTOTuple2 -> execute.execute(() -> {
|
|
|
|
+ //调用支付宝绑定
|
|
|
|
+ R.feignCheckData(alipayDeviceService.deviceBind(bindDeviceDTOBindActiveDTOTuple2.getV1()));
|
|
|
|
+ //调用支付宝激活
|
|
|
|
+ R.feignCheckData(alipayDeviceService.deviceActive(bindDeviceDTOBindActiveDTOTuple2.getV2()));
|
|
|
|
+ }));
|
|
|
|
+ }
|
|
return R.ok();
|
|
return R.ok();
|
|
}
|
|
}
|
|
}
|
|
}
|