mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 03:25:12 +08:00
Merge branch 'dev' of https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web into dev
This commit is contained in:
@@ -1643,10 +1643,6 @@ public class AdapayService {
|
||||
unSplitList.add(paymentId);
|
||||
}
|
||||
}
|
||||
// System.out.println("=================未分账:" + JSON.toJSONString(unSplitList) + ", 数量:" + unSplitList.size());
|
||||
// System.out.println("=================已分账:" + JSON.toJSONString(map) + ", 总分账:" + total + ", 数量:" + splitList.size());
|
||||
// System.out.println("===============金额明细:" + "总到账金额:" + totalWithdrawalAmt + ", 总手续费:" + totalFeeAmt);
|
||||
// System.out.println("===================自己:" + JSON.toJSONString(selfList) + ", 数量:" + selfList.size());
|
||||
log.info("\n入参paymentId数量:{}, 已分帐数量:{}, 未分帐数量:{}, 未分帐id:{} " +
|
||||
"\n已分帐:{}, 总分账:{}, 数量:{}" +
|
||||
"\n金额明细:[总到账金额:{}, 总手续费:{}] " +
|
||||
@@ -1657,4 +1653,100 @@ public class AdapayService {
|
||||
selfList, selfList.size());
|
||||
return unSplitList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据paymentIdList查询分账信息
|
||||
*/
|
||||
public Map<String, List<String>> getSplitInfoMapByPaymentIdList(List<String> paymentIdList) throws BaseAdaPayException {
|
||||
Map<String, List<String>> resultMap = Maps.newHashMap();
|
||||
if (CollectionUtils.isEmpty(paymentIdList)) {
|
||||
return resultMap;
|
||||
}
|
||||
List<String> unSplitList = Lists.newArrayList(); // 未分帐
|
||||
List<String> splitList = Lists.newArrayList(); // 已分帐
|
||||
List<String> selfList = Lists.newArrayList(); // 自己分帐
|
||||
|
||||
BigDecimal total = BigDecimal.ZERO; // 总分账金额
|
||||
BigDecimal totalWithdrawalAmt = BigDecimal.ZERO; // 实际到账金额汇总
|
||||
BigDecimal totalFeeAmt = BigDecimal.ZERO; // 手续费金额汇总
|
||||
|
||||
Map<String, BigDecimal> amountDetailMap = Maps.newHashMap();
|
||||
for (String paymentId : paymentIdList) {
|
||||
if (StringUtils.isBlank(paymentId)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 根据paymentId查询支付确认情况
|
||||
QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO();
|
||||
dto.setPaymentId(paymentId);
|
||||
dto.setWechatAppId(wechatAppId1);
|
||||
QueryPaymentConfirmDetailResponse response = this.queryPaymentConfirmList(dto);
|
||||
|
||||
if (response == null) {
|
||||
// 未查询到分账信息,add to unSplitList
|
||||
unSplitList.add(paymentId);
|
||||
continue;
|
||||
}
|
||||
|
||||
List<PaymentConfirmInfo> confirms = response.getPaymentConfirms();
|
||||
if (CollectionUtils.isEmpty(confirms)) {
|
||||
// confirms为空,add to unSplitList
|
||||
unSplitList.add(paymentId);
|
||||
continue;
|
||||
}
|
||||
|
||||
// 添加到已分帐list
|
||||
splitList.add(paymentId);
|
||||
for (PaymentConfirmInfo confirm : confirms) {
|
||||
if (this.queryConfirmReverseStatus(confirm)) {
|
||||
log.info("支付确认id:" + confirm.getId() + "撤销了。。。");
|
||||
continue;
|
||||
}
|
||||
JSONObject jsonObject = JSON.parseObject(confirm.getDescription());
|
||||
String adapayMemberId = jsonObject.getString("adapayMemberId");
|
||||
if (StringUtils.isBlank(adapayMemberId)) {
|
||||
adapayMemberId = jsonObject.getString("adapayMemberIds");
|
||||
}
|
||||
|
||||
BigDecimal confirmAmt = new BigDecimal(confirm.getConfirmAmt()); // 本次确认金额
|
||||
BigDecimal confirmedAmt = new BigDecimal(confirm.getConfirmedAmt()); // 已确认金额
|
||||
BigDecimal feeAmt = new BigDecimal(confirm.getFeeAmt()); // 手续费
|
||||
|
||||
// 汇总已确认金额
|
||||
total = total.add(confirmedAmt);
|
||||
|
||||
// 汇总手续费金额
|
||||
totalFeeAmt = totalFeeAmt.add(feeAmt);
|
||||
|
||||
// 汇总可提现金额
|
||||
totalWithdrawalAmt = totalWithdrawalAmt.add(confirmAmt).subtract(feeAmt);
|
||||
|
||||
// confirm
|
||||
List<DivMember> divMembers = confirm.getDivMembers();
|
||||
// System.out.println("confirm:" + JSON.toJSONString(divMembers));
|
||||
for (DivMember divMember : divMembers) {
|
||||
// 放map
|
||||
amountDetailMap.merge(divMember.getMemberId(), new BigDecimal(divMember.getAmount()), BigDecimal::add);
|
||||
}
|
||||
|
||||
if (StringUtils.equals(adapayMemberId, "0")
|
||||
|| StringUtils.equals(adapayMemberId, "AM29102732")) {
|
||||
// 0为默认平台id, AM29102732为罗总账户
|
||||
selfList.add(paymentId);
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("\n入参paymentId数量:{}, 已分帐数量:{}, 未分帐数量:{}, 未分帐id:{} " +
|
||||
"\n已分帐:{}, 总分账:{}, 数量:{}" +
|
||||
"\n金额明细:[总到账金额:{}, 总手续费:{}] " +
|
||||
"\n自己:{}, 数量:{}",
|
||||
paymentIdList.size(), splitList.size(), unSplitList.size(), unSplitList,
|
||||
JSON.toJSONString(amountDetailMap), total, splitList.size(),
|
||||
totalWithdrawalAmt, totalFeeAmt,
|
||||
selfList, selfList.size());
|
||||
|
||||
resultMap.put("unSplitList", unSplitList);
|
||||
resultMap.put("splitList", splitList);
|
||||
return resultMap;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -618,4 +618,6 @@ public interface OrderBasicInfoService{
|
||||
* @return
|
||||
*/
|
||||
List<OrderPaymentDetailVO> getSplitOrders(QueryOrderSplitRecordDTO dto);
|
||||
|
||||
void checkOrUpdateOrderSplitRecord(AfterSettleOrderDTO afterSettleOrderDTO);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,21 @@ public interface OrderSplitRecordService {
|
||||
*/
|
||||
void saveOrderSplitRecord(PaymentConfirmParam param, PaymentConfirmResponse response, List<SplitData> stationSplitConfigList, OrderInfoDetailVO orderInfoDetailVO);
|
||||
|
||||
void saveOrderSplitRecordTemp(PaymentConfirmParam param, PaymentConfirmInfo response, List<SplitData> splitDataList, OrderInfoDetailVO orderInfoDetailVO);
|
||||
/**
|
||||
* 批量保存订单分账记录
|
||||
*/
|
||||
void saveOrderSplitRecord(PaymentConfirmParam param, PaymentConfirmInfo response, List<SplitData> splitDataList, OrderInfoDetailVO orderInfoDetailVO);
|
||||
|
||||
/**
|
||||
* 生成订单分账记录
|
||||
* 用于对比使用
|
||||
* @param param
|
||||
* @param response
|
||||
* @param splitDataList
|
||||
* @param orderInfoDetailVO
|
||||
* @return
|
||||
*/
|
||||
List<OrderSplitRecord> generatedOrderSplitRecordList(PaymentConfirmParam param, PaymentConfirmInfo response, List<SplitData> splitDataList, OrderInfoDetailVO orderInfoDetailVO);
|
||||
|
||||
List<OrderSplitRecordVO> selectByOrderCode(String orderCode);
|
||||
|
||||
@@ -124,5 +138,10 @@ public interface OrderSplitRecordService {
|
||||
* @return
|
||||
*/
|
||||
int deleteOrderSplitRecord(String orderCode);
|
||||
|
||||
/**
|
||||
* 根据订单号查询订单分账记录
|
||||
*/
|
||||
List<OrderSplitRecord> queryOrderSplitRecordByOrderCode(String orderCode);
|
||||
}
|
||||
|
||||
|
||||
@@ -2195,7 +2195,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 此方法只用来更新OrderSplitRecord
|
||||
* 此方法只用来更新OrderSplitRecord,这个方法不管是否一致都会更新,新方法正在开发,后面换成新方法
|
||||
* @param afterSettleOrderDTO
|
||||
* @return
|
||||
*/
|
||||
@@ -2285,7 +2285,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
orderSplitRecordService.deleteOrderSplitRecord(orderCode);
|
||||
// 保存订单分账记录
|
||||
OrderInfoDetailVO orderInfoDetailVO = getOrderInfoDetailVO(orderCode);
|
||||
orderSplitRecordService.saveOrderSplitRecordTemp(param, paymentConfirmInfo, splitDataList, orderInfoDetailVO);
|
||||
orderSplitRecordService.saveOrderSplitRecord(param, paymentConfirmInfo, splitDataList, orderInfoDetailVO);
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -5758,5 +5758,99 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
dto.setEndTime(DateUtils.parseToEndOfDay(dto.getEndTime()));
|
||||
return orderBasicInfoMapper.getSplitOrders(dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验或更新订单分账信息
|
||||
* 此方法重新生成订单分账记录,与数据库中记录对比,如果不一致,则更新
|
||||
*/
|
||||
@Override
|
||||
public void checkOrUpdateOrderSplitRecord(AfterSettleOrderDTO afterSettleOrderDTO) {
|
||||
logger.info("处理OrderSplitRecord中值为0的数据, orderCode:{}, 分账金额:{}",
|
||||
afterSettleOrderDTO.getOrderCode(), afterSettleOrderDTO.getOrderSettleAmount());
|
||||
|
||||
// 结算金额
|
||||
BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount();
|
||||
// 站点id
|
||||
String stationId = afterSettleOrderDTO.getStationId();
|
||||
// 订单编号
|
||||
String orderCode = afterSettleOrderDTO.getOrderCode();
|
||||
// 订单信息
|
||||
OrderBasicInfo orderBasicInfo = afterSettleOrderDTO.getOrderBasicInfo();
|
||||
// 保险金额(有默认值 0.00)
|
||||
BigDecimal insuranceAmount = orderBasicInfo.getInsuranceAmount();
|
||||
|
||||
// 订单是否需要分账, 结算金额必须大于0
|
||||
if (orderSettleAmount == null || orderSettleAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
||||
logger.info("realTimeOrderSplit-订单[{}]结算金额[{}]必须大于0", afterSettleOrderDTO.getOrderCode(), orderSettleAmount);
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取订单待分账信息
|
||||
List<PaymentInfo> paymentInfos = getOrderPaymentInfoList(afterSettleOrderDTO);
|
||||
if (CollectionUtils.isEmpty(paymentInfos)) {
|
||||
logger.info("realTimeOrderSplit-订单[{}]没有待分账的支付记录", afterSettleOrderDTO.getOrderCode());
|
||||
return;
|
||||
}
|
||||
|
||||
// 根据站点id查询分账配置(如果未配置则初始化)
|
||||
List<StationSplitConfig> stationSplitConfigList = stationSplitConfigService.queryByStationIdWithInit(stationId);
|
||||
|
||||
// 查字典是否开启收取平台支持服务费 1-开启; 0-关闭
|
||||
String dictValue = DictUtils.getDictValue("platform_service_flag", "status");
|
||||
if (StringUtils.equals(dictValue, Constants.ONE)) {
|
||||
// 开启收取平台支持服务费, 更新参与分账的账户列表
|
||||
updateSplitConfigList(stationId, stationSplitConfigList, orderCode);
|
||||
}
|
||||
|
||||
// 计算每个参与分账的用户, 应分多少钱
|
||||
List<SplitData> splitDataList = calculationSplitDataList(stationSplitConfigList, afterSettleOrderDTO);
|
||||
List<DivMember> divMemberList = transformDivMemberList(splitDataList);
|
||||
logger.info("realTimeOrderSplit-订单:{}, 分账信息:{}", orderCode, JSON.toJSONString(splitDataList));
|
||||
|
||||
// 执行分账
|
||||
if (CollectionUtils.isEmpty(divMemberList)) {
|
||||
logger.info("realTimeOrderSplit-订单[{}]分账信息为空", orderCode);
|
||||
return;
|
||||
}
|
||||
|
||||
String paymentId = paymentInfos.get(0).getPaymentId(); // 支付id
|
||||
String merchantId = afterSettleOrderDTO.getMerchantId(); // 运营商id
|
||||
// 根据运营商id 查询appId
|
||||
String appId = pileMerchantInfoService.queryAppIdByMerchantId(merchantId);
|
||||
PaymentConfirmParam param = PaymentConfirmParam.builder()
|
||||
.paymentId(paymentId)
|
||||
.divMemberList(divMemberList)
|
||||
.confirmAmt(orderSettleAmount.add(insuranceAmount)) // 订单结算金额 + 保险金额
|
||||
.orderCode(orderCode)
|
||||
.wechatAppId(appId)
|
||||
.build();
|
||||
// PaymentConfirmResponse paymentConfirmRequest = adapayService.createPaymentConfirmRequest(param);
|
||||
|
||||
// 查询支付确认id
|
||||
QueryPaymentConfirmDTO queryPaymentConfirmDTO = new QueryPaymentConfirmDTO();
|
||||
queryPaymentConfirmDTO.setPaymentId(paymentId);
|
||||
queryPaymentConfirmDTO.setWechatAppId(Constants.DEFAULT_APP_ID);
|
||||
QueryPaymentConfirmDetailResponse response = adapayService.queryPaymentConfirmList(queryPaymentConfirmDTO);
|
||||
|
||||
String paymentConfirmId = response.getPaymentConfirms().get(0).getId();
|
||||
|
||||
// 查询支付确认id
|
||||
QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO();
|
||||
dto.setPaymentConfirmId(paymentConfirmId);
|
||||
dto.setWechatAppId(Constants.DEFAULT_APP_ID);
|
||||
// 查询分账信息
|
||||
PaymentConfirmInfo paymentConfirmInfo = adapayService.queryPaymentConfirmDetail(dto);
|
||||
|
||||
// 获取计算出来的订单分账记录
|
||||
OrderInfoDetailVO orderInfoDetailVO = getOrderInfoDetailVO(orderCode);
|
||||
List<OrderSplitRecord> orderSplitRecords = orderSplitRecordService.generatedOrderSplitRecordList(param, paymentConfirmInfo, splitDataList, orderInfoDetailVO);
|
||||
logger.info("realTimeOrderSplit-订单:{}, 获取计算出来的订单分账记录:{}", orderCode, JSON.toJSONString(orderSplitRecords));
|
||||
// 查询数据库中该订单的分账记录
|
||||
List<OrderSplitRecord> splitRecordInfoVOS = orderSplitRecordService.queryOrderSplitRecordByOrderCode(orderCode);
|
||||
logger.info("realTimeOrderSplit-订单:{}, 数据库中的订单分账记录:{}", orderCode, JSON.toJSONString(splitRecordInfoVOS));
|
||||
|
||||
// 对比分账记录
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,6 +63,47 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
|
||||
return orderSplitRecordMapper.batchInsert(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单分账记录转换
|
||||
*/
|
||||
private List<OrderSplitRecord> transformationOrderSplitRecordList(BigDecimal settleAmount, String feeAmt,
|
||||
String paymentId, String paymentConfirmId,
|
||||
List<SplitData> splitDataList, OrderInfoDetailVO orderInfoDetailVO) {
|
||||
// 订单分账记录集合
|
||||
List<OrderSplitRecord> resultList = Lists.newArrayList();
|
||||
for (SplitData splitData : splitDataList) {
|
||||
OrderSplitRecord orderSplitRecord = new OrderSplitRecord();
|
||||
orderSplitRecord.setOrderCode(orderInfoDetailVO.getOrderCode());
|
||||
orderSplitRecord.setStatus(AdapayStatusEnum.SUCCEEDED.getValue());
|
||||
orderSplitRecord.setSettleAmount(settleAmount);
|
||||
orderSplitRecord.setTradeDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, orderInfoDetailVO.getSettlementTime())); // 订单结算日期 yyyy-MM-dd
|
||||
orderSplitRecord.setMerchantId(orderInfoDetailVO.getMerchantId());
|
||||
orderSplitRecord.setStationId(orderInfoDetailVO.getStationId());
|
||||
orderSplitRecord.setElectricityAmount(orderInfoDetailVO.getTotalElectricityAmount());
|
||||
orderSplitRecord.setServiceAmount(orderInfoDetailVO.getTotalServiceAmount());
|
||||
orderSplitRecord.setAdapayMemberId(splitData.getMemberId());
|
||||
orderSplitRecord.setPaymentId(paymentId);
|
||||
orderSplitRecord.setPaymentConfirmId(paymentConfirmId);
|
||||
orderSplitRecord.setElectricitySplitRatio(splitData.getElecRatio() != null ? splitData.getElecRatio() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setElectricitySplitAmount(splitData.getElecAmount() != null ? splitData.getElecAmount() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setServiceSplitRatio(splitData.getServiceRatio() != null ? splitData.getServiceRatio() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setServiceSplitAmount(splitData.getServiceAmount() != null ? splitData.getServiceAmount() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setRemark("");
|
||||
orderSplitRecord.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
||||
orderSplitRecord.setCreateBy(Constants.SYSTEM);
|
||||
orderSplitRecord.setCreateTime(DateUtils.getNowDate());
|
||||
// 如果是手续费承担方, 保存feeAmt, 否则保存0
|
||||
if (StringUtils.equals(splitData.getFeeFlag(), Constants.Y)) {
|
||||
orderSplitRecord.setFeeAmount(new BigDecimal(feeAmt));
|
||||
} else {
|
||||
orderSplitRecord.setFeeAmount(BigDecimal.ZERO);
|
||||
}
|
||||
resultList.add(orderSplitRecord);
|
||||
}
|
||||
log.info("transformationOrderSplitRecordList-订单分账记录转换完成:{}", JSON.toJSONString(resultList));
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveOrderSplitRecord(PaymentConfirmParam param, PaymentConfirmResponse response, List<SplitData> splitDataList, OrderInfoDetailVO orderInfoDetailVO) {
|
||||
// 判断入参
|
||||
@@ -75,52 +116,22 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
|
||||
}
|
||||
String paymentConfirmId = response.getId(); // 支付确认id
|
||||
String feeAmt = response.getFee_amt(); // 手续费
|
||||
String orderCode = param.getOrderCode(); // 订单号
|
||||
BigDecimal settleAmount = param.getConfirmAmt(); // 结算金额
|
||||
String paymentId = param.getPaymentId(); // 支付id
|
||||
List<OrderSplitRecord> list = Lists.newArrayList(); // 订单分账记录集合
|
||||
for (SplitData splitData : splitDataList) {
|
||||
OrderSplitRecord orderSplitRecord = new OrderSplitRecord();
|
||||
orderSplitRecord.setOrderCode(orderCode);
|
||||
orderSplitRecord.setStatus(AdapayStatusEnum.SUCCEEDED.getValue());
|
||||
orderSplitRecord.setSettleAmount(settleAmount);
|
||||
// orderSplitRecord.setTradeDate(DateUtils.getDate()); // 订单结算日期 yyyy-MM-dd
|
||||
orderSplitRecord.setTradeDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, orderInfoDetailVO.getSettlementTime())); // 订单结算日期 yyyy-MM-dd
|
||||
orderSplitRecord.setMerchantId(orderInfoDetailVO.getMerchantId());
|
||||
orderSplitRecord.setStationId(orderInfoDetailVO.getStationId());
|
||||
orderSplitRecord.setElectricityAmount(orderInfoDetailVO.getTotalElectricityAmount());
|
||||
orderSplitRecord.setServiceAmount(orderInfoDetailVO.getTotalServiceAmount());
|
||||
orderSplitRecord.setAdapayMemberId(splitData.getMemberId());
|
||||
orderSplitRecord.setPaymentId(paymentId);
|
||||
orderSplitRecord.setPaymentConfirmId(paymentConfirmId);
|
||||
orderSplitRecord.setElectricitySplitRatio(splitData.getElecRatio() != null ? splitData.getElecRatio() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setElectricitySplitAmount(splitData.getElecAmount() != null ? splitData.getElecAmount() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setServiceSplitRatio(splitData.getServiceRatio() != null ? splitData.getServiceRatio() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setServiceSplitAmount(splitData.getServiceAmount() != null ? splitData.getServiceAmount() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setRemark("");
|
||||
orderSplitRecord.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
||||
orderSplitRecord.setCreateBy(Constants.SYSTEM);
|
||||
orderSplitRecord.setCreateTime(DateUtils.getNowDate());
|
||||
// 如果是手续费承担方, 保存feeAmt, 否则保存0
|
||||
if (StringUtils.equals(splitData.getFeeFlag(), Constants.Y)) {
|
||||
orderSplitRecord.setFeeAmount(new BigDecimal(feeAmt));
|
||||
} else {
|
||||
orderSplitRecord.setFeeAmount(BigDecimal.ZERO);
|
||||
}
|
||||
list.add(orderSplitRecord);
|
||||
}
|
||||
List<OrderSplitRecord> list = transformationOrderSplitRecordList(settleAmount, feeAmt, paymentId, paymentConfirmId, splitDataList, orderInfoDetailVO); // 订单分账记录集合
|
||||
this.batchInsert(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存订单分账记录。临时保存
|
||||
* generated
|
||||
* @param param
|
||||
* @param response
|
||||
* @param splitDataList
|
||||
* @param orderInfoDetailVO
|
||||
*/
|
||||
@Override
|
||||
public void saveOrderSplitRecordTemp(PaymentConfirmParam param, PaymentConfirmInfo response, List<SplitData> splitDataList, OrderInfoDetailVO orderInfoDetailVO) {
|
||||
public void saveOrderSplitRecord(PaymentConfirmParam param, PaymentConfirmInfo response, List<SplitData> splitDataList, OrderInfoDetailVO orderInfoDetailVO) {
|
||||
// 判断入参
|
||||
if (param == null || response == null || CollectionUtils.isEmpty(param.getDivMemberList()) || orderInfoDetailVO == null) {
|
||||
return;
|
||||
@@ -131,44 +142,36 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
|
||||
}
|
||||
String paymentConfirmId = response.getId(); // 支付确认id
|
||||
String feeAmt = response.getFeeAmt(); // 手续费
|
||||
String orderCode = param.getOrderCode(); // 订单号
|
||||
BigDecimal settleAmount = param.getConfirmAmt(); // 结算金额
|
||||
String paymentId = param.getPaymentId(); // 支付id
|
||||
List<OrderSplitRecord> list = Lists.newArrayList(); // 订单分账记录集合
|
||||
for (SplitData splitData : splitDataList) {
|
||||
OrderSplitRecord orderSplitRecord = new OrderSplitRecord();
|
||||
orderSplitRecord.setOrderCode(orderCode);
|
||||
orderSplitRecord.setStatus(AdapayStatusEnum.SUCCEEDED.getValue());
|
||||
orderSplitRecord.setSettleAmount(settleAmount);
|
||||
// orderSplitRecord.setTradeDate(DateUtils.getDate()); // 订单结算日期 yyyy-MM-dd
|
||||
orderSplitRecord.setTradeDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, orderInfoDetailVO.getSettlementTime())); // 订单结算日期 yyyy-MM-dd
|
||||
orderSplitRecord.setMerchantId(orderInfoDetailVO.getMerchantId());
|
||||
orderSplitRecord.setStationId(orderInfoDetailVO.getStationId());
|
||||
orderSplitRecord.setElectricityAmount(orderInfoDetailVO.getTotalElectricityAmount());
|
||||
orderSplitRecord.setServiceAmount(orderInfoDetailVO.getTotalServiceAmount());
|
||||
orderSplitRecord.setAdapayMemberId(splitData.getMemberId());
|
||||
orderSplitRecord.setPaymentId(paymentId);
|
||||
orderSplitRecord.setPaymentConfirmId(paymentConfirmId);
|
||||
orderSplitRecord.setElectricitySplitRatio(splitData.getElecRatio() != null ? splitData.getElecRatio() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setElectricitySplitAmount(splitData.getElecAmount() != null ? splitData.getElecAmount() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setServiceSplitRatio(splitData.getServiceRatio() != null ? splitData.getServiceRatio() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setServiceSplitAmount(splitData.getServiceAmount() != null ? splitData.getServiceAmount() : BigDecimal.ZERO);
|
||||
orderSplitRecord.setRemark("");
|
||||
orderSplitRecord.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
||||
orderSplitRecord.setCreateBy(Constants.SYSTEM);
|
||||
orderSplitRecord.setCreateTime(DateUtils.getNowDate());
|
||||
// 如果是手续费承担方, 保存feeAmt, 否则保存0
|
||||
if (StringUtils.equals(splitData.getFeeFlag(), Constants.Y)) {
|
||||
orderSplitRecord.setFeeAmount(new BigDecimal(feeAmt));
|
||||
} else {
|
||||
orderSplitRecord.setFeeAmount(BigDecimal.ZERO);
|
||||
}
|
||||
list.add(orderSplitRecord);
|
||||
}
|
||||
log.info("保存:{}", JSON.toJSONString(list));
|
||||
List<OrderSplitRecord> list = transformationOrderSplitRecordList(settleAmount, feeAmt, paymentId, paymentConfirmId, splitDataList, orderInfoDetailVO); // 订单分账记录集合
|
||||
this.batchInsert(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成订单分账记录列表,用于对比使用
|
||||
* @param param
|
||||
* @param response
|
||||
* @param splitDataList
|
||||
* @param orderInfoDetailVO
|
||||
*/
|
||||
@Override
|
||||
public List<OrderSplitRecord> generatedOrderSplitRecordList(PaymentConfirmParam param, PaymentConfirmInfo response, List<SplitData> splitDataList, OrderInfoDetailVO orderInfoDetailVO) {
|
||||
// 判断入参
|
||||
if (param == null || response == null || CollectionUtils.isEmpty(param.getDivMemberList()) || orderInfoDetailVO == null) {
|
||||
return null;
|
||||
}
|
||||
// response中status为failed 不保存
|
||||
if (response.isFailed()) {
|
||||
return null;
|
||||
}
|
||||
String paymentConfirmId = response.getId(); // 支付确认id
|
||||
String feeAmt = response.getFeeAmt(); // 手续费
|
||||
BigDecimal settleAmount = param.getConfirmAmt(); // 结算金额
|
||||
String paymentId = param.getPaymentId(); // 支付id
|
||||
return transformationOrderSplitRecordList(settleAmount, feeAmt, paymentId, paymentConfirmId, splitDataList, orderInfoDetailVO); // 订单分账记录集合
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderSplitRecordVO> selectByOrderCode(String orderCode) {
|
||||
List<OrderSplitRecord> orderSplitRecords = orderSplitRecordMapper.selectByOrderCode(orderCode);
|
||||
@@ -726,7 +729,10 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
|
||||
return orderSplitRecordMapper.deleteOrderSplitRecord(orderCode);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<OrderSplitRecord> queryOrderSplitRecordByOrderCode(String orderCode) {
|
||||
return orderSplitRecordMapper.selectByOrderCode(orderCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据汇付会员id查询分账汇总数据
|
||||
|
||||
Reference in New Issue
Block a user