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/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/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) { 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/impl/WxRefundOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java index cde4c3aee..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) { @@ -278,7 +281,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()); 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..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,9 +52,9 @@ public class SingleOrderAdapterService implements OrderAdapterService { @Override public List getChildOrders(WxComposeOrder composeOrder, String tenantId) { - List list = new ArrayList(); - list.add(composeOrder.getSingleOrder()); - return list; + List childOrders = new ArrayList(); + childOrders.add(composeOrder.getSingleOrder()); + return childOrders; } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})