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);