refactor(config): 合并用户注册配置并调整默认配额
将 UserRegisterProperties 内嵌到 AppConfig,删除独立配置类; freeTrialQuota 由 5 改为 3,新增 rewardBalance 字段; 同步更新 UserServiceImpl 初始化逻辑及 yml 配置。
This commit is contained in:
@@ -2,6 +2,8 @@ package com.yolo.keyborad.config;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author: ziin
|
* @author: ziin
|
||||||
* @date: 2025/12/16 21:18
|
* @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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -5,16 +5,15 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.yolo.keyborad.common.ErrorCode;
|
import com.yolo.keyborad.common.ErrorCode;
|
||||||
import com.yolo.keyborad.config.AppConfig;
|
import com.yolo.keyborad.config.AppConfig;
|
||||||
import com.yolo.keyborad.config.NacosAppConfigCenter;
|
import com.yolo.keyborad.config.NacosAppConfigCenter;
|
||||||
import com.yolo.keyborad.config.UserRegisterProperties;
|
|
||||||
import com.yolo.keyborad.exception.BusinessException;
|
import com.yolo.keyborad.exception.BusinessException;
|
||||||
import com.yolo.keyborad.mapper.KeyboardUserMapper;
|
import com.yolo.keyborad.mapper.KeyboardUserMapper;
|
||||||
import com.yolo.keyborad.model.dto.user.*;
|
import com.yolo.keyborad.model.dto.user.*;
|
||||||
import com.yolo.keyborad.model.entity.KeyboardUser;
|
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.entity.KeyboardUserWallet;
|
||||||
import com.yolo.keyborad.model.vo.user.KeyboardUserRespVO;
|
import com.yolo.keyborad.model.vo.user.KeyboardUserRespVO;
|
||||||
import com.yolo.keyborad.service.*;
|
import com.yolo.keyborad.service.*;
|
||||||
@@ -63,9 +62,6 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
@Resource
|
@Resource
|
||||||
private KeyboardUserQuotaTotalService quotaTotalService;
|
private KeyboardUserQuotaTotalService quotaTotalService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private UserRegisterProperties userRegisterProperties;
|
|
||||||
|
|
||||||
private final NacosAppConfigCenter.DynamicAppConfig cfgHolder;
|
private final NacosAppConfigCenter.DynamicAppConfig cfgHolder;
|
||||||
|
|
||||||
public UserServiceImpl(NacosAppConfigCenter.DynamicAppConfig cfgHolder) {
|
public UserServiceImpl(NacosAppConfigCenter.DynamicAppConfig cfgHolder) {
|
||||||
@@ -89,10 +85,12 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
keyboardUserMapper.insert(keyboardUser);
|
keyboardUserMapper.insert(keyboardUser);
|
||||||
keyboardCharacterService.addDefaultUserCharacter(keyboardUser.getId());
|
keyboardCharacterService.addDefaultUserCharacter(keyboardUser.getId());
|
||||||
|
|
||||||
|
AppConfig appConfig = cfgHolder.getRef().get();
|
||||||
|
|
||||||
// 初始化用户钱包(余额为0)
|
// 初始化用户钱包(余额为0)
|
||||||
KeyboardUserWallet wallet = new KeyboardUserWallet();
|
KeyboardUserWallet wallet = new KeyboardUserWallet();
|
||||||
wallet.setUserId(keyboardUser.getId());
|
wallet.setUserId(keyboardUser.getId());
|
||||||
wallet.setBalance(BigDecimal.ZERO);
|
wallet.setBalance(BigDecimal.valueOf(appConfig.getUserRegisterProperties().getFreeTrialQuota()));
|
||||||
wallet.setVersion(0);
|
wallet.setVersion(0);
|
||||||
wallet.setStatus((short) 1);
|
wallet.setStatus((short) 1);
|
||||||
wallet.setCreatedAt(new Date());
|
wallet.setCreatedAt(new Date());
|
||||||
@@ -100,10 +98,8 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
walletService.save(wallet);
|
walletService.save(wallet);
|
||||||
|
|
||||||
// 初始化用户免费使用次数配额
|
// 初始化用户免费使用次数配额
|
||||||
com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal quotaTotal =
|
KeyboardUserQuotaTotal quotaTotal = new KeyboardUserQuotaTotal();
|
||||||
new com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal();
|
|
||||||
quotaTotal.setUserId(keyboardUser.getId());
|
quotaTotal.setUserId(keyboardUser.getId());
|
||||||
AppConfig appConfig = cfgHolder.getRef().get();
|
|
||||||
quotaTotal.setTotalQuota(appConfig.getUserRegisterProperties().getFreeTrialQuota());
|
quotaTotal.setTotalQuota(appConfig.getUserRegisterProperties().getFreeTrialQuota());
|
||||||
quotaTotal.setUsedQuota(0);
|
quotaTotal.setUsedQuota(0);
|
||||||
quotaTotal.setVersion(0);
|
quotaTotal.setVersion(0);
|
||||||
@@ -222,6 +218,7 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
if (!userRegisterDTO.getVerifyCode().equals(s)) {
|
if (!userRegisterDTO.getVerifyCode().equals(s)) {
|
||||||
throw new BusinessException(ErrorCode.VERIFY_CODE_ERROR);
|
throw new BusinessException(ErrorCode.VERIFY_CODE_ERROR);
|
||||||
}
|
}
|
||||||
|
AppConfig appConfig = cfgHolder.getRef().get();
|
||||||
keyboardUser.setEmailVerified(true);
|
keyboardUser.setEmailVerified(true);
|
||||||
redisUtil.delete("user:" + userRegisterDTO.getMailAddress());
|
redisUtil.delete("user:" + userRegisterDTO.getMailAddress());
|
||||||
int insertCount = keyboardUserMapper.insert(keyboardUser);
|
int insertCount = keyboardUserMapper.insert(keyboardUser);
|
||||||
@@ -231,7 +228,7 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
// 初始化用户钱包(余额为0)
|
// 初始化用户钱包(余额为0)
|
||||||
KeyboardUserWallet wallet = new KeyboardUserWallet();
|
KeyboardUserWallet wallet = new KeyboardUserWallet();
|
||||||
wallet.setUserId(keyboardUser.getId());
|
wallet.setUserId(keyboardUser.getId());
|
||||||
wallet.setBalance(BigDecimal.ZERO);
|
wallet.setBalance(appConfig.getUserRegisterProperties().getRewardBalance());
|
||||||
wallet.setVersion(0);
|
wallet.setVersion(0);
|
||||||
wallet.setStatus((short) 1);
|
wallet.setStatus((short) 1);
|
||||||
wallet.setCreatedAt(new Date());
|
wallet.setCreatedAt(new Date());
|
||||||
@@ -242,7 +239,6 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal quotaTotal =
|
com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal quotaTotal =
|
||||||
new com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal();
|
new com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal();
|
||||||
quotaTotal.setUserId(keyboardUser.getId());
|
quotaTotal.setUserId(keyboardUser.getId());
|
||||||
AppConfig appConfig = cfgHolder.getRef().get();
|
|
||||||
quotaTotal.setTotalQuota(appConfig.getUserRegisterProperties().getFreeTrialQuota());
|
quotaTotal.setTotalQuota(appConfig.getUserRegisterProperties().getFreeTrialQuota());
|
||||||
quotaTotal.setUsedQuota(0);
|
quotaTotal.setUsedQuota(0);
|
||||||
quotaTotal.setVersion(0);
|
quotaTotal.setVersion(0);
|
||||||
|
|||||||
@@ -69,21 +69,6 @@ dromara:
|
|||||||
domain: https://resource.loveamorkey.com/ # ????????/???????https://abcd.s3.ap-east-1.amazonaws.com/
|
domain: https://resource.loveamorkey.com/ # ????????/???????https://abcd.s3.ap-east-1.amazonaws.com/
|
||||||
base-path: avatar/ # ????
|
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 ?? (??: https://sa-token.cc) ##############
|
||||||
sa-token:
|
sa-token:
|
||||||
# token ??????? cookie ???
|
# token ??????? cookie ???
|
||||||
|
|||||||
@@ -25,9 +25,11 @@ logging:
|
|||||||
# ??????????
|
# ??????????
|
||||||
name: logs/keyborad-backend.log
|
name: logs/keyborad-backend.log
|
||||||
# ????????
|
# ????????
|
||||||
max-size: 10MB
|
|
||||||
# ?????????
|
# ?????????
|
||||||
max-history: 30
|
logback:
|
||||||
|
rollingpolicy:
|
||||||
|
max-file-size: 10MB
|
||||||
|
max-history: 30
|
||||||
|
|
||||||
# ??????
|
# ??????
|
||||||
user:
|
user:
|
||||||
|
|||||||
Reference in New Issue
Block a user