diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/JumpController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/JumpController.java index 1adaf651b..2b3cae734 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/JumpController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/JumpController.java @@ -121,4 +121,26 @@ public class JumpController extends BaseController { return response; } + /** + * 临时订单退款 + * http://localhost:8080/app-xcx-h5/tempOrderRefund + * @return + */ + @GetMapping("tempOrderRefund") + public RestApiResponse tempOrderRefund() { + RestApiResponse response = null; + try { + orderBasicInfoService.tempOrderRefund(); + response = new RestApiResponse<>(); + } catch (BusinessException e) { + logger.warn("临时订单退款接口 warn", e); + response = new RestApiResponse<>(e.getCode(), e.getMessage()); + } catch (Exception e) { + logger.error("临时订单退款接口 error", e); + response = new RestApiResponse<>(ReturnCodeEnum.CODE_WEIXIN_REFUND_ERROR); + } + logger.info("临时刷数据接口 result:{}", JSONObject.toJSONString(response)); + return response; + } + } 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 56816bddb..af0c47caa 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -833,13 +833,9 @@ public class OrderService { // 监控信息 OrderDetailInfoVO.OrderRealTimeInfo realTimeInfo = new OrderDetailInfoVO.OrderRealTimeInfo(); - RealTimeMonitorData realTimeMonitorData = chargingRealTimeDataList.get(0); realTimeInfo.setOrderAmount(realTimeMonitorData.getChargingAmount()); - // realTimeInfo.setTotalElectricityAmount(); - // realTimeInfo.setTotalServiceAmount(); realTimeInfo.setChargedDegree(realTimeMonitorData.getChargingDegree()); - // realTimeInfo.setSOC(realTimeMonitorData.getSOC()); realTimeInfo.setChargingTime(realTimeMonitorData.getSumChargingTime()); vo.setOrderRealTimeInfo(realTimeInfo); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java index 88f74bbc2..a8cb42f1f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java @@ -208,4 +208,6 @@ public interface OrderBasicInfoMapper { int batchUpdateOrderDetail(@Param("list") List orderDetailList); List getOrderDetailList(List orderCodes); + + List tempQueryWeChatRefundOrders(@Param("startTime") String startTime, @Param("endTime") String endTime); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/WxpayRefundCallbackMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/WxpayRefundCallbackMapper.java index 50bd19a41..687f96c7e 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/WxpayRefundCallbackMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/WxpayRefundCallbackMapper.java @@ -1,6 +1,7 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.WxpayRefundCallback; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,4 +19,6 @@ public interface WxpayRefundCallbackMapper { // int updateByPrimaryKey(WxpayRefundCallback record); List selectWxpayRefundCallbackList(List outTradeNoList); + + List selectByOrderCodeList(@Param("orderCodes") List orderCodeList); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index e2aa98980..ac92a06bc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -132,7 +132,9 @@ public interface IOrderBasicInfoService { List getListByMemberIdAndOrderStatus(String memberId, List orderStatusList, LocalDateTime dateTime, String stationId); - void realTimeMonitorDataRedis2DB(String transactionCode, String orderCode); + void tempOrderRefund(); + + void realTimeMonitorDataRedis2DB(String transactionCode, String orderCode); void updateElecAmount(); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/WxpayRefundCallbackService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/WxpayRefundCallbackService.java index 2986282a6..a78c629f8 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/WxpayRefundCallbackService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/WxpayRefundCallbackService.java @@ -16,4 +16,6 @@ public interface WxpayRefundCallbackService { // int updateByPrimaryKey(WxpayRefundCallback record); List selectWxpayRefundCallbackList(List outTradeNoList); + + List selectByOrderCodeList(List orderCodeList); } 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 37f743cb8..42b2304ab 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 @@ -7,6 +7,7 @@ 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.exception.BaseAdaPayException; import com.huifu.adapay.model.Refund; import com.jsowell.common.constant.CacheConstants; @@ -776,8 +777,39 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { } // TODO 推送停止充电结果 notification_stop_charge_result + } + /** + * 临时订单退款 + */ + @Override + public void tempOrderRefund() { + // 查询出2023-05-29 12:00:00到2023-05-30 23:59:59中使用微信支付,并且有退款金额的订单 + String startTime = "2023-05-29 12:00:00"; + String endTime = "2023-05-30 23:59:59"; + List orderList = orderBasicInfoMapper.tempQueryWeChatRefundOrders(startTime, endTime); + Map orderBasicInfoMap = orderList.stream().collect(Collectors.toMap(OrderBasicInfo::getOrderCode, Function.identity(), (k1, k2) -> k1)); + Set orderCodes = orderBasicInfoMap.keySet(); + // 根据上面的订单号,查微信退款回调,找出没有记录的订单,重新发起一遍退款 + List wxpayRefundCallbacks = wxpayRefundCallbackService.selectByOrderCodeList(Lists.newArrayList(orderCodes)); + Set refundOrders = wxpayRefundCallbacks.stream().map(WxpayRefundCallback::getOrderCode).collect(Collectors.toSet()); + + // orderCodeList refundOrders 取差集 + Sets.SetView difference = Sets.difference(orderCodes, refundOrders); + for (String orderCode : difference) { + OrderBasicInfo orderBasicInfo = orderBasicInfoMap.get(orderCode); + if (orderBasicInfo == null) { + continue; + } + BigDecimal refundAmount = orderBasicInfo.getRefundAmount(); + // 微信退款逻辑 + WeChatRefundDTO weChatRefundDTO = new WeChatRefundDTO(); + weChatRefundDTO.setOrderCode(orderBasicInfo.getOrderCode()); + weChatRefundDTO.setRefundType("1"); + weChatRefundDTO.setRefundAmount(refundAmount); + this.weChatRefund(weChatRefundDTO); + } } /** diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WxpayRefundCallbackServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WxpayRefundCallbackServiceImpl.java index f79b57da0..9141e9a3e 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WxpayRefundCallbackServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WxpayRefundCallbackServiceImpl.java @@ -1,8 +1,10 @@ package com.jsowell.pile.service.impl; +import com.google.common.collect.Lists; import com.jsowell.pile.domain.WxpayRefundCallback; import com.jsowell.pile.mapper.WxpayRefundCallbackMapper; import com.jsowell.pile.service.WxpayRefundCallbackService; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -29,6 +31,14 @@ public class WxpayRefundCallbackServiceImpl implements WxpayRefundCallbackServic return wxpayRefundCallbackMapper.selectWxpayRefundCallbackList(outTradeNoList); } + @Override + public List selectByOrderCodeList(List orderCodeList) { + if (CollectionUtils.isEmpty(orderCodeList)) { + return Lists.newArrayList(); + } + return wxpayRefundCallbackMapper.selectByOrderCodeList(orderCodeList); + } + // @Override // public WxpayRefundCallback selectByPrimaryKey(Integer id) { // return wxpayRefundCallbackMapper.selectByPrimaryKey(id); diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index e6269c04d..83c0ad9df 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -184,7 +184,7 @@ left join member_basic_info t2 on t1.member_id = t2.member_id join pile_station_info t3 on t1.station_id = t3.id join order_detail t4 on t4.order_code = t1.order_code - join member_transaction_record t5 on t5.order_code = t1.order_code + join member_transaction_record t5 on t5.order_code = t1.order_code and action_type = 'forward' where t1.del_flag = '0' and t1.pile_sn = #{pileSn,jdbcType=VARCHAR} @@ -1019,4 +1019,13 @@ #{item,jdbcType=VARCHAR} + \ No newline at end of file diff --git a/jsowell-pile/src/main/resources/mapper/pile/WxpayRefundCallbackMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/WxpayRefundCallbackMapper.xml index fac55e0f6..e41db25ae 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/WxpayRefundCallbackMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/WxpayRefundCallbackMapper.xml @@ -234,4 +234,13 @@ #{item,jdbcType=VARCHAR} + \ No newline at end of file diff --git a/jsowell-ui/src/views/order/order/orderDetail.vue b/jsowell-ui/src/views/order/order/orderDetail.vue index 7093614a1..773dcfe19 100644 --- a/jsowell-ui/src/views/order/order/orderDetail.vue +++ b/jsowell-ui/src/views/order/order/orderDetail.vue @@ -173,6 +173,25 @@
+ + +

退款信息

+ + + + + + + + + +
+
+

设备信息