diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java index 1201445e4..1510fb24e 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java @@ -619,4 +619,21 @@ public class TempController extends BaseController { } return response; } + + /** + * 并充订单数据修正 + * https://localhost:8080/temp/correctCombinedChargingOrder + */ + @PostMapping("/correctCombinedChargingOrder") + public RestApiResponse correctCombinedChargingOrder(@RequestBody QueryOrderDTO dto) { + RestApiResponse response; + try { + tempService.correctCombinedChargingOrder(dto); + response = new RestApiResponse<>(); + } catch (Exception e) { + logger.error("校验订单是否为并充订单error", e); + response = new RestApiResponse<>(); + } + return response; + } } diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index 568f9a629..e4358c94b 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -14,6 +14,7 @@ import com.jsowell.adapay.response.QueryPaymentConfirmDetailResponse; import com.jsowell.adapay.service.AdapayService; import com.jsowell.adapay.vo.OrderSplitResult; import com.jsowell.adapay.vo.PaymentInfo; +import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.enums.adapay.AdapayStatusEnum; import com.jsowell.common.enums.ykc.*; import com.jsowell.common.exception.BusinessException; @@ -38,6 +39,7 @@ import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.stream.Collectors; @@ -83,10 +85,10 @@ public class TempService { private PileMsgRecordMapper pileMsgRecordMapper; @Autowired - private PileMsgRecordService pileMsgRecordService; + private OrderMonitorDataService orderMonitorDataService; @Autowired - private OrderMonitorDataService orderMonitorDataService; + private RedisCache redisCache; /** * 计算订单耗电量 @@ -617,5 +619,36 @@ public class TempService { resultMap.put("noDataOrderList", noDataOrderList); return resultMap; } + + /** + * 修正并充订单数据 + * @param dto + */ + public void correctCombinedChargingOrder(QueryOrderDTO dto) { + List orderCodeList = dto.getOrderCodeList(); + logger.info("修正并充订单数据,订单号:{}", JSON.toJSONString(orderCodeList)); + // 查询临时表,不要重复修正 + String redisKey = "correct_combined_charging_order"; + List redisResult = redisCache.getCacheList(redisKey); + if (CollectionUtils.isNotEmpty(redisResult)) { + logger.info("已修正订单:{}", JSON.toJSONString(redisResult)); + // 过滤掉已修正的订单 + orderCodeList.removeAll(redisResult); + logger.info("过滤掉已修正的订单剩余:{}", JSON.toJSONString(orderCodeList)); + } + + if (CollectionUtils.isEmpty(orderCodeList)) { + logger.info("无需要修正的订单"); + return; + } + + // 查询订单主表数据 + List orderBasicInfos = orderBasicInfoService.queryOrderList(orderCodeList); + // 查询订单详情数据 + List orderDetailList = orderBasicInfoService.getOrderDetailList(orderCodeList); + Map> redisMap = Maps.newHashMap(); + redisMap.put(redisKey, orderCodeList); + redisCache.batchSetCacheList(redisMap, 300, TimeUnit.DAYS); + } }