From 6773fe8151820b541aa43502c5d1f1f40b92041b Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 15 Sep 2021 11:45:51 +0800 Subject: [PATCH 1/6] fix order --- .../src/main/java/com/iformall/domain/po/WxPayOrder.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java index 00a69c1a6..1e0039929 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java @@ -12,6 +12,8 @@ import lombok.ToString; import java.util.*; +import org.apache.commons.lang3.StringUtils; + @TableName(value = "wx_pay_order") @Data @EqualsAndHashCode(callSuper = true) @@ -60,6 +62,9 @@ public class WxPayOrder extends TenantEntity { private String childOrderShare; public WxComposeChildOrderShare getChildOrderShare(Long wxOrderId) { + if (StringUtils.isBlank(this.childOrderShare)) { + return new WxComposeChildOrderShare(this.payAmount, this.shareAmount, this.rateAmount); + } Map childs = JSON.parseObject(this.childOrderShare, Map.class); JSONObject childOrderShare = (JSONObject) childs.get(String.valueOf(wxOrderId)); if (null != childOrderShare) { From fe809cb64532994027c4ed0d5bb35528914dc6e9 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 15 Sep 2021 11:55:51 +0800 Subject: [PATCH 2/6] fix order --- .../com/iformall/domain/po/WxPayOrder.java | 4 +-- .../impl/WxCouponOrderServiceImpl.java | 18 +++++----- .../service/impl/WxPayOrderServiceImpl.java | 36 ++++++++++--------- .../order/impl/SingleOrderAdapterService.java | 4 +-- 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java index 1e0039929..194f1b84c 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java @@ -58,8 +58,8 @@ public class WxPayOrder extends TenantEntity { private Integer shareAmount; @io.swagger.annotations.ApiModelProperty(value="通道费差(购买时刻的通道费差,分账完结时使用)",name="rateAmount") private Integer rateAmount; - @io.swagger.annotations.ApiModelProperty(value="子订单分账金额json",name="childOrderShare") - private String childOrderShare; +// @io.swagger.annotations.ApiModelProperty(value="子订单分账金额json",name="childOrderShare") +// private String childOrderShare; public WxComposeChildOrderShare getChildOrderShare(Long wxOrderId) { if (StringUtils.isBlank(this.childOrderShare)) { 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 91b30f6c9..4045a8f3b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1530,15 +1530,17 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { Map childShares = new HashMap(); OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()); List orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); - for (WxOrder o : orderList) { - WxCoupon coupon = wxCouponMapper.selectById(o.getProductId(), appInfo.getTenantId()); - WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, o.getOrderGroupId(), o.getCouponNumber()); - int orderMallCharge = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); - Integer orderShareAmount = price.getRealPayMent() - orderMallCharge; - Integer orderRateAmount = PayUtils.getPayRate(price.getRealPayMent(), payAccount.getRealRate(), true); - childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(price.getRealPayMent(), orderShareAmount, orderRateAmount)); + if (null != orderList && orderList.size() > 0) { + for (WxOrder o : orderList) { + WxCoupon coupon = wxCouponMapper.selectById(o.getProductId(), appInfo.getTenantId()); + WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, o.getOrderGroupId(), o.getCouponNumber()); + int orderMallCharge = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); + Integer orderShareAmount = price.getRealPayMent() - orderMallCharge; + Integer orderRateAmount = PayUtils.getPayRate(price.getRealPayMent(), payAccount.getRealRate(), true); + childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(price.getRealPayMent(), orderShareAmount, orderRateAmount)); + } + payOrder.setChildOrderShare(JSON.toJSONString(childShares)); } - payOrder.setChildOrderShare(JSON.toJSONString(childShares)); } payOrder.setPayFrom(EnumPayFrom.INSIDE_B.getCode()); payOrder.setPosPayOrderId(couponOrder.getId()); 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 235e55eb3..b3c3dc7dd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -388,15 +388,17 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { Map childShares = new HashMap(); OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()); List orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); - for (WxOrder o : orderList) { - WxCoupon coupon = wxCouponMapper.selectById(o.getProductId(), appInfo.getTenantId()); - WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, o.getOrderGroupId(), o.getCouponNumber()); - int orderMallCharge = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); - Integer orderShareAmount = price.getRealPayMent() - orderMallCharge; - Integer orderRateAmount = OrderHelper.getRateAmount(price.getRealPayMent(),orderMallCharge, payAccount); - childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(price.getRealPayMent(), orderShareAmount, orderRateAmount)); + if(null != orderList && orderList.size() > 0) { + for (WxOrder o : orderList) { + WxCoupon coupon = wxCouponMapper.selectById(o.getProductId(), appInfo.getTenantId()); + WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, o.getOrderGroupId(), o.getCouponNumber()); + int orderMallCharge = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); + Integer orderShareAmount = price.getRealPayMent() - orderMallCharge; + Integer orderRateAmount = OrderHelper.getRateAmount(price.getRealPayMent(),orderMallCharge, payAccount); + childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(price.getRealPayMent(), orderShareAmount, orderRateAmount)); + } + record.setChildOrderShare(JSON.toJSONString(childShares)); } - record.setChildOrderShare(JSON.toJSONString(childShares)); } int sqlRow = wxPayOrderMapper.insert(record); @@ -508,15 +510,17 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { Map childShares = new HashMap(); OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()); List orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); - for (WxOrder o : orderList) { - WxCoupon coupon = wxCouponMapper.selectById(o.getProductId(), appInfo.getTenantId()); - WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, o.getOrderGroupId(), o.getCouponNumber()); - int orderMallCharge = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); - Integer orderShareAmount = price.getRealPayMent() - orderMallCharge; - Integer orderRateAmount = PayUtils.getPayRate(price.getRealPayMent(), payAccount.getRealRate(), true); - childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(price.getRealPayMent(), orderShareAmount, orderRateAmount)); + if (null != orderList && orderList.size() > 0 ) { + for (WxOrder o : orderList) { + WxCoupon coupon = wxCouponMapper.selectById(o.getProductId(), appInfo.getTenantId()); + WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, o.getOrderGroupId(), o.getCouponNumber()); + int orderMallCharge = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); + Integer orderShareAmount = price.getRealPayMent() - orderMallCharge; + Integer orderRateAmount = PayUtils.getPayRate(price.getRealPayMent(), payAccount.getRealRate(), true); + childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(price.getRealPayMent(), orderShareAmount, orderRateAmount)); + } + record.setChildOrderShare(JSON.toJSONString(childShares)); } - record.setChildOrderShare(JSON.toJSONString(childShares)); } int sqlRow = wxPayOrderMapper.insert(record); 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 a23162822..953e161a8 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,9 +52,7 @@ public class SingleOrderAdapterService implements OrderAdapterService { @Override public List getChildOrders(WxComposeOrder composeOrder, String tenantId) { - List list = new ArrayList(); - list.add(composeOrder.getSingleOrder()); - return list; + return null; } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) From 5d912ca7f6e9a24ba3d8b3392b6ce6b7bee9c837 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 15 Sep 2021 11:56:44 +0800 Subject: [PATCH 3/6] fix order --- .../src/main/java/com/iformall/domain/po/WxPayOrder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java index 194f1b84c..1e0039929 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java @@ -58,8 +58,8 @@ public class WxPayOrder extends TenantEntity { private Integer shareAmount; @io.swagger.annotations.ApiModelProperty(value="通道费差(购买时刻的通道费差,分账完结时使用)",name="rateAmount") private Integer rateAmount; -// @io.swagger.annotations.ApiModelProperty(value="子订单分账金额json",name="childOrderShare") -// private String childOrderShare; + @io.swagger.annotations.ApiModelProperty(value="子订单分账金额json",name="childOrderShare") + private String childOrderShare; public WxComposeChildOrderShare getChildOrderShare(Long wxOrderId) { if (StringUtils.isBlank(this.childOrderShare)) { From 73d18311a8cc9cef79b48a4f0f17ef93b06c1d23 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 15 Sep 2021 12:49:37 +0800 Subject: [PATCH 4/6] fix order --- .../com/iformall/controller/WxPayOrderController.java | 8 ++++---- .../service/order/impl/SingleOrderAdapterService.java | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java index a466d30ad..1e084917c 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java @@ -136,10 +136,10 @@ public class WxPayOrderController extends BaseController { record.setComposeOrder(Integer.parseInt(composeOrderType)); return wxPayOrderService.createPayOrder(appInfo, wxCUserBasicInfo, record, payWay,parm); } catch (MallinkException e) { - logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage()); + logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage(),e); return new ResultData(e.getErrorCode(), e.getMessage()); } catch (Exception e) { - logger.error("payment wechat, order create error, req 3: " + record.toString() + ", e:" + e.getMessage()); + logger.error("payment wechat, order create error, req 3: " + record.toString() + ", e:" + e.getMessage(),e); return new ResultData(ErrorCode.PAY_ORDER_ERROR, e.getMessage()); } } @@ -229,10 +229,10 @@ public class WxPayOrderController extends BaseController { } return new ResultData(Result.SUCCESS, "支付状态更新成功"); } catch (MallinkException e) { - logger.error("支付状态更新失败2: " + payOrder.toString() + ", e:" + e.getMessage()); + logger.error("支付状态更新失败2: " + payOrder.toString() + ", e:" + e.getMessage(),e); return new ResultData(e.getErrorCode(), e.getMessage()); } catch (Exception e) { - logger.error("支付状态更新失败3: " + payOrder.toString() + ", e:" + e.getMessage()); + logger.error("支付状态更新失败3: " + payOrder.toString() + ", e:" + e.getMessage(),e); return new ResultData(ErrorCode.PAY_ORDER_ERROR, "支付状态更新失败3: " + payOrder.toString() + ", e:" + e.getMessage()); } } 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 953e161a8..88711fc9e 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,7 +52,9 @@ public class SingleOrderAdapterService implements OrderAdapterService { @Override public List getChildOrders(WxComposeOrder composeOrder, String tenantId) { - return null; + List childOrders = new ArrayList(); + childOrders.add(composeOrder.getSingleOrder()); + return childOrders; } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) From 07396b4fc9bef84aafc4d2268535e8f4582b595d Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 15 Sep 2021 14:32:10 +0800 Subject: [PATCH 5/6] fix order --- .../com/iformall/service/impl/WxRefundOrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 cde4c3aee..e907c62b2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -278,7 +278,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { record.setTransactionId(payOrder.getTransactionId()); record.setCUserId(payOrder.getCUserId()); record.setTotalFee(payOrder.getPayAmount()); - record.setRefundFee(payOrder.getChildOrderShare(rOrder.getId()).getRealPayMent()); + record.setRefundFee(payOrder.getChildOrderShare(wxOrder.getId()).getRealPayMent()); record.setRefundTimeStart(currentDate); record.setRefundOrderStatus(EnumRefundStatus.REFUND_WAIT.getCode()); record.setRefundVendor(payOrder.getPayVendor()); From 7d180b013cb73eb4e8190a48f0d2d2d6bc73dc72 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 15 Sep 2021 16:32:48 +0800 Subject: [PATCH 6/6] fix order --- .../iformall/controller/market/WxCouponOrderController.java | 4 ++-- .../com/iformall/service/impl/WxRefundOrderServiceImpl.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java index b5bbe516c..43980a21c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java @@ -113,10 +113,10 @@ public class WxCouponOrderController extends BaseController { wxRefundOrderService.createRefundOrder(appinfo, couponOrderId, EnumPayType.PAY_ADMIN_REFUND, null); return new ResultData(); } catch (MallinkException e) { - logger.error(e.getMessage()); + logger.error(e.getMessage(),e); return new ResultData(e.getErrorCode(), e.getMessage()); } catch (Exception e) { - logger.error(e.getMessage()); + logger.error(e.getMessage(),e); return new ResultData(ErrorCode.REFUND_ORDER_ERROR); } } 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 e907c62b2..226b115f7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -222,6 +222,9 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { rOrder.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_REFUND.getCode()); rOrder.setCreateDate(currentDate); rOrder.setUpdateDate(currentDate); + rOrder.setComposeOrderId(wxOrder.getComposeOrderId()); + rOrder.setComposeOrderType(wxOrder.getComposeOrderType()); + rOrder.setCouponNumber(wxOrder.getCouponNumber()); try { wxOrderMapper.insert(rOrder); } catch (Exception e) {