From 172dd4dcdf895a376a2255dc26dd2ccdc034016b Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Fri, 10 Sep 2021 10:30:29 +0800 Subject: [PATCH] fix order --- .../controller/WxPayOrderController.java | 53 +++++++++++-------- .../iformall/service/impl/PosServiceImpl.java | 12 ++--- .../schedule/OrderExpiringSchedule.java | 2 +- .../impl/WxCouponOrderServiceImpl.java | 2 +- .../service/impl/WxPayOrderServiceImpl.java | 2 +- .../impl/WxRefundOrderServiceImpl.java | 7 ++- 6 files changed, 44 insertions(+), 34 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java index a7f6ee951..a466d30ad 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java @@ -144,12 +144,12 @@ public class WxPayOrderController extends BaseController { } } - @ApiOperation(value = "更新支付订单状态", notes = "{\"payOrderId\":\"string\",\"orderId\":\"string\",\"status\":integer,\"reason\":\"string\"}") + @ApiOperation(value = "更新支付订单状态", notes = "{\"payOrderId\":\"string\",\"composeOrderId\":\"string\",\"status\":integer,\"reason\":\"string\"}") @PostMapping("/updatePayOrder") public ResultData updatePayOrder(@RequestBody Map paramMap) { logger.info("/api/pay/updatePayOrder" + paramMap.toString()); String payOrderIdStr = (String) paramMap.get("payOrderId"); - String orderIdStr = (String) paramMap.get("orderId"); + String orderIdStr = (String) paramMap.get("composeOrderId"); String reasonStr = (String) paramMap.get("reason"); Integer status = (Integer) paramMap.get("status"); if (StringUtils.isBlank(orderIdStr)) { @@ -203,6 +203,8 @@ public class WxPayOrderController extends BaseController { WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(payOrder.getComposeOrder()).getComposeOrder(payOrder.getOrderId(), payOrder.getTenantId()); //查询微信订单状态并更新 + check(composeOrder,payOrder); + WxAppinfo appInfo = wxAppinfoService.getCAppInfo(payOrder, EnumPayWay.getEnum(payOrder.getPayVendor())); //WxCUser user = getUser(); //WxAppinfo appInfo = getAppInfo(user.getAppId()); @@ -235,32 +237,41 @@ public class WxPayOrderController extends BaseController { } } - private boolean check(Long orderId,WxOrder order,WxPayOrder payOrder) { - if (null == order) { - throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "未查询到Order["+orderId+"]."); - } - WxCoupon wxCoupon = wxCouponService.getById(order.getProductId(),order.getTenantId()); - if (null == wxCoupon) { - throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "未查询到优惠券[orderId:"+orderId+"]."); - } - - //拼团的订单,如果查询到是拼团待付款的,则重新查询是否已经真的支付,其他的直接返回订单信息 - if (wxPayOrderService.isOrderGroupCoupon(payOrder, wxCoupon)) { - if (!order.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode())) { - return true; - } - }else { - //非拼团的订单,支付成功,关闭订单,撤销支付订单,支付转退款的,直接返回订单信息,其他需要查询真实支付状态 - if (payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())|| + private boolean check(WxComposeOrder composeOrder,WxPayOrder payOrder) { + if (EnumComposeOrder.isSingle(composeOrder.getComposeOrderType())) { + WxOrder order = composeOrder.getSingleOrder(); + if (null == order) { + throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "未查询到Order["+payOrder.getOrderId()+"]."); + } + WxCoupon wxCoupon = wxCouponService.getById(order.getProductId(),order.getTenantId()); + if (null == wxCoupon) { + throw new MallinkException(ErrorCode.PAY_ORDER_ERROR.getCode(), "未查询到优惠券[orderId:"+payOrder.getOrderId()+"]."); + } + //拼团的订单,如果查询到是拼团待付款的,则重新查询是否已经真的支付,其他的直接返回订单信息 + if (wxPayOrderService.isOrderGroupCoupon(payOrder, wxCoupon)) { + if (!order.getOrderStatus().equals(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode())) { + return true; + } + }else { + //非拼团的订单,支付成功,关闭订单,撤销支付订单,支付转退款的,直接返回订单信息,其他需要查询真实支付状态 + if (payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())|| + payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_CLOSE.getCode())|| + payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REVERSE.getCode())|| + payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REFUND.getCode())) { + return true; + } + } + }else { + if (payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_SUCCESS.getCode())|| payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_CLOSE.getCode())|| payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REVERSE.getCode())|| payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REFUND.getCode())) { return true; } - } + } return false; } - + @ApiOperation("分页列表接口") @GetMapping("/list") @ApiImplicitParams({ diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index 7a7528522..f7dc8d16c 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -2099,7 +2099,7 @@ public class PosServiceImpl implements PosService { payOrder.setId(idWorker.nextId()); payOrder.updateTenantInfo(merchantBUser); payOrder.setCUserId(memId); - payOrder.setOrderId(order.getId()); + payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrder.setCreateTime(curDate); payOrder.setUpdateTime(curDate); payOrder.setPayTimeStart(curDate); @@ -2140,7 +2140,7 @@ public class PosServiceImpl implements PosService { Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String posPayOrderNo) { // 1. insert into PayOrder WxPayOrder payOrderQ = new WxPayOrder(); - payOrderQ.setOrderId(order.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrderQ.updateTenantInfo(merchantBUser); List payOrderList = payOrderMapper.findList(payOrderQ); WxPayOrder payOrder = null; @@ -2153,7 +2153,7 @@ public class PosServiceImpl implements PosService { payOrder.updateTenantInfo(merchantBUser); payOrder.setCUserId(memId); payOrder.setBUserId(merchantBUser.getId()); - payOrder.setOrderId(order.getId()); + payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrder.setCreateTime(curDate); payOrder.setUpdateTime(curDate); payOrder.setPayTimeStart(curDate); @@ -2238,7 +2238,7 @@ public class PosServiceImpl implements PosService { // 1. insert into PayOrder WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(buUser); - payOrderQ.setOrderId(order.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); List payOrderList = payOrderMapper.findList(payOrderQ); WxPayOrder payOrder = null; if (null == payOrderList || payOrderList.size()<=0) { @@ -2326,7 +2326,7 @@ public class PosServiceImpl implements PosService { payOrder.setTenantId(buUser.getTenantId()); payOrder.updateTenantInfo(buUser); payOrder.setCUserId(memId); - payOrder.setOrderId(order.getId()); + payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrder.setCreateTime(curDate); payOrder.setUpdateTime(curDate); payOrder.setPayTimeStart(curDate); @@ -2391,7 +2391,7 @@ public class PosServiceImpl implements PosService { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(refundOrder); payOrderQ.setCUserId(refundOrder.getCUserId()); - payOrderQ.setOrderId(refundOrder.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(refundOrder)); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); payOrderQ.setPosPayOrderId(posPayOrderId); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 2641b46be..0467fda8a 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -400,7 +400,7 @@ public class OrderExpiringSchedule { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(order); payOrderQ.setCUserId(order.getCUserId()); - payOrderQ.setOrderId(order.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); WxPayOrder payOrder = null; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index bb5c2a48c..43be6b2fe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -906,7 +906,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { WxPayOrder payOrder = null; WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(couponOrder); - payOrderQ.setOrderId(order.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); List payList = wxPayOrderMapper.selectList(new QueryWrapper(payOrderQ)); if (payList.size() > 0) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index f59d03a4c..afe771e79 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -1092,7 +1092,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); merchantSubsidy.setId(idWorker.nextId()); merchantSubsidy.updateTenantInfo(order); - merchantSubsidy.setOrderId(record.getOrderId()); + merchantSubsidy.setOrderId(order.getId()); merchantSubsidy.setOrderType(EnumOrderType.MICROPAY.getCode()); WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(order.getProductId()); merchantSubsidy.setMerchantId(wxMerchantBUser.getMerchantId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java index cf3a23df6..4706b67a6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -128,7 +128,6 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { logger.error("券ID不存在:" + couponOrderId); throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); } - WxOrder wxOrder = wxOrderMapper.selectById(wxCouponOrder.getOrderId(),wxCouponOrder.getTenantId()); if (wxOrder == null) { logger.error("订单ID不存在:" + couponOrderId); @@ -178,7 +177,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(wxCouponOrder); payOrderQ.setCUserId(wxOrder.getCUserId()); - payOrderQ.setOrderId(wxOrder.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); WxPayOrder payOrder = null; @@ -376,7 +375,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(wxOrder); payOrderQ.setCUserId(wxOrder.getCUserId()); - payOrderQ.setOrderId(wxOrder.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); WxPayOrder payOrder = null; @@ -598,7 +597,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(wxOrder); payOrderQ.setCUserId(wxOrder.getCUserId()); - payOrderQ.setOrderId(wxOrder.getId()); + payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); WxPayOrder payOrder = null;