mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
1、优化第三方支付透传参数改为存在数据库中;2、新增超时支付单的轮训处理、增加关闭和待支付的判定和对应处理;3、新增更新前序购买记录的已支付属性;
This commit is contained in:
+8
-25
@@ -26,9 +26,13 @@ public class PayOrderRespDTO {
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 外部订单号
|
||||
* 第三方交易号
|
||||
*/
|
||||
private String tradeNo;
|
||||
|
||||
/**
|
||||
* 系统内订单号
|
||||
*
|
||||
* 对应 PayOrderExtensionDO 的 no 字段
|
||||
*/
|
||||
private String outTradeNo;
|
||||
|
||||
@@ -76,11 +80,6 @@ public class PayOrderRespDTO {
|
||||
*/
|
||||
private String channelErrorMsg;
|
||||
|
||||
/**
|
||||
* 发起支付给支付方后,异步回调原封不动回到调用方
|
||||
*/
|
||||
private Map<String,Object> passbackParams;
|
||||
|
||||
/**
|
||||
* 支付渠道:0-支付宝、1-微信
|
||||
*/
|
||||
@@ -105,13 +104,14 @@ public class PayOrderRespDTO {
|
||||
* 创建【WAITING】状态的订单返回
|
||||
*/
|
||||
public static PayOrderRespDTO waitingOf(String displayMode, String displayContent,
|
||||
String outTradeNo, Object rawData, Integer channelCode) {
|
||||
String outTradeNo, String tradeNo, Object rawData, Integer channelCode) {
|
||||
PayOrderRespDTO respDTO = new PayOrderRespDTO();
|
||||
respDTO.status = PayOrderStatusRespEnum.WAITING.getStatus();
|
||||
respDTO.displayMode = displayMode;
|
||||
respDTO.displayContent = displayContent;
|
||||
// 相对通用的字段
|
||||
respDTO.outTradeNo = outTradeNo;
|
||||
respDTO.tradeNo = tradeNo;
|
||||
respDTO.rawData = rawData;
|
||||
respDTO.channelCode = channelCode;
|
||||
return respDTO;
|
||||
@@ -149,23 +149,6 @@ public class PayOrderRespDTO {
|
||||
return respDTO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建指定状态的订单返回,适合支付渠道回调时
|
||||
*/
|
||||
public static PayOrderRespDTO of(Integer status, String channelOrderNo, String channelUserId, LocalDateTime successTime,
|
||||
String outTradeNo, Object rawData, Map<String, Object> passbackParams) {
|
||||
PayOrderRespDTO respDTO = new PayOrderRespDTO();
|
||||
respDTO.status = status;
|
||||
respDTO.channelOrderNo = channelOrderNo;
|
||||
respDTO.channelUserId = channelUserId;
|
||||
respDTO.successTime = successTime;
|
||||
// 相对通用的字段
|
||||
respDTO.outTradeNo = outTradeNo;
|
||||
respDTO.rawData = rawData;
|
||||
respDTO.passbackParams = passbackParams;
|
||||
return respDTO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建【CLOSED】状态的订单返回,适合调用支付渠道失败时
|
||||
*/
|
||||
|
||||
-5
@@ -85,11 +85,6 @@ public class PayOrderUnifiedReqDTO {
|
||||
*/
|
||||
private Map<String, String> channelExtras;
|
||||
|
||||
/**
|
||||
* 发起支付给支付方后,异步回调原封不动回到调用方
|
||||
*/
|
||||
private Map<String, Object> passbackParams;
|
||||
|
||||
/**
|
||||
* 展示模式
|
||||
*
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.cf.imes.framework.excel.core.convert;
|
||||
|
||||
/**
|
||||
* 基础枚举接口,code为布尔类型
|
||||
* <p>
|
||||
* 用于easyexcel convert
|
||||
*
|
||||
* @author Gqr
|
||||
* @since 2025/8/27 11:51
|
||||
*/
|
||||
public interface BaseBoolValEnum {
|
||||
/**
|
||||
* 魔值
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Boolean getCode();
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
String getDesc();
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
package com.cf.imes.framework.excel.core.convert;
|
||||
|
||||
import com.alibaba.excel.converters.Converter;
|
||||
import com.alibaba.excel.converters.ReadConverterContext;
|
||||
import com.alibaba.excel.converters.WriteConverterContext;
|
||||
import com.alibaba.excel.enums.CellDataTypeEnum;
|
||||
import com.alibaba.excel.metadata.data.WriteCellData;
|
||||
import com.cf.imes.framework.excel.core.annotations.EnumFormat;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
/**
|
||||
* Excel 枚举转换器
|
||||
*
|
||||
* @author Gqr
|
||||
* @since 2025/8/27 11:02
|
||||
*/
|
||||
@Slf4j
|
||||
public class EnumBoolValConvert implements Converter<Boolean> {
|
||||
@Override
|
||||
public Class<?> supportJavaTypeKey() {
|
||||
return Boolean.class; // 泛型接口
|
||||
}
|
||||
|
||||
@Override
|
||||
public CellDataTypeEnum supportExcelTypeKey() {
|
||||
return CellDataTypeEnum.BOOLEAN; // Excel 存字符串
|
||||
}
|
||||
|
||||
// 写出:Integer -> 枚举描述
|
||||
@Override
|
||||
public WriteCellData<String> convertToExcelData(WriteConverterContext<Boolean> context) {
|
||||
Boolean code = context.getValue();
|
||||
if (code == null) {
|
||||
return new WriteCellData<>("");
|
||||
}
|
||||
Class<? extends Enum> enumClass = getEnumClass(context.getContentProperty().getField());
|
||||
if (enumClass != null) {
|
||||
for (Object e : enumClass.getEnumConstants()) {
|
||||
BaseBoolValEnum baseEnum = (BaseBoolValEnum) e;
|
||||
if (baseEnum.getCode().equals(code)) {
|
||||
return new WriteCellData<>(baseEnum.getDesc());
|
||||
}
|
||||
}
|
||||
}
|
||||
return new WriteCellData<>("");
|
||||
}
|
||||
|
||||
// 读入:枚举描述 -> Integer code
|
||||
@Override
|
||||
public Boolean convertToJavaData(ReadConverterContext<?> context) {
|
||||
String desc = context.getReadCellData().getStringValue();
|
||||
if (desc == null) {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
Class<? extends Enum> enumClass = getEnumClass(context.getContentProperty().getField());
|
||||
if (enumClass != null) {
|
||||
for (Object e : enumClass.getEnumConstants()) {
|
||||
BaseBoolValEnum baseEnum = (BaseBoolValEnum) e;
|
||||
if (baseEnum.getDesc().equals(desc)) {
|
||||
return baseEnum.getCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
private Class<? extends Enum> getEnumClass(Field field) {
|
||||
EnumFormat annotation = field.getAnnotation(EnumFormat.class);
|
||||
return annotation != null ? annotation.value() : null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user