diff --git a/hai-order/src/main/java/com/web/controller/OrderController.java b/hai-order/src/main/java/com/web/controller/OrderController.java index e23bba4f..bcc5b022 100644 --- a/hai-order/src/main/java/com/web/controller/OrderController.java +++ b/hai-order/src/main/java/com/web/controller/OrderController.java @@ -416,21 +416,6 @@ public class OrderController { } } - - @RequestMapping(value = "/getOrderDetail", method = RequestMethod.GET) - @ResponseBody - @ApiOperation(value = "查询订单详情") - public ResponseData getOrderDetail(@RequestParam(name = "orderNo", required = true) String orderNo) { - try { - - return ResponseMsgUtil.success(orderService.getOrderDetailByNo(orderNo)); - - } catch (Exception e) { - log.error("HighOrderController --> getOrderDetail() error!", e); - return ResponseMsgUtil.exception(e); - } - } - @RequestMapping(value="/getPopularizeUserOrderList",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "获取推广用户订单列表") diff --git a/hai-order/src/main/java/com/web/controller/OrderPayController.java b/hai-order/src/main/java/com/web/controller/OrderPayController.java index abefb50d..93896b50 100644 --- a/hai-order/src/main/java/com/web/controller/OrderPayController.java +++ b/hai-order/src/main/java/com/web/controller/OrderPayController.java @@ -103,7 +103,7 @@ public class OrderPayController { @Resource private OrderPayBeforeService orderPayBeforeService; - + @Resource private TradeService huiftTradeService; @Resource diff --git a/hai-order/src/main/java/com/web/controller/OrderPayNotifyController.java b/hai-order/src/main/java/com/web/controller/OrderPayNotifyController.java index 7f341026..53bcf113 100644 --- a/hai-order/src/main/java/com/web/controller/OrderPayNotifyController.java +++ b/hai-order/src/main/java/com/web/controller/OrderPayNotifyController.java @@ -150,7 +150,7 @@ public class OrderPayNotifyController { log.info("开始处理业务"); // 处理订单业务 paySuccessService.orderPaySuccessHandle(order.getOrderNo(), - OrderPayType.PAY_TYPE2, + OrderPayType.PAY_TYPE10, body.getString("orderNo"), order.getPayPrice(), null,null); diff --git a/hai-service/src/main/java/com/hai/order/service/impl/OrderRefundServiceImpl.java b/hai-service/src/main/java/com/hai/order/service/impl/OrderRefundServiceImpl.java index 1a5f6748..28d1411d 100644 --- a/hai-service/src/main/java/com/hai/order/service/impl/OrderRefundServiceImpl.java +++ b/hai-service/src/main/java/com/hai/order/service/impl/OrderRefundServiceImpl.java @@ -17,6 +17,7 @@ import com.hai.order.service.OrderRefundService; import com.hai.order.service.OrderService; import com.hai.order.type.*; import com.hai.order.utils.OrderUtil; +import com.hai.pay.channel.huift.TradeService; import com.hai.pay.channel.huipay.config.HuiConfig; import com.hai.service.HighFleetOilCardService; import com.hai.service.HighOilCardService; @@ -57,7 +58,8 @@ public class OrderRefundServiceImpl implements OrderRefundService { @Resource private ApiOrderService apiOrderService; - + @Resource + private TradeService huiftTradeService; @Resource private HuiConfig huiConfig; @@ -253,6 +255,12 @@ public class OrderRefundServiceImpl implements OrderRefundService { // 商户退款 apiOrderService.refund(order.getOrderNo()); refundPriceModel.setRefundSuccess(true); + + } else if (orderPayType.getNumber().equals(OrderPayType.PAY_TYPE10.getNumber())) { + // 商户退款 + JSONObject refundObj = huiftTradeService.thirdPayRefund(refundOrderNo, refundPrice, order.getOrderNo()); + refundPriceModel.setThirdPartyRefundOrderNo(refundObj.getString("refundOrderNo")); + refundPriceModel.setRefundSuccess(true); } } catch (Exception e) { diff --git a/hai-service/src/main/java/com/hai/order/type/OrderPayType.java b/hai-service/src/main/java/com/hai/order/type/OrderPayType.java index 02355404..dad004ed 100644 --- a/hai-service/src/main/java/com/hai/order/type/OrderPayType.java +++ b/hai-service/src/main/java/com/hai/order/type/OrderPayType.java @@ -18,6 +18,7 @@ public enum OrderPayType { PAY_TYPE7(7, "嗨森逛个人油卡"), PAY_TYPE8(8, "嗨森逛车队油卡"), PAY_TYPE9(9, "API商户金额"), + PAY_TYPE10(10, "快捷支付"), ; private Integer number; diff --git a/hai-service/src/main/java/com/hai/pay/channel/huift/TradeService.java b/hai-service/src/main/java/com/hai/pay/channel/huift/TradeService.java index dbeddf84..89e23a3d 100644 --- a/hai-service/src/main/java/com/hai/pay/channel/huift/TradeService.java +++ b/hai-service/src/main/java/com/hai/pay/channel/huift/TradeService.java @@ -8,6 +8,8 @@ import com.hai.common.utils.HttpsUtils; import com.hai.config.CommonSysConst; import com.hai.entity.HighOrder; import com.hai.entity.HighOrderRefund; +import com.hai.enum_type.OrderStatusEnum; +import com.hai.order.type.OrderPayType; import com.hai.pay.channel.huift.config.HuiftConfig; import com.hai.service.HighOrderService; import org.springframework.stereotype.Component; @@ -72,19 +74,32 @@ public class TradeService { /** * 交易退款 - * @param orderRefund + * @param refundOrderNo 退款订单号 + * @param refundPrice 退款金额 + * @param orderNo 订单号 * @return * @throws Exception */ - public JSONObject thirdPayRefund(HighOrderRefund orderRefund) throws Exception { + public JSONObject thirdPayRefund(String refundOrderNo, BigDecimal refundPrice, String orderNo) throws Exception { // 查询订单 - HighOrder order = orderService.getOrderById(orderRefund.getId()); + HighOrder order = orderService.getOrderByOrderNo(orderNo); + if (order == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的的订单"); + } + if (!order.getOrderStatus().equals(OrderStatusEnum.type2.getType()) + && !order.getOrderStatus().equals(OrderStatusEnum.type3.getType()) + && !order.getOrderStatus().equals(OrderStatusEnum.type7.getType())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单当前状态无法退款"); + } + if (!order.getPayType().equals(OrderPayType.PAY_TYPE10.getNumber())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "支付方式错误"); + } Map param = new HashMap<>(); param.put("shopCode", HuiftConfig.shopcode); param.put("preOrderNo", order.getPayChannelOrderNo()); - param.put("outRefundNo", orderRefund.getRefundOrderNo()); - param.put("refundAmt", orderRefund.getRefundPrice().multiply(new BigDecimal("100")).intValue()); + param.put("outRefundNo", refundOrderNo); + param.put("refundAmt", refundPrice.multiply(new BigDecimal("100")).intValue()); param.put("sign", HuiftConfig.md5Encode(HuiftConfig.paramSort(param, HuiftConfig.signSecret).getBytes()).toLowerCase()); JSONObject response = HttpsUtils.doPost(HuiftConfig.reqUrl + "/hfq/v1/thirdPay/thirdPayRefund", JSONObject.toJSONString(param)); if (response.getString("status").equals("ok")) {