From ea4fa68579a915fda88bfeb78ec3a07ddd452fb5 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 24 Jun 2026 10:59:52 -0700 Subject: [PATCH] =?UTF-8?q?feat(pay):=20=E6=96=B0=E5=A2=9E=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B8=A0=E9=81=93=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 GET /pay/channel/list 按 appId 返回渠道列表 - Service/Mapper 补充按应用查询全部支付渠道 - 列表转换时清空 config,避免密钥和证书配置下发到列表页 - 保持 /pay/channel/get 返回完整配置用于编辑详情 --- .../admin/channel/PayChannelController.java | 9 +++++++++ .../pay/convert/channel/PayChannelConvert.java | 12 ++++++++++++ .../pay/dal/mysql/channel/PayChannelMapper.java | 4 ++++ .../pay/service/channel/PayChannelService.java | 8 ++++++++ .../pay/service/channel/PayChannelServiceImpl.java | 5 +++++ 5 files changed, 38 insertions(+) diff --git a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/PayChannelController.java b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/PayChannelController.java index b7b0aeded3..95d8d2763d 100644 --- a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/PayChannelController.java +++ b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/PayChannelController.java @@ -71,6 +71,15 @@ public class PayChannelController { return success(PayChannelConvert.INSTANCE.convert(channel)); } + @GetMapping("/list") + @Operation(summary = "获得指定应用的支付渠道列表") + @Parameter(name = "appId", description = "应用编号", required = true, example = "1") + @PreAuthorize("@ss.hasPermission('pay:channel:query')") + public CommonResult> getChannelList(@RequestParam("appId") Long appId) { + List list = channelService.getChannelListByAppId(appId); + return success(PayChannelConvert.INSTANCE.convertList(list)); + } + @GetMapping("/get-enable-code-list") @Operation(summary = "获得指定应用的开启的支付渠道编码列表") @Parameter(name = "appId", description = "应用编号", required = true, example = "1") diff --git a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/channel/PayChannelConvert.java b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/channel/PayChannelConvert.java index 5baf598fd4..97ea2843f3 100644 --- a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/channel/PayChannelConvert.java +++ b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/channel/PayChannelConvert.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.pay.convert.channel; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.pay.controller.admin.channel.vo.PayChannelCreateReqVO; import cn.iocoder.yudao.module.pay.controller.admin.channel.vo.PayChannelRespVO; import cn.iocoder.yudao.module.pay.controller.admin.channel.vo.PayChannelUpdateReqVO; @@ -9,6 +10,8 @@ import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers; +import java.util.List; + @Mapper public interface PayChannelConvert { @@ -23,6 +26,15 @@ public interface PayChannelConvert { @Mapping(target = "config",expression = "java(cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString(bean.getConfig()))") PayChannelRespVO convert(PayChannelDO bean); + default List convertList(List list) { + // 列表不下发 config(密钥/证书),详情接口再返回完整配置 + return CollectionUtils.convertList(list, channel -> { + PayChannelRespVO vo = convert(channel); + vo.setConfig(null); + return vo; + }); + } + PageResult convertPage(PageResult page); } diff --git a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java index e6984984e6..ad54cd1592 100644 --- a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java +++ b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java @@ -28,4 +28,8 @@ public interface PayChannelMapper extends BaseMapperX { .eq(PayChannelDO::getStatus, status)); } + default List selectListByAppId(Long appId) { + return selectList(PayChannelDO::getAppId, appId); + } + } diff --git a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelService.java b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelService.java index c39798628a..1dccf62a10 100644 --- a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelService.java +++ b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelService.java @@ -93,6 +93,14 @@ public interface PayChannelService { */ List getEnableChannelList(Long appId); + /** + * 获得指定应用的渠道列表 + * + * @param appId 应用编号 + * @return 渠道列表 + */ + List getChannelListByAppId(Long appId); + /** * 获得指定编号的支付客户端 * diff --git a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelServiceImpl.java b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelServiceImpl.java index 63d0f26806..234fcafa7d 100644 --- a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelServiceImpl.java +++ b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelServiceImpl.java @@ -156,6 +156,11 @@ public class PayChannelServiceImpl implements PayChannelService { return payChannelMapper.selectListByAppId(appId, CommonStatusEnum.ENABLE.getStatus()); } + @Override + public List getChannelListByAppId(Long appId) { + return payChannelMapper.selectListByAppId(appId); + } + @Override public PayClient getPayClient(Long id) { PayChannelDO channel = validPayChannel(id);