diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/OrderController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/OrderController.java index 89575bd42..f992eb751 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/OrderController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/OrderController.java @@ -222,8 +222,11 @@ public class OrderController extends BaseController { RestApiResponse response = null; try { // String memberId = getMemberIdByAuthorization(request); - String status = orderService.selectPileStarterStatus(dto.getOrderCode()); - response = new RestApiResponse<>(ImmutableMap.of("status", status)); + Map map = orderService.selectPileStarterStatus(dto.getOrderCode()); + response = new RestApiResponse<>(map); + } catch (BusinessException e) { + logger.error("根据订单号查询充电桩启动状态 error", e); + response = new RestApiResponse<>(e.getCode(), e.getMessage()); } catch (Exception e) { logger.error("根据订单号查询充电桩启动状态 error", e); response = new RestApiResponse<>(ReturnCodeEnum.CODE_GET_ORDER_DETAIL_ERROR); diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 4c295afc3..7c261bf61 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.huifu.adapay.core.AdapayCore; import com.huifu.adapay.core.util.AdapaySign; @@ -622,17 +623,34 @@ public class OrderService { /** * 根据订单号查询充电桩启动状态 * - * @param orderCode - * @return + * @param orderCode 订单编号 + * @return 0: 未启动,1: 启动成功,2: 启动失败 */ - public String selectPileStarterStatus(String orderCode) { - OrderBasicInfo orderInfoByOrderCode = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); - if (orderInfoByOrderCode == null) { - return Constants.ZERO; + public Map selectPileStarterStatus(String orderCode) { + OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + if (orderInfo == null) { + throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_INFO_IS_NULL); } - List chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderInfoByOrderCode.getTransactionCode()); - // 只有充电桩上传的实时数据中的状态为充电,才能查到实时数据列表 - return CollectionUtils.isNotEmpty(chargingRealTimeData) ? Constants.ONE : Constants.ZERO; + String status = Constants.ZERO; + String reason = null; + + // 如果是订单完成状态 + if (StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) { + status = Constants.TWO; + reason = orderInfo.getReason(); + } else { + // 查询订单的实时监测数据 + List chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderInfo.getTransactionCode()); + if (CollectionUtils.isNotEmpty(chargingRealTimeData)) { + // 实时监测数据不为空说明已经在充电中了 + status = Constants.ONE; + } + } + + Map resultMap = Maps.newHashMap(); + resultMap.put("status", status); + resultMap.put("reason", reason); + return resultMap; } /** diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 5f75d8eba..f1d00a941 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -491,7 +491,6 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .flatUsedElectricity(Constants.ZERO) .valleyUsedElectricity(Constants.ZERO) .build(); - // settleOrder(data, orderInfo); // 新逻辑 try { @@ -499,7 +498,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode); orderLogic.settleOrder(data, orderInfo); } catch (Exception e) { - logger.error("充电桩启动失败,执行退款逻辑发生异常", e); + logger.error("启动失败退款, orderCode:{}, 执行订单结算逻辑发生异常", orderInfo.getOrderCode(), e); } }