mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	code review:钱包的逻辑
This commit is contained in:
		@@ -15,6 +15,7 @@ import javax.annotation.Resource;
 | 
			
		||||
@Service
 | 
			
		||||
@Validated
 | 
			
		||||
public class PayTransferApiImpl implements PayTransferApi {
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private PayTransferService payTransferService;
 | 
			
		||||
 | 
			
		||||
@@ -22,4 +23,5 @@ public class PayTransferApiImpl implements PayTransferApi {
 | 
			
		||||
    public Long createTransfer(PayTransferCreateReqDTO reqDTO) {
 | 
			
		||||
        return payTransferService.createTransfer(reqDTO);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,8 @@ public class PayWalletController {
 | 
			
		||||
                    MemberUserRespDTO::getId);
 | 
			
		||||
            pageVO.setUserIds(userIds);
 | 
			
		||||
        }
 | 
			
		||||
        //  暂时支持查询 userType 会员类型。管理员类型还不知道使用场景
 | 
			
		||||
        // TODO @jason:管理员也可以先查询下。。
 | 
			
		||||
        // 暂时支持查询 userType 会员类型。管理员类型还不知道使用场景
 | 
			
		||||
        PageResult<PayWalletDO> pageResult = payWalletService.getWalletPage(MEMBER.getValue(),pageVO);
 | 
			
		||||
        if (CollectionUtil.isEmpty(pageResult.getList())) {
 | 
			
		||||
            return success(new PageResult<>(pageResult.getTotal()));
 | 
			
		||||
 
 | 
			
		||||
@@ -19,10 +19,9 @@ public class PayWalletRespVO extends PayWalletBaseVO {
 | 
			
		||||
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
 | 
			
		||||
    private LocalDateTime createTime;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "用户昵称")
 | 
			
		||||
    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王**")
 | 
			
		||||
    private String nickname;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "用户头像")
 | 
			
		||||
    @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xxx.jpg")
 | 
			
		||||
    private String avatar;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -12,4 +12,5 @@ public class PayWalletUserReqVO {
 | 
			
		||||
    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
 | 
			
		||||
    @NotNull(message = "用户编号不能为空")
 | 
			
		||||
    private Long userId;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,8 +10,9 @@ import org.mapstruct.factory.Mappers;
 | 
			
		||||
@Mapper
 | 
			
		||||
public interface PayTransferConvert {
 | 
			
		||||
 | 
			
		||||
    PayTransferConvert  INSTANCE = Mappers.getMapper(PayTransferConvert.class);
 | 
			
		||||
    @Mapping(source = "title", target = "subject")
 | 
			
		||||
    PayTransferConvert INSTANCE = Mappers.getMapper(PayTransferConvert.class);
 | 
			
		||||
 | 
			
		||||
    @Mapping(source = "title", target = "subject") // TODO @jason:是不是都改成 subject 完事呀?
 | 
			
		||||
    PayTransferDO convert(PayTransferCreateReqDTO dto);
 | 
			
		||||
 | 
			
		||||
    PayTransferCreateReqDTO convert(PayDemoTransferCreateReqVO vo);
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@ public interface PayWalletConvert {
 | 
			
		||||
        PageResult<PayWalletRespVO> pageResult = convertPage(page);
 | 
			
		||||
        pageResult.getList().forEach( wallet -> MapUtils.findAndThen(userMap, wallet.getUserId(),
 | 
			
		||||
                user -> {
 | 
			
		||||
            // TODO @jason:可以链式调用哈;
 | 
			
		||||
                    wallet.setNickname(user.getNickname());
 | 
			
		||||
                    wallet.setAvatar(user.getAvatar());
 | 
			
		||||
                }));
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,8 @@ import lombok.Data;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
// TODO @jason:转账是不是类似 refund,不用拓展单呀?支付做拓展单的原因,是因为它存在不确定性,可以切换多种;转账和退款,都是明确方式的;
 | 
			
		||||
// @芋艿 转账是不是也存在多种方式。 例如转账到银行卡。 可以使用微信,也可以使用支付宝。 支付宝账号余额不够,可以切换到微信
 | 
			
		||||
// @芋艿 转账是不是也存在多种方式。 例如转账到银行卡。 可以使用微信,也可以使用支付宝。 支付宝账号余额不够,可以切换到微信;
 | 
			
		||||
// TODO @jason:发起了,就不允许调整了,类似退款哈;
 | 
			
		||||
/**
 | 
			
		||||
 * 转账拓展单 DO
 | 
			
		||||
 *
 | 
			
		||||
@@ -64,4 +65,4 @@ public class PayTransferExtensionDO extends BaseDO {
 | 
			
		||||
     */
 | 
			
		||||
    private String channelNotifyData;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,9 @@ public interface PayWalletRechargePackageMapper extends BaseMapperX<PayWalletRec
 | 
			
		||||
                .orderByDesc(PayWalletRechargePackageDO::getPayPrice));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // TODO @jason:这里要有空格哈;String name) {
 | 
			
		||||
    default PayWalletRechargePackageDO selectByName(String name){
 | 
			
		||||
        return selectOne(PayWalletRechargePackageDO::getName, name);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -218,6 +218,7 @@ public class PayTransferServiceImpl implements PayTransferService {
 | 
			
		||||
        PayChannelEnum payChannel = PayChannelEnum.getByCode(channelCode);
 | 
			
		||||
        switch (transferType) {
 | 
			
		||||
            case ALIPAY_BALANCE: {
 | 
			
		||||
                // TODO @jason:可以抽到 PayChannelEnum 里,isAlipay? 类似这种哈
 | 
			
		||||
                if (!payChannel.getCode().startsWith("alipay")) {
 | 
			
		||||
                    throw exception(PAY_TRANSFER_TYPE_AND_CHANNEL_NOT_MATCH);
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,7 @@ public class PayWalletRechargePackageServiceImpl implements PayWalletRechargePac
 | 
			
		||||
    public Long createWalletRechargePackage(WalletRechargePackageCreateReqVO createReqVO) {
 | 
			
		||||
        // 校验套餐名是否唯一
 | 
			
		||||
        validateRechargePackageNameUnique(null, createReqVO.getName());
 | 
			
		||||
 | 
			
		||||
        // 插入
 | 
			
		||||
        PayWalletRechargePackageDO walletRechargePackage = WalletRechargePackageConvert.INSTANCE.convert(createReqVO);
 | 
			
		||||
        walletRechargePackageMapper.insert(walletRechargePackage);
 | 
			
		||||
@@ -61,6 +62,7 @@ public class PayWalletRechargePackageServiceImpl implements PayWalletRechargePac
 | 
			
		||||
        validateWalletRechargePackageExists(updateReqVO.getId());
 | 
			
		||||
        // 校验套餐名是否唯一
 | 
			
		||||
        validateRechargePackageNameUnique(updateReqVO.getId(), updateReqVO.getName());
 | 
			
		||||
 | 
			
		||||
        // 更新
 | 
			
		||||
        PayWalletRechargePackageDO updateObj = WalletRechargePackageConvert.INSTANCE.convert(updateReqVO);
 | 
			
		||||
        walletRechargePackageMapper.updateById(updateObj);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user