diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index f8113fac6..1c621acce 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -221,13 +221,14 @@ public class CouponOrderExpiringSchedule { wxSharingOrderDto.setPayTimeEnd(wxPayOrder.getPayTimeEnd()); wxSharingOrderDto.updateTenantInfo(wxPayOrder); wxSharingOrderDto.setTransactionId(wxPayOrder.getTransactionId()); - if (wxPayOrder.getChildOrderShare(co.getOrderId()).getRateAmount() != null) { - // 实际分账金额为 分账金额 + 通道费差 - wxSharingOrderDto.setShareAmount(wxPayOrder.getChildOrderShare(co.getOrderId()).getShareAmount()+wxPayOrder.getChildOrderShare(co.getOrderId()).getRateAmount()); - } else { - // 未设置通道费差 - wxSharingOrderDto.setShareAmount(wxPayOrder.getChildOrderShare(co.getOrderId()).getShareAmount()); - } +// if (wxPayOrder.getChildOrderShare(co.getOrderId()).getRateAmount() != null) { +// // 实际分账金额为 分账金额 + 通道费差 +// wxSharingOrderDto.setShareAmount(wxPayOrder.getChildOrderShare(co.getOrderId()).getShareAmount()+wxPayOrder.getChildOrderShare(co.getOrderId()).getRateAmount()); +// } else { +// // 未设置通道费差 +// wxSharingOrderDto.setShareAmount(wxPayOrder.getChildOrderShare(co.getOrderId()).getShareAmount()); +// } + wxSharingOrderDto.setShareAmount(wxPayOrder.getPayAmount()); wxProfitSharingOrderService.finishSharingOrder(wxSharingOrderDto,wxPayOrder.getPayVendor(),wxPayOrder.getShare()); } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java index cc2bc4e28..7ccd2e1f4 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java @@ -91,6 +91,26 @@ public class SharingOrderRedoSchedule { }); } + wxProfitSharingOrder.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode()); + wxProfitSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_APPLY_FAILED.getCode()); + list = wxProfitSharingOrderMapper.findList(wxProfitSharingOrder); + if (null != list) { + list.stream().forEach(sharingOrder->{ + try { + ResultData result = wxProfitSharingOrderService.redoFinishSharingOrder(sharingOrder); + if (result.code != ResultData.SUCCESS) { + logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getMessage() + + " ID:" +sharingOrder.getId() + + " RES:" + result.message); + } + } catch (Exception e){ + logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getMessage() + + " ID:" +sharingOrder.getId() + + " MSG:" + e.getMessage()); + } + }); + } + } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumProfitSharingOrderType.java b/mallinkService/src/main/java/com/iformall/enums/EnumProfitSharingOrderType.java index c6802ecfc..8878f8896 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumProfitSharingOrderType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumProfitSharingOrderType.java @@ -9,7 +9,7 @@ public enum EnumProfitSharingOrderType { PROFIT_SHARING_MULTI_FINISH(2, "多次分账完结"), PROFIT_SHARING_SINGLE_FINISH(3, "单次分账完结"), - PROFIT_SHARING_DOUYIN_SINGLE(10, "抖音自主分账"),//不分账无法解冻资金 +// PROFIT_SHARING_DOUYIN_SINGLE(10, "抖音自主分账"),//不分账无法解冻资金 ; public static EnumProfitSharingOrderType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java index 0cd1132e9..5760f0b73 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java @@ -28,6 +28,11 @@ public interface WxProfitSharingOrderService { */ ResultData redoSharingOrder(WxProfitSharingOrder sharingOrder); + /** + * 分账完结重试 + */ + ResultData redoFinishSharingOrder(WxProfitSharingOrder sharingOrder); + /** * 查询分账订单 */ 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 f13bdf134..692f978fc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -223,6 +223,31 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ return new ResultData(shareResult.getData()); } + @Override + public ResultData redoFinishSharingOrder(WxProfitSharingOrder sharingOrder) { + if (!sharingOrder.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode())) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + } + WxProfitShareAppInoDto dto = getAppinfo(sharingOrder); + WxAppinfo appInfo = dto.getAppinfo(); + WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); + + 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()); + } + 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,Integer share) { @@ -265,10 +290,11 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ sharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode()); if (sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode())) return new ResultData(ErrorCode.PROFIT_SHARING_RECEIVER_UNKNOWN); - if(sharingOrderDto.getRateAmount() != null) { - // 分账完结 - sharingOrderDto.setShareAmount(sharingOrderDto.getPayAmount()+sharingOrderDto.getRateAmount()); - } +// if(sharingOrderDto.getRateAmount() != null) { +// // 分账完结 +// sharingOrderDto.setShareAmount(sharingOrderDto.getPayAmount()+sharingOrderDto.getRateAmount()); +// } + sharingOrderDto.setShareAmount(sharingOrderDto.getPayAmount()); return finishSharingOrder(sharingOrderDto,payWay,share); } //计算分账账户合法性 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 88be04b57..f20e475e0 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 @@ -59,7 +59,7 @@ public class TtPayShareService extends PayShareBaseAdapterService{ 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); + return new PayShareResult(false, EnumProfitSharingOrderStatus.PROFIT_SHARING_APPLY_FAILED.getCode(),settleResult.getMsg(), null,null); } } diff --git a/mallinkService/src/main/java/com/iformall/utils/Utility.java b/mallinkService/src/main/java/com/iformall/utils/Utility.java index f1c05310d..89ef682b6 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Utility.java +++ b/mallinkService/src/main/java/com/iformall/utils/Utility.java @@ -533,6 +533,7 @@ public final class Utility { } public static Date getDateFromString(String timeEnd) throws ParseException { + timeEnd = timeEnd.replaceAll("[[\\s-:punct:]]",""); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); return sdf.parse(timeEnd); }