|
@@ -190,6 +190,62 @@ public class DeviceChargingHistoryServiceImpl extends ServiceImpl<DeviceCharging
|
|
|
return R.ok(pageBean);
|
|
|
}
|
|
|
|
|
|
+ public R<PageBean<DeviceChargingHistoryDto.MySpendPageVO>> mySpendPage(DeviceChargingHistoryDto.PageByTopMerc page) {
|
|
|
+ Long curMercId = page.getCurMercId();
|
|
|
+ List<Long> mercIds = new ArrayList<>();
|
|
|
+ //指定商户ID
|
|
|
+ mercIds.add(curMercId);
|
|
|
+ LambdaQueryWrapper<DeviceChargingHistory> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, DeviceChargingHistory.class)
|
|
|
+ .ge(DeviceChargingHistory::getCreateTime, page.getBeginCreateTime())
|
|
|
+ .le(DeviceChargingHistory::getCreateTime, page.getEndCreateTime())
|
|
|
+ .in(DeviceChargingHistory::getMercId, mercIds)
|
|
|
+ .build()
|
|
|
+ .orderByDesc(DeviceChargingHistory::getCreateTime);
|
|
|
+ IPage<DeviceChargingHistory> iPage = page(PlusBeans.toIPage(page.getPage()), lambdaQueryWrapper);
|
|
|
+ PageBean<DeviceChargingHistoryDto.MySpendPageVO> pageBean = toPageBean(DeviceChargingHistoryDto.MySpendPageVO.class, iPage);
|
|
|
+ List<DeviceChargingHistoryDto.MySpendPageVO> records = pageBean.getRecords();
|
|
|
+ if (Emptys.check(records)) {
|
|
|
+ copy(records)
|
|
|
+ .target(() -> orderMercManageService.list(new OrderMercManageDto.SelectList().setId(new JArrayList<>(records).getProperty(DeviceChargingHistoryDto.MySpendPageVO::getOrderId))).getData()
|
|
|
+ , DeviceChargingHistoryDto.MySpendPageVO::getOrderId, DeviceChargingHistoryDto.MySpendPageVO::getFiles, OrderMercManageDto.Vo::getId, OrderMercManageDto.Vo::getFiles
|
|
|
+ )
|
|
|
+ .target(() -> mercService.list(new MercDto.SelectList().setMercIds(new JArrayList<>(records).getProperty(DeviceChargingHistoryDto.MySpendPageVO::getMercId).comparing())).getData(),
|
|
|
+ DeviceChargingHistoryDto.MySpendPageVO::getMercId, DeviceChargingHistoryDto.MySpendPageVO::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
|
|
|
+ .builder();
|
|
|
+ List<Long> deviceIds = records.stream().map(DeviceChargingHistoryDto.MySpendPageVO::getDeviceId).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<DeviceCharging> deviceChargings = deviceChargingService.listByIds(deviceIds);
|
|
|
+ Map<Long, DeviceCharging> deviceChargingMap = MapUtil.newHashMap();
|
|
|
+ if (CollUtil.isNotEmpty(deviceChargings)) {
|
|
|
+ deviceChargingMap = deviceChargings.stream().collect(Collectors.toMap(DeviceCharging::getDeviceId, d -> d));
|
|
|
+ }
|
|
|
+ for (DeviceChargingHistoryDto.MySpendPageVO record : records) {
|
|
|
+ Long deviceId = record.getDeviceId();
|
|
|
+ //封装过期状态说明
|
|
|
+ String timeoutStatus;
|
|
|
+ DeviceCharging dc = deviceChargingMap.get(deviceId);
|
|
|
+ if (dc != null) {
|
|
|
+ Integer value = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), EnumDeviceCharging.N_200.getCode(), Integer.class);
|
|
|
+
|
|
|
+ LocalDateTime timeout = dc.getTimeout();
|
|
|
+ long s = DataTime.diff(LocalDateTime.now(), timeout, "s");
|
|
|
+ if (s <= 0) {
|
|
|
+ timeoutStatus = "欠费(" + (~(s / 86400 - 1)) + "天)";
|
|
|
+ } else {
|
|
|
+ timeoutStatus = s <= value * 86400 ? "即将到期(" + s / 86400 + "天)" : "正常(" + s / 86400 + "天)";
|
|
|
+ }
|
|
|
+ //过期状态说明
|
|
|
+ record.setTimeoutStatus(timeoutStatus);
|
|
|
+ //过期时间
|
|
|
+ record.setTimeout(timeout);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pageBean.setRecords(records);
|
|
|
+
|
|
|
+ }
|
|
|
+ return R.ok(pageBean);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@ApiOperation("月统计分页")
|
|
|
@PostMapping("moonCountPage")
|