支付模块的 code review

This commit is contained in:
YunaiV 2021-11-10 09:40:09 +08:00
parent e46a27b937
commit 3368a995ca
14 changed files with 101 additions and 88 deletions

View File

@ -11,6 +11,8 @@ import lombok.ToString;
@ToString(callSuper = true) @ToString(callSuper = true)
public class PayChannelCreateReqVO extends PayChannelBaseVO { public class PayChannelCreateReqVO extends PayChannelBaseVO {
// TODO @aquan我在想要不这个创建和修改特殊一点前端传递 string 过来后端解析成对应的因为有 code所以我们都知道是哪个配置类
// 然后 PayChannelEnum 枚举每个渠道对应的配置类另外我们就不单独给配置类搞 vo 参数校验通过手动调用 Validator 去校验
// 通过这样的方式VO api 都收成一个 update一个 create
} }

View File

@ -62,5 +62,7 @@ public class PayWechatChannelUpdateReqVO extends PayChannelBaseVO {
@ApiModelProperty(value = "apiclient_cert.pem 证书对应的字符串", required = true, example = "-----BEGIN CERTIFICATE-----") @ApiModelProperty(value = "apiclient_cert.pem 证书对应的字符串", required = true, example = "-----BEGIN CERTIFICATE-----")
private String privateCertContent; private String privateCertContent;
// TODO @aquan参数校验可以使用 @AssertTruev2 v3
} }
} }

View File

