Bläddra i källkod

转账 - 管理后台增加转账单查询

jason 1 år sedan
förälder
incheckning
f4d600398c

+ 22 - 11
sql/mysql/pay_wallet.sql

@@ -224,14 +224,25 @@ VALUES (
        );
 
 -- 转账状态和转账类型数据字典
-INSERT INTO `system_dict_type`(`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (171, '支付转账类型', 'pay_transfer_type', 0, '', '1', '2023-10-28 16:27:18', '1', '2023-10-28 16:27:18', b'0', '1970-01-01 00:00:00');
-INSERT INTO `system_dict_type`(`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (170, '转账订单状态', 'pay_transfer_status', 0, '', '1', '2023-10-28 16:18:32', '1', '2023-10-28 16:18:32', b'0', '1970-01-01 00:00:00');
-
-INSERT INTO `system_dict_data`(`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1245, 4, '钱包余额', '4', 'pay_transfer_type', 0, 'info', '', '', '1', '2023-10-28 16:28:37', '1', '2023-10-28 16:28:37', b'0');
-INSERT INTO `system_dict_data`(`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1244, 3, '银行卡', '3', 'pay_transfer_type', 0, 'default', '', '', '1', '2023-10-28 16:28:21', '1', '2023-10-28 16:28:21', b'0');
-INSERT INTO `system_dict_data`(`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1243, 2, '微信余额', '2', 'pay_transfer_type', 0, 'info', '', '', '1', '2023-10-28 16:28:07', '1', '2023-10-28 16:28:07', b'0');
-INSERT INTO `system_dict_data`(`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1242, 1, '支付宝余额', '1', 'pay_transfer_type', 0, 'default', '', '', '1', '2023-10-28 16:27:44', '1', '2023-10-28 16:27:44', b'0');
-INSERT INTO `system_dict_data`(`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1241, 4, '转账失败', '30', 'pay_transfer_status', 0, 'warning', '', '', '1', '2023-10-28 16:24:16', '1', '2023-10-28 16:24:16', b'0');
-INSERT INTO `system_dict_data`(`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1240, 3, '转账成功', '20', 'pay_transfer_status', 0, 'success', '', '', '1', '2023-10-28 16:23:50', '1', '2023-10-28 16:23:50', b'0');
-INSERT INTO `system_dict_data`(`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1239, 2, '转账进行中', '10', 'pay_transfer_status', 0, 'info', '', '', '1', '2023-10-28 16:23:12', '1', '2023-10-28 16:23:12', b'0');
-INSERT INTO `system_dict_data`(`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1238, 1, '等待转账', '0', 'pay_transfer_status', 0, 'default', '', '', '1', '2023-10-28 16:21:43', '1', '2023-10-28 16:23:22', b'0');
+INSERT INTO `system_dict_type`(`name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES ('支付转账类型', 'pay_transfer_type', 0, '', '1', '2023-10-28 16:27:18', '1', '2023-10-28 16:27:18', b'0', '1970-01-01 00:00:00');
+INSERT INTO `system_dict_type`(`name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES ('转账订单状态', 'pay_transfer_status', 0, '', '1', '2023-10-28 16:18:32', '1', '2023-10-28 16:18:32', b'0', '1970-01-01 00:00:00');
+
+INSERT INTO `system_dict_data`(`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '钱包余额', '4', 'pay_transfer_type', 0, 'info', '', '', '1', '2023-10-28 16:28:37', '1', '2023-10-28 16:28:37', b'0');
+INSERT INTO `system_dict_data`(`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '银行卡', '3', 'pay_transfer_type', 0, 'default', '', '', '1', '2023-10-28 16:28:21', '1', '2023-10-28 16:28:21', b'0');
+INSERT INTO `system_dict_data`(`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '微信余额', '2', 'pay_transfer_type', 0, 'info', '', '', '1', '2023-10-28 16:28:07', '1', '2023-10-28 16:28:07', b'0');
+INSERT INTO `system_dict_data`(`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '支付宝余额', '1', 'pay_transfer_type', 0, 'default', '', '', '1', '2023-10-28 16:27:44', '1', '2023-10-28 16:27:44', b'0');
+INSERT INTO `system_dict_data`(`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '转账失败', '30', 'pay_transfer_status', 0, 'warning', '', '', '1', '2023-10-28 16:24:16', '1', '2023-10-28 16:24:16', b'0');
+INSERT INTO `system_dict_data`(`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '转账成功', '20', 'pay_transfer_status', 0, 'success', '', '', '1', '2023-10-28 16:23:50', '1', '2023-10-28 16:23:50', b'0');
+INSERT INTO `system_dict_data`(`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '转账进行中', '10', 'pay_transfer_status', 0, 'info', '', '', '1', '2023-10-28 16:23:12', '1', '2023-10-28 16:23:12', b'0');
+INSERT INTO `system_dict_data`(`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '等待转账', '0', 'pay_transfer_status', 0, 'default', '', '', '1', '2023-10-28 16:21:43', '1', '2023-10-28 16:23:22', b'0');
+
+-- 转账订单菜单脚本
+
+INSERT INTO system_menu(
+    name, permission, type, sort, parent_id,
+    path, icon, component, status, component_name
+)
+VALUES (
+           '转账订单', '', 2, 3, 1117,
+           'transfer', 'ep:credit-card', 'pay/transfer/index', 0, 'PayTransfer'
+       );

+ 20 - 7
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/PayTransferController.java

@@ -1,17 +1,16 @@
 package cn.iocoder.yudao.module.pay.controller.admin.transfer;
 
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO;
-import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateRespVO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.*;
+import cn.iocoder.yudao.module.pay.convert.transfer.PayTransferConvert;
 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
 import cn.iocoder.yudao.module.pay.service.transfer.PayTransferService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
-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.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
@@ -30,10 +29,24 @@ public class PayTransferController {
 
     @PostMapping("/create")
     @Operation(summary = "创建转账单,发起转账")
-    // TODO @jason:权限的设置, 管理后台页面加的时候加一下
+    @PreAuthorize("@ss.hasPermission('pay:transfer:create')")
     public CommonResult<PayTransferCreateRespVO> createPayTransfer(@Valid @RequestBody PayTransferCreateReqVO reqVO) {
         PayTransferDO payTransfer = payTransferService.createTransfer(reqVO, getClientIP());
         return success(new PayTransferCreateRespVO().setId(payTransfer.getId()).setStatus(payTransfer.getStatus()));
     }
 
+    @GetMapping("/get")
+    @Operation(summary = "获得转账订单")
+    @PreAuthorize("@ss.hasPermission('pay:transfer:query')")
+    public CommonResult<PayTransferRespVO> getTransfer(@RequestParam("id") Long id) {
+        return success(PayTransferConvert.INSTANCE.convert(payTransferService.getTransfer(id)));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得转账订单分页")
+    @PreAuthorize("@ss.hasPermission('pay:transfer:query')")
+    public CommonResult<PageResult<PayTransferPageItemRespVO>> getTransferPage(@Valid PayTransferPageReqVO pageVO) {
+        PageResult<PayTransferDO> pageResult = payTransferService.getTransferPage(pageVO);
+        return success(PayTransferConvert.INSTANCE.convertPage(pageResult));
+    }
 }

+ 62 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferPageItemRespVO.java

@@ -0,0 +1,62 @@
+package cn.iocoder.yudao.module.pay.controller.admin.transfer.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author jason
+ */
+@Schema(description = "管理后台 - 转账单分页项 Response VO")
+@Data
+public class PayTransferPageItemRespVO {
+
+    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2931")
+    private Long id;
+
+    @Schema(description = "转账单号", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String no;
+
+    @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12831")
+    private Long appId;
+
+    @Schema(description = "转账渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24833")
+    private Long channelId;
+
+    @Schema(description = "转账渠道编码", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String channelCode;
+
+    @Schema(description = "商户转账单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17481")
+    private String merchantTransferId;
+
+    @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private Integer type;
+
+    @Schema(description = "转账状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private Integer status;
+
+    @Schema(description = "转账成功时间")
+    private LocalDateTime successTime;
+
+    @Schema(description = "转账金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "964")
+    private Integer price;
+
+    @Schema(description = "转账标题", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String subject;
+
+    @Schema(description = "收款人姓名", example = "王五")
+    private String userName;
+
+    @Schema(description = "支付宝登录号", example = "29245")
+    private String alipayLogonId;
+
+    @Schema(description = "微信 openId", example = "26589")
+    private String openid;
+
+    @Schema(description = "渠道转账单号")
+    private String channelTransferNo;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    private LocalDateTime createTime;
+}

+ 45 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferPageReqVO.java

@@ -0,0 +1,45 @@
+package cn.iocoder.yudao.module.pay.controller.admin.transfer.vo;
+
+import lombok.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 转账单分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PayTransferPageReqVO extends PageParam {
+
+    @Schema(description = "转账单号")
+    private String no;
+
+    @Schema(description = "应用编号", example = "12831")
+    private Long appId;
+
+    @Schema(description = "渠道编码", example = "wx_app")
+    private String channelCode;
+
+    @Schema(description = "商户转账单编号", example = "17481")
+    private String merchantTransferId;
+
+    @Schema(description = "类型", example = "2")
+    private Integer type;
+
+    @Schema(description = "转账状态", example = "2")
+    private Integer status;
+
+    @Schema(description = "收款人姓名", example = "王五")
+    private String userName;
+
+    @Schema(description = "渠道转账单号")
+    private String channelTransferNo;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 78 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferRespVO.java

@@ -0,0 +1,78 @@
+package cn.iocoder.yudao.module.pay.controller.admin.transfer.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.time.LocalDateTime;
+import java.util.Map;
+
+@Schema(description = "管理后台 - 转账单 Response VO")
+@Data
+public class PayTransferRespVO {
+
+    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2931")
+    private Long id;
+
+    @Schema(description = "转账单号", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String no;
+
+    @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12831")
+    private Long appId;
+
+    @Schema(description = "转账渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24833")
+    private Long channelId;
+
+    @Schema(description = "转账渠道编码", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String channelCode;
+
+    @Schema(description = "商户转账单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17481")
+    private String merchantTransferId;
+
+    @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private Integer type;
+
+    @Schema(description = "转账状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private Integer status;
+
+    @Schema(description = "转账成功时间")
+    private LocalDateTime successTime;
+
+    @Schema(description = "转账金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "964")
+    private Integer price;
+
+    @Schema(description = "转账标题", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String subject;
+
+    @Schema(description = "收款人姓名", example = "王五")
+    private String userName;
+
+    @Schema(description = "支付宝登录号", example = "29245")
+    private String alipayLogonId;
+
+    @Schema(description = "微信 openId", example = "26589")
+    private String openid;
+
+    @Schema(description = "异步通知商户地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
+    private String notifyUrl;
+
+    @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String userIp;
+
+    @Schema(description = "渠道的额外参数")
+    private Map<String, String> channelExtras;
+
+    @Schema(description = "渠道转账单号")
+    private String channelTransferNo;
+
+    @Schema(description = "调用渠道的错误码")
+    private String channelErrorCode;
+
+    @Schema(description = "调用渠道的错误提示")
+    private String channelErrorMsg;
+
+    @Schema(description = "渠道的同步/异步通知的内容")
+    private String channelNotifyData;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    private LocalDateTime createTime;
+
+}

+ 6 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/transfer/PayTransferConvert.java

@@ -1,9 +1,12 @@
 package cn.iocoder.yudao.module.pay.convert.transfer;
 
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifiedReqDTO;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
 import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.transfer.PayDemoTransferCreateReqVO;
 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO;
+import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageItemRespVO;
+import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferRespVO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
@@ -21,4 +24,7 @@ public interface PayTransferConvert {
 
     PayTransferCreateReqDTO convert(PayDemoTransferCreateReqVO vo);
 
+    PayTransferRespVO  convert(PayTransferDO bean);
+
+    PageResult<PayTransferPageItemRespVO> convertPage(PageResult<PayTransferDO> pageResult);
 }

+ 17 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java

@@ -1,5 +1,8 @@
 package cn.iocoder.yudao.module.pay.dal.mysql.transfer;
 
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -23,6 +26,20 @@ public interface PayTransferMapper extends BaseMapperX<PayTransferDO> {
     default PayTransferDO selectByNo(String no){
         return selectOne(PayTransferDO::getNo, no);
     }
+
+    default PageResult<PayTransferDO> selectPage(PayTransferPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<PayTransferDO>()
+                .eqIfPresent(PayTransferDO::getNo, reqVO.getNo())
+                .eqIfPresent(PayTransferDO::getAppId, reqVO.getAppId())
+                .eqIfPresent(PayTransferDO::getChannelCode, reqVO.getChannelCode())
+                .eqIfPresent(PayTransferDO::getMerchantTransferId, reqVO.getMerchantTransferId())
+                .eqIfPresent(PayTransferDO::getType, reqVO.getType())
+                .eqIfPresent(PayTransferDO::getStatus, reqVO.getStatus())
+                .likeIfPresent(PayTransferDO::getUserName, reqVO.getUserName())
+                .eqIfPresent(PayTransferDO::getChannelTransferNo, reqVO.getChannelTransferNo())
+                .betweenIfPresent(PayTransferDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(PayTransferDO::getId));
+    }
 }
 
 

+ 10 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferService.java

@@ -1,7 +1,9 @@
 package cn.iocoder.yudao.module.pay.service.transfer;
 
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO;
+import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
 
 import javax.validation.Valid;
@@ -38,4 +40,12 @@ public interface PayTransferService {
      */
     PayTransferDO getTransfer(Long id);
 
+    /**
+     * 获得转账单分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 转账单分页
+     */
+    PageResult<PayTransferDO> getTransferPage(PayTransferPageReqVO pageReqVO);
+
 }

+ 7 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferServiceImpl.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pay.service.transfer;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 import cn.iocoder.yudao.framework.pay.core.client.PayClient;
 import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
@@ -10,6 +11,7 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifie
 import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum;
 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO;
+import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
 import cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper;
@@ -115,6 +117,11 @@ public class PayTransferServiceImpl implements PayTransferService {
         return transferMapper.selectById(id);
     }
 
+    @Override
+    public PageResult<PayTransferDO> getTransferPage(PayTransferPageReqVO pageReqVO) {
+        return transferMapper.selectPage(pageReqVO);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     // 注意,如果是方法内调用该方法,需要通过 getSelf().notifyTransfer(channel, notify) 调用,否则事务不生效
     public void notifyTransfer(PayChannelDO channel, PayTransferRespDTO notify) {