|
@@ -635,6 +635,46 @@ public class WechatLogic {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 电子支付分账-定时
|
|
|
|
+ * @param settlementOrder
|
|
|
|
+ * @throws WxPayException
|
|
|
|
+ */
|
|
|
|
+ public void shareSettlementAmountCorn(SettlementOrder settlementOrder) throws WxPayException {
|
|
|
|
+
|
|
|
|
+ if(settlementOrder == null){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if(!StringUtils.equals(settlementOrder.getPayStatus(), PayStatusEnum.PAID.getKey())){
|
|
|
|
+ throw new RemoteServiceException("未支付订单不可结算");
|
|
|
|
+ }
|
|
|
|
+ if(!StringUtils.equals(settlementOrder.getStatus(),"WAIT")){
|
|
|
|
+ log.error("非待结算状态不可结算,id:{}",settlementOrder.getOrderId());
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ Map<String,BigDecimal> map = new HashMap<>();
|
|
|
|
+ map.put(settlementOrder.getOpenId(),settlementOrder.getWorkerAmount());
|
|
|
|
+ Map<String,String> mapPhone = new HashMap<>();
|
|
|
|
+ mapPhone.put(settlementOrder.getOpenId(),settlementOrder.getWorkerMobile());
|
|
|
|
+ //开始分账
|
|
|
|
+ try {
|
|
|
|
+ profitSettlementSharing(settlementOrder.getOrderId(), settlementOrder.getTranscationId(), map, mapPhone,
|
|
|
|
+ settlementOrder.getCompanyWechatId(), "B",settlementOrder.getConfigId());
|
|
|
|
+
|
|
|
|
+ settlementOrder.setStatus(SettlementStatusNewEnum.OK.toString());
|
|
|
|
+ settlementOrder.setSettlementTime(new Date());
|
|
|
|
+ settlementOrder.updateById();
|
|
|
|
+
|
|
|
|
+ } catch (WxPayException e) {
|
|
|
|
+ log.error("异常结算", e);
|
|
|
|
+
|
|
|
|
+ settlementOrder.setStatus(SettlementStatusNewEnum.YC.toString());
|
|
|
|
+ settlementOrder.setYcRemark(e.getMessage());
|
|
|
|
+ settlementOrder.updateById();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
/**
|
|
/**
|
|
* 分账
|
|
* 分账
|