| @@ -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") | @PostMapping("/updatePayOrder") | ||||
| public ResultData updatePayOrder(@RequestBody Map<String, Object> paramMap) { | public ResultData updatePayOrder(@RequestBody Map<String, Object> paramMap) { | ||||
| logger.info("/api/pay/updatePayOrder" + paramMap.toString()); | logger.info("/api/pay/updatePayOrder" + paramMap.toString()); | ||||
| String payOrderIdStr = (String) paramMap.get("payOrderId"); | String payOrderIdStr = (String) paramMap.get("payOrderId"); | ||||
| String orderIdStr = (String) paramMap.get("orderId"); | |||||
| String orderIdStr = (String) paramMap.get("composeOrderId"); | |||||
| String reasonStr = (String) paramMap.get("reason"); | String reasonStr = (String) paramMap.get("reason"); | ||||
| Integer status = (Integer) paramMap.get("status"); | Integer status = (Integer) paramMap.get("status"); | ||||
| if (StringUtils.isBlank(orderIdStr)) { | if (StringUtils.isBlank(orderIdStr)) { | ||||
| @@ -203,6 +203,8 @@ public class WxPayOrderController extends BaseController { | |||||
| WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(payOrder.getComposeOrder()).getComposeOrder(payOrder.getOrderId(), payOrder.getTenantId()); | WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(payOrder.getComposeOrder()).getComposeOrder(payOrder.getOrderId(), payOrder.getTenantId()); | ||||
| //查询微信订单状态并更新 | //查询微信订单状态并更新 | ||||
| check(composeOrder,payOrder); | |||||
| WxAppinfo appInfo = wxAppinfoService.getCAppInfo(payOrder, EnumPayWay.getEnum(payOrder.getPayVendor())); | WxAppinfo appInfo = wxAppinfoService.getCAppInfo(payOrder, EnumPayWay.getEnum(payOrder.getPayVendor())); | ||||
| //WxCUser user = getUser(); | //WxCUser user = getUser(); | ||||
| //WxAppinfo appInfo = getAppInfo(user.getAppId()); | //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_CLOSE.getCode())|| | ||||
| payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REVERSE.getCode())|| | payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REVERSE.getCode())|| | ||||
| payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REFUND.getCode())) { | payOrder.getPayOrderStatus().equals(EnumPayStatus.PAY_STATUS_REFUND.getCode())) { | ||||
| return true; | return true; | ||||
| } | } | ||||
| } | |||||
| } | |||||
| return false; | return false; | ||||
| } | } | ||||
| @ApiOperation("分页列表接口") | @ApiOperation("分页列表接口") | ||||
| @GetMapping("/list") | @GetMapping("/list") | ||||
| @ApiImplicitParams({ | @ApiImplicitParams({ | ||||
| @@ -2099,7 +2099,7 @@ public class PosServiceImpl implements PosService { | |||||
| payOrder.setId(idWorker.nextId()); | payOrder.setId(idWorker.nextId()); | ||||
| payOrder.updateTenantInfo(merchantBUser); | payOrder.updateTenantInfo(merchantBUser); | ||||
| payOrder.setCUserId(memId); | payOrder.setCUserId(memId); | ||||
| payOrder.setOrderId(order.getId()); | |||||
| payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); | |||||
| payOrder.setCreateTime(curDate); | payOrder.setCreateTime(curDate); | ||||
| payOrder.setUpdateTime(curDate); | payOrder.setUpdateTime(curDate); | ||||
| payOrder.setPayTimeStart(curDate); | payOrder.setPayTimeStart(curDate); | ||||
| @@ -2140,7 +2140,7 @@ public class PosServiceImpl implements PosService { | |||||
| Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String posPayOrderNo) { | Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String posPayOrderNo) { | ||||
| // 1. insert into PayOrder | // 1. insert into PayOrder | ||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.setOrderId(order.getId()); | |||||
| payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); | |||||
| payOrderQ.updateTenantInfo(merchantBUser); | payOrderQ.updateTenantInfo(merchantBUser); | ||||
| List<WxPayOrder> payOrderList = payOrderMapper.findList(payOrderQ); | List<WxPayOrder> payOrderList = payOrderMapper.findList(payOrderQ); | ||||
| WxPayOrder payOrder = null; | WxPayOrder payOrder = null; | ||||
| @@ -2153,7 +2153,7 @@ public class PosServiceImpl implements PosService { | |||||
| payOrder.updateTenantInfo(merchantBUser); | payOrder.updateTenantInfo(merchantBUser); | ||||
| payOrder.setCUserId(memId); | payOrder.setCUserId(memId); | ||||
| payOrder.setBUserId(merchantBUser.getId()); | payOrder.setBUserId(merchantBUser.getId()); | ||||
| payOrder.setOrderId(order.getId()); | |||||
| payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); | |||||
| payOrder.setCreateTime(curDate); | payOrder.setCreateTime(curDate); | ||||
| payOrder.setUpdateTime(curDate); | payOrder.setUpdateTime(curDate); | ||||
| payOrder.setPayTimeStart(curDate); | payOrder.setPayTimeStart(curDate); | ||||
| @@ -2238,7 +2238,7 @@ public class PosServiceImpl implements PosService { | |||||
| // 1. insert into PayOrder | // 1. insert into PayOrder | ||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.updateTenantInfo(buUser); | payOrderQ.updateTenantInfo(buUser); | ||||
| payOrderQ.setOrderId(order.getId()); | |||||
| payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); | |||||
| List<WxPayOrder> payOrderList = payOrderMapper.findList(payOrderQ); | List<WxPayOrder> payOrderList = payOrderMapper.findList(payOrderQ); | ||||
| WxPayOrder payOrder = null; | WxPayOrder payOrder = null; | ||||
| if (null == payOrderList || payOrderList.size()<=0) { | if (null == payOrderList || payOrderList.size()<=0) { | ||||
| @@ -2326,7 +2326,7 @@ public class PosServiceImpl implements PosService { | |||||
| payOrder.setTenantId(buUser.getTenantId()); | payOrder.setTenantId(buUser.getTenantId()); | ||||
| payOrder.updateTenantInfo(buUser); | payOrder.updateTenantInfo(buUser); | ||||
| payOrder.setCUserId(memId); | payOrder.setCUserId(memId); | ||||
| payOrder.setOrderId(order.getId()); | |||||
| payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); | |||||
| payOrder.setCreateTime(curDate); | payOrder.setCreateTime(curDate); | ||||
| payOrder.setUpdateTime(curDate); | payOrder.setUpdateTime(curDate); | ||||
| payOrder.setPayTimeStart(curDate); | payOrder.setPayTimeStart(curDate); | ||||
| @@ -2391,7 +2391,7 @@ public class PosServiceImpl implements PosService { | |||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.updateTenantInfo(refundOrder); | payOrderQ.updateTenantInfo(refundOrder); | ||||
| payOrderQ.setCUserId(refundOrder.getCUserId()); | payOrderQ.setCUserId(refundOrder.getCUserId()); | ||||
| payOrderQ.setOrderId(refundOrder.getId()); | |||||
| payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(refundOrder)); | |||||
| payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | ||||
| payOrderQ.setPosPayOrderId(posPayOrderId); | payOrderQ.setPosPayOrderId(posPayOrderId); | ||||
| @@ -400,7 +400,7 @@ public class OrderExpiringSchedule { | |||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.updateTenantInfo(order); | payOrderQ.updateTenantInfo(order); | ||||
| payOrderQ.setCUserId(order.getCUserId()); | payOrderQ.setCUserId(order.getCUserId()); | ||||
| payOrderQ.setOrderId(order.getId()); | |||||
| payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); | |||||
| //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | ||||
| WxPayOrder payOrder = null; | WxPayOrder payOrder = null; | ||||
| @@ -906,7 +906,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| WxPayOrder payOrder = null; | WxPayOrder payOrder = null; | ||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.updateTenantInfo(couponOrder); | payOrderQ.updateTenantInfo(couponOrder); | ||||
| payOrderQ.setOrderId(order.getId()); | |||||
| payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); | |||||
| payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | ||||
| List<WxPayOrder> payList = wxPayOrderMapper.selectList(new QueryWrapper(payOrderQ)); | List<WxPayOrder> payList = wxPayOrderMapper.selectList(new QueryWrapper(payOrderQ)); | ||||
| if (payList.size() > 0) { | if (payList.size() > 0) { | ||||
| @@ -1092,7 +1092,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); | WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); | ||||
| merchantSubsidy.setId(idWorker.nextId()); | merchantSubsidy.setId(idWorker.nextId()); | ||||
| merchantSubsidy.updateTenantInfo(order); | merchantSubsidy.updateTenantInfo(order); | ||||
| merchantSubsidy.setOrderId(record.getOrderId()); | |||||
| merchantSubsidy.setOrderId(order.getId()); | |||||
| merchantSubsidy.setOrderType(EnumOrderType.MICROPAY.getCode()); | merchantSubsidy.setOrderType(EnumOrderType.MICROPAY.getCode()); | ||||
| WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(order.getProductId()); | WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(order.getProductId()); | ||||
| merchantSubsidy.setMerchantId(wxMerchantBUser.getMerchantId()); | merchantSubsidy.setMerchantId(wxMerchantBUser.getMerchantId()); | ||||
| @@ -128,7 +128,6 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { | |||||
| logger.error("券ID不存在:" + couponOrderId); | logger.error("券ID不存在:" + couponOrderId); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); | ||||
| } | } | ||||
| WxOrder wxOrder = wxOrderMapper.selectById(wxCouponOrder.getOrderId(),wxCouponOrder.getTenantId()); | WxOrder wxOrder = wxOrderMapper.selectById(wxCouponOrder.getOrderId(),wxCouponOrder.getTenantId()); | ||||
| if (wxOrder == null) { | if (wxOrder == null) { | ||||
| logger.error("订单ID不存在:" + couponOrderId); | logger.error("订单ID不存在:" + couponOrderId); | ||||
| @@ -178,7 +177,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { | |||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.updateTenantInfo(wxCouponOrder); | payOrderQ.updateTenantInfo(wxCouponOrder); | ||||
| payOrderQ.setCUserId(wxOrder.getCUserId()); | payOrderQ.setCUserId(wxOrder.getCUserId()); | ||||
| payOrderQ.setOrderId(wxOrder.getId()); | |||||
| payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); | |||||
| payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | ||||
| WxPayOrder payOrder = null; | WxPayOrder payOrder = null; | ||||
| @@ -376,7 +375,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { | |||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.updateTenantInfo(wxOrder); | payOrderQ.updateTenantInfo(wxOrder); | ||||
| payOrderQ.setCUserId(wxOrder.getCUserId()); | payOrderQ.setCUserId(wxOrder.getCUserId()); | ||||
| payOrderQ.setOrderId(wxOrder.getId()); | |||||
| payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); | |||||
| payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | ||||
| WxPayOrder payOrder = null; | WxPayOrder payOrder = null; | ||||
| @@ -598,7 +597,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { | |||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.updateTenantInfo(wxOrder); | payOrderQ.updateTenantInfo(wxOrder); | ||||
| payOrderQ.setCUserId(wxOrder.getCUserId()); | payOrderQ.setCUserId(wxOrder.getCUserId()); | ||||
| payOrderQ.setOrderId(wxOrder.getId()); | |||||
| payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); | |||||
| //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); | ||||
| WxPayOrder payOrder = null; | WxPayOrder payOrder = null; | ||||