@ -1,13 +1,15 @@
package cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app; package cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app;
import java.util.*; import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppExportReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppPageReqVO;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*;
import java.util.Collection;
import java.util.List;
/** /**
* 支付应用信息 Mapper * 支付应用信息 Mapper

View File

@ -1,26 +1,31 @@
package cn.iocoder.yudao.adminserver.modules.pay.service.app.impl; package cn.iocoder.yudao.adminserver.modules.pay.service.app.impl;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppCreateReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppExportReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppPageReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppUpdateReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.convert.app.PayAppConvert;
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app.PayAppMapper;
import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService; import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO; import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.*; import javax.annotation.Resource;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*; import java.util.Collection;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import java.util.Collections;
import java.util.List;
import cn.iocoder.yudao.adminserver.modules.pay.convert.app.PayAppConvert; import java.util.Set;
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app.PayAppMapper;
import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.APP_NOT_EXISTS;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
/** /**
* 支付应用信息 Service 实现类 * 支付应用信息 Service 实现类
@ -84,6 +89,7 @@ public class PayAppServiceImpl implements PayAppService {
@Override @Override
public PageResult<PayAppDO> getAppPage(PayAppPageReqVO pageReqVO) { public PageResult<PayAppDO> getAppPage(PayAppPageReqVO pageReqVO) {
// TODO @aquan会有一个场景merchantName 匹配不到商户编号的时候应该返回没数据的
return appMapper.selectPage(pageReqVO, this.getMerchantCondition(pageReqVO.getMerchantName())); return appMapper.selectPage(pageReqVO, this.getMerchantCondition(pageReqVO.getMerchantName()));
} }
@ -94,6 +100,7 @@ public class PayAppServiceImpl implements PayAppService {
/** /**
* 获取商户编号集合根据商户名称模糊查询得到所有的商户编号集合 * 获取商户编号集合根据商户名称模糊查询得到所有的商户编号集合
*
* @param merchantName 商户名称 * @param merchantName 商户名称
* @return 商户编号集合 * @return 商户编号集合
*/ */
@ -101,7 +108,7 @@ public class PayAppServiceImpl implements PayAppService {
if (StrUtil.isBlank(merchantName)) { if (StrUtil.isBlank(merchantName)) {
return Collections.emptySet(); return Collections.emptySet();
} }
return CollectionUtils.convertSet(merchantService.getMerchantListByName(merchantName), PayMerchantDO::getId); return convertSet(merchantService.getMerchantListByName(merchantName), PayMerchantDO::getId);
} }
/** /**

View File

@ -1,22 +1,21 @@
package cn.iocoder.yudao.adminserver.modules.pay.service.channel; package cn.iocoder.yudao.adminserver.modules.pay.service.channel;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*; import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO; import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/** /**
* 支付渠道 * 支付渠道 Service 接口
* Service 接口
* *
* @author 芋艿 * @author 芋艿 // TODO @aquan作者不要我
*/ */
public interface PayChannelService { public interface PayChannelService {
/** /**
* 创建支付渠道 * 创建支付渠道
* *
@ -72,8 +71,7 @@ public interface PayChannelService {
* 列表, 用于 Excel 导出 * 列表, 用于 Excel 导出
* *
* @param exportReqVO 查询条件 * @param exportReqVO 查询条件
* @return 支付渠道 * @return 支付渠道列表
* 列表
*/ */
List<PayChannelDO> getChannelList(PayChannelExportReqVO exportReqVO); List<PayChannelDO> getChannelList(PayChannelExportReqVO exportReqVO);
@ -83,6 +81,7 @@ public interface PayChannelService {
* @param payIds 支付应用编号集合 * @param payIds 支付应用编号集合
* @return 支付渠道 * @return 支付渠道
*/ */
// TODO @aquan暂时不用提供这种哈之前提供的原因是数据字典比较特殊
List<PayChannelDO> getSimpleChannels(Collection<Long> payIds); List<PayChannelDO> getSimpleChannels(Collection<Long> payIds);
/** /**
@ -91,6 +90,7 @@ public interface PayChannelService {
* @param file pem公私钥文件 * @param file pem公私钥文件
* @return 解析后的字符串 * @return 解析后的字符串
*/ */
// TODO @aquan可以前端读取么
String parsingPemFile(MultipartFile file); String parsingPemFile(MultipartFile file);
/** /**
@ -99,6 +99,7 @@ public interface PayChannelService {
* @param reqVO 创建信息 * @param reqVO 创建信息
* @return 创建结果 * @return 创建结果
*/ */
// TODO @aquanpojo 如果要做参数校验需要添加 @Valid
Long createWechatChannel(PayWechatChannelCreateReqVO reqVO); Long createWechatChannel(PayWechatChannelCreateReqVO reqVO);
/** /**

View File

@ -1,43 +1,34 @@
package cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl; package cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.framework.pay.core.client.impl.wx.WXPayClientConfig;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.json.JsonMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.util.Assert;
import org.springframework.validation.annotation.Validated;
import java.io.IOException;
import java.util.*;
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*; import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.adminserver.modules.pay.convert.channel.PayChannelConvert; import cn.iocoder.yudao.adminserver.modules.pay.convert.channel.PayChannelConvert;
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper; import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper;
import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService; import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.pay.core.client.impl.wx.WXPayClientConfig;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*; import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
/** /**
* 支付渠道 * 支付渠道 Service 实现类
* Service 实现类
* *
* @author 芋艿 * @author 芋艿 // TODO aquan作者写自己哈
*/ */
@Slf4j
@Service @Service
@Slf4j
@Validated @Validated
public class PayChannelServiceImpl implements PayChannelService { public class PayChannelServiceImpl implements PayChannelService {
@ -162,6 +153,7 @@ public class PayChannelServiceImpl implements PayChannelService {
); );
} }
// TODO @aquanservice 不出现 mybatis plus
/** /**
* 根据条件获取通道 * 根据条件获取通道
* *

View File

@ -1,15 +1,20 @@
package cn.iocoder.yudao.adminserver.modules.pay.service.merchant; package cn.iocoder.yudao.adminserver.modules.pay.service.merchant;
import java.util.*;
import javax.validation.*;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.*; import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.PayMerchantCreateReqVO;
import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO; import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.PayMerchantExportReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.PayMerchantPageReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.PayMerchantUpdateReqVO;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO; import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import javax.validation.Valid;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/** /**
* 支付商户信息 Service 接口 * 支付商户信息 Service 接口
* *
@ -87,6 +92,7 @@ public interface PayMerchantService {
*/ */
List<PayMerchantDO> getMerchantListByName(String merchantName); List<PayMerchantDO> getMerchantListByName(String merchantName);
// TODO aquan暂时不用提供这样的检索商户不多的
/** /**
* 根据商户名称模糊查询一定数量的商户集合 * 根据商户名称模糊查询一定数量的商户集合
* @param merchantName 商户名称 * @param merchantName 商户名称
@ -100,6 +106,7 @@ public interface PayMerchantService {
* @param merchantIds 商户编号数组 * @param merchantIds 商户编号数组
* @return 商户列表 * @return 商户列表
*/ */
// TODO @aquan getMerchantList 重复了
List<PayMerchantDO> getSimpleMerchants(Collection<Long> merchantIds); List<PayMerchantDO> getSimpleMerchants(Collection<Long> merchantIds);
/** /**
@ -109,10 +116,12 @@ public interface PayMerchantService {
* @return 商户 Map * @return 商户 Map
*/ */
default Map<Long, PayMerchantDO> getMerchantMap(Collection<Long> merchantIds) { default Map<Long, PayMerchantDO> getMerchantMap(Collection<Long> merchantIds) {
// TODO @aquan可以不用判空交给 getMerchantList 解决
if (CollUtil.isEmpty(merchantIds)) { if (CollUtil.isEmpty(merchantIds)) {
return Collections.emptyMap(); return Collections.emptyMap();
} }
List<PayMerchantDO> list = getSimpleMerchants(merchantIds); List<PayMerchantDO> list = getSimpleMerchants(merchantIds);
return CollectionUtils.convertMap(list, PayMerchantDO::getId); return CollectionUtils.convertMap(list, PayMerchantDO::getId);
} }
} }

View File

@ -113,6 +113,7 @@ public class PayMerchantServiceImpl implements PayMerchantService {
*/ */
@Override @Override
public List<PayMerchantDO> getMerchantListByName(String merchantName) { public List<PayMerchantDO> getMerchantListByName(String merchantName) {
// TODO @aquanService 不要出现 mybatis plus 的代码要放到 mapper 里提供技术与业务分离原则上
return this.merchantMapper.selectList(new QueryWrapper<PayMerchantDO>() return this.merchantMapper.selectList(new QueryWrapper<PayMerchantDO>()
.lambda().likeRight(PayMerchantDO::getName, merchantName)); .lambda().likeRight(PayMerchantDO::getName, merchantName));
} }
@ -160,6 +161,7 @@ public class PayMerchantServiceImpl implements PayMerchantService {
return merchantMapper.selectBatchIds(merchantIds); return merchantMapper.selectBatchIds(merchantIds);
} }
// TODO @芋艿后续增加下合适的算法
/** /**
* 根据年月日时分秒毫秒生成商户号 * 根据年月日时分秒毫秒生成商户号
* @return 商户号 * @return 商户号
@ -168,5 +170,4 @@ public class PayMerchantServiceImpl implements PayMerchantService {
return "M" + DateUtil.format(LocalDateTime.now(),"yyyyMMddHHmmssSSS"); return "M" + DateUtil.format(LocalDateTime.now(),"yyyyMMddHHmmssSSS");
} }
} }

View File

@ -61,5 +61,5 @@ yudao:
- cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants
- cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants
pay: pay:
payReturnUrl: http://127.0.0.1 payReturnUrl: http://127.0.0.1 # TODO @aquan这个变量配置到 dev 或者 local 里,不同环境有差别哈
debug: false debug: false

View File

@ -1,7 +1,5 @@
package cn.iocoder.yudao.adminserver.modules.pay.app.service; package cn.iocoder.yudao.adminserver.modules.pay.app.service;
import javax.annotation.Resource;
import cn.iocoder.yudao.adminserver.BaseDbUnitTest; import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppCreateReqVO; import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppCreateReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.PayAppExportReqVO; 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
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app.PayAppMapper; import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.app.PayAppMapper;
import cn.iocoder.yudao.adminserver.modules.pay.service.app.impl.PayAppServiceImpl; import cn.iocoder.yudao.adminserver.modules.pay.service.app.impl.PayAppServiceImpl;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import java.util.*;
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*; import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.APP_NOT_EXISTS;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
/** /**
* {@link PayAppServiceImpl} 的单元测试类 * {@link PayAppServiceImpl} 的单元测试类
* *
@ -148,7 +145,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
assertPojoEquals(dbApp, pageResult.getList().get(0)); assertPojoEquals(dbApp, pageResult.getList().get(0));
} }
@Test // TODO 请修改 null 为需要的值 @Test // TODO aquan请修改 null 为需要的值
public void testGetAppList() { public void testGetAppList() {
// mock 数据 // mock 数据
PayAppDO dbApp = randomPojo(PayAppDO.class, o -> { // 等会查询到 PayAppDO dbApp = randomPojo(PayAppDO.class, o -> { // 等会查询到

View File

@ -1,30 +1,28 @@
package cn.iocoder.yudao.adminserver.modules.pay.channel; package cn.iocoder.yudao.adminserver.modules.pay.channel;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
import org.junit.jupiter.api.Test;
import javax.annotation.Resource;
import cn.iocoder.yudao.adminserver.BaseDbUnitTest; import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
import cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl.PayChannelServiceImpl; import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelCreateReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*; import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelExportReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelPageReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelUpdateReqVO;
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper; import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; import cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl.PayChannelServiceImpl;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import java.util.*;
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*; import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.CHANNEL_NOT_EXISTS;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
/** /**
* {@link PayChannelServiceImpl} 的单元测试类 * {@link PayChannelServiceImpl} 的单元测试类
* *
@ -152,7 +150,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
assertPojoEquals(dbChannel, pageResult.getList().get(0)); assertPojoEquals(dbChannel, pageResult.getList().get(0));
} }
@Test // TODO 请修改 null 为需要的值 @Test // TODO aquan请修改 null 为需要的值
public void testGetChannelList() { public void testGetChannelList() {
// mock 数据 // mock 数据
PayChannelDO dbChannel = randomPojo(PayChannelDO.class, o -> { // 等会查询到 PayChannelDO dbChannel = randomPojo(PayChannelDO.class, o -> { // 等会查询到

View File

@ -46,7 +46,6 @@ public class PayChannelDO extends BaseDO {
* 渠道费率单位百分比 * 渠道费率单位百分比
*/ */
private Double feeRate; private Double feeRate;
/** /**
* 备注 * 备注
*/ */

View File

@ -45,5 +45,7 @@ public interface PayErrorCodeCoreConstants {
*/ */
ErrorCode CHANNEL_NOT_EXISTS = new ErrorCode(1007006000, "支付渠道不存在"); ErrorCode CHANNEL_NOT_EXISTS = new ErrorCode(1007006000, "支付渠道不存在");
ErrorCode CHANNEL_KEY_READ_ERROR = new ErrorCode(1007006002, "支付渠道秘钥文件读取失败"); ErrorCode CHANNEL_KEY_READ_ERROR = new ErrorCode(1007006002, "支付渠道秘钥文件读取失败");
// TODO @aquan下面这个错误码缺了 CHANNEL 前缀另外错误码的分段上面有啦合并下进去哈
ErrorCode EXIST_SAME_CHANNEL_ERROR = new ErrorCode(1007006003, "已存在相同的渠道"); ErrorCode EXIST_SAME_CHANNEL_ERROR = new ErrorCode(1007006003, "已存在相同的渠道");
} }

View File

@ -16,6 +16,7 @@ public enum PayChannelEnum {
WX_PUB("wx_pub", "微信 JSAPI 支付"), // 公众号的网页 WX_PUB("wx_pub", "微信 JSAPI 支付"), // 公众号的网页
// TODO @芋艿 这个地方你写的是 wx_lit 是不是少写了一个e 还是我这里多加了一个e // TODO @芋艿 这个地方你写的是 wx_lit 是不是少写了一个e 还是我这里多加了一个e
// TODO @aquan这里就是 lite 轻量
WX_LITE("wx_lite","微信小程序支付"), WX_LITE("wx_lite","微信小程序支付"),
WX_APP("wx_app", "微信 App 支付"), WX_APP("wx_app", "微信 App 支付"),