| @@ -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`; | |||
| @@ -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) { | |||
| @@ -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()); | |||
| } | |||
| }); | |||
| } | |||
| } | |||
| } | |||
| @@ -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; | |||
| @@ -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)); | |||
| @@ -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<WxProfitSharingOrderVo> listAsPage(WxProfitSharingOrderQueryVo order, Integer pageNum, Integer pageSize); | |||
| @@ -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 { | |||
| @@ -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()); | |||
| } | |||
| @@ -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); | |||
| } | |||
| @@ -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<WxProfitSharingOrderVo> listAsPage(WxProfitSharingOrderQueryVo order, Integer pageIndex, Integer pageSize) { | |||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxProfitSharingOrderMapper.findOrderList(order)); | |||
| @@ -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()); | |||
| @@ -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()){ | |||
| @@ -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<String,Object> 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<String,Object> 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); | |||
| } | |||
| } | |||