From 2f377e5bb1fca352860351bf5f7954ff7c535bf0 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 16 Mar 2022 18:03:36 +0800 Subject: [PATCH] =?UTF-8?q?//=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migration/V2022031500001__pay_order.sql | 200 +++++++++++ .../schedule/CouponOrderExpiringSchedule.java | 6 +- .../schedule/SharingOrderRedoSchedule.java | 20 +- .../com/iformall/domain/po/WxPayOrder.java | 2 + .../pay/preOrder/DouYinCreatePreOrder.java | 6 +- .../service/WxProfitSharingOrderService.java | 6 +- .../service/impl/WxCardSpendServiceImpl.java | 322 +++++++++--------- .../impl/WxCouponOrderServiceImpl.java | 105 +++--- .../service/impl/WxOrderServiceImpl.java | 5 +- .../impl/WxProfitSharingOrderServiceImpl.java | 103 ++---- .../impl/WxRefundOrderServiceImpl.java | 5 +- .../miniApp/TtMiniAppPayAdapterService.java | 2 +- .../share/douyin/TtPayShareService.java | 57 ++-- 13 files changed, 467 insertions(+), 372 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022031500001__pay_order.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022031500001__pay_order.sql b/mallinkAdmin/src/main/resources/db/migration/V2022031500001__pay_order.sql new file mode 100644 index 000000000..87a319056 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022031500001__pay_order.sql @@ -0,0 +1,200 @@ +-- ALTER TABLE `mallink`.`wx_pay_order_0` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_1` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_2` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_3` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_4` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_5` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_6` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_7` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_8` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_9` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_10` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_11` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_12` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_13` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_14` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_15` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_16` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_17` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_18` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_19` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_20` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_21` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_22` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_23` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_24` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_25` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_26` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_27` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_28` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_29` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_30` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_31` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_32` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_33` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_34` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_35` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_36` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_37` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_38` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_39` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_40` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_41` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_42` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_43` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_44` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_45` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_46` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_47` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_48` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_49` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_50` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_51` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_52` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_53` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_54` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_55` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_56` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_57` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_58` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_59` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_60` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_61` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_62` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_63` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_64` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_65` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_66` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_67` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_68` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_69` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_70` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_71` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_72` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_73` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_74` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_75` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_76` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_77` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_78` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_79` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_80` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_81` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_82` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_83` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_84` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_85` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_86` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_87` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_88` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_89` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_90` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_91` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_92` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_93` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_94` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_95` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_96` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_97` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_98` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; +-- ALTER TABLE `mallink`.`wx_pay_order_99` +-- ADD COLUMN `store_id` varchar(50) COMMENT '收款账户 (抖音分账用)' AFTER `rate_amount`; \ No newline at end of file diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index b7c85c655..f8113fac6 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -210,7 +210,7 @@ public class CouponOrderExpiringSchedule { wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); wxPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper(wxPayOrder)); - if (wxPayOrder != null && wxPayOrder.getShare().equals(EnumPayShare.YES.getCode())) { + if (wxPayOrder != null) { WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto(); wxSharingOrderDto.setCUserId(wxPayOrder.getCUserId()); wxSharingOrderDto.setMerchantId(0L); @@ -228,9 +228,7 @@ public class CouponOrderExpiringSchedule { // 未设置通道费差 wxSharingOrderDto.setShareAmount(wxPayOrder.getChildOrderShare(co.getOrderId()).getShareAmount()); } - wxProfitSharingOrderService.finishSharingOrder(wxSharingOrderDto,wxPayOrder.getPayVendor()); - }else if (wxPayOrder != null){ - wxProfitSharingOrderService.finishDouyinSharingOrder(wxPayOrder); + wxProfitSharingOrderService.finishSharingOrder(wxSharingOrderDto,wxPayOrder.getPayVendor(),wxPayOrder.getShare()); } } catch (MallinkException e) { diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java index 342077133..cc2bc4e28 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java @@ -91,25 +91,7 @@ public class SharingOrderRedoSchedule { }); } - wxProfitSharingOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_DOUYIN_SINGLE.getCode()); - wxProfitSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_APPLY_FAILED.getCode()); - list = wxProfitSharingOrderMapper.findList(wxProfitSharingOrder); - if (null != list) { - list.stream().forEach(sharingOrder->{ - try { - ResultData result = wxProfitSharingOrderService.redoDouyinSharingOrder(sharingOrder); - if (result.code != ResultData.SUCCESS) { - logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_DOUYIN_SINGLE.getMessage() - + " ID:" +sharingOrder.getId() - + " RES:" + result.message); - } - } catch (Exception e){ - logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_DOUYIN_SINGLE.getMessage() - + " ID:" +sharingOrder.getId() - + " MSG:" + 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 c30f8486e..05899321d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java @@ -63,6 +63,8 @@ public class WxPayOrder extends TenantEntity { private Integer shareAmount; @io.swagger.annotations.ApiModelProperty(value="通道费差(购买时刻的通道费差,分账完结时使用)",name="rateAmount") private Integer rateAmount; +// @io.swagger.annotations.ApiModelProperty(value="收款账户 (抖音分账用)",name="storeId") +// private String storeId; @io.swagger.annotations.ApiModelProperty(value="子订单分账金额json",name="childOrderShare") private String childOrderShare; diff --git a/mallinkService/src/main/java/com/iformall/douyin/pay/preOrder/DouYinCreatePreOrder.java b/mallinkService/src/main/java/com/iformall/douyin/pay/preOrder/DouYinCreatePreOrder.java index 71b979a61..4a5bff559 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/pay/preOrder/DouYinCreatePreOrder.java +++ b/mallinkService/src/main/java/com/iformall/douyin/pay/preOrder/DouYinCreatePreOrder.java @@ -24,7 +24,7 @@ public class DouYinCreatePreOrder { private String thirdpartyId;//第三方平台服务商 id,非服务商模式留空 【非必填】 private Integer disableMsg;//是否屏蔽担保支付的推送消息,1-屏蔽 0-非屏蔽,接入 POI 必传 【非必填】 private String msgPage;//担保支付消息跳转页 【非必填】 - private String storeUid;//多门店模式下,门店 uid 【非必填】 + private String storeId;//收款门店商户编号。多门店模式下,为门店进件时拿到的商户编号 public Map toRequestMap() { Map map = new HashMap(); @@ -50,8 +50,8 @@ public class DouYinCreatePreOrder { if(StringUtils.isNotBlank(msgPage)){ map.put("msg_page", msgPage); } - if(StringUtils.isNotBlank(storeUid)){ - map.put("store_uid", storeUid); + if(StringUtils.isNotBlank(storeId)){ + map.put("store_id", storeId); } map.put("sign", DouYinPayHelper.getSign(map)); diff --git a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java index d4b53c219..0cd1132e9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java @@ -21,13 +21,12 @@ public interface WxProfitSharingOrderService { /** * 创建分账订单 */ - ResultData createSharingOrder(WxSharingOrderDto wxSharingOrderDto,Integer payway); + ResultData createSharingOrder(WxSharingOrderDto wxSharingOrderDto,Integer payway,Integer share); /** * 分账重试 */ ResultData redoSharingOrder(WxProfitSharingOrder sharingOrder); - ResultData redoDouyinSharingOrder(WxProfitSharingOrder sharingOrder); /** * 查询分账订单 @@ -37,8 +36,7 @@ public interface WxProfitSharingOrderService { /** * 结束分账订单 */ - ResultData finishSharingOrder(WxSharingOrderDto sharingOrderDto,Integer payway); - ResultData finishDouyinSharingOrder(WxPayOrder wxPayOrder); + ResultData finishSharingOrder(WxSharingOrderDto sharingOrderDto,Integer payway,Integer share); PageInfo listAsPage(WxProfitSharingOrderQueryVo order, Integer pageNum, Integer pageSize); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index b768e855c..000e157b3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -279,7 +279,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { // } // } // } else { - // 有价储值卡消费时,如果未启用分账,金额也记入补贴表,可能会导致查询错误, TODO + // 有价储值卡消费时,如果未启用分账,金额也记入补贴表,可能会导致查询错误, if (cardInfo.getSaleAmount() > 0) { if (payment > 0) { try { @@ -450,13 +450,13 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { cardInfo1.setUpdateDate(new Date()); wxCardInfoMapper.updateById(cardInfo1); - // 分账完结 - WxSharingOrderDto shareOrder = new WxSharingOrderDto(); - shareOrder.setCUserId(couponOrder.getOwnerId()); - shareOrder.updateTenantInfo(wxCardInfo); - shareOrder.setMerchantId(0L); // 卡完结,默认给0 - shareOrder.setTransactionId(cardInfo.getTransactionId()); - cardShareFinished(cardInfo, shareOrder,couponOrder.getPayVendor()); + // 卡不分账完结 +// WxSharingOrderDto shareOrder = new WxSharingOrderDto(); +// shareOrder.setCUserId(couponOrder.getOwnerId()); +// shareOrder.updateTenantInfo(wxCardInfo); +// shareOrder.setMerchantId(0L); // 卡完结,默认给0 +// shareOrder.setTransactionId(cardInfo.getTransactionId()); +// cardShareFinished(cardInfo, shareOrder,couponOrder.getPayVendor()); } catch (MallinkException e) { logger.error("微信分账: " + e.getMessage()); throw new MallinkException(e.getErrorCode(), e.getMessage()); @@ -477,91 +477,91 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public void shareForCardPay(TenantEntity tenantEntity, Long cardId, Long orderId, Long cardSpendId,Integer payWay) { // 微信已分账检查次数 - int psNum = 0; - try { - WxCardSpend cardSpendQ = new WxCardSpend(); - cardSpendQ.updateTenantInfo(tenantEntity); - cardSpendQ.setCardId(cardId); - psNum = wxCardSpendMapper.selectCount(new QueryWrapper(cardSpendQ)); - if (psNum > 20) { - logger.error("微信分账已超过限制次数-20次"); - throw new MallinkException(ErrorCode.PROFIT_SHARING_NUM_UP_LIMIT); - } - } catch (MallinkException e) { - logger.error(e.getMessage()); - throw new MallinkException(e.getErrorCode(), e.getMessage()); - } catch (Exception e) { - logger.error(e.getMessage()); - throw new MallinkException(ErrorCode.DB_FAIL); - } - // 分账时间检查 - WxCouponOrder couponOrder = wxCouponOrderMapper.selectById(cardId,tenantEntity.getTenantId()); - if (couponOrder.getExpiredTime().before(new Date())) { - throw new MallinkException(ErrorCode.PROFIT_SHARING_TIME_EXPIRED); - } - - // 微信分账 - try { - WxCardSpend cardSpend = new WxCardSpend(); - cardSpend.updateTenantInfo(tenantEntity); - cardSpend.setId(cardSpendId); - cardSpend.setCardId(cardId); - cardSpend.setOrderId(orderId); - cardSpend = wxCardSpendMapper.selectOne(new QueryWrapper(cardSpend)); - if (cardSpend != null && cardSpend.getRealPayment() <= 0) { - logger.error("微信分账金额为0, 无法再分"); - return; - } - WxCardInfo cardInfo = wxCardInfoMapper.selectById(cardSpend.getCardId()); - WxOrder wxOrder = wxOrderMapper.selectById(orderId,cardInfo.getTenantId()); - WxMerchant merchant = wxMerchantMapper.selectById(cardSpend.getMerchantId()); - - if (cardSpend != null && cardInfo != null && merchant != null) { - // 分账 - WxSharingOrderDto shareOrder = new WxSharingOrderDto(); - shareOrder.setCUserId(cardSpend.getOwnerId()); - shareOrder.setMerchantId(cardSpend.getMerchantId()); - shareOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode()); - shareOrder.setPayAmount(cardSpend.getPayment()); - shareOrder.setOrderId(cardSpendId); - shareOrder.setPayTimeStart(cardSpend.getCreateDate()); - shareOrder.setPayTimeEnd(cardSpend.getUpdateDate()); - shareOrder.updateTenantInfo(tenantEntity); - shareOrder.setTransactionId(cardInfo.getTransactionId()); - shareOrder.setShareAmount(cardSpend.getRealPayment()); - ResultData resultData = profitSharingOrderService.createSharingOrder(shareOrder,payWay); - if (resultData.code != Result.SUCCESS) { - // 分账异常 - logger.error(resultData.message); - throw new MallinkException(resultData.code, resultData.message); - } - - // 卡消费记录状态更新 - { - WxCardSpend updateRecord = new WxCardSpend(); - updateRecord.setId(cardSpend.getId()); - updateRecord.setPayStatus(EnumCardSpendStatus.PS_SHARED.getCode()); - updateRecord.setUpdateDate(new Date()); - wxCardSpendMapper.updateById(updateRecord); - } - - - if (cardSpend.getCardRemainAmount().equals(0) - || psNum == 20) { - // 卡余额为0,或者卡已分账20次,发起分账完结 - if (cardSpend.getCardRemainRealAmount() > 0) { - // 卡已被抵扣,但是分账还有余额 - shareOrder.setMerchantId(0L); // 卡完结,填0 - cardShareFinished(cardInfo, shareOrder,couponOrder.getPayVendor()); - } - } - } else { - logger.error("微信分账: 未找到payorder or merchant at orderid-" + orderId); - } - } catch (MallinkException e) { - logger.error("微信分账: " + e.getMessage()); - throw new MallinkException(e.getErrorCode(), e.getMessage()); - } +// int psNum = 0; +// try { +// WxCardSpend cardSpendQ = new WxCardSpend(); +// cardSpendQ.updateTenantInfo(tenantEntity); +// cardSpendQ.setCardId(cardId); +// psNum = wxCardSpendMapper.selectCount(new QueryWrapper(cardSpendQ)); +// if (psNum > 20) { +// logger.error("微信分账已超过限制次数-20次"); +// throw new MallinkException(ErrorCode.PROFIT_SHARING_NUM_UP_LIMIT); +// } +// } catch (MallinkException e) { +// logger.error(e.getMessage()); +// throw new MallinkException(e.getErrorCode(), e.getMessage()); +// } catch (Exception e) { +// logger.error(e.getMessage()); +// throw new MallinkException(ErrorCode.DB_FAIL); +// } +// // 分账时间检查 +// WxCouponOrder couponOrder = wxCouponOrderMapper.selectById(cardId,tenantEntity.getTenantId()); +// if (couponOrder.getExpiredTime().before(new Date())) { +// throw new MallinkException(ErrorCode.PROFIT_SHARING_TIME_EXPIRED); +// } +// +// // 微信分账 +// try { +// WxCardSpend cardSpend = new WxCardSpend(); +// cardSpend.updateTenantInfo(tenantEntity); +// cardSpend.setId(cardSpendId); +// cardSpend.setCardId(cardId); +// cardSpend.setOrderId(orderId); +// cardSpend = wxCardSpendMapper.selectOne(new QueryWrapper(cardSpend)); +// if (cardSpend != null && cardSpend.getRealPayment() <= 0) { +// logger.error("微信分账金额为0, 无法再分"); +// return; +// } +// WxCardInfo cardInfo = wxCardInfoMapper.selectById(cardSpend.getCardId()); +// WxOrder wxOrder = wxOrderMapper.selectById(orderId,cardInfo.getTenantId()); +// WxMerchant merchant = wxMerchantMapper.selectById(cardSpend.getMerchantId()); +// +// if (cardSpend != null && cardInfo != null && merchant != null) { +// // 分账 +// WxSharingOrderDto shareOrder = new WxSharingOrderDto(); +// shareOrder.setCUserId(cardSpend.getOwnerId()); +// shareOrder.setMerchantId(cardSpend.getMerchantId()); +// shareOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode()); +// shareOrder.setPayAmount(cardSpend.getPayment()); +// shareOrder.setOrderId(cardSpendId); +// shareOrder.setPayTimeStart(cardSpend.getCreateDate()); +// shareOrder.setPayTimeEnd(cardSpend.getUpdateDate()); +// shareOrder.updateTenantInfo(tenantEntity); +// shareOrder.setTransactionId(cardInfo.getTransactionId()); +// shareOrder.setShareAmount(cardSpend.getRealPayment()); +// ResultData resultData = profitSharingOrderService.createSharingOrder(shareOrder,payWay); +// if (resultData.code != Result.SUCCESS) { +// // 分账异常 +// logger.error(resultData.message); +// throw new MallinkException(resultData.code, resultData.message); +// } +// +// // 卡消费记录状态更新 +// { +// WxCardSpend updateRecord = new WxCardSpend(); +// updateRecord.setId(cardSpend.getId()); +// updateRecord.setPayStatus(EnumCardSpendStatus.PS_SHARED.getCode()); +// updateRecord.setUpdateDate(new Date()); +// wxCardSpendMapper.updateById(updateRecord); +// } +// +// +// if (cardSpend.getCardRemainAmount().equals(0) +// || psNum == 20) { +// // 卡余额为0,或者卡已分账20次,发起分账完结 +// if (cardSpend.getCardRemainRealAmount() > 0) { +// // 卡已被抵扣,但是分账还有余额 +// shareOrder.setMerchantId(0L); // 卡完结,填0 +// cardShareFinished(cardInfo, shareOrder,couponOrder.getPayVendor()); +// } +// } +// } else { +// logger.error("微信分账: 未找到payorder or merchant at orderid-" + orderId); +// } +// } catch (MallinkException e) { +// logger.error("微信分账: " + e.getMessage()); +// throw new MallinkException(e.getErrorCode(), e.getMessage()); +// } } @@ -572,53 +572,53 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { * @param shareOrder */ private void cardShareFinished(WxCardInfo cardInfo, WxSharingOrderDto shareOrder,Integer payWay) { - Date curDate = new Date(); - // card spend 添加一条 记录] - final IdWorker idWorker = IdWorker.get(); - WxCardSpend cardSpend = new WxCardSpend(); - cardSpend.updateTenantInfo(cardInfo); - cardSpend.setId(idWorker.nextId()); - cardSpend.setCardId(cardInfo.getId()); - cardSpend.setOrderId(null); - cardSpend.setDeductionAmount(0); - cardSpend.setPayment(cardInfo.getRemainingShareFeeAmount()); - cardSpend.setRealPayment(cardInfo.getRemainingShareFeeAmount()); - cardSpend.setCardBeforeAmount(cardInfo.getRemainingAmount()); - cardSpend.setCardRemainAmount(0); - cardSpend.setCardBeforeRealAmount(cardInfo.getRemainingShareFeeAmount()); - cardSpend.setCardRemainRealAmount(0); - cardSpend.setCreateDate(curDate); - cardSpend.setUpdateDate(curDate); - try { - wxCardSpendMapper.insert(cardSpend); - } catch (Exception e) { - logger.error("card spend insert error"); - return; - } - // card info 更新 分账 余额 - WxCardInfo cardInfo1 = new WxCardInfo(); - cardInfo1.setId(cardInfo.getId()); - cardInfo1.setRemainingShareFeeAmount(0); - cardInfo1.setUpdateDate(curDate); - try { - wxCardInfoMapper.updateById(cardInfo1); - } catch (Exception e) { - logger.error("card info remaining error"); - return; - } - - // 分账完结 - shareOrder.setOrderId(cardSpend.getId()); - shareOrder.setPayAmount(0); - shareOrder.setOrderId(cardSpend.getId()); - if (cardInfo.getRateAmount() != null) { - // 分账实际金额 = 分账实际剩余金额 + 通道费差 - shareOrder.setShareAmount(cardInfo.getRemainingShareFeeAmount() + cardInfo.getRateAmount()); - } else { - shareOrder.setShareAmount(cardInfo.getRemainingShareFeeAmount()); - } - shareOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI_FINISH.getCode()); - profitSharingOrderService.finishSharingOrder(shareOrder,payWay); +// Date curDate = new Date(); +// // card spend 添加一条 记录] +// final IdWorker idWorker = IdWorker.get(); +// WxCardSpend cardSpend = new WxCardSpend(); +// cardSpend.updateTenantInfo(cardInfo); +// cardSpend.setId(idWorker.nextId()); +// cardSpend.setCardId(cardInfo.getId()); +// cardSpend.setOrderId(null); +// cardSpend.setDeductionAmount(0); +// cardSpend.setPayment(cardInfo.getRemainingShareFeeAmount()); +// cardSpend.setRealPayment(cardInfo.getRemainingShareFeeAmount()); +// cardSpend.setCardBeforeAmount(cardInfo.getRemainingAmount()); +// cardSpend.setCardRemainAmount(0); +// cardSpend.setCardBeforeRealAmount(cardInfo.getRemainingShareFeeAmount()); +// cardSpend.setCardRemainRealAmount(0); +// cardSpend.setCreateDate(curDate); +// cardSpend.setUpdateDate(curDate); +// try { +// wxCardSpendMapper.insert(cardSpend); +// } catch (Exception e) { +// logger.error("card spend insert error"); +// return; +// } +// // card info 更新 分账 余额 +// WxCardInfo cardInfo1 = new WxCardInfo(); +// cardInfo1.setId(cardInfo.getId()); +// cardInfo1.setRemainingShareFeeAmount(0); +// cardInfo1.setUpdateDate(curDate); +// try { +// wxCardInfoMapper.updateById(cardInfo1); +// } catch (Exception e) { +// logger.error("card info remaining error"); +// return; +// } +// +// // 分账完结 +// shareOrder.setOrderId(cardSpend.getId()); +// shareOrder.setPayAmount(0); +// shareOrder.setOrderId(cardSpend.getId()); +// if (cardInfo.getRateAmount() != null) { +// // 分账实际金额 = 分账实际剩余金额 + 通道费差 +// shareOrder.setShareAmount(cardInfo.getRemainingShareFeeAmount() + cardInfo.getRateAmount()); +// } else { +// shareOrder.setShareAmount(cardInfo.getRemainingShareFeeAmount()); +// } +// shareOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI_FINISH.getCode()); +// profitSharingOrderService.finishSharingOrder(shareOrder,payWay); } @Override @@ -890,27 +890,27 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { } } - // 9. 分账 - try { - shareForCardPay(record, record.getCardId(), record.getOrderId(), record.getId(),payWay); - } catch (MallinkException e) { - logger.error(e.getMessage()); - if (ErrorCode.PROFIT_SHARING_NUM_UP_LIMIT.getCode() == e.getErrorCode() || - ErrorCode.PROFIT_SHARING_TIME_EXPIRED.getCode() == e.getErrorCode()) { - // 分账已到20次限制,后面只记录,无法分账 - // 分账已过期,后面只记录,无法分账 - logger.error("分账已到20次限制,后面只记录,无法分账"); - /* - try { - creteMerchantSubsidy(record, curDate, idWorker, coupon, payment); - } catch (Exception ex) { - logger.error("分账已到20次限制,记录到结算表失败"); - } - */ - } else { - throw new MallinkException(e.getErrorCode(), e.getMessage()); - } - } + // 9. 卡不分账 +// try { +// shareForCardPay(record, record.getCardId(), record.getOrderId(), record.getId(),payWay); +// } catch (MallinkException e) { +// logger.error(e.getMessage()); +// if (ErrorCode.PROFIT_SHARING_NUM_UP_LIMIT.getCode() == e.getErrorCode() || +// ErrorCode.PROFIT_SHARING_TIME_EXPIRED.getCode() == e.getErrorCode()) { +// // 分账已到20次限制,后面只记录,无法分账 +// // 分账已过期,后面只记录,无法分账 +// logger.error("分账已到20次限制,后面只记录,无法分账"); +// /* +// try { +// creteMerchantSubsidy(record, curDate, idWorker, coupon, payment); +// } catch (Exception ex) { +// logger.error("分账已到20次限制,记录到结算表失败"); +// } +// */ +// } else { +// throw new MallinkException(e.getErrorCode(), e.getMessage()); +// } +// } // 成长值 try { 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 6e2e41b86..6b69e7be0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1557,50 +1557,22 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override public void actionAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant) { - WxPayAccount wxPayAccountQuery = new WxPayAccount(); - wxPayAccountQuery.updateTenantInfo(couponOrder); - WxPayAccount wxPayAccount = wxPayAccountMapper.selectOne(new QueryWrapper<>(wxPayAccountQuery)); - if (wxPayAccount != null && wxPayAccount.getShare().equals(EnumPayShare.NO.getCode())) { - try { - // 核销记账,并且往账户里面记帐 - if (couponOrder.getCouponPrice() > 0) { - recordAfterVerified(couponOrder, merchant.getId()); - - //TODO (系统设置不分账抖音也需要分账)抖音先记账, 定时去处理分账业务 - WxPayOrder wxPayOrder = new WxPayOrder(); -// Long orderId = couponOrder.getOrderId(); -// if (!EnumComposeOrder.isSingle(couponOrder.getComposeOrderType())) { -// orderId = couponOrder.getComposeOrderId(); -// } - wxPayOrder.updateTenantInfo(couponOrder); - wxPayOrder.setOrderId(couponOrder.getComposeOrderId()); - wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); - wxPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper(wxPayOrder)); - - wxProfitSharingOrderService.finishDouyinSharingOrder(wxPayOrder); - } - - } catch (Exception e) { - logger.error("核销记账失败"+e.getMessage(),e); - } - } else { - //如果是组合的,则为多次 - if (EnumComposeOrder.isSingle(couponOrder.getComposeOrderType())) { - try { - // 核销分账 - shareAfterVerify(couponOrder, merchant.getId(),couponOrder.getPayVendor(),false); - } catch (Exception e) { - logger.error("核销记账失败"+e.getMessage(),e); - } - }else { - try { - // 核销分账 - shareAfterVerify(couponOrder, merchant.getId(),couponOrder.getPayVendor(),true); - } catch (Exception e) { - logger.error("核销记账失败"+e.getMessage(),e); - } - } - } + //如果是组合的,则为多次 + if (EnumComposeOrder.isSingle(couponOrder.getComposeOrderType())) { + try { + // 核销分账 + shareAfterVerify(couponOrder, merchant.getId(),couponOrder.getPayVendor(),false); + } catch (Exception e) { + logger.error("核销记账失败"+e.getMessage(),e); + } + }else { + try { + // 核销分账 + shareAfterVerify(couponOrder, merchant.getId(),couponOrder.getPayVendor(),true); + } catch (Exception e) { + logger.error("核销记账失败"+e.getMessage(),e); + } + } try { // 核销补贴 @@ -1687,6 +1659,11 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { public void shareAfterVerify(WxCouponOrder couponOrder, Long merchantId,Integer payWay,boolean mulityShare) { // 微信分账 try { + //如果是抖音支付 只能单次分账 + if(EnumPayWay.PAY_WAY_TT.getCode().equals(payWay) && mulityShare){ + logger.error("抖音支付 只能单次分账: "); + return; + } WxPayOrder wxPayOrder = new WxPayOrder(); // Long orderId = couponOrder.getOrderId(); // @@ -1698,25 +1675,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { wxPayOrder.setOrderId(couponOrder.getComposeOrderId()); wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); wxPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper(wxPayOrder)); - if (wxPayOrder != null && wxPayOrder.getShare().equals(EnumPayShare.YES.getCode())) { - WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto(); - wxSharingOrderDto.setCUserId(wxPayOrder.getCUserId()); - wxSharingOrderDto.setMerchantId(merchantId); - if (mulityShare) { - wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode()); - }else { - wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode()); - } - wxSharingOrderDto.setPayAmount(wxPayOrder.getPayAmount()); - wxSharingOrderDto.setRateAmount(wxPayOrder.getChildOrderShare(couponOrder.getOrderId()).getRateAmount()); - wxSharingOrderDto.setOrderId(wxPayOrder.getId()); - wxSharingOrderDto.setPayTimeStart(wxPayOrder.getPayTimeStart()); - wxSharingOrderDto.setPayTimeEnd(wxPayOrder.getPayTimeEnd()); - wxSharingOrderDto.updateTenantInfo(wxPayOrder); - wxSharingOrderDto.setTransactionId(wxPayOrder.getTransactionId()); - wxSharingOrderDto.setShareAmount(wxPayOrder.getChildOrderShare(couponOrder.getOrderId()).getShareAmount()); - wxProfitSharingOrderService.createSharingOrder(wxSharingOrderDto,payWay); - }else if(wxPayOrder != null){ + if(wxPayOrder != null && EnumPayShare.NO.getCode().equals(wxPayOrder.getShare())){ try { // 订单购买时未分账 核销记账,并且往账户里面记帐 if (couponOrder.getCouponPrice() > 0) { @@ -1725,7 +1684,25 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } catch (Exception e) { logger.error("核销记账失败"+e.getMessage(),e); } - } + }else if(wxPayOrder != null){ + WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto(); + wxSharingOrderDto.setCUserId(wxPayOrder.getCUserId()); + wxSharingOrderDto.setMerchantId(merchantId); + if (mulityShare) { + wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode()); + }else { + wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode()); + } + wxSharingOrderDto.setPayAmount(wxPayOrder.getPayAmount()); + wxSharingOrderDto.setRateAmount(wxPayOrder.getChildOrderShare(couponOrder.getOrderId()).getRateAmount()); + wxSharingOrderDto.setOrderId(wxPayOrder.getId()); + wxSharingOrderDto.setPayTimeStart(wxPayOrder.getPayTimeStart()); + wxSharingOrderDto.setPayTimeEnd(wxPayOrder.getPayTimeEnd()); + wxSharingOrderDto.updateTenantInfo(wxPayOrder); + wxSharingOrderDto.setTransactionId(wxPayOrder.getTransactionId()); + wxSharingOrderDto.setShareAmount(wxPayOrder.getChildOrderShare(couponOrder.getOrderId()).getShareAmount()); + wxProfitSharingOrderService.createSharingOrder(wxSharingOrderDto,payWay,wxPayOrder.getShare()); + } } catch (Exception e) { logger.error("微信分账: " + e.getMessage()); } 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 ba9e4c3f6..b8d4bc13c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -2326,8 +2326,7 @@ public class WxOrderServiceImpl implements WxOrderService { wxOrder = wxOrderMapper.selectOne(new QueryWrapper(wxOrder)); WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(wxOrder.getProductId()); - if (wxPayOrder != null && wxMerchantBUser != null && - wxPayOrder.getShare().equals(EnumPayShare.YES.getCode())) { + if (wxPayOrder != null && wxMerchantBUser != null) { WxSharingOrderDto sharingOrder = new WxSharingOrderDto(); sharingOrder.setCUserId(wxPayOrder.getCUserId()); sharingOrder.setMerchantId(wxMerchantBUser.getMerchantId()); @@ -2340,7 +2339,7 @@ public class WxOrderServiceImpl implements WxOrderService { sharingOrder.updateTenantInfo(wxPayOrder); sharingOrder.setTransactionId(wxPayOrder.getTransactionId()); sharingOrder.setShareAmount(wxPayOrder.getChildOrderShare(orderId).getShareAmount()); - ResultData resultData = wxProfitSharingOrderService.createSharingOrder(sharingOrder,payWay.getCode()); + wxProfitSharingOrderService.createSharingOrder(sharingOrder,payWay.getCode(),wxPayOrder.getShare()); } else { logger.error("微信分账: 未找到payorder or merchant at orderid-" + orderId); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index cd0a6739b..c14628a47 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -133,8 +133,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ WxAppinfo appinfo; Integer payWay; if (wxProfitSharingOrder.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode()) - || wxProfitSharingOrder.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode()) - || wxProfitSharingOrder.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_DOUYIN_SINGLE.getCode())){ + || wxProfitSharingOrder.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode())){ WxPayOrder wxPayOrder = wxPayOrderMapper.selectById(wxProfitSharingOrder.getOrderId(),wxProfitSharingOrder.getTenantId()); if (wxPayOrder == null) throw new MallinkException(ErrorCode.ORDER_IS_NOT_FIND.getCode(),"wxProfitSharingOrder["+wxProfitSharingOrder.getId()+"] 没有payOrder信息."); @@ -226,41 +225,18 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ @Override @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) - public ResultData redoDouyinSharingOrder(WxProfitSharingOrder sharingOrder) { - - if (!sharingOrder.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_DOUYIN_SINGLE.getCode())) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - } - - WxProfitShareAppInoDto dto = getAppinfo(sharingOrder); - WxAppinfo appInfo = dto.getAppinfo(); - WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); + public ResultData createSharingOrder(WxSharingOrderDto sharingOrderDto,Integer payWay,Integer share) { + final IdWorker idworker = IdWorker.get(); - PayShareResult shareResult = payServiceFactory.getPayShareAdapterService(dto.getPayWay()) - .noReciverShare(appInfo, payAccount,sharingOrder,sharingOrder.getTransactionId(),sharingOrder.getPayAmount()); - if (!shareResult.isSuccess()) { - sharingOrder.setSharingStatus(shareResult.getCode()); - sharingOrder.setErrorMsg("REDO:"+shareResult.getMsg()); - sharingOrder.setUpdateTime(new Date()); - wxProfitSharingOrderMapper.updateById(sharingOrder); - return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),sharingOrder.getErrorMsg()); + if ((EnumPayWay.PAY_WAY_WECHAT.getCode().equals(payWay) + || EnumPayWay.PAY_WAY_WECHAT_MA.getCode().equals(payWay) + || EnumPayWay.PAY_WAY_WECHAT_WAP.getCode().equals(payWay)) + && EnumPayShare.NO.getCode().equals(share)){ + logger.info("微信支付不分账模式下无需分账"); + return new ResultData(); } - sharingOrder.setSharingOrderNo(shareResult.getShareOrderNo()); - sharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_ACCEPTED.getCode()); - sharingOrder.setErrorMsg("REDO:重试分账成功"); - sharingOrder.setUpdateTime(new Date()); - wxProfitSharingOrderMapper.updateById(sharingOrder); - return new ResultData(shareResult.getData()); - } - - - @Override - @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) - public ResultData createSharingOrder(WxSharingOrderDto sharingOrderDto,Integer payWay) { - final IdWorker idworker = IdWorker.get(); - if (!sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode()) && !sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); @@ -289,7 +265,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ // 分账完结 sharingOrderDto.setShareAmount(sharingOrderDto.getPayAmount()+sharingOrderDto.getRateAmount()); } - return finishSharingOrder(sharingOrderDto,payWay); + return finishSharingOrder(sharingOrderDto,payWay,share); } //计算分账账户合法性 if (psReceiverList.size() > 1 && @@ -491,12 +467,19 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ // 分账完结 @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public ResultData finishSharingOrder(WxSharingOrderDto sharingOrderDto,Integer payWay) { + public ResultData finishSharingOrder(WxSharingOrderDto sharingOrderDto,Integer payWay,Integer share) { final IdWorker idworker = IdWorker.get(); + if ((EnumPayWay.PAY_WAY_WECHAT.getCode().equals(payWay) + || EnumPayWay.PAY_WAY_WECHAT_MA.getCode().equals(payWay) + || EnumPayWay.PAY_WAY_WECHAT_WAP.getCode().equals(payWay)) + && EnumPayShare.NO.getCode().equals(share)){ + logger.info("微信支付不分账模式下无需分账"); + return new ResultData(); + } + if (!sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode()) - && - !sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI_FINISH.getCode())){ + && !sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI_FINISH.getCode())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -539,52 +522,6 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ return new ResultData(shareResult.getData()); } - @Override - @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public ResultData finishDouyinSharingOrder(WxPayOrder wxPayOrder) { - if(wxPayOrder == null || !EnumPayWay.PAY_WAY_TT.getCode().equals(wxPayOrder.getPayVendor())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - } - - WxAppinfo appInfo = getAppinfo(wxPayOrder.getTenantId(),wxPayOrder.getPayVendor()); - WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); - - //分账检查是否已创建分账订单 - WxProfitSharingOrder record = new WxProfitSharingOrder(); - //创建分账订单 - Date currentDate = new Date(); - final IdWorker idworker = IdWorker.get(); - record.setId(idworker.nextId()); - record.updateTenantInfo(payAccount); - record.setTransactionId(wxPayOrder.getTransactionId()); - record.setPayAmount(wxPayOrder.getPayAmount()); - record.setMerchantId(0l); - record.setOrderId(wxPayOrder.getOrderId()); - record.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_UNKNOWN.getCode()); - record.setCreateTime(currentDate); - record.setUpdateTime(currentDate); - record.setPayTimeStart(wxPayOrder.getPayTimeStart()); - record.setPayTimeEnd(wxPayOrder.getPayTimeEnd()); - record.setType(EnumProfitSharingOrderType.PROFIT_SHARING_DOUYIN_SINGLE.getCode()); - wxProfitSharingOrderMapper.insert(record); - -// //分账提交 -// PayShareResult shareResult = payServiceFactory.getPayShareAdapterService(wxPayOrder.getPayVendor()).noReciverShare(appInfo,payAccount,record,wxPayOrder.getPayOrderNo(),wxPayOrder.getShareAmount()); -// if (!shareResult.isSuccess()) { -// record.setSharingStatus(shareResult.getCode()); -// record.setErrorMsg(shareResult.getMsg()); -// record.setUpdateTime(new Date()); -// wxProfitSharingOrderMapper.updateById(record); -// return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),record.getErrorMsg()); -// } -// -// record.setSharingOrderNo(shareResult.getShareOrderNo()); -// record.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_ACCEPTED.getCode()); -// record.setUpdateTime(new Date()); -// wxProfitSharingOrderMapper.updateById(record); - return new ResultData(); - } - @Override public PageInfo listAsPage(WxProfitSharingOrderQueryVo order, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxProfitSharingOrderMapper.findOrderList(order)); 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 5fa87c4f4..5c5efe405 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -186,9 +186,8 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { logger.error("已经核销过的券: couponOrder-" + couponOrderId); throw new MallinkException(ErrorCode.COUPON_ORDER_IS_USED); } - - //TODO 查询订单状态是否是支付成功的状态,支付成功的状态才能退款。 - // 查找支付订单 + + // 查询订单状态是否是支付成功的状态,支付成功的状态才能退款。 WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.updateTenantInfo(wxCouponOrder); payOrderQ.setCUserId(wxOrder.getCUserId()); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java index 84905395f..d8e68538f 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java @@ -43,7 +43,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen preOrder.setValidTime(15*60); // preOrder.setNotifyUrl();//回调地址 // preOrder.setThirdpartyId();//第三方服务商ID -// preOrder.setStoreUid(order.getStoreUid()); +// preOrder.setStoreId(record.getStoreId()); CreatePreOrderResult preOrderResult = DouYinPayHelper.createPreOrder(preOrder); if(preOrderResult.isSuccess()){ diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java index 9fc307c48..88be04b57 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java @@ -1,6 +1,8 @@ package com.iformall.service.pay.service.share.douyin; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.iformall.common.ErrorCode; import com.iformall.domain.po.*; import com.iformall.douyin.pay.DouYinPayHelper; @@ -17,6 +19,9 @@ import com.iformall.service.pay.service.share.entity.ShareNotifyAdapterResult; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; @Slf4j @@ -60,33 +65,31 @@ public class TtPayShareService extends PayShareBaseAdapterService{ @Override public PayShareResult haveReciversShare(WxAppinfo appInfo,WxPayAccount payAccount,WxProfitSharingOrder record,String transcationId,JSONArray receivers,EnumProfitSharingOrderType shareType ) throws MallinkException { - // TODO: 2021/11/27 需要处理添加分账帐号 - - throw new MallinkException(ErrorCode.PROFIT_SHARING_REQUEST_FAILED); - -// Settle settle = new Settle(); -// settle.setAppId(appInfo.getAppId()); -// settle.setSalt(payAccount.getApiKey()); -// settle.setOutSettleNo(record.getId().toString()); -// settle.setOutOrderNo(transcationId); -// settle.setSettleDesc("自主完结分账"); -//// if(order.getSettlementAmount() != null && order.getSettlementAmount().intValue() > 0){ -//// List list = new ArrayList<>(); -//// Map settleParams = new HashMap<>(); -//// settleParams.put("merchant_uid",merchantUid); -//// settleParams.put("amount",order.getPayment()-order.getSettlementAmount()); -//// list.add(settleParams); -//// settle.setSettleParams(JSON.toJSONString(list)); -//// } -// -// settle.setSettleParams(receivers.toJSONString()); -// SettleResult settleResult = DouYinPayHelper.settle(settle); -// -// if (settleResult.isSuccess()) { -// return new PayShareResult(true, null,"success", settleResult,settleResult.getSettleNo()); -// }else{ -// return new PayShareResult(false, EnumProfitSharingOrderStatus.PROFIT_SHARING_REQ_FAILED.getCode(),settleResult.getMsg(), null,null); -// } + + Settle settle = new Settle(); + settle.setAppId(appInfo.getAppId()); + settle.setSalt(payAccount.getApiKey()); + settle.setOutSettleNo(record.getId().toString()); + settle.setOutOrderNo(transcationId); + settle.setSettleDesc("自主完结分账"); + + List list = new ArrayList<>(); + for (Object o: receivers) { + JSONObject jo = (JSONObject) o; + Map settleParams = new HashMap<>(); + settleParams.put("merchant_uid",jo.getString("account")); + settleParams.put("amount",jo.getInteger("amount")); + list.add(settleParams); + } + + settle.setSettleParams(JSON.toJSONString(list)); + SettleResult settleResult = DouYinPayHelper.settle(settle); + + if (settleResult.isSuccess()) { + return new PayShareResult(true, null,"success", settleResult,settleResult.getSettleNo()); + }else{ + return new PayShareResult(false, EnumProfitSharingOrderStatus.PROFIT_SHARING_REQ_FAILED.getCode(),settleResult.getMsg(), null,null); + } }