Commit f4d600398ccca2d45a61d489d5f98fcad308312a

Authored by jason
1 parent 48b1c19f

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

sql/mysql/pay_wallet.sql
@@ -224,14 +224,25 @@ VALUES ( @@ -224,14 +224,25 @@ VALUES (
224 ); 224 );
225 225
226 -- 转账状态和转账类型数据字典 226 -- 转账状态和转账类型数据字典
227 -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');  
228 -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');  
229 -  
230 -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');  
231 -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');  
232 -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');  
233 -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');  
234 -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');  
235 -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');  
236 -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');  
237 -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'); 227 +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');
  228 +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');
  229 +
  230 +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');
  231 +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');
  232 +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');
  233 +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');
  234 +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');
  235 +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');
  236 +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');
  237 +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');
  238 +
  239 +-- 转账订单菜单脚本
  240 +
  241 +INSERT INTO system_menu(
  242 + name, permission, type, sort, parent_id,
  243 + path, icon, component, status, component_name
  244 +)
  245 +VALUES (
  246 + '转账订单', '', 2, 3, 1117,
  247 + 'transfer', 'ep:credit-card', 'pay/transfer/index', 0, 'PayTransfer'
  248 + );
238 \ No newline at end of file 249 \ No newline at end of file
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/PayTransferController.java
1 package cn.iocoder.yudao.module.pay.controller.admin.transfer; 1 package cn.iocoder.yudao.module.pay.controller.admin.transfer;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 -import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO;  
5 -import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateRespVO; 4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.*;
  6 +import cn.iocoder.yudao.module.pay.convert.transfer.PayTransferConvert;
6 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; 7 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
7 import cn.iocoder.yudao.module.pay.service.transfer.PayTransferService; 8 import cn.iocoder.yudao.module.pay.service.transfer.PayTransferService;
8 import io.swagger.v3.oas.annotations.Operation; 9 import io.swagger.v3.oas.annotations.Operation;
9 import io.swagger.v3.oas.annotations.tags.Tag; 10 import io.swagger.v3.oas.annotations.tags.Tag;
  11 +import org.springframework.security.access.prepost.PreAuthorize;
10 import org.springframework.validation.annotation.Validated; 12 import org.springframework.validation.annotation.Validated;
11 -import org.springframework.web.bind.annotation.PostMapping;  
12 -import org.springframework.web.bind.annotation.RequestBody;  
13 -import org.springframework.web.bind.annotation.RequestMapping;  
14 -import org.springframework.web.bind.annotation.RestController; 13 +import org.springframework.web.bind.annotation.*;
15 14
16 import javax.annotation.Resource; 15 import javax.annotation.Resource;
17 import javax.validation.Valid; 16 import javax.validation.Valid;
@@ -30,10 +29,24 @@ public class PayTransferController { @@ -30,10 +29,24 @@ public class PayTransferController {
30 29
31 @PostMapping("/create") 30 @PostMapping("/create")
32 @Operation(summary = "创建转账单,发起转账") 31 @Operation(summary = "创建转账单,发起转账")
33 - // TODO @jason:权限的设置, 管理后台页面加的时候加一下 32 + @PreAuthorize("@ss.hasPermission('pay:transfer:create')")
34 public CommonResult<PayTransferCreateRespVO> createPayTransfer(@Valid @RequestBody PayTransferCreateReqVO reqVO) { 33 public CommonResult<PayTransferCreateRespVO> createPayTransfer(@Valid @RequestBody PayTransferCreateReqVO reqVO) {
35 PayTransferDO payTransfer = payTransferService.createTransfer(reqVO, getClientIP()); 34 PayTransferDO payTransfer = payTransferService.createTransfer(reqVO, getClientIP());
36 return success(new PayTransferCreateRespVO().setId(payTransfer.getId()).setStatus(payTransfer.getStatus())); 35 return success(new PayTransferCreateRespVO().setId(payTransfer.getId()).setStatus(payTransfer.getStatus()));
37 } 36 }
38 37
  38 + @GetMapping("/get")
  39 + @Operation(summary = "获得转账订单")
  40 + @PreAuthorize("@ss.hasPermission('pay:transfer:query')")
  41 + public CommonResult<PayTransferRespVO> getTransfer(@RequestParam("id") Long id) {
  42 + return success(PayTransferConvert.INSTANCE.convert(payTransferService.getTransfer(id)));
  43 + }
  44 +
  45 + @GetMapping("/page")
  46 + @Operation(summary = "获得转账订单分页")
  47 + @PreAuthorize("@ss.hasPermission('pay:transfer:query')")
  48 + public CommonResult<PageResult<PayTransferPageItemRespVO>> getTransferPage(@Valid PayTransferPageReqVO pageVO) {
  49 + PageResult<PayTransferDO> pageResult = payTransferService.getTransferPage(pageVO);
  50 + return success(PayTransferConvert.INSTANCE.convertPage(pageResult));
  51 + }
39 } 52 }
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferPageItemRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.controller.admin.transfer.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.Data;
  5 +
  6 +import java.time.LocalDateTime;
  7 +
  8 +/**
  9 + * @author jason
  10 + */
  11 +@Schema(description = "管理后台 - 转账单分页项 Response VO")
  12 +@Data
  13 +public class PayTransferPageItemRespVO {
  14 +
  15 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2931")
  16 + private Long id;
  17 +
  18 + @Schema(description = "转账单号", requiredMode = Schema.RequiredMode.REQUIRED)
  19 + private String no;
  20 +
  21 + @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12831")
  22 + private Long appId;
  23 +
  24 + @Schema(description = "转账渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24833")
  25 + private Long channelId;
  26 +
  27 + @Schema(description = "转账渠道编码", requiredMode = Schema.RequiredMode.REQUIRED)
  28 + private String channelCode;
  29 +
  30 + @Schema(description = "商户转账单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17481")
  31 + private String merchantTransferId;
  32 +
  33 + @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  34 + private Integer type;
  35 +
  36 + @Schema(description = "转账状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  37 + private Integer status;
  38 +
  39 + @Schema(description = "转账成功时间")
  40 + private LocalDateTime successTime;
  41 +
  42 + @Schema(description = "转账金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "964")
  43 + private Integer price;
  44 +
  45 + @Schema(description = "转账标题", requiredMode = Schema.RequiredMode.REQUIRED)
  46 + private String subject;
  47 +
  48 + @Schema(description = "收款人姓名", example = "王五")
  49 + private String userName;
  50 +
  51 + @Schema(description = "支付宝登录号", example = "29245")
  52 + private String alipayLogonId;
  53 +
  54 + @Schema(description = "微信 openId", example = "26589")
  55 + private String openid;
  56 +
  57 + @Schema(description = "渠道转账单号")
  58 + private String channelTransferNo;
  59 +
  60 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  61 + private LocalDateTime createTime;
  62 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferPageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.controller.admin.transfer.vo;
  2 +
  3 +import lombok.*;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  6 +import org.springframework.format.annotation.DateTimeFormat;
  7 +import java.time.LocalDateTime;
  8 +
  9 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  10 +
  11 +@Schema(description = "管理后台 - 转账单分页 Request VO")
  12 +@Data
  13 +@EqualsAndHashCode(callSuper = true)
  14 +@ToString(callSuper = true)
  15 +public class PayTransferPageReqVO extends PageParam {
  16 +
  17 + @Schema(description = "转账单号")
  18 + private String no;
  19 +
  20 + @Schema(description = "应用编号", example = "12831")
  21 + private Long appId;
  22 +
  23 + @Schema(description = "渠道编码", example = "wx_app")
  24 + private String channelCode;
  25 +
  26 + @Schema(description = "商户转账单编号", example = "17481")
  27 + private String merchantTransferId;
  28 +
  29 + @Schema(description = "类型", example = "2")
  30 + private Integer type;
  31 +
  32 + @Schema(description = "转账状态", example = "2")
  33 + private Integer status;
  34 +
  35 + @Schema(description = "收款人姓名", example = "王五")
  36 + private String userName;
  37 +
  38 + @Schema(description = "渠道转账单号")
  39 + private String channelTransferNo;
  40 +
  41 + @Schema(description = "创建时间")
  42 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  43 + private LocalDateTime[] createTime;
  44 +
  45 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.controller.admin.transfer.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.time.LocalDateTime;
  6 +import java.util.Map;
  7 +
  8 +@Schema(description = "管理后台 - 转账单 Response VO")
  9 +@Data
  10 +public class PayTransferRespVO {
  11 +
  12 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2931")
  13 + private Long id;
  14 +
  15 + @Schema(description = "转账单号", requiredMode = Schema.RequiredMode.REQUIRED)
  16 + private String no;
  17 +
  18 + @Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12831")
  19 + private Long appId;
  20 +
  21 + @Schema(description = "转账渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24833")
  22 + private Long channelId;
  23 +
  24 + @Schema(description = "转账渠道编码", requiredMode = Schema.RequiredMode.REQUIRED)
  25 + private String channelCode;
  26 +
  27 + @Schema(description = "商户转账单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17481")
  28 + private String merchantTransferId;
  29 +
  30 + @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  31 + private Integer type;
  32 +
  33 + @Schema(description = "转账状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  34 + private Integer status;
  35 +
  36 + @Schema(description = "转账成功时间")
  37 + private LocalDateTime successTime;
  38 +
  39 + @Schema(description = "转账金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "964")
  40 + private Integer price;
  41 +
  42 + @Schema(description = "转账标题", requiredMode = Schema.RequiredMode.REQUIRED)
  43 + private String subject;
  44 +
  45 + @Schema(description = "收款人姓名", example = "王五")
  46 + private String userName;
  47 +
  48 + @Schema(description = "支付宝登录号", example = "29245")
  49 + private String alipayLogonId;
  50 +
  51 + @Schema(description = "微信 openId", example = "26589")
  52 + private String openid;
  53 +
  54 + @Schema(description = "异步通知商户地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
  55 + private String notifyUrl;
  56 +
  57 + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED)
  58 + private String userIp;
  59 +
  60 + @Schema(description = "渠道的额外参数")
  61 + private Map<String, String> channelExtras;
  62 +
  63 + @Schema(description = "渠道转账单号")
  64 + private String channelTransferNo;
  65 +
  66 + @Schema(description = "调用渠道的错误码")
  67 + private String channelErrorCode;
  68 +
  69 + @Schema(description = "调用渠道的错误提示")
  70 + private String channelErrorMsg;
  71 +
  72 + @Schema(description = "渠道的同步/异步通知的内容")
  73 + private String channelNotifyData;
  74 +
  75 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  76 + private LocalDateTime createTime;
  77 +
  78 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/transfer/PayTransferConvert.java
1 package cn.iocoder.yudao.module.pay.convert.transfer; 1 package cn.iocoder.yudao.module.pay.convert.transfer;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
3 import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifiedReqDTO; 4 import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifiedReqDTO;
4 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO; 5 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
5 import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.transfer.PayDemoTransferCreateReqVO; 6 import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.transfer.PayDemoTransferCreateReqVO;
6 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO; 7 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO;
  8 +import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageItemRespVO;
  9 +import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferRespVO;
7 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; 10 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
8 import org.mapstruct.Mapper; 11 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 12 import org.mapstruct.factory.Mappers;
@@ -21,4 +24,7 @@ public interface PayTransferConvert { @@ -21,4 +24,7 @@ public interface PayTransferConvert {
21 24
22 PayTransferCreateReqDTO convert(PayDemoTransferCreateReqVO vo); 25 PayTransferCreateReqDTO convert(PayDemoTransferCreateReqVO vo);
23 26
  27 + PayTransferRespVO convert(PayTransferDO bean);
  28 +
  29 + PageResult<PayTransferPageItemRespVO> convertPage(PageResult<PayTransferDO> pageResult);
24 } 30 }
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java
1 package cn.iocoder.yudao.module.pay.dal.mysql.transfer; 1 package cn.iocoder.yudao.module.pay.dal.mysql.transfer;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
3 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; 6 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 8 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -23,6 +26,20 @@ public interface PayTransferMapper extends BaseMapperX&lt;PayTransferDO&gt; { @@ -23,6 +26,20 @@ public interface PayTransferMapper extends BaseMapperX&lt;PayTransferDO&gt; {
23 default PayTransferDO selectByNo(String no){ 26 default PayTransferDO selectByNo(String no){
24 return selectOne(PayTransferDO::getNo, no); 27 return selectOne(PayTransferDO::getNo, no);
25 } 28 }
  29 +
  30 + default PageResult<PayTransferDO> selectPage(PayTransferPageReqVO reqVO) {
  31 + return selectPage(reqVO, new LambdaQueryWrapperX<PayTransferDO>()
  32 + .eqIfPresent(PayTransferDO::getNo, reqVO.getNo())
  33 + .eqIfPresent(PayTransferDO::getAppId, reqVO.getAppId())
  34 + .eqIfPresent(PayTransferDO::getChannelCode, reqVO.getChannelCode())
  35 + .eqIfPresent(PayTransferDO::getMerchantTransferId, reqVO.getMerchantTransferId())
  36 + .eqIfPresent(PayTransferDO::getType, reqVO.getType())
  37 + .eqIfPresent(PayTransferDO::getStatus, reqVO.getStatus())
  38 + .likeIfPresent(PayTransferDO::getUserName, reqVO.getUserName())
  39 + .eqIfPresent(PayTransferDO::getChannelTransferNo, reqVO.getChannelTransferNo())
  40 + .betweenIfPresent(PayTransferDO::getCreateTime, reqVO.getCreateTime())
  41 + .orderByDesc(PayTransferDO::getId));
  42 + }
26 } 43 }
27 44
28 45
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferService.java
1 package cn.iocoder.yudao.module.pay.service.transfer; 1 package cn.iocoder.yudao.module.pay.service.transfer;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
3 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO; 4 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
4 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO; 5 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO;
  6 +import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
5 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; 7 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
6 8
7 import javax.validation.Valid; 9 import javax.validation.Valid;
@@ -38,4 +40,12 @@ public interface PayTransferService { @@ -38,4 +40,12 @@ public interface PayTransferService {
38 */ 40 */
39 PayTransferDO getTransfer(Long id); 41 PayTransferDO getTransfer(Long id);
40 42
  43 + /**
  44 + * 获得转账单分页
  45 + *
  46 + * @param pageReqVO 分页查询
  47 + * @return 转账单分页
  48 + */
  49 + PageResult<PayTransferDO> getTransferPage(PayTransferPageReqVO pageReqVO);
  50 +
41 } 51 }
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; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pay.service.transfer;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.extra.spring.SpringUtil; 4 import cn.hutool.extra.spring.SpringUtil;
5 import cn.iocoder.yudao.framework.common.exception.ServiceException; 5 import cn.iocoder.yudao.framework.common.exception.ServiceException;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 7 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
7 import cn.iocoder.yudao.framework.pay.core.client.PayClient; 8 import cn.iocoder.yudao.framework.pay.core.client.PayClient;
8 import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferRespDTO; 9 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 @@ -10,6 +11,7 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifie
10 import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum; 11 import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum;
11 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO; 12 import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
12 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO; 13 import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferCreateReqVO;
  14 +import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
13 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO; 15 import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
14 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; 16 import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
15 import cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper; 17 import cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper;
@@ -115,6 +117,11 @@ public class PayTransferServiceImpl implements PayTransferService { @@ -115,6 +117,11 @@ public class PayTransferServiceImpl implements PayTransferService {
115 return transferMapper.selectById(id); 117 return transferMapper.selectById(id);
116 } 118 }
117 119
  120 + @Override
  121 + public PageResult<PayTransferDO> getTransferPage(PayTransferPageReqVO pageReqVO) {
  122 + return transferMapper.selectPage(pageReqVO);
  123 + }
  124 +
118 @Transactional(rollbackFor = Exception.class) 125 @Transactional(rollbackFor = Exception.class)
119 // 注意,如果是方法内调用该方法,需要通过 getSelf().notifyTransfer(channel, notify) 调用,否则事务不生效 126 // 注意,如果是方法内调用该方法,需要通过 getSelf().notifyTransfer(channel, notify) 调用,否则事务不生效
120 public void notifyTransfer(PayChannelDO channel, PayTransferRespDTO notify) { 127 public void notifyTransfer(PayChannelDO channel, PayTransferRespDTO notify) {