feat(quota): 新增用户额度总计模块
增加用户免费体验额度配置,支持新用户注册时的额度分配功能
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -60,6 +60,12 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
@Resource
|
@Resource
|
||||||
private KeyboardUserLoginLogService loginLogService;
|
private KeyboardUserLoginLogService loginLogService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private com.yolo.keyborad.service.KeyboardUserQuotaTotalService quotaTotalService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private com.yolo.keyborad.config.UserRegisterProperties userRegisterProperties;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public KeyboardUser selectUserWithSubjectId(String sub) {
|
public KeyboardUser selectUserWithSubjectId(String sub) {
|
||||||
return keyboardUserMapper.selectOne(
|
return keyboardUserMapper.selectOne(
|
||||||
@@ -77,7 +83,7 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
keyboardUserMapper.insert(keyboardUser);
|
keyboardUserMapper.insert(keyboardUser);
|
||||||
keyboardCharacterService.addDefaultUserCharacter(keyboardUser.getId());
|
keyboardCharacterService.addDefaultUserCharacter(keyboardUser.getId());
|
||||||
|
|
||||||
// 初始化用户钱包
|
// 初始化用户钱包(余额为0)
|
||||||
KeyboardUserWallet wallet = new KeyboardUserWallet();
|
KeyboardUserWallet wallet = new KeyboardUserWallet();
|
||||||
wallet.setUserId(keyboardUser.getId());
|
wallet.setUserId(keyboardUser.getId());
|
||||||
wallet.setBalance(BigDecimal.ZERO);
|
wallet.setBalance(BigDecimal.ZERO);
|
||||||
@@ -87,6 +93,20 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
wallet.setUpdatedAt(new Date());
|
wallet.setUpdatedAt(new Date());
|
||||||
walletService.save(wallet);
|
walletService.save(wallet);
|
||||||
|
|
||||||
|
// 初始化用户免费使用次数配额
|
||||||
|
com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal quotaTotal =
|
||||||
|
new com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal();
|
||||||
|
quotaTotal.setUserId(keyboardUser.getId());
|
||||||
|
quotaTotal.setTotalQuota(userRegisterProperties.getFreeTrialQuota());
|
||||||
|
quotaTotal.setUsedQuota(0);
|
||||||
|
quotaTotal.setVersion(0);
|
||||||
|
quotaTotal.setCreatedAt(new Date());
|
||||||
|
quotaTotal.setUpdatedAt(new Date());
|
||||||
|
quotaTotalService.save(quotaTotal);
|
||||||
|
|
||||||
|
log.info("User registered with Apple Sign-In, userId={}, freeQuota={}",
|
||||||
|
keyboardUser.getId(), userRegisterProperties.getFreeTrialQuota());
|
||||||
|
|
||||||
return keyboardUser;
|
return keyboardUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -201,7 +221,7 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
if (insertCount > 0) {
|
if (insertCount > 0) {
|
||||||
keyboardCharacterService.addDefaultUserCharacter(keyboardUser.getId());
|
keyboardCharacterService.addDefaultUserCharacter(keyboardUser.getId());
|
||||||
|
|
||||||
// 初始化用户钱包
|
// 初始化用户钱包(余额为0)
|
||||||
KeyboardUserWallet wallet = new KeyboardUserWallet();
|
KeyboardUserWallet wallet = new KeyboardUserWallet();
|
||||||
wallet.setUserId(keyboardUser.getId());
|
wallet.setUserId(keyboardUser.getId());
|
||||||
wallet.setBalance(BigDecimal.ZERO);
|
wallet.setBalance(BigDecimal.ZERO);
|
||||||
@@ -210,6 +230,20 @@ public class UserServiceImpl extends ServiceImpl<KeyboardUserMapper, KeyboardUse
|
|||||||
wallet.setCreatedAt(new Date());
|
wallet.setCreatedAt(new Date());
|
||||||
wallet.setUpdatedAt(new Date());
|
wallet.setUpdatedAt(new Date());
|
||||||
walletService.save(wallet);
|
walletService.save(wallet);
|
||||||
|
|
||||||
|
// 初始化用户免费使用次数配额
|
||||||
|
com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal quotaTotal =
|
||||||
|
new com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal();
|
||||||
|
quotaTotal.setUserId(keyboardUser.getId());
|
||||||
|
quotaTotal.setTotalQuota(userRegisterProperties.getFreeTrialQuota());
|
||||||
|
quotaTotal.setUsedQuota(0);
|
||||||
|
quotaTotal.setVersion(0);
|
||||||
|
quotaTotal.setCreatedAt(new Date());
|
||||||
|
quotaTotal.setUpdatedAt(new Date());
|
||||||
|
quotaTotalService.save(quotaTotal);
|
||||||
|
|
||||||
|
log.info("User registered with email, userId={}, email={}, freeQuota={}",
|
||||||
|
keyboardUser.getId(), keyboardUser.getEmail(), userRegisterProperties.getFreeTrialQuota());
|
||||||
}
|
}
|
||||||
return insertCount > 0;
|
return insertCount > 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,8 +79,8 @@ mailgun:
|
|||||||
# 用户注册配置
|
# 用户注册配置
|
||||||
user:
|
user:
|
||||||
register:
|
register:
|
||||||
# 新用户注册时的免费体验额度
|
# 新用户注册时的免费使用次数
|
||||||
free-trial-credits: 5
|
free-trial-quota: 5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -32,5 +32,5 @@ logging:
|
|||||||
# 用户注册配置
|
# 用户注册配置
|
||||||
user:
|
user:
|
||||||
register:
|
register:
|
||||||
# 新用户注册时的免费体验额度
|
# 新用户注册时的免费使用次数
|
||||||
free-trial-credits: 5
|
free-trial-quota: 5
|
||||||
|
|||||||
Reference in New Issue
Block a user