mirror of
https://gitee.com/dromara/dax-pay
synced 2026-08-05 21:05:52 +08:00
feat 优化支付相关订单和记录的查询条件
This commit is contained in:
@@ -56,8 +56,9 @@
|
||||
- [x] (前端) 微信/支付宝支付通道配置
|
||||
- [x] 支付通道支持停用
|
||||
- [x] 请求支付网关时区退款号以R开头, 用于与支付ID的区分
|
||||
- [x] (前端) 平台配置
|
||||
- 2024-01-14:
|
||||
- [ ] 优化支付相关订单和记录的查询条件
|
||||
- [ ] (前端) 平台配置
|
||||
- **任务池**
|
||||
- [ ] 支付宝关闭支付时支持撤销方式,
|
||||
- [ ] 支持转账操作, 通过支付通道专有参数进行实现, 转账时只能单个通道进行操作
|
||||
|
||||
@@ -16,10 +16,7 @@ import cn.bootx.platform.daxpay.util.DaxRes;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 统一支付接口
|
||||
@@ -94,4 +91,20 @@ public class UniPayController {
|
||||
public DaxResult<Void> syncRefund(@RequestBody RefundSyncParam param){
|
||||
return DaxRes.ok();
|
||||
}
|
||||
|
||||
@CountTime
|
||||
@PaymentApi("queryPayOrder")
|
||||
@Operation(summary = "查询支付订单")
|
||||
@PostMapping("/queryPayOrder")
|
||||
public DaxResult<Void> queryPayOrder(){
|
||||
return DaxRes.ok();
|
||||
}
|
||||
|
||||
@CountTime
|
||||
@PaymentApi("queryRefundOrder")
|
||||
@Operation(summary = "查询退款订单")
|
||||
@PostMapping("/queryRefundOrder")
|
||||
public DaxResult<Void> queryRefundOrder(){
|
||||
return DaxRes.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
package cn.bootx.platform.daxpay.service.core.order.pay.dao;
|
||||
|
||||
import cn.bootx.platform.common.core.rest.param.PageParam;
|
||||
import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
|
||||
import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
|
||||
import cn.bootx.platform.common.mybatisplus.util.MpUtil;
|
||||
import cn.bootx.platform.common.query.generator.QueryGenerator;
|
||||
import cn.bootx.platform.daxpay.service.core.order.pay.entity.PayOrder;
|
||||
import cn.bootx.platform.daxpay.service.param.order.PayOrderQuery;
|
||||
import cn.hutool.core.text.NamingCase;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
@@ -31,8 +34,10 @@ public class PayOrderManager extends BaseManager<PayOrderMapper, PayOrder> {
|
||||
*/
|
||||
public Page<PayOrder> page(PageParam pageParam, PayOrderQuery query){
|
||||
Page<PayOrder> mpPage = MpUtil.getMpPage(pageParam, PayOrder.class);
|
||||
return lambdaQuery()
|
||||
.orderByDesc(MpIdEntity::getId)
|
||||
.page(mpPage);
|
||||
QueryWrapper<PayOrder> generator = QueryGenerator.generator(query);
|
||||
// if (Objects.nonNull(query.getSortField())){
|
||||
// generator.orderBy(true, query.getAsc(), NamingCase.toUnderlineCase(query.getSortField()));
|
||||
// }
|
||||
return page(mpPage, generator);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package cn.bootx.platform.daxpay.service.core.order.refund.dao;
|
||||
|
||||
import cn.bootx.platform.common.core.rest.param.PageParam;
|
||||
import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
|
||||
import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
|
||||
import cn.bootx.platform.common.mybatisplus.util.MpUtil;
|
||||
import cn.bootx.platform.common.query.generator.QueryGenerator;
|
||||
import cn.bootx.platform.daxpay.service.core.order.refund.entity.PayRefundOrder;
|
||||
import cn.bootx.platform.daxpay.service.param.order.PayRefundOrderQuery;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 支付退款订单管理
|
||||
* @author xxm
|
||||
* @since 2022/3/2
|
||||
*/
|
||||
@@ -27,11 +27,11 @@ public class PayRefundOrderManager extends BaseManager<PayRefundOrderMapper, Pay
|
||||
*/
|
||||
public Page<PayRefundOrder> page(PageParam pageParam, PayRefundOrderQuery query) {
|
||||
Page<PayRefundOrder> mpPage = MpUtil.getMpPage(pageParam, PayRefundOrder.class);
|
||||
return lambdaQuery().orderByDesc(MpIdEntity::getId)
|
||||
.like(Objects.nonNull(query.getPaymentId()), PayRefundOrder::getPaymentId, query.getPaymentId())
|
||||
.like(Objects.nonNull(query.getBusinessNo()), PayRefundOrder::getBusinessNo, query.getBusinessNo())
|
||||
.like(Objects.nonNull(query.getTitle()), PayRefundOrder::getTitle, query.getTitle())
|
||||
.page(mpPage);
|
||||
QueryWrapper<PayRefundOrder> generator = QueryGenerator.generator(query);
|
||||
// if (Objects.nonNull(query.getSortField())){
|
||||
// generator.orderBy(true, query.getAsc(), NamingCase.toUnderlineCase(query.getSortField()));
|
||||
// }
|
||||
return page(mpPage,generator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package cn.bootx.platform.daxpay.service.core.record.callback.dao;
|
||||
|
||||
import cn.bootx.platform.common.core.rest.param.PageParam;
|
||||
import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
|
||||
import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
|
||||
import cn.bootx.platform.common.mybatisplus.util.MpUtil;
|
||||
import cn.bootx.platform.common.query.generator.QueryGenerator;
|
||||
import cn.bootx.platform.daxpay.service.core.record.callback.entity.PayCallbackRecord;
|
||||
import cn.bootx.platform.daxpay.service.param.record.PayCallbackRecordQuery;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@@ -22,10 +23,9 @@ public class PayCallbackRecordManager extends BaseManager<PayCallbackRecordMappe
|
||||
/**
|
||||
* 分页
|
||||
*/
|
||||
public Page<PayCallbackRecord> page(PageParam pageParam, PayCallbackRecordQuery param){
|
||||
public Page<PayCallbackRecord> page(PageParam pageParam, PayCallbackRecordQuery query){
|
||||
Page<PayCallbackRecord> mpPage = MpUtil.getMpPage(pageParam, PayCallbackRecord.class);
|
||||
return lambdaQuery()
|
||||
.orderByDesc(MpIdEntity::getId)
|
||||
.page(mpPage);
|
||||
QueryWrapper<PayCallbackRecord> generator = QueryGenerator.generator(query);
|
||||
return page(mpPage, generator);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,6 @@ package cn.bootx.platform.daxpay.service.dto.record.callback;
|
||||
import cn.bootx.platform.common.core.rest.dto.BaseDto;
|
||||
import cn.bootx.platform.daxpay.code.PayChannelEnum;
|
||||
import cn.bootx.platform.daxpay.service.code.PayCallbackStatusEnum;
|
||||
import cn.bootx.table.modify.mysql.annotation.DbMySqlFieldType;
|
||||
import cn.bootx.table.modify.mysql.constants.MySqlFieldTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -35,7 +33,6 @@ public class PayCallbackRecordDto extends BaseDto {
|
||||
private String payChannel;
|
||||
|
||||
/** 通知消息 */
|
||||
@DbMySqlFieldType(MySqlFieldTypeEnum.LONGTEXT)
|
||||
@Schema(description = "通知消息")
|
||||
private String notifyInfo;
|
||||
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
package cn.bootx.platform.daxpay.service.param.order;
|
||||
|
||||
import cn.bootx.platform.common.core.annotation.QueryParam;
|
||||
import cn.bootx.platform.common.core.rest.param.QueryOrder;
|
||||
import cn.bootx.platform.daxpay.code.PayChannelEnum;
|
||||
import cn.bootx.platform.daxpay.code.PayStatusEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
@@ -9,8 +14,51 @@ import lombok.experimental.Accessors;
|
||||
* @author xxm
|
||||
* @since 2024/1/9
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@QueryParam
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付订单查询参数")
|
||||
public class PayOrderQuery {
|
||||
public class PayOrderQuery extends QueryOrder {
|
||||
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)
|
||||
@Schema(description = "支付订单id")
|
||||
private Long paymentId;
|
||||
|
||||
/** 关联的业务号 */
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
|
||||
@Schema(description = "关联的业务号")
|
||||
private String businessNo;
|
||||
|
||||
/** 标题 */
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
|
||||
@Schema(description = "标题")
|
||||
private String title;
|
||||
|
||||
/** 是否是异步支付 */
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)
|
||||
@Schema(description = "是否是异步支付")
|
||||
private Boolean asyncPay;
|
||||
|
||||
/** 是否是组合支付 */
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)
|
||||
@Schema(description = "是否是组合支付")
|
||||
private Boolean combinationPay;
|
||||
|
||||
/**
|
||||
* 异步支付通道
|
||||
* @see PayChannelEnum#ASYNC_TYPE_CODE
|
||||
*/
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)
|
||||
@Schema(description = "异步支付通道")
|
||||
private String asyncChannel;
|
||||
|
||||
/**
|
||||
* 支付状态
|
||||
* @see PayStatusEnum
|
||||
*/
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)
|
||||
@Schema(description = "支付状态")
|
||||
private String status;
|
||||
|
||||
}
|
||||
|
||||
@@ -18,11 +18,14 @@ import java.util.List;
|
||||
public class PayOrderRefundParam {
|
||||
|
||||
/** 支付id */
|
||||
@Schema(description = "支付id")
|
||||
private Long paymentId;
|
||||
|
||||
/** 原因 */
|
||||
@Schema(description = "原因")
|
||||
private String reason;
|
||||
|
||||
/** 退款明细 */
|
||||
@Schema(description = "退款明细")
|
||||
private List<RefundChannelParam> refundChannels;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package cn.bootx.platform.daxpay.service.param.order;
|
||||
|
||||
import cn.bootx.platform.common.core.annotation.QueryParam;
|
||||
import cn.bootx.platform.common.core.rest.param.QueryOrder;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
@@ -9,20 +12,24 @@ import lombok.experimental.Accessors;
|
||||
* @author xxm
|
||||
* @since 2024/1/9
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付退款查询参数")
|
||||
public class PayRefundOrderQuery {
|
||||
public class PayRefundOrderQuery extends QueryOrder {
|
||||
|
||||
@Schema(description = "关联的业务号")
|
||||
private String businessNo;
|
||||
|
||||
@Schema(description = "付款付单号")
|
||||
@Schema(description = "支付号")
|
||||
private Long paymentId;
|
||||
|
||||
@Schema(description = "异步方式关联退款请求号(部分退款情况)")
|
||||
@Schema(description = "关联的业务号")
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
|
||||
private String businessNo;
|
||||
|
||||
@Schema(description = "外部网关请求号")
|
||||
private String refundRequestNo;
|
||||
|
||||
@Schema(description = "标题")
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.LIKE)
|
||||
private String title;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
package cn.bootx.platform.daxpay.service.param.record;
|
||||
|
||||
import cn.bootx.platform.common.core.annotation.QueryParam;
|
||||
import cn.bootx.platform.common.core.rest.param.QueryOrder;
|
||||
import cn.bootx.platform.daxpay.code.PayChannelEnum;
|
||||
import cn.bootx.platform.daxpay.service.code.PayCallbackStatusEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
@@ -9,8 +14,29 @@ import lombok.experimental.Accessors;
|
||||
* @author xxm
|
||||
* @since 2024/1/9
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付回调信息记录")
|
||||
public class PayCallbackRecordQuery {
|
||||
public class PayCallbackRecordQuery extends QueryOrder {
|
||||
|
||||
/** 支付记录id */
|
||||
@Schema(description = "支付记录id")
|
||||
private Long paymentId;
|
||||
|
||||
/**
|
||||
* 支付通道
|
||||
* @see PayChannelEnum#getCode()
|
||||
*/
|
||||
@Schema(description = "支付通道")
|
||||
private String payChannel;
|
||||
|
||||
|
||||
/**
|
||||
* 回调处理状态
|
||||
* @see PayCallbackStatusEnum
|
||||
*/
|
||||
@Schema(description = "回调处理状态")
|
||||
private String status;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user