xhxu 4 лет назад
Родитель
Сommit
074c7c2dfa
7 измененных файлов: 66 добавлений и 13 удалений
  1. +8
    -7
      mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java
  2. +20
    -0
      mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumProfitSharingOrderType.java
  4. +5
    -0
      mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java
  5. +30
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java
  6. +1
    -1
      mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java
  7. +1
    -0
      mallinkService/src/main/java/com/iformall/utils/Utility.java

+ 8
- 7
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());
}



+ 20
- 0
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());
}
});
}


}



+ 1
- 1
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) {


+ 5
- 0
mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java Просмотреть файл

@@ -28,6 +28,11 @@ public interface WxProfitSharingOrderService {
*/
ResultData redoSharingOrder(WxProfitSharingOrder sharingOrder);

/**
* 分账完结重试
*/
ResultData redoFinishSharingOrder(WxProfitSharingOrder sharingOrder);

/**
* 查询分账订单
*/


+ 30
- 4
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);
}
//计算分账账户合法性


+ 1
- 1
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);
}
}



+ 1
- 0
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);
}


Загрузка…
Отмена
Сохранить