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,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<PayTransferDO> { | @@ -23,6 +26,20 @@ public interface PayTransferMapper extends BaseMapperX<PayTransferDO> { | ||
| 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) { |