update 订单详情接口

This commit is contained in:
Guoqs
2024-08-06 17:04:28 +08:00
parent 602a3868db
commit 155e67ef85
8 changed files with 86 additions and 8 deletions

View File

@@ -42,6 +42,7 @@ import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
import com.jsowell.pile.util.MerchantUtils;
import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.OrderPayRecordVO;
import com.jsowell.pile.vo.base.*;
import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.uniapp.customer.*;
@@ -484,7 +485,9 @@ public class OrderService {
// 支付流水对应页面支付信息
List<OrderDetailInfoVO.PayRecord> payRecords = orderPayRecordService.selectOrderPayInfoList(orderCode);
vo.setPayRecordList(payRecords);
List<OrderPayRecordVO> payRecordList = orderPayRecordService.selectOrderPayRecordList(orderCode);
vo.setPayRecordList(payRecordList);
// 查询退款明细
List<OrderDetailInfoVO.OrderRefundInfo> orderRefundInfoList = orderBasicInfoService.getOrderRefundInfoList(orderBasicInfo);

View File

@@ -48,4 +48,14 @@ public enum AdapayPayChannelEnum {
this.value = value;
this.label = label;
}
// 添加一个根据 value 查找 label 的方法
public static String getLabelByValue(String value) {
for (AdapayPayChannelEnum channel : AdapayPayChannelEnum.values()) {
if (channel.getValue().equals(value)) {
return channel.getLabel();
}
}
return null;
}
}

View File

@@ -32,7 +32,7 @@ public enum OrderPayRecordEnum {
this.label = label;
}
public static String getPayModeDescription(String value) {
public static String getPayModeDesc(String value) {
for (OrderPayRecordEnum orderPayModeEnum : OrderPayRecordEnum.values()) {
if (orderPayModeEnum.getValue().equals(value)) {
return orderPayModeEnum.getLabel();

View File

@@ -2,6 +2,7 @@ package com.jsowell.pile.service;
import com.jsowell.adapay.vo.PaymentInfo;
import com.jsowell.pile.domain.OrderPayRecord;
import com.jsowell.pile.vo.OrderPayRecordVO;
import com.jsowell.pile.vo.web.OrderDetailInfoVO;
import java.math.BigDecimal;
@@ -33,6 +34,8 @@ public interface OrderPayRecordService{
List<PaymentInfo> queryPaymentInfosByOrderCode(String orderCode);
List<OrderPayRecordVO> selectOrderPayRecordList(String orderCode);
List<OrderDetailInfoVO.PayRecord> selectOrderPayInfoList(String orderCode);
List<PaymentInfo> parseDeductionRecord(String deductionRecord);

View File

@@ -8,6 +8,7 @@ import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.core.text.Convert;
import com.jsowell.common.enums.adapay.AdapayPayChannelEnum;
import com.jsowell.common.enums.ykc.OrderPayModeEnum;
import com.jsowell.common.enums.ykc.OrderPayRecordEnum;
import com.jsowell.common.enums.ykc.PaymentInstitutionsEnum;
@@ -94,7 +95,9 @@ public class OrderPayRecordServiceImpl implements OrderPayRecordService {
/**
* 查询订单支付信息
* 加缓存
*/
@Override
public List<OrderPayRecordVO> selectOrderPayRecordList(String orderCode) {
// 缓存
String redisKey = CacheConstants.SELECT_ORDER_PAY_INFO_LIST + orderCode;
@@ -116,9 +119,54 @@ public class OrderPayRecordServiceImpl implements OrderPayRecordService {
}
for (OrderPayRecordVO orderPayRecordVO : resultList) {
orderPayRecordVO.setPayModeDesc(OrderPayRecordEnum.getPayModeDesc(orderPayRecordVO.getPayMode()));
orderPayRecordVO.setPayChannelDesc(AdapayPayChannelEnum.getLabelByValue(orderPayRecordVO.getPayChannel()));
// 支付方式1-本金余额支付2-赠送余额支付3-白名单支付4-微信支付5-支付宝支付)
String payMode = orderPayRecordVO.getPayMode();
if (StringUtils.equals(payMode, OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue())
|| StringUtils.equals(payMode, OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) {
// 使用余额支付
orderPayRecordVO.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue());
String payModeDesc = null;
if (StringUtils.isNotBlank(OrderPayRecordEnum.getPayModeDesc(payMode))) {
payModeDesc = OrderPayRecordEnum.getPayModeDesc(payMode);
} else {
payModeDesc = OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue();
}
orderPayRecordVO.setPayModeDesc(payModeDesc);
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())) {
// 使用微信支付
orderPayRecordVO.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue());
orderPayRecordVO.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel());
// 判断是微信支付还是汇付支付
String paymentInstitutions = orderPayRecordVO.getAcquirer();
if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) {
// 查微信支付回调记录
WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode);
if (wxpayCallbackRecord != null) {
orderPayRecordVO.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
orderPayRecordVO.setTransactionId(wxpayCallbackRecord.getTransactionId());
}
} else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) {
List<PaymentInfo> paymentInfos = parseDeductionRecord(orderPayRecordVO.getDeductionRecord());
// 查询汇付支付回调
// AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByPaymentId(paymentInfos.get(0).getPaymentId());
if (adapayCallbackRecord != null) {
orderPayRecordVO.setOutTradeNo(adapayCallbackRecord.getPaymentId());
orderPayRecordVO.setTransactionId(adapayCallbackRecord.getOutTransId());
}
}
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())) {
// 使用白名单支付
orderPayRecordVO.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue());
orderPayRecordVO.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getLabel());
}
}
redisCache.setCacheList(redisKey, resultList);
redisCache.expire(redisKey, CacheConstants.cache_expire_time_1d);
return resultList;
}
@@ -172,8 +220,8 @@ public class OrderPayRecordServiceImpl implements OrderPayRecordService {
// 使用余额支付
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue());
String payModeDesc = null;
if (StringUtils.isNotBlank(OrderPayRecordEnum.getPayModeDescription(payMode))) {
payModeDesc = OrderPayRecordEnum.getPayModeDescription(payMode);
if (StringUtils.isNotBlank(OrderPayRecordEnum.getPayModeDesc(payMode))) {
payModeDesc = OrderPayRecordEnum.getPayModeDesc(payMode);
} else {
payModeDesc = OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue();
}

View File

@@ -10,9 +10,17 @@ public class OrderPayRecordVO {
private String payMode; // 支付方式1-本金余额支付2-赠送金余额支付3-白名单支付4-微信支付5-支付宝支付)
private String payModeDesc; // 支付方式描述
private String payTime; // 支付时间
private String paymentId; // 支付流水号
private String outTradeNo; // 微信商户订单号 real_time_monitor_data
private String transactionId; // 微信支付订单号
private String refundAmount; // 退款金额
private String payChannel; // 汇付定义的支付渠道
private String payChannelDesc; // 支付渠道描述
private String deductionRecord;
private String partyOrderId; // 第三方订单号(汇付生成的)
private String outTransId; // 微信/支付宝订单号
private String acquirer;
}

View File

@@ -1,6 +1,7 @@
package com.jsowell.pile.vo.web;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.pile.vo.OrderPayRecordVO;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.base.PileInfoVO;
@@ -30,7 +31,7 @@ public class OrderDetailInfoVO {
private PileInfoVO pileInfo;
// 支付信息
private List<PayRecord> payRecordList;
private List<OrderPayRecordVO> payRecordList;
private List<OrderRefundInfo> orderRefundInfoList;

View File

@@ -436,9 +436,14 @@
t1.order_code as orderCode,
t1.pay_amount as payAmount,
t1.pay_mode as payMode,
ifnull() as payTime,
ifnull(t2.create_time, t1.create_time) as payTime,
t1.acquirer as acquirer,
t1.deduction_record as deductionRecord,
t1.refund_amount as refundAmount,
t2.pay_channel as payChannel
t2.pay_channel as payChannel,
t1.payment_id as paymentId,
t2.party_order_id as partyOrderId,
t2.out_trans_id as outTransId
from order_pay_record t1
left join adapay_callback_record t2 on t2.payment_id = t1.payment_id
where t1.order_code = #{orderCode,jdbcType=VARCHAR}