|
@@ -95,14 +95,12 @@ public class DeviceChargingJob {
|
|
if (!Emptys.check(records)) {
|
|
if (!Emptys.check(records)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- //剔除试用期的设备
|
|
|
|
|
|
+ //查询设备信息
|
|
JList<DeviceCharging> deviceChargings = new JArrayList<>(records);
|
|
JList<DeviceCharging> deviceChargings = new JArrayList<>(records);
|
|
JMap<Long, DeviceCharging> deviceChargingsJMaps = deviceChargings.toMap(DeviceCharging::getDeviceId).cover();
|
|
JMap<Long, DeviceCharging> deviceChargingsJMaps = deviceChargings.toMap(DeviceCharging::getDeviceId).cover();
|
|
List<DeviceInfo> deviceInfos = deviceInfoService.list(new LambdaQueryWrapper<DeviceInfo>()
|
|
List<DeviceInfo> deviceInfos = deviceInfoService.list(new LambdaQueryWrapper<DeviceInfo>()
|
|
.in(DeviceInfo::getDeviceId, deviceChargings.getProperty(DeviceCharging::getDeviceId))
|
|
.in(DeviceInfo::getDeviceId, deviceChargings.getProperty(DeviceCharging::getDeviceId))
|
|
- .gt(DeviceInfo::getChargingX, 0)
|
|
|
|
);
|
|
);
|
|
- deviceInfos.forEach(deviceInfo -> deviceChargingsJMaps.remove(deviceInfo.getDeviceId()));
|
|
|
|
JMap<Long, DeviceInfo> deviceInfosJMaps = new JArrayList<>(deviceInfos).toMap(DeviceInfo::getDeviceId).cover();
|
|
JMap<Long, DeviceInfo> deviceInfosJMaps = new JArrayList<>(deviceInfos).toMap(DeviceInfo::getDeviceId).cover();
|
|
//字典
|
|
//字典
|
|
Map<String, SysDictRedis> stringSysDictRedisMap = SysDictUtils.get(DictEnum.DEVICE_CHARGING.getKey());
|
|
Map<String, SysDictRedis> stringSysDictRedisMap = SysDictUtils.get(DictEnum.DEVICE_CHARGING.getKey());
|
|
@@ -113,6 +111,9 @@ public class DeviceChargingJob {
|
|
deviceCharging.setUpdateTime(now);
|
|
deviceCharging.setUpdateTime(now);
|
|
//发起扣款
|
|
//发起扣款
|
|
DeviceInfo deviceInfo = deviceInfosJMaps.get(deviceId);
|
|
DeviceInfo deviceInfo = deviceInfosJMaps.get(deviceId);
|
|
|
|
+ if (deviceInfo.getMercId() == -1) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
SysDictRedis sysDictRedisBalance = stringSysDictRedisMap.get(String.valueOf(deviceInfo.getDeviceType()));
|
|
SysDictRedis sysDictRedisBalance = stringSysDictRedisMap.get(String.valueOf(deviceInfo.getDeviceType()));
|
|
Integer balance = Integer.valueOf(sysDictRedisBalance.getValue());
|
|
Integer balance = Integer.valueOf(sysDictRedisBalance.getValue());
|
|
R r = mercAccountService.updateBalance(new MercAccountDto.UpdateBalance()
|
|
R r = mercAccountService.updateBalance(new MercAccountDto.UpdateBalance()
|
|
@@ -141,9 +142,9 @@ public class DeviceChargingJob {
|
|
//扣款失败
|
|
//扣款失败
|
|
if (r.getCode() == R.Enum.FAIL.getCode()) {
|
|
if (r.getCode() == R.Enum.FAIL.getCode()) {
|
|
deviceCharging.setStatus(false);
|
|
deviceCharging.setStatus(false);
|
|
- //当前时间 - 过期时间 > y天 则冻结设备
|
|
|
|
|
|
+ //当前时间 - 过期时间 > y && 试用期 <= 0 则冻结设备
|
|
long day = DataTime.diff(now, deviceCharging.getTimeout(), "d");
|
|
long day = DataTime.diff(now, deviceCharging.getTimeout(), "d");
|
|
- if (day > y) {
|
|
|
|
|
|
+ if (day > y && deviceInfo.getChargingX() <= 0) {
|
|
DeviceInfoDto.Update update = new DeviceInfoDto.Update()
|
|
DeviceInfoDto.Update update = new DeviceInfoDto.Update()
|
|
.setDeviceId(deviceId);
|
|
.setDeviceId(deviceId);
|
|
update.setFreezeStatus(2);
|
|
update.setFreezeStatus(2);
|
|
@@ -153,7 +154,9 @@ public class DeviceChargingJob {
|
|
updateDeviceChargings.add(deviceCharging);
|
|
updateDeviceChargings.add(deviceCharging);
|
|
});
|
|
});
|
|
//修改设备计费记录
|
|
//修改设备计费记录
|
|
- deviceChargingService.updateBatchById(updateDeviceChargings);
|
|
|
|
|
|
+ if (Emptys.check(updateDeviceChargings)) {
|
|
|
|
+ deviceChargingService.updateBatchById(updateDeviceChargings);
|
|
|
|
+ }
|
|
//添加设备计费记录历史
|
|
//添加设备计费记录历史
|
|
if (Emptys.check(deviceChargingHistories)) {
|
|
if (Emptys.check(deviceChargingHistories)) {
|
|
deviceChargingHistoryService.saveBatch(deviceChargingHistories);
|
|
deviceChargingHistoryService.saveBatch(deviceChargingHistories);
|