From 1683ccd96812756d6e6e57ce193305e33e090e20 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Fri, 17 Jan 2025 16:40:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=97=B6=E9=97=B4=E6=AE=B5?= =?UTF-8?q?=E5=86=85=E7=9A=84=E8=AE=A2=E5=8D=95=E5=88=86=E8=B4=A6=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/pile/domain/OrderSplitRecord.java | 5 ++ .../pile/mapper/OrderSplitRecordMapper.java | 6 +- .../pile/service/OrderSplitRecordService.java | 11 ++- .../impl/OrderBasicInfoServiceImpl.java | 4 +- .../impl/OrderSplitRecordServiceImpl.java | 78 +++++++------------ .../mapper/pile/OrderSplitRecordMapper.xml | 43 ++++++++-- 6 files changed, 80 insertions(+), 67 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderSplitRecord.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderSplitRecord.java index 9edb40c7a..9cbff3721 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderSplitRecord.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/OrderSplitRecord.java @@ -99,6 +99,11 @@ public class OrderSplitRecord { */ private BigDecimal serviceSplitAmount; + /** + * 手续费(只能有一方承担手续费) + */ + private BigDecimal feeAmount; + /** * 备注 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java index 9687561bf..d3e54b02f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java @@ -25,7 +25,7 @@ public interface OrderSplitRecordMapper { List selectByOrderCode(String orderCode); List queryOrderSplitDataList(@Param("merchantId") String merchantId, - @Param("stationId") String stationId, - @Param("startTime") String startTime, - @Param("endTime") String endTime); + @Param("stationId") String stationId, + @Param("startTime") String startTime, + @Param("endTime") String endTime); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java index 679f042af..21877d9d8 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java @@ -2,6 +2,7 @@ package com.jsowell.pile.service; import com.jsowell.adapay.dto.PaymentConfirmParam; import com.jsowell.adapay.dto.SplitData; +import com.jsowell.adapay.response.PaymentConfirmResponse; import com.jsowell.pile.domain.OrderSplitRecord; import com.jsowell.pile.vo.OrderInfoDetailVO; import com.jsowell.pile.vo.web.OrderSplitDailySummaryData; @@ -27,6 +28,7 @@ public interface OrderSplitRecordService { /** * 批量保存订单分账记录 + * * @param list * @return */ @@ -35,16 +37,17 @@ public interface OrderSplitRecordService { /** * 保存订单分账记录 */ - void saveOrderSplitRecord(PaymentConfirmParam param, String id, List stationSplitConfigList, OrderInfoDetailVO orderInfoDetailVO); + void saveOrderSplitRecord(PaymentConfirmParam param, PaymentConfirmResponse response, List stationSplitConfigList, OrderInfoDetailVO orderInfoDetailVO); List selectByOrderCode(String orderCode); /** * 根据入参拉出时间段内所有订单的分账记录 + * * @param merchantId 运营商id - * @param stationId 站点id - * @param startTime 开始时间 - * @param endTime 结束时间 + * @param stationId 站点id + * @param startTime 开始时间 + * @param endTime 结束时间 * @return */ List queryOrderSplitRecordList(String merchantId, String stationId, String startTime, String endTime); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 298474c2e..6e9242837 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1708,7 +1708,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .build(); splitDataList.add(splitData); OrderInfoDetailVO orderInfoDetailVO = getOrderInfoDetailVO(orderBasicInfo, orderDetail); - orderSplitRecordService.saveOrderSplitRecord(param, paymentConfirmResponse.getId(), splitDataList, orderInfoDetailVO); + orderSplitRecordService.saveOrderSplitRecord(param, paymentConfirmResponse, splitDataList, orderInfoDetailVO); } } return result; @@ -1879,7 +1879,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { PaymentConfirmResponse paymentConfirmRequest = adapayService.createPaymentConfirmRequest(param); // 保存订单分账记录 OrderInfoDetailVO orderInfoDetailVO = getOrderInfoDetailVO(orderCode); - orderSplitRecordService.saveOrderSplitRecord(param, paymentConfirmRequest.getId(), splitDataList, orderInfoDetailVO); + orderSplitRecordService.saveOrderSplitRecord(param, paymentConfirmRequest, splitDataList, orderInfoDetailVO); return paymentConfirmRequest; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java index 66e7425d6..0280a6123 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java @@ -4,6 +4,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.jsowell.adapay.dto.PaymentConfirmParam; import com.jsowell.adapay.dto.SplitData; +import com.jsowell.adapay.response.PaymentConfirmResponse; import com.jsowell.common.constant.Constants; import com.jsowell.common.enums.DelFlagEnum; import com.jsowell.common.enums.adapay.AdapayStatusEnum; @@ -38,66 +39,33 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { @Autowired private AdapayMemberAccountService adapayMemberAccountService; - // @Override - // public int deleteByPrimaryKey(Integer id) { - // return orderSplitRecordMapper.deleteByPrimaryKey(id); - // } - - // @Override - // public int insertOrUpdate(OrderSplitRecord record) { - // return orderSplitRecordMapper.insertOrUpdate(record); - // } - - // @Override - // public int insertOrUpdateSelective(OrderSplitRecord record) { - // return orderSplitRecordMapper.insertOrUpdateSelective(record); - // } - - // @Override - // public int insertSelective(OrderSplitRecord record) { - // return orderSplitRecordMapper.insertSelective(record); - // } - - // @Override - // public OrderSplitRecord selectByPrimaryKey(Integer id) { - // return orderSplitRecordMapper.selectByPrimaryKey(id); - // } - - // @Override - // public int updateByPrimaryKeySelective(OrderSplitRecord record) { - // return orderSplitRecordMapper.updateByPrimaryKeySelective(record); - // } - - // @Override - // public int updateBatchSelective(List list) { - // return orderSplitRecordMapper.updateBatchSelective(list); - // } - @Override public int batchInsert(List list) { return orderSplitRecordMapper.batchInsert(list); } @Override - public void saveOrderSplitRecord(PaymentConfirmParam param, String paymentConfirmId, List splitDataList, OrderInfoDetailVO orderInfoDetailVO) { - List list = Lists.newArrayList(); - - String orderCode = param.getOrderCode(); - BigDecimal settleAmount = param.getConfirmAmt(); - String paymentId = param.getPaymentId(); - + public void saveOrderSplitRecord(PaymentConfirmParam param, PaymentConfirmResponse response, List splitDataList, OrderInfoDetailVO orderInfoDetailVO) { + // 判断入参 + if (param == null || response == null || CollectionUtils.isEmpty(param.getDivMemberList()) || orderInfoDetailVO == null) { + return; + } + String paymentConfirmId = response.getId(); // 支付确认id + String feeAmt = response.getFee_amt(); // 手续费 + String orderCode = param.getOrderCode(); // 订单号 + BigDecimal settleAmount = param.getConfirmAmt(); // 结算金额 + String paymentId = param.getPaymentId(); // 支付id + List 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 - if (orderInfoDetailVO != null) { - orderSplitRecord.setMerchantId(orderInfoDetailVO.getMerchantId()); - orderSplitRecord.setStationId(orderInfoDetailVO.getStationId()); - orderSplitRecord.setElectricityAmount(orderInfoDetailVO.getTotalElectricityAmount()); - orderSplitRecord.setServiceAmount(orderInfoDetailVO.getTotalServiceAmount()); - } + 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); @@ -109,6 +77,12 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { 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); } this.batchInsert(list); @@ -144,10 +118,11 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { /** * 根据入参拉出时间段内所有订单的分账记录 + * * @param merchantId 运营商id - * @param stationId 站点id - * @param startTime 开始时间 - * @param endTime 结束时间 + * @param stationId 站点id + * @param startTime 开始时间 + * @param endTime 结束时间 * @return */ @Override @@ -254,3 +229,4 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { } + diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml index 27c58f360..a1451662c 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml @@ -20,6 +20,7 @@ + @@ -31,8 +32,8 @@ id, order_code, merchant_id, station_id, `status`, settle_amount, electricity_amount, service_amount, trade_date, adapay_member_id, payment_id, payment_confirm_id, electricity_split_ratio, - electricity_split_amount, service_split_ratio, service_split_amount, remark, create_by, - create_time, update_by, update_time, del_flag + electricity_split_amount, service_split_ratio, service_split_amount, fee_amount, + remark, create_by, create_time, update_by, update_time, del_flag