Commit 9697aee898da044aac9fc5edba649efe902f47aa

Authored by YunaiV
1 parent 0db45810

code review:钱包的逻辑

Showing 12 changed files with 24 additions and 15 deletions
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/alipay/AbstractAlipayPayClient.java
... ... @@ -160,8 +160,7 @@ public abstract class AbstractAlipayPayClient extends AbstractPayClient<AlipayPa
160 160  
161 161 // 2.1 执行请求
162 162 AlipayTradeRefundResponse response;
163   - if (Objects.equals(config.getMode(), MODE_CERTIFICATE)) {
164   - // 证书模式
  163 + if (Objects.equals(config.getMode(), MODE_CERTIFICATE)) { // 证书模式
165 164 response = client.certificateExecute(request);
166 165 } else {
167 166 response = client.execute(request);
... ... @@ -203,8 +202,7 @@ public abstract class AbstractAlipayPayClient extends AbstractPayClient<AlipayPa
203 202  
204 203 // 2.1 执行请求
205 204 AlipayTradeFastpayRefundQueryResponse response;
206   - if (Objects.equals(config.getMode(), MODE_CERTIFICATE)) {
207   - // 证书模式
  205 + if (Objects.equals(config.getMode(), MODE_CERTIFICATE)) { // 证书模式
208 206 response = client.certificateExecute(request);
209 207 } else {
210 208 response = client.execute(request);
... ...
yudao-module-pay/yudao-module-pay-biz/pom.xml
... ... @@ -23,12 +23,12 @@
23 23 <artifactId>yudao-module-pay-api</artifactId>
24 24 <version>${revision}</version>
25 25 </dependency>
26   -
27 26 <dependency>
28 27 <groupId>cn.iocoder.boot</groupId>
29 28 <artifactId>yudao-module-member-api</artifactId>
30 29 <version>${revision}</version>
31 30 </dependency>
  31 +
32 32 <!-- 业务组件 -->
33 33 <dependency>
34 34 <groupId>cn.iocoder.boot</groupId>
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java
... ... @@ -15,6 +15,7 @@ import javax.annotation.Resource;
15 15 @Service
16 16 @Validated
17 17 public class PayTransferApiImpl implements PayTransferApi {
  18 +
18 19 @Resource
19 20 private PayTransferService payTransferService;
20 21  
... ... @@ -22,4 +23,5 @@ public class PayTransferApiImpl implements PayTransferApi {
22 23 public Long createTransfer(PayTransferCreateReqDTO reqDTO) {
23 24 return payTransferService.createTransfer(reqDTO);
24 25 }
25   -}
26 26 \ No newline at end of file
  27 +
  28 +}
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletController.java
... ... @@ -65,7 +65,8 @@ public class PayWalletController {
65 65 MemberUserRespDTO::getId);
66 66 pageVO.setUserIds(userIds);
67 67 }
68   - // 暂时支持查询 userType 会员类型。管理员类型还不知道使用场景
  68 + // TODO @jason:管理员也可以先查询下。。
  69 + // 暂时支持查询 userType 会员类型。管理员类型还不知道使用场景
69 70 PageResult<PayWalletDO> pageResult = payWalletService.getWalletPage(MEMBER.getValue(),pageVO);
70 71 if (CollectionUtil.isEmpty(pageResult.getList())) {
71 72 return success(new PageResult<>(pageResult.getTotal()));
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletRespVO.java
... ... @@ -19,10 +19,9 @@ public class PayWalletRespVO extends PayWalletBaseVO {
19 19 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
20 20 private LocalDateTime createTime;
21 21  
22   - @Schema(description = "用户昵称")
  22 + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王**")
23 23 private String nickname;
24   -
25   - @Schema(description = "用户头像")
  24 + @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xxx.jpg")
26 25 private String avatar;
27 26  
28 27 }
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletUserReqVO.java
... ... @@ -12,4 +12,5 @@ public class PayWalletUserReqVO {
12 12 @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
13 13 @NotNull(message = "用户编号不能为空")
14 14 private Long userId;
  15 +
15 16 }
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/transfer/PayTransferConvert.java
... ... @@ -10,8 +10,9 @@ import org.mapstruct.factory.Mappers;
10 10 @Mapper
11 11 public interface PayTransferConvert {
12 12  
13   - PayTransferConvert INSTANCE = Mappers.getMapper(PayTransferConvert.class);
14   - @Mapping(source = "title", target = "subject")
  13 + PayTransferConvert INSTANCE = Mappers.getMapper(PayTransferConvert.class);
  14 +
  15 + @Mapping(source = "title", target = "subject") // TODO @jason:是不是都改成 subject 完事呀?
15 16 PayTransferDO convert(PayTransferCreateReqDTO dto);
16 17  
17 18 PayTransferCreateReqDTO convert(PayDemoTransferCreateReqVO vo);
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletConvert.java
... ... @@ -26,6 +26,7 @@ public interface PayWalletConvert {
26 26 PageResult<PayWalletRespVO> pageResult = convertPage(page);
27 27 pageResult.getList().forEach( wallet -> MapUtils.findAndThen(userMap, wallet.getUserId(),
28 28 user -> {
  29 + // TODO @jason:可以链式调用哈;
29 30 wallet.setNickname(user.getNickname());
30 31 wallet.setAvatar(user.getAvatar());
31 32 }));
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferExtensionDO.java
... ... @@ -11,7 +11,8 @@ import lombok.Data;
11 11 import java.util.Map;
12 12  
13 13 // TODO @jason:转账是不是类似 refund,不用拓展单呀?支付做拓展单的原因,是因为它存在不确定性,可以切换多种;转账和退款,都是明确方式的;
14   -// @芋艿 转账是不是也存在多种方式。 例如转账到银行卡。 可以使用微信,也可以使用支付宝。 支付宝账号余额不够,可以切换到微信
  14 +// @芋艿 转账是不是也存在多种方式。 例如转账到银行卡。 可以使用微信,也可以使用支付宝。 支付宝账号余额不够,可以切换到微信;
  15 +// TODO @jason:发起了,就不允许调整了,类似退款哈;
15 16 /**
16 17 * 转账拓展单 DO
17 18 *
... ... @@ -64,4 +65,4 @@ public class PayTransferExtensionDO extends BaseDO {
64 65 */
65 66 private String channelNotifyData;
66 67  
67   -}
68 68 \ No newline at end of file
  69 +}
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java
... ... @@ -19,7 +19,9 @@ public interface PayWalletRechargePackageMapper extends BaseMapperX&lt;PayWalletRec
19 19 .orderByDesc(PayWalletRechargePackageDO::getPayPrice));
20 20 }
21 21  
  22 + // TODO @jason:这里要有空格哈;String name) {
22 23 default PayWalletRechargePackageDO selectByName(String name){
23 24 return selectOne(PayWalletRechargePackageDO::getName, name);
24 25 }
25   -}
26 26 \ No newline at end of file
  27 +
  28 +}
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferServiceImpl.java
... ... @@ -218,6 +218,7 @@ public class PayTransferServiceImpl implements PayTransferService {
218 218 PayChannelEnum payChannel = PayChannelEnum.getByCode(channelCode);
219 219 switch (transferType) {
220 220 case ALIPAY_BALANCE: {
  221 + // TODO @jason:可以抽到 PayChannelEnum 里,isAlipay? 类似这种哈
221 222 if (!payChannel.getCode().startsWith("alipay")) {
222 223 throw exception(PAY_TRANSFER_TYPE_AND_CHANNEL_NOT_MATCH);
223 224 }
... ...
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargePackageServiceImpl.java
... ... @@ -48,6 +48,7 @@ public class PayWalletRechargePackageServiceImpl implements PayWalletRechargePac
48 48 public Long createWalletRechargePackage(WalletRechargePackageCreateReqVO createReqVO) {
49 49 // 校验套餐名是否唯一
50 50 validateRechargePackageNameUnique(null, createReqVO.getName());
  51 +
51 52 // 插入
52 53 PayWalletRechargePackageDO walletRechargePackage = WalletRechargePackageConvert.INSTANCE.convert(createReqVO);
53 54 walletRechargePackageMapper.insert(walletRechargePackage);
... ... @@ -61,6 +62,7 @@ public class PayWalletRechargePackageServiceImpl implements PayWalletRechargePac
61 62 validateWalletRechargePackageExists(updateReqVO.getId());
62 63 // 校验套餐名是否唯一
63 64 validateRechargePackageNameUnique(updateReqVO.getId(), updateReqVO.getName());
  65 +
64 66 // 更新
65 67 PayWalletRechargePackageDO updateObj = WalletRechargePackageConvert.INSTANCE.convert(updateReqVO);
66 68 walletRechargePackageMapper.updateById(updateObj);
... ...