refactor(config): 合并用户注册配置并调整默认配额

将 UserRegisterProperties 内嵌到 AppConfig,删除独立配置类;
freeTrialQuota 由 5 改为 3,新增 rewardBalance 字段;
同步更新 UserServiceImpl 初始化逻辑及 yml 配置。
This commit is contained in:
2025-12-17 13:24:38 +08:00
parent 8e26488738
commit a237bc2987
5 changed files with 15 additions and 49 deletions

View File

@@ -2,6 +2,8 @@ package com.yolo.keyborad.config;
import lombok.Data;
import java.math.BigDecimal;
/*
* @author: ziin
* @date: 2025/12/16 21:18
@@ -18,7 +20,8 @@ public class AppConfig {
/**
* 新用户注册时的免费使用次数
*/
private Integer freeTrialQuota = 5;
private Integer freeTrialQuota = 3;
private BigDecimal rewardBalance = BigDecimal.valueOf(0);
}
}

View File

@@ -1,20 +0,0 @@
package com.yolo.keyborad.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 用户注册配置属性
*/
@ConfigurationProperties(prefix = "user.register")
@Component
@Data
public class UserRegisterProperties {
/**
* 新用户注册时的免费使用次数
*/
private Integer freeTrialQuota;
}

View File

@@ -5,16 +5,15 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yolo.keyborad.common.ErrorCode;
import com.yolo.keyborad.config.AppConfig;
import com.yolo.keyborad.config.NacosAppConfigCenter;
import com.yolo.keyborad.config.UserRegisterProperties;
import com.yolo.keyborad.exception.BusinessException;
import com.yolo.keyborad.mapper.KeyboardUserMapper;
import com.yolo.keyborad.model.dto.user.*;
import com.yolo.keyborad.model.entity.KeyboardUser;
import com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal;
import com.yolo.keyborad.model.entity.KeyboardUserWallet;
import com.yolo.keyborad.model.vo.user.KeyboardUserRespVO;
import com.yolo.keyborad.service.*;
@@ -63,9 +62,6 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
@Resource
private KeyboardUserQuotaTotalService quotaTotalService;
@Resource
private UserRegisterProperties userRegisterProperties;
private final NacosAppConfigCenter.DynamicAppConfig cfgHolder;
public UserServiceImpl(NacosAppConfigCenter.DynamicAppConfig cfgHolder) {
@@ -89,10 +85,12 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
keyboardUserMapper.insert(keyboardUser);
keyboardCharacterService.addDefaultUserCharacter(keyboardUser.getId());
AppConfig appConfig = cfgHolder.getRef().get();
// 初始化用户钱包余额为0
KeyboardUserWallet wallet = new KeyboardUserWallet();
wallet.setUserId(keyboardUser.getId());
wallet.setBalance(BigDecimal.ZERO);
wallet.setBalance(BigDecimal.valueOf(appConfig.getUserRegisterProperties().getFreeTrialQuota()));
wallet.setVersion(0);
wallet.setStatus((short) 1);
wallet.setCreatedAt(new Date());
@@ -100,10 +98,8 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
walletService.save(wallet);
// 初始化用户免费使用次数配额
com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal quotaTotal =
new com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal();
KeyboardUserQuotaTotal quotaTotal = new KeyboardUserQuotaTotal();
quotaTotal.setUserId(keyboardUser.getId());
AppConfig appConfig = cfgHolder.getRef().get();
quotaTotal.setTotalQuota(appConfig.getUserRegisterProperties().getFreeTrialQuota());
quotaTotal.setUsedQuota(0);
quotaTotal.setVersion(0);
@@ -222,6 +218,7 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
if (!userRegisterDTO.getVerifyCode().equals(s)) {
throw new BusinessException(ErrorCode.VERIFY_CODE_ERROR);
}
AppConfig appConfig = cfgHolder.getRef().get();
keyboardUser.setEmailVerified(true);
redisUtil.delete("user:" + userRegisterDTO.getMailAddress());
int insertCount = keyboardUserMapper.insert(keyboardUser);
@@ -231,7 +228,7 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
// 初始化用户钱包余额为0
KeyboardUserWallet wallet = new KeyboardUserWallet();
wallet.setUserId(keyboardUser.getId());
wallet.setBalance(BigDecimal.ZERO);
wallet.setBalance(appConfig.getUserRegisterProperties().getRewardBalance());
wallet.setVersion(0);
wallet.setStatus((short) 1);
wallet.setCreatedAt(new Date());
@@ -242,7 +239,6 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal quotaTotal =
new com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal();
quotaTotal.setUserId(keyboardUser.getId());
AppConfig appConfig = cfgHolder.getRef().get();
quotaTotal.setTotalQuota(appConfig.getUserRegisterProperties().getFreeTrialQuota());
quotaTotal.setUsedQuota(0);
quotaTotal.setVersion(0);

View File

@@ -69,21 +69,6 @@ dromara:
domain: https://resource.loveamorkey.com/ # ????????/???????https://abcd.s3.ap-east-1.amazonaws.com/
base-path: avatar/ # ????
mailgun:
api-key: ${MAILGUN_API_KEY} # ?? Private API Key
domain: sandboxxxxxxx.mailgun.org # ?????????
from-email: no-reply@yourdomain.com # ?????
from-name: Key Of Love # ?????????
# ??????
user:
register:
# ?????????????
free-trial-quota: 5
############## Sa-Token ?? (??: https://sa-token.cc) ##############
sa-token:
# token ??????? cookie ???

View File

@@ -25,8 +25,10 @@ logging:
# ??????????
name: logs/keyborad-backend.log
# ????????
max-size: 10MB
# ?????????
logback:
rollingpolicy:
max-file-size: 10MB
max-history: 30
# ??????