diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index 5131272a6..fb7e00639 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -108,7 +108,7 @@ public class WxMicroPayController extends BaseController { WxPayOrder record = new WxPayOrder(); record.updateTenantInfo(user); - record.setOrderId(EnumComposeOrder.getPayOrderId(order)); + record.setOrderId(order.getComposeOrderId()); record.setAuthCode(authCode); record.setPayAmount(order.getPayment()); record.setIp(ipStr); 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 5d2723063..08a834d67 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -59,6 +59,7 @@ public class PosServiceImpl implements PosService { private final WxCouponMerchantMapper couponMerchantMapper; private final WxCouponMapper couponMapper; private final WxMerchantMapper merchantMapper; + private final WxBatchOrderMapper wxBatchOrderMapper; /** @@ -2037,50 +2038,50 @@ public class PosServiceImpl implements PosService { } } - /** - * 支付订单-会员折扣 - * @param merchantBUser - * @param order - * @param memId - * @param posPayOrderId - * @param neuPaymentAmount - * @param neuPosPayOrderTime - */ - public WxPayOrder payOrderFromMemDiscount( - WxMerchantBUser merchantBUser, - WxOrder order, Long memId, - Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime) { - Date curDate = new Date(); - final IdWorker idWorker = IdWorker.get(); - - WxPayOrder payOrder = new WxPayOrder(); - payOrder.setId(idWorker.nextId()); - payOrder.updateTenantInfo(merchantBUser); - payOrder.setCUserId(memId); - payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); - payOrder.setCreateTime(curDate); - payOrder.setUpdateTime(curDate); - payOrder.setPayTimeStart(curDate); - payOrder.setPayTimeEnd(curDate); - payOrder.setPayOrderNo(String.valueOf(payOrder.getId())); - payOrder.setPayAmount(neuPaymentAmount); - payOrder.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); - payOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); - payOrder.setShare(EnumPayShare.NO.getCode()); - payOrder.setPosPayOrderId(posPayOrderId); - payOrder.setPosPayOrderTime(neuPosPayOrderTime.getTime()); - /// TODO - /// setPosPaymentType(EnumNeuPosPamentType.MEM_DISCOUNT.getCode()); - payOrder.setPosPayDes("POS会员折扣支付"); - - int sqlRow = payOrderMapper.insert(payOrder); - if (sqlRow != 1) { - logger.error("pay order insert error: " + payOrder.toString()); - throw new MallinkException(ErrorCode.DB_FAIL); - } - return payOrder; - - } +// /** +// * 支付订单-会员折扣 +// * @param merchantBUser +// * @param order +// * @param memId +// * @param posPayOrderId +// * @param neuPaymentAmount +// * @param neuPosPayOrderTime +// */ +// public WxPayOrder payOrderFromMemDiscount( +// WxMerchantBUser merchantBUser, +// WxOrder order, Long memId, +// Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime) { +// Date curDate = new Date(); +// final IdWorker idWorker = IdWorker.get(); +// +// WxPayOrder payOrder = new WxPayOrder(); +// payOrder.setId(idWorker.nextId()); +// payOrder.updateTenantInfo(merchantBUser); +// payOrder.setCUserId(memId); +// payOrder.setOrderId(order.getComposeOrderId()); +// payOrder.setCreateTime(curDate); +// payOrder.setUpdateTime(curDate); +// payOrder.setPayTimeStart(curDate); +// payOrder.setPayTimeEnd(curDate); +// payOrder.setPayOrderNo(String.valueOf(payOrder.getId())); +// payOrder.setPayAmount(neuPaymentAmount); +// payOrder.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); +// payOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); +// payOrder.setShare(EnumPayShare.NO.getCode()); +// payOrder.setPosPayOrderId(posPayOrderId); +// payOrder.setPosPayOrderTime(neuPosPayOrderTime.getTime()); +// /// TODO +// /// setPosPaymentType(EnumNeuPosPamentType.MEM_DISCOUNT.getCode()); +// payOrder.setPosPayDes("POS会员折扣支付"); +// +// int sqlRow = payOrderMapper.insert(payOrder); +// if (sqlRow != 1) { +// logger.error("pay order insert error: " + payOrder.toString()); +// throw new MallinkException(ErrorCode.DB_FAIL); +// } +// return payOrder; +// +// } /** * 支付订单-优惠券 @@ -2098,7 +2099,7 @@ public class PosServiceImpl implements PosService { Long posPayOrderId, Integer neuPaymentAmount, Date neuPosPayOrderTime, String posPayOrderNo) { // 1. insert into PayOrder WxPayOrder payOrderQ = new WxPayOrder(); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrderQ.setOrderId(order.getComposeOrderId()); payOrderQ.updateTenantInfo(merchantBUser); List payOrderList = payOrderMapper.findList(payOrderQ); WxPayOrder payOrder = null; @@ -2111,7 +2112,7 @@ public class PosServiceImpl implements PosService { payOrder.updateTenantInfo(merchantBUser); payOrder.setCUserId(memId); payOrder.setBUserId(merchantBUser.getId()); - payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrder.setOrderId(order.getComposeOrderId()); payOrder.setCreateTime(curDate); payOrder.setUpdateTime(curDate); payOrder.setPayTimeStart(curDate); @@ -2197,7 +2198,7 @@ public class PosServiceImpl implements PosService { // 1. insert into PayOrder WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(buUser); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrderQ.setOrderId(order.getComposeOrderId()); List payOrderList = payOrderMapper.findList(payOrderQ); WxPayOrder payOrder = null; if (null == payOrderList || payOrderList.size()<=0) { @@ -2210,7 +2211,7 @@ public class PosServiceImpl implements PosService { payOrder.updateTenantInfo(buUser); payOrder.setCUserId(memId); payOrder.setBUserId(buUser.getId()); - payOrder.setOrderId(order.getId()); + payOrder.setOrderId(order.getComposeOrderId()); payOrder.setCreateTime(curDate); payOrder.setUpdateTime(curDate); payOrder.setPayTimeStart(curDate); @@ -2273,7 +2274,7 @@ public class PosServiceImpl implements PosService { // 1. insert into PayOrder WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(buUser); - payOrderQ.setOrderId(order.getId()); + payOrderQ.setOrderId(order.getComposeOrderId()); List payOrderList = payOrderMapper.findList(payOrderQ); WxPayOrder payOrder = null; if (null == payOrderList || payOrderList.size()<=0) { @@ -2285,7 +2286,7 @@ public class PosServiceImpl implements PosService { payOrder.setTenantId(buUser.getTenantId()); payOrder.updateTenantInfo(buUser); payOrder.setCUserId(memId); - payOrder.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrder.setOrderId(order.getComposeOrderId()); payOrder.setCreateTime(curDate); payOrder.setUpdateTime(curDate); payOrder.setPayTimeStart(curDate); @@ -2350,7 +2351,7 @@ public class PosServiceImpl implements PosService { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(refundOrder); payOrderQ.setCUserId(refundOrder.getCUserId()); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(refundOrder)); + payOrderQ.setOrderId(refundOrder.getComposeOrderId()); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); payOrderQ.setPosPayOrderId(posPayOrderId); @@ -2374,7 +2375,7 @@ public class PosServiceImpl implements PosService { refundPayOrder.setTenantId(buUser.getTenantId()); refundPayOrder.updateTenantInfo(buUser); refundPayOrder.setCUserId(memId); - refundPayOrder.setOrderId(refundOrder.getId()); + refundPayOrder.setOrderId(refundOrder.getComposeOrderId()); refundPayOrder.setCreateTime(curDate); refundPayOrder.setUpdateTime(curDate); refundPayOrder.setRefundTimeStart(curDate); @@ -2434,6 +2435,17 @@ public class PosServiceImpl implements PosService { throw new MallinkException(ErrorCode.POS_ORDER_HAD_SYNCED); } final IdWorker idWorker = IdWorker.get(); + + WxBatchOrder border =new WxBatchOrder(); + border.setId(idWorker.nextId()); + border.setCUserId(memId); + border.updateTenantInfo(merchantBUser); + border.setPayment(posAmount); + border.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); + border.setOrderType(EnumComposeOrder.SINGLE.getCode()); + border.setCreateDate(new Date()); + wxBatchOrderMapper.insert(border); + Long orderId = idWorker.nextId(); WxOrder order = new WxOrder(); @@ -2455,7 +2467,7 @@ public class PosServiceImpl implements PosService { order.setPosOrderId(posOrderId); order.setPosOrderCreateTime(posOrderTime.getTime()); order.setPosOrderCreateSn(orderCreateSn); - order.setComposeOrderId(0L); + order.setComposeOrderId(border.getId()); order.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); order.setCouponNumber(1); try { @@ -2518,6 +2530,19 @@ public class PosServiceImpl implements PosService { // 3. 创建退款订单 final IdWorker idWorker = IdWorker.get(); + + + WxBatchOrder border =new WxBatchOrder(); + border.setId(idWorker.nextId()); + border.setCUserId(memId); + border.updateTenantInfo(buUser); + border.setPayment(orderAmount); + border.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); + border.setOrderType(EnumComposeOrder.SINGLE.getCode()); + border.setCreateDate(new Date()); + wxBatchOrderMapper.insert(border); + + Long orderId = idWorker.nextId(); WxOrder order = new WxOrder(); @@ -2539,7 +2564,7 @@ public class PosServiceImpl implements PosService { order.setPosOrderCreateTime(posOrderTime.getTime()); order.setPosOrderCreateSn(orderCreateSn); order.setOrderNumber(orderQ.getOrderNumber()); - order.setComposeOrderId(0L); + order.setComposeOrderId(border.getId()); order.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); order.setCouponNumber(1); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 4a978797d..4d85259b4 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -280,7 +280,7 @@ public class OrderExpiringSchedule { public boolean wxPaySuccess(WxOrder order,boolean autoReHandle,EnumPayWay payWay) throws MallinkException, Exception { WxPayOrder payOrderq = new WxPayOrder(); - payOrderq.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrderq.setOrderId(order.getComposeOrderId()); payOrderq.setTenantId(order.getTenantId()); List payorderlist = wxPayOrderMapper.findList(payOrderq); if (null == payorderlist || payorderlist.size() <=0 ) { @@ -422,7 +422,7 @@ public class OrderExpiringSchedule { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(order); payOrderQ.setCUserId(order.getCUserId()); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrderQ.setOrderId(order.getComposeOrderId()); //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); WxPayOrder payOrder = null; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumComposeOrder.java b/mallinkService/src/main/java/com/iformall/enums/EnumComposeOrder.java index 929d65cf4..e843c8ede 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumComposeOrder.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumComposeOrder.java @@ -38,14 +38,6 @@ public enum EnumComposeOrder { return message; } - public static Long getPayOrderId(WxOrder order) { - if (order.getComposeOrderType().intValue() == SINGLE.getCode().intValue()) { - return order.getId(); - }else { - return order.getComposeOrderId(); - } - } - //是单个支付还是组合支付 public static boolean isSingle(Integer type) { if (type.intValue() == SINGLE.getCode().intValue()) { 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 f4c42460b..838861604 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1944,7 +1944,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { WxPayOrder payOrder = null; WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(couponOrder); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrderQ.setOrderId(order.getComposeOrderId()); 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/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 44bf26953..cec74796b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -876,6 +876,19 @@ public class WxOrderServiceImpl implements WxOrderService { int payment = totalFee.multiply(new BigDecimal(100)).intValue(); final IdWorker idWorker = IdWorker.get(); + + WxBatchOrder order =new WxBatchOrder(); + order.setId(idWorker.nextId()); + order.setCUserId(user.getId()); + order.updateTenantInfo(wxMerchant); + order.setPayment(payment); + order.setPayVendor(payWay.getCode()); + order.setOrderType(EnumComposeOrder.SINGLE.getCode()); + order.setCreateDate(new Date()); + wxBatchOrderMapper.insert(order); + + + Long orderNumber = idWorker.nextId(); // body @@ -895,9 +908,10 @@ public class WxOrderServiceImpl implements WxOrderService { record.setDetail(bodyStr); record.setCreateDate(curr); record.setUpdateDate(curr); - record.setComposeOrderId(0L); + record.setComposeOrderId(order.getId()); record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); record.setCouponNumber(1); + try { // 保存订单 @@ -934,6 +948,19 @@ public class WxOrderServiceImpl implements WxOrderService { Date curr = new Date(); final IdWorker idWorker = IdWorker.get(); + + WxBatchOrder order =new WxBatchOrder(); + order.setId(idWorker.nextId()); + order.setCUserId(user.getId()); + order.updateTenantInfo(wxMerchant); + order.setPayment(payment); + order.setPayVendor(EnumPayWay.PAY_WAY_WECHAT_MA.getCode()); + order.setOrderType(EnumComposeOrder.SINGLE.getCode()); + order.setCreateDate(new Date()); + wxBatchOrderMapper.insert(order); + + + Long orderNumber = idWorker.nextId(); // body @@ -956,7 +983,7 @@ public class WxOrderServiceImpl implements WxOrderService { record.setDetail(bodyStr); record.setCreateDate(curr); record.setUpdateDate(curr); - record.setComposeOrderId(0L); + record.setComposeOrderId(order.getId()); record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); record.setCouponNumber(1); @@ -976,6 +1003,19 @@ public class WxOrderServiceImpl implements WxOrderService { Date curr = new Date(); final IdWorker idWorker = IdWorker.get(); + + WxBatchOrder order =new WxBatchOrder(); + order.setId(idWorker.nextId()); + order.setCUserId(cUserId); + order.updateTenantInfo(merchant); + order.setPayment(payment); + order.setPayVendor(EnumPayWay.PAY_WAY_PREPAIDCARD.getCode()); + order.setOrderType(EnumComposeOrder.SINGLE.getCode()); + order.setCreateDate(new Date()); + wxBatchOrderMapper.insert(order); + + + Long orderNumber = idWorker.nextId(); // body @@ -997,7 +1037,7 @@ public class WxOrderServiceImpl implements WxOrderService { record.setDetail(bodyStr); record.setCreateDate(curr); record.setUpdateDate(curr); - record.setComposeOrderId(0L); + record.setComposeOrderId(order.getId()); record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); record.setCouponNumber(1); try { @@ -1037,7 +1077,7 @@ public class WxOrderServiceImpl implements WxOrderService { try { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(order); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrderQ.setOrderId(order.getComposeOrderId()); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); payOrder = wxPayOrderMapper.selectOne(new QueryWrapper(payOrderQ)); } catch (Exception e) { 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 8e4cc6f31..b45537310 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -475,7 +475,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { Date currentDate = new Date(); WxPayOrder pq = new WxPayOrder(); pq.updateTenantInfo(order); - pq.setOrderId(EnumComposeOrder.getPayOrderId(order)); + pq.setOrderId(order.getComposeOrderId()); List list = wxPayOrderMapper.findList(pq); String payOrderNo = ""; if (list.size() <= 0) { @@ -1107,7 +1107,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { private void doCouponPayOrder(WxMerchantBUser user, WxPayOrder record, WxOrder order,EnumPayWay payWay) { // B端收银台核销券处理 WxPayOrder payOrderQ = new WxPayOrder(); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrderQ.setOrderId(order.getComposeOrderId()); payOrderQ.setCUserId(record.getCUserId()); payOrderQ.setPayFrom(EnumPayFrom.INSIDE_B.getCode()); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); @@ -1118,7 +1118,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { try { WxPayOrder payOrderCoupon = new WxPayOrder(); payOrderCoupon.setId(unPayOrder.getId()); - payOrderCoupon.setOrderId(EnumComposeOrder.getPayOrderId(order)); + payOrderCoupon.setOrderId(order.getComposeOrderId()); payOrderCoupon.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); wxPayOrderMapper.updateById(payOrderCoupon); } catch (Exception e) { 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 126233c26..717107afe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -33,6 +33,7 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -58,6 +59,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { @Autowired WxPayAccountMapper wxPayAccountMapper; + @Lazy @Autowired WxOrderService wxOrderService; @@ -88,6 +90,9 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { @Autowired PayServiceFactory payServiceFactory; + @Autowired + WxBatchOrderMapper wxBatchOrderMapper; + private boolean isMerchantOrder(WxOrder wxOrder, Long merchantId) { if (wxOrder.getType().equals(EnumOrderType.COUPON.getCode())) { WxCoupon wxCoupon = wxCouponMapper.selectById(wxOrder.getProductId(),wxOrder.getTenantId()); @@ -179,7 +184,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(wxCouponOrder); payOrderQ.setCUserId(wxOrder.getCUserId()); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); + payOrderQ.setOrderId(wxOrder.getComposeOrderId()); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); WxPayOrder payOrder = null; @@ -212,6 +217,17 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { Date currentDate = new Date(); + + WxBatchOrder order =new WxBatchOrder(); + order.setId(idWorker.nextId()); + order.setCUserId(wxOrder.getCUserId()); + order.updateTenantInfo(wxCouponOrder); + order.setPayment(wxOrder.getPayment()); + order.setPayVendor(wxOrder.getPayVendor()); + order.setOrderType(wxOrder.getComposeOrderType()); + order.setCreateDate(new Date()); + wxBatchOrderMapper.insert(order); + // 创建 refund Order WxOrder rOrder = new WxOrder(); rOrder.setId(refundOrderId); @@ -235,7 +251,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { rOrder.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_REFUND.getCode()); rOrder.setCreateDate(currentDate); rOrder.setUpdateDate(currentDate); - rOrder.setComposeOrderId(wxOrder.getComposeOrderId()); + rOrder.setComposeOrderId(order.getId()); rOrder.setComposeOrderType(wxOrder.getComposeOrderType()); rOrder.setCouponNumber(wxOrder.getCouponNumber()); try { @@ -373,6 +389,17 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { Date currentDate = new Date(); + + WxBatchOrder order =new WxBatchOrder(); + order.setId(idWorker.nextId()); + order.setCUserId(wxOrder.getCUserId()); + order.updateTenantInfo(wxOrder); + order.setPayment(wxOrder.getPayment()); + order.setPayVendor(wxOrder.getPayVendor()); + order.setOrderType(EnumComposeOrder.SINGLE.getCode()); + order.setCreateDate(new Date()); + wxBatchOrderMapper.insert(order); + // 创建 refund Order WxOrder rOrder = new WxOrder(); rOrder.setId(refundOrderId); @@ -383,12 +410,13 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { if (payType == EnumPayType.PAY_B_REFUND) { rOrder.setProductId(bUserId); //B端发起退款后存B端用户ID在此 } + rOrder.setPayVendor(wxOrder.getPayVendor()); rOrder.setPaymentType(payType.getCode()); rOrder.setPayment(wxOrder.getPayment()); rOrder.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_REFUND.getCode()); rOrder.setCreateDate(currentDate); rOrder.setUpdateDate(currentDate); - rOrder.setComposeOrderId(0L); + rOrder.setComposeOrderId(order.getId()); rOrder.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); rOrder.setCouponNumber(1); try { @@ -402,7 +430,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(wxOrder); payOrderQ.setCUserId(wxOrder.getCUserId()); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); + payOrderQ.setOrderId(wxOrder.getComposeOrderId()); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); WxPayOrder payOrder = null; @@ -624,7 +652,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(wxOrder); payOrderQ.setCUserId(wxOrder.getCUserId()); - payOrderQ.setOrderId(EnumComposeOrder.getPayOrderId(wxOrder)); + payOrderQ.setOrderId(wxOrder.getComposeOrderId()); //payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); WxPayOrder payOrder = null; diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java index 4f9056efb..7bf45a800 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java @@ -52,10 +52,11 @@ public class SingleOrderAdapterService extends BaseBatchOrderAdapterService { @Override public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { - //mainOrderId(WxBatchOrder的id) 和 wxOrder的id一致 WxComposeOrder corder = super.getComposeOrder(mainOrderId, tenantId, EnumComposeOrder.SINGLE); - WxOrder wxOrder = wxOrderMapper.selectById(mainOrderId, tenantId); - corder.setSingleOrder(wxOrder); + List orders = super.getChildOrders(corder, tenantId, EnumComposeOrder.SINGLE); + if (null != orders && orders.size() > 0 ) { + corder.setSingleOrder(orders.get(0)); + } return corder; } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 0aabc6faf..46c8b7b84 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -1277,10 +1277,10 @@