This commit is contained in:
2023-08-04 09:32:01 +08:00
parent 45a7c0d0fd
commit dd80ed13c0
3 changed files with 55 additions and 22 deletions

View File

@@ -0,0 +1,28 @@
package com.jsowell.adapay.vo;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class OrderSettleResult {
/**
* 状态
*/
private String status;
/**
* 确认金额
*/
private String confirm_amt;
/**
* 支付确认手续费金额
*/
private String fee_amt;
/**
* 附加说明
*/
private String description;
}

View File

@@ -1,7 +1,7 @@
package com.jsowell.pile.service; package com.jsowell.pile.service;
import com.huifu.adapay.core.exception.BaseAdaPayException; import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.jsowell.adapay.response.PaymentConfirmResponse; import com.jsowell.adapay.vo.OrderSettleResult;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData; import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.pile.domain.AdapayMemberAccount; import com.jsowell.pile.domain.AdapayMemberAccount;
@@ -19,7 +19,6 @@ import com.jsowell.pile.vo.uniapp.SendMessageVO;
import com.jsowell.pile.vo.web.IndexOrderInfoVO; import com.jsowell.pile.vo.web.IndexOrderInfoVO;
import com.jsowell.pile.vo.web.OrderListVO; import com.jsowell.pile.vo.web.OrderListVO;
import com.jsowell.pile.vo.web.OrderTotalDataVO; import com.jsowell.pile.vo.web.OrderTotalDataVO;
import com.jsowell.pile.dto.ApplyRefundDTO;
import com.jsowell.wxpay.response.WechatPayRefundResponse; import com.jsowell.wxpay.response.WechatPayRefundResponse;
import java.text.ParseException; import java.text.ParseException;
@@ -156,7 +155,7 @@ public interface IOrderBasicInfoService {
* @return * @return
* @throws BaseAdaPayException * @throws BaseAdaPayException
*/ */
PaymentConfirmResponse doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException; OrderSettleResult doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException;
/** /**
* 批量查询订单 * 批量查询订单

View File

@@ -17,6 +17,7 @@ import com.huifu.adapay.model.Refund;
import com.jsowell.adapay.common.CreateAdaPaymentParam; import com.jsowell.adapay.common.CreateAdaPaymentParam;
import com.jsowell.adapay.common.DivMember; import com.jsowell.adapay.common.DivMember;
import com.jsowell.adapay.response.PaymentConfirmResponse; import com.jsowell.adapay.response.PaymentConfirmResponse;
import com.jsowell.adapay.vo.OrderSettleResult;
import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants; import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
@@ -626,7 +627,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
} }
// 消费金额就是订单总金额 // 消费金额就是订单总金额
BigDecimal orderAmount = new BigDecimal(data.getConsumptionAmount()); BigDecimal orderAmount = new BigDecimal(data.getConsumptionAmount());
orderBasicInfo.setOrderAmount(orderAmount); orderBasicInfo.setOrderAmount(orderAmount); // 订单总金额
// 付款金额 - 实际消费金额,如果有剩余,需要走退款操作 当使用余额支付时payAmount = principalPay + giftPay // 付款金额 - 实际消费金额,如果有剩余,需要走退款操作 当使用余额支付时payAmount = principalPay + giftPay
BigDecimal payAmount = orderBasicInfo.getPayAmount(); BigDecimal payAmount = orderBasicInfo.getPayAmount();
@@ -655,7 +656,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
OrderDetail orderDetail = getOrderDetailByOrderCode(orderCode); OrderDetail orderDetail = getOrderDetailByOrderCode(orderCode);
// 把交易记录中的用电量,金额等信息 更新到orderBasicInfo和orderDetail // 把交易记录中的用电量,金额等信息 更新到orderBasicInfo和orderDetail
// orderBasicInfo.setOrderAmount(orderAmount); // 订单总金额
orderBasicInfo.setVirtualAmount(virtualAmount); // 虚拟金额 orderBasicInfo.setVirtualAmount(virtualAmount); // 虚拟金额
orderBasicInfo.setSettleAmount(orderAmount.subtract(virtualAmount)); // 结算金额 orderBasicInfo.setSettleAmount(orderAmount.subtract(virtualAmount)); // 结算金额
orderBasicInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue()); orderBasicInfo.setOrderStatus(OrderStatusEnum.ORDER_COMPLETE.getValue());
@@ -924,9 +924,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 执行分账 // 执行分账
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) { for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
try { try {
PaymentConfirmResponse paymentConfirmResponse = doPaymentConfirm(orderBasicInfo, adapayMemberAccount); OrderSettleResult orderSettleResult = doPaymentConfirm(orderBasicInfo, adapayMemberAccount);
if (paymentConfirmResponse != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(paymentConfirmResponse.getStatus())) { if (orderSettleResult != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(orderSettleResult.getStatus())) {
JSONObject jsonObject = JSON.parseObject(paymentConfirmResponse.getDescription()); JSONObject jsonObject = JSON.parseObject(orderSettleResult.getDescription());
String orderCode = (String) jsonObject.get("orderCode"); String orderCode = (String) jsonObject.get("orderCode");
// 应收金额 = 订单结算金额汇总 // 应收金额 = 订单结算金额汇总
@@ -934,13 +934,13 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 应清分金额 = 订单产生的电费+服务费实际消费 汇总 // 应清分金额 = 订单产生的电费+服务费实际消费 汇总
shouldClearingAmount = shouldClearingAmount.add(orderBasicInfo.getSettleAmount()); shouldClearingAmount = shouldClearingAmount.add(orderBasicInfo.getSettleAmount());
// 实际清分金额 = 汇付清分接口返回的清分金额 // 实际清分金额 = 汇付清分接口返回的清分金额
actualClearingAmount = actualClearingAmount.add(new BigDecimal(paymentConfirmResponse.getConfirm_amt())); actualClearingAmount = actualClearingAmount.add(new BigDecimal(orderSettleResult.getConfirm_amt()));
// 手续费金额 = 汇付清分接口返回的手续费金额 // 手续费金额 = 汇付清分接口返回的手续费金额
feeAmount = feeAmount.add(new BigDecimal(paymentConfirmResponse.getFee_amt())); feeAmount = feeAmount.add(new BigDecimal(orderSettleResult.getFee_amt()));
// 可提现金额 = 实际清分金额 - 手续费金额 // 可提现金额 = 实际清分金额 - 手续费金额
withdrawableAmount = withdrawableAmount withdrawableAmount = withdrawableAmount
.add(new BigDecimal(paymentConfirmResponse.getConfirm_amt())) .add(new BigDecimal(orderSettleResult.getConfirm_amt()))
.subtract(new BigDecimal(paymentConfirmResponse.getFee_amt())); .subtract(new BigDecimal(orderSettleResult.getFee_amt()));
ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder() ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder()
.clearingBillCode(clearingBillCode) .clearingBillCode(clearingBillCode)
@@ -1035,9 +1035,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 执行分账 // 执行分账
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) { for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
try { try {
PaymentConfirmResponse paymentConfirmResponse = doPaymentConfirm(orderBasicInfo, adapayMemberAccount); OrderSettleResult orderSettleResult = doPaymentConfirm(orderBasicInfo, adapayMemberAccount);
if (paymentConfirmResponse != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(paymentConfirmResponse.getStatus())) { if (orderSettleResult != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(orderSettleResult.getStatus())) {
JSONObject jsonObject = JSON.parseObject(paymentConfirmResponse.getDescription()); JSONObject jsonObject = JSON.parseObject(orderSettleResult.getDescription());
String orderCode = (String) jsonObject.get("orderCode"); String orderCode = (String) jsonObject.get("orderCode");
// 应收金额 = 订单结算金额汇总 // 应收金额 = 订单结算金额汇总
@@ -1045,13 +1045,13 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// // 应清分金额 = 订单产生的电费+服务费实际消费 汇总 // // 应清分金额 = 订单产生的电费+服务费实际消费 汇总
// shouldClearingAmount = shouldClearingAmount.add(orderBasicInfo.getSettleAmount()); // shouldClearingAmount = shouldClearingAmount.add(orderBasicInfo.getSettleAmount());
// // 实际清分金额 = 汇付清分接口返回的清分金额 // // 实际清分金额 = 汇付清分接口返回的清分金额
// actualClearingAmount = actualClearingAmount.add(new BigDecimal(paymentConfirmResponse.getConfirm_amt())); // actualClearingAmount = actualClearingAmount.add(new BigDecimal(orderSettleResult.getConfirm_amt()));
// // 手续费金额 = 汇付清分接口返回的手续费金额 // // 手续费金额 = 汇付清分接口返回的手续费金额
// feeAmount = feeAmount.add(new BigDecimal(paymentConfirmResponse.getFee_amt())); // feeAmount = feeAmount.add(new BigDecimal(orderSettleResult.getFee_amt()));
// // 可提现金额 = 实际清分金额 - 手续费金额 // // 可提现金额 = 实际清分金额 - 手续费金额
// withdrawableAmount = withdrawableAmount // withdrawableAmount = withdrawableAmount
// .add(new BigDecimal(paymentConfirmResponse.getConfirm_amt())) // .add(new BigDecimal(orderSettleResult.getConfirm_amt()))
// .subtract(new BigDecimal(paymentConfirmResponse.getFee_amt())); // .subtract(new BigDecimal(orderSettleResult.getFee_amt()));
// ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder() // ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder()
// .clearingBillCode(clearingBillCode) // .clearingBillCode(clearingBillCode)
@@ -1084,13 +1084,13 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
} }
/** /**
* 交易确认 * 延迟交易订单 交易确认
* @param orderBasicInfo 订单 * @param orderBasicInfo 订单
* @param adapayMemberAccount 结算账户 * @param adapayMemberAccount 结算账户
* @throws BaseAdaPayException * @throws BaseAdaPayException
*/ */
@Override @Override
public PaymentConfirmResponse doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException { public OrderSettleResult doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException {
// 查询订单的交易id // 查询订单的交易id
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode()); AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode());
if (adapayCallbackRecord == null) { if (adapayCallbackRecord == null) {
@@ -1128,7 +1128,13 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
Map<String, Object> paymentConfirm = PaymentConfirm.create(confirmParams); Map<String, Object> paymentConfirm = PaymentConfirm.create(confirmParams);
logger.info("调分账接口param:{}, result:{}", JSON.toJSONString(confirmParams), JSON.toJSONString(paymentConfirm)); logger.info("调分账接口param:{}, result:{}", JSON.toJSONString(confirmParams), JSON.toJSONString(paymentConfirm));
// 分账接口返回的信息 // 分账接口返回的信息
return JSONObject.parseObject(JSON.toJSONString(paymentConfirm), PaymentConfirmResponse.class); PaymentConfirmResponse paymentConfirmResponse = JSONObject.parseObject(JSON.toJSONString(paymentConfirm), PaymentConfirmResponse.class);
OrderSettleResult result = new OrderSettleResult();
result.setConfirm_amt(paymentConfirmResponse.getConfirm_amt());
result.setStatus(paymentConfirmResponse.getStatus());
result.setFee_amt(paymentConfirmResponse.getFee_amt());
result.setDescription(paymentConfirmResponse.getDescription());
return result;
} }
// uniApp 发送停止充电订阅消息 // uniApp 发送停止充电订阅消息