Commit f4d600398ccca2d45a61d489d5f98fcad308312a
1 parent
48b1c19f
转账 - 管理后台增加转账单查询
Showing
9 changed files
with
267 additions
and
18 deletions
sql/mysql/pay_wallet.sql
| ... | ... | @@ -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 | 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 | 1 | package cn.iocoder.yudao.module.pay.controller.admin.transfer; |
| 2 | 2 | |
| 3 | 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 | 7 | import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; |
| 7 | 8 | import cn.iocoder.yudao.module.pay.service.transfer.PayTransferService; |
| 8 | 9 | import io.swagger.v3.oas.annotations.Operation; |
| 9 | 10 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 11 | +import org.springframework.security.access.prepost.PreAuthorize; | |
| 10 | 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 | 15 | import javax.annotation.Resource; |
| 17 | 16 | import javax.validation.Valid; |
| ... | ... | @@ -30,10 +29,24 @@ public class PayTransferController { |
| 30 | 29 | |
| 31 | 30 | @PostMapping("/create") |
| 32 | 31 | @Operation(summary = "创建转账单,发起转账") |
| 33 | - // TODO @jason:权限的设置, 管理后台页面加的时候加一下 | |
| 32 | + @PreAuthorize("@ss.hasPermission('pay:transfer:create')") | |
| 34 | 33 | public CommonResult<PayTransferCreateRespVO> createPayTransfer(@Valid @RequestBody PayTransferCreateReqVO reqVO) { |
| 35 | 34 | PayTransferDO payTransfer = payTransferService.createTransfer(reqVO, getClientIP()); |
| 36 | 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 | 1 | package cn.iocoder.yudao.module.pay.convert.transfer; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 3 | 4 | import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifiedReqDTO; |
| 4 | 5 | import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO; |
| 5 | 6 | import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.transfer.PayDemoTransferCreateReqVO; |
| 6 | 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 | 10 | import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; |
| 8 | 11 | import org.mapstruct.Mapper; |
| 9 | 12 | import org.mapstruct.factory.Mappers; |
| ... | ... | @@ -21,4 +24,7 @@ public interface PayTransferConvert { |
| 21 | 24 | |
| 22 | 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 | 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 | 6 | import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; |
| 4 | 7 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | 8 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| ... | ... | @@ -23,6 +26,20 @@ public interface PayTransferMapper extends BaseMapperX<PayTransferDO> { |
| 23 | 26 | default PayTransferDO selectByNo(String no){ |
| 24 | 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 | 1 | package cn.iocoder.yudao.module.pay.service.transfer; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 3 | 4 | import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO; |
| 4 | 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 | 7 | import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; |
| 6 | 8 | |
| 7 | 9 | import javax.validation.Valid; |
| ... | ... | @@ -38,4 +40,12 @@ public interface PayTransferService { |
| 38 | 40 | */ |
| 39 | 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 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.extra.spring.SpringUtil; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.exception.ServiceException; |
| 6 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 6 | 7 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; |
| 7 | 8 | import cn.iocoder.yudao.framework.pay.core.client.PayClient; |
| 8 | 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 | 11 | import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum; |
| 11 | 12 | import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO; |
| 12 | 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 | 15 | import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO; |
| 14 | 16 | import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO; |
| 15 | 17 | import cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper; |
| ... | ... | @@ -115,6 +117,11 @@ public class PayTransferServiceImpl implements PayTransferService { |
| 115 | 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 | 125 | @Transactional(rollbackFor = Exception.class) |
| 119 | 126 | // 注意,如果是方法内调用该方法,需要通过 getSelf().notifyTransfer(channel, notify) 调用,否则事务不生效 |
| 120 | 127 | public void notifyTransfer(PayChannelDO channel, PayTransferRespDTO notify) { | ... | ... |