Commit 3368a995cabe56d19ffa4bbd6f110c67b4b35226

Authored by YunaiV
1 parent e46a27b9

支付模块的 code review

Showing 14 changed files with 99 additions and 86 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayChannelCreateReqVO.java
... ... @@ -11,6 +11,8 @@ import lombok.ToString;
11 11 @ToString(callSuper = true)
12 12 public class PayChannelCreateReqVO extends PayChannelBaseVO {
13 13  
14   -
  14 + // TODO @aquan:我在想,要不这个创建和修改特殊一点。前端传递 string 过来,后端解析成对应的。因为有 code,所以我们都知道是哪个配置类。
  15 + // 然后,在 PayChannelEnum 里,枚举每个渠道对应的配置类。另外,我们就不单独给配置类搞 vo 了。参数校验,通过手动调用 Validator 去校验。
  16 + // 通过这样的方式,VO 和 api 都收成,一个 update,一个 create
15 17  
16 18 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayWechatChannelUpdateReqVO.java
... ... @@ -62,5 +62,7 @@ public class PayWechatChannelUpdateReqVO extends PayChannelBaseVO {
62 62  
63 63 @ApiModelProperty(value = "apiclient_cert.pem 证书对应的字符串", required = true, example = "-----BEGIN CERTIFICATE-----")
64 64 private String privateCertContent;
  65 +
  66 + // TODO @aquan:参数校验。可以使用 @AssertTrue,v2 和 v3 的
65 67 }
66 68 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/mysql/app/PayAppMapper.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app;
2 2  
3   -import java.util.*;
4   -
  3 +import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppExportReqVO;
  4 +import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppPageReqVO;
5 5 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
8 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  8 +import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
9 9 import org.apache.ibatis.annotations.Mapper;
10   -import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*;
  10 +
  11 +import java.util.Collection;
  12 +import java.util.List;
11 13  
12 14 /**
13 15 * 支付应用信息 Mapper
... ... @@ -17,7 +19,7 @@ import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*;
17 19 @Mapper
18 20 public interface PayAppMapper extends BaseMapperX<PayAppDO> {
19 21  
20   - default PageResult<PayAppDO> selectPage(PayAppPageReqVO reqVO,Collection<Long> merchantIds) {
  22 + default PageResult<PayAppDO> selectPage(PayAppPageReqVO reqVO, Collection<Long> merchantIds) {
21 23 return selectPage(reqVO, new QueryWrapperX<PayAppDO>()
22 24 .likeIfPresent("name", reqVO.getName())
23 25 .eqIfPresent("status", reqVO.getStatus())
... ... @@ -38,7 +40,7 @@ public interface PayAppMapper extends BaseMapperX&lt;PayAppDO&gt; {
38 40 .eqIfPresent("refund_notify_url", reqVO.getRefundNotifyUrl())
39 41 .eqIfPresent("merchant_id", reqVO.getMerchantId())
40 42 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
41   - .orderByDesc("id") );
  43 + .orderByDesc("id"));
42 44 }
43 45  
44 46 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/service/app/impl/PayAppServiceImpl.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.service.app.impl;
2 2  
3 3 import cn.hutool.core.util.StrUtil;
  4 +import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppCreateReqVO;
  5 +import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppExportReqVO;
  6 +import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppPageReqVO;
  7 +import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppUpdateReqVO;
  8 +import cn.iocoder.yudao.adminserver.modules.pay.convert.app.PayAppConvert;
  9 +import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app.PayAppMapper;
  10 +import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
4 11 import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
5 12 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
6 13 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
7 14 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8   -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  15 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 16 import com.google.common.annotations.VisibleForTesting;
10 17 import org.springframework.stereotype.Service;
11   -import javax.annotation.Resource;
12 18 import org.springframework.validation.annotation.Validated;
13 19  
14   -import java.util.*;
15   -import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*;
16   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
17   -
18   -import cn.iocoder.yudao.adminserver.modules.pay.convert.app.PayAppConvert;
19   -import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app.PayAppMapper;
20   -import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
  20 +import javax.annotation.Resource;
  21 +import java.util.Collection;
  22 +import java.util.Collections;
  23 +import java.util.List;
  24 +import java.util.Set;
21 25  
  26 +import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.APP_NOT_EXISTS;
22 27 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
23   -import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
  28 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
24 29  
25 30 /**
26 31 * 支付应用信息 Service 实现类
... ... @@ -84,7 +89,8 @@ public class PayAppServiceImpl implements PayAppService {
84 89  
85 90 @Override
86 91 public PageResult<PayAppDO> getAppPage(PayAppPageReqVO pageReqVO) {
87   - return appMapper.selectPage(pageReqVO,this.getMerchantCondition(pageReqVO.getMerchantName()));
  92 + // TODO @aquan:会有一个场景,merchantName 匹配不到商户编号的时候,应该返回没数据的
  93 + return appMapper.selectPage(pageReqVO, this.getMerchantCondition(pageReqVO.getMerchantName()));
88 94 }
89 95  
90 96 @Override
... ... @@ -94,6 +100,7 @@ public class PayAppServiceImpl implements PayAppService {
94 100  
95 101 /**
96 102 * 获取商户编号集合,根据商户名称模糊查询得到所有的商户编号集合
  103 + *
97 104 * @param merchantName 商户名称
98 105 * @return 商户编号集合
99 106 */
... ... @@ -101,7 +108,7 @@ public class PayAppServiceImpl implements PayAppService {
101 108 if (StrUtil.isBlank(merchantName)) {
102 109 return Collections.emptySet();
103 110 }
104   - return CollectionUtils.convertSet(merchantService.getMerchantListByName(merchantName), PayMerchantDO::getId);
  111 + return convertSet(merchantService.getMerchantListByName(merchantName), PayMerchantDO::getId);
105 112 }
106 113  
107 114 /**
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/service/channel/PayChannelService.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.service.channel;
2 2  
3   -import java.util.*;
4   -import javax.validation.*;
5   -
6 3 import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
7 4 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
8 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 6 import org.springframework.web.multipart.MultipartFile;
10 7  
  8 +import javax.validation.Valid;
  9 +import java.util.Collection;
  10 +import java.util.List;
  11 +
11 12 /**
12   - * 支付渠道
13   - * Service 接口
  13 + * 支付渠道 Service 接口
14 14 *
15   - * @author 芋艿
  15 + * @author 芋艿 // TODO @aquan:作者不要我
16 16 */
17 17 public interface PayChannelService {
18 18  
19   -
20 19 /**
21 20 * 创建支付渠道
22 21 *
... ... @@ -72,8 +71,7 @@ public interface PayChannelService {
72 71 * 列表, 用于 Excel 导出
73 72 *
74 73 * @param exportReqVO 查询条件
75   - * @return 支付渠道
76   - * 列表
  74 + * @return 支付渠道列表
77 75 */
78 76 List<PayChannelDO> getChannelList(PayChannelExportReqVO exportReqVO);
79 77  
... ... @@ -83,6 +81,7 @@ public interface PayChannelService {
83 81 * @param payIds 支付应用编号集合
84 82 * @return 支付渠道
85 83 */
  84 + // TODO @aquan:暂时不用提供这种哈。之前提供的原因,是数据字典比较特殊。
86 85 List<PayChannelDO> getSimpleChannels(Collection<Long> payIds);
87 86  
88 87 /**
... ... @@ -91,6 +90,7 @@ public interface PayChannelService {
91 90 * @param file pem公私钥文件
92 91 * @return 解析后的字符串
93 92 */
  93 + // TODO @aquan:可以前端读取么?
94 94 String parsingPemFile(MultipartFile file);
95 95  
96 96 /**
... ... @@ -99,6 +99,7 @@ public interface PayChannelService {
99 99 * @param reqVO 创建信息
100 100 * @return 创建结果
101 101 */
  102 + // TODO @aquan:pojo 如果要做参数校验,需要添加 @Valid
102 103 Long createWechatChannel(PayWechatChannelCreateReqVO reqVO);
103 104  
104 105 /**
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/service/channel/impl/PayChannelServiceImpl.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl;
2 2  
3 3 import cn.hutool.core.io.IoUtil;
  4 +import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
  5 +import cn.iocoder.yudao.adminserver.modules.pay.convert.channel.PayChannelConvert;
  6 +import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper;
  7 +import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
4 8 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
5   -import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
  9 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 10 import cn.iocoder.yudao.framework.pay.core.client.impl.wx.WXPayClientConfig;
7 11 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
8   -import com.fasterxml.jackson.annotation.JsonFormat;
9   -import com.fasterxml.jackson.databind.json.JsonMapper;
10 12 import lombok.extern.slf4j.Slf4j;
11 13 import org.springframework.stereotype.Service;
12   -
13   -import javax.annotation.Resource;
14   -
15   -import org.springframework.util.Assert;
16 14 import org.springframework.validation.annotation.Validated;
17   -
18   -import java.io.IOException;
19   -import java.util.*;
20   -
21   -import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
22   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
23   -
24   -import cn.iocoder.yudao.adminserver.modules.pay.convert.channel.PayChannelConvert;
25   -import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper;
26   -import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
27 15 import org.springframework.web.multipart.MultipartFile;
28 16  
  17 +import javax.annotation.Resource;
  18 +import java.io.IOException;
  19 +import java.util.Collection;
  20 +import java.util.List;
29 21  
30   -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
31 22 import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
  23 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
32 24  
33 25 /**
34   - * 支付渠道
35   - * Service 实现类
  26 + * 支付渠道 Service 实现类
36 27 *
37   - * @author 芋艿
  28 + * @author 芋艿 // TODO aquan:作者写自己哈
38 29 */
39   -@Slf4j
40 30 @Service
  31 +@Slf4j
41 32 @Validated
42 33 public class PayChannelServiceImpl implements PayChannelService {
43 34  
... ... @@ -162,6 +153,7 @@ public class PayChannelServiceImpl implements PayChannelService {
162 153 );
163 154 }
164 155  
  156 + // TODO @aquan:service 不出现 mybatis plus 哈
165 157 /**
166 158 * 根据条件获取通道
167 159 *
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/service/merchant/PayMerchantService.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.service.merchant;
2 2  
3   -import java.util.*;
4   -import javax.validation.*;
5   -
6 3 import cn.hutool.core.collection.CollUtil;
7   -import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.*;
8   -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  4 +import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.PayMerchantCreateReqVO;
  5 +import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.PayMerchantExportReqVO;
  6 +import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.PayMerchantPageReqVO;
  7 +import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.PayMerchantUpdateReqVO;
9 8 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
10 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 10 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
12 11  
  12 +import javax.validation.Valid;
  13 +import java.util.Collection;
  14 +import java.util.Collections;
  15 +import java.util.List;
  16 +import java.util.Map;
  17 +
13 18 /**
14 19 * 支付商户信息 Service 接口
15 20 *
... ... @@ -87,6 +92,7 @@ public interface PayMerchantService {
87 92 */
88 93 List<PayMerchantDO> getMerchantListByName(String merchantName);
89 94  
  95 + // TODO aquan:暂时不用提供这样的检索。商户不多的。
90 96 /**
91 97 * 根据商户名称模糊查询一定数量的商户集合
92 98 * @param merchantName 商户名称
... ... @@ -100,6 +106,7 @@ public interface PayMerchantService {
100 106 * @param merchantIds 商户编号数组
101 107 * @return 商户列表
102 108 */
  109 + // TODO @aquan:和 getMerchantList 重复了
103 110 List<PayMerchantDO> getSimpleMerchants(Collection<Long> merchantIds);
104 111  
105 112 /**
... ... @@ -108,11 +115,13 @@ public interface PayMerchantService {
108 115 * @param merchantIds 商户编号数组
109 116 * @return 商户 Map
110 117 */
111   - default Map<Long, PayMerchantDO> getMerchantMap(Collection<Long> merchantIds){
  118 + default Map<Long, PayMerchantDO> getMerchantMap(Collection<Long> merchantIds) {
  119 + // TODO @aquan:可以不用判空,交给 getMerchantList 解决
112 120 if (CollUtil.isEmpty(merchantIds)) {
113 121 return Collections.emptyMap();
114 122 }
115 123 List<PayMerchantDO> list = getSimpleMerchants(merchantIds);
116 124 return CollectionUtils.convertMap(list, PayMerchantDO::getId);
117 125 }
  126 +
118 127 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/service/merchant/impl/PayMerchantServiceImpl.java
... ... @@ -113,6 +113,7 @@ public class PayMerchantServiceImpl implements PayMerchantService {
113 113 */
114 114 @Override
115 115 public List<PayMerchantDO> getMerchantListByName(String merchantName) {
  116 + // TODO @aquan:Service 层,不要出现 mybatis plus 的代码,要放到 mapper 里提供。技术与业务分离,原则上
116 117 return this.merchantMapper.selectList(new QueryWrapper<PayMerchantDO>()
117 118 .lambda().likeRight(PayMerchantDO::getName, merchantName));
118 119 }
... ... @@ -160,6 +161,7 @@ public class PayMerchantServiceImpl implements PayMerchantService {
160 161 return merchantMapper.selectBatchIds(merchantIds);
161 162 }
162 163  
  164 + // TODO @芋艿:后续增加下合适的算法
163 165 /**
164 166 * 根据年月日时分秒毫秒生成商户号
165 167 * @return 商户号
... ... @@ -168,5 +170,4 @@ public class PayMerchantServiceImpl implements PayMerchantService {
168 170 return "M" + DateUtil.format(LocalDateTime.now(),"yyyyMMddHHmmssSSS");
169 171 }
170 172  
171   -
172 173 }
... ...
yudao-admin-server/src/main/resources/application.yaml
... ... @@ -61,5 +61,5 @@ yudao:
61 61 - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants
62 62 - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants
63 63 pay:
64   - payReturnUrl: http://127.0.0.1
  64 + payReturnUrl: http://127.0.0.1 # TODO @aquan:这个变量,配置到 dev 或者 local 里,不同环境有差别哈
65 65 debug: false
... ...
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/pay/app/service/PayAppServiceTest.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.app.service;
2 2  
3   -import javax.annotation.Resource;
4   -
5 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
6 4 import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppCreateReqVO;
7 5 import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppExportReqVO;
... ... @@ -10,22 +8,21 @@ import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppUpdateRe
10 8 import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app.PayAppMapper;
11 9 import cn.iocoder.yudao.adminserver.modules.pay.service.app.impl.PayAppServiceImpl;
12 10 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
13   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
14 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
15   -
  12 +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
16 13 import org.junit.jupiter.api.Test;
17 14 import org.springframework.context.annotation.Import;
18   -import java.util.*;
19 15  
20   -import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
  16 +import javax.annotation.Resource;
  17 +import java.util.List;
  18 +
  19 +import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.APP_NOT_EXISTS;
21 20 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
22 21 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
23   -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
24   -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
  22 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
  23 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
25 24 import static org.junit.jupiter.api.Assertions.*;
26 25  
27   -import static org.mockito.Mockito.*;
28   -
29 26 /**
30 27 * {@link PayAppServiceImpl} 的单元测试类
31 28 *
... ... @@ -148,7 +145,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
148 145 assertPojoEquals(dbApp, pageResult.getList().get(0));
149 146 }
150 147  
151   - @Test // TODO 请修改 null 为需要的值
  148 + @Test // TODO aquan:请修改 null 为需要的值
152 149 public void testGetAppList() {
153 150 // mock 数据
154 151 PayAppDO dbApp = randomPojo(PayAppDO.class, o -> { // 等会查询到
... ...
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/pay/channel/PayChannelServiceTest.java
1 1 package cn.iocoder.yudao.adminserver.modules.pay.channel;
2 2  
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
4   -import org.junit.jupiter.api.Test;
5   -
6   -import javax.annotation.Resource;
7   -
8 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
9   -import cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl.PayChannelServiceImpl;
10   -import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
  4 +import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelCreateReqVO;
  5 +import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelExportReqVO;
  6 +import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelPageReqVO;
  7 +import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelUpdateReqVO;
11 8 import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper;
12   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
  9 +import cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl.PayChannelServiceImpl;
  10 +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
13 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
14   -
  12 +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
15 13 import org.junit.jupiter.api.Test;
16 14 import org.springframework.context.annotation.Import;
17   -import java.util.*;
18 15  
19   -import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
  16 +import javax.annotation.Resource;
  17 +import java.util.List;
  18 +
  19 +import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.CHANNEL_NOT_EXISTS;
20 20 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
21 21 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
22   -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
23   -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
  22 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
  23 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
24 24 import static org.junit.jupiter.api.Assertions.*;
25 25  
26   -import static org.mockito.Mockito.*;
27   -
28 26 /**
29 27 * {@link PayChannelServiceImpl} 的单元测试类
30 28 *
... ... @@ -152,7 +150,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
152 150 assertPojoEquals(dbChannel, pageResult.getList().get(0));
153 151 }
154 152  
155   - @Test // TODO 请修改 null 为需要的值
  153 + @Test // TODO aquan:请修改 null 为需要的值
156 154 public void testGetChannelList() {
157 155 // mock 数据
158 156 PayChannelDO dbChannel = randomPojo(PayChannelDO.class, o -> { // 等会查询到
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/merchant/PayChannelDO.java
... ... @@ -46,7 +46,6 @@ public class PayChannelDO extends BaseDO {
46 46 * 渠道费率,单位:百分比
47 47 */
48 48 private Double feeRate;
49   -
50 49 /**
51 50 * 备注
52 51 */
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/enums/PayErrorCodeCoreConstants.java
... ... @@ -45,5 +45,7 @@ public interface PayErrorCodeCoreConstants {
45 45 */
46 46 ErrorCode CHANNEL_NOT_EXISTS = new ErrorCode(1007006000, "支付渠道不存在");
47 47 ErrorCode CHANNEL_KEY_READ_ERROR = new ErrorCode(1007006002, "支付渠道秘钥文件读取失败");
  48 + // TODO @aquan:下面这个错误码,缺了 CHANNEL 前缀。另外,错误码的分段,上面有啦,合并下进去哈
48 49 ErrorCode EXIST_SAME_CHANNEL_ERROR = new ErrorCode(1007006003, "已存在相同的渠道");
  50 +
49 51 }
... ...
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/enums/PayChannelEnum.java
... ... @@ -16,6 +16,7 @@ public enum PayChannelEnum {
16 16  
17 17 WX_PUB("wx_pub", "微信 JSAPI 支付"), // 公众号的网页
18 18 // TODO @芋艿 这个地方你写的是 wx_lit 是不是少写了一个e? 还是我这里多加了一个e
  19 + // TODO @aquan:这里就是 lite 哈,轻量
19 20 WX_LITE("wx_lite","微信小程序支付"),
20 21 WX_APP("wx_app", "微信 App 支付"),
21 22  
... ...