补充邀请相关权益发放

This commit is contained in:
zk
2026-05-15 16:22:02 +08:00
parent 8d72e13c73
commit ee21c16d55
2 changed files with 26 additions and 5 deletions
@@ -9,6 +9,7 @@ import org.jiayunet.mapper.UserMapper;
import org.jiayunet.pojo.po.User;
import org.jiayunet.pojo.po.UserInvite;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
@@ -18,7 +19,7 @@ import java.time.Instant;
/**
* 用户注册服务
* <p>依赖:UserMapper(用户持久化)、UserInviteMapper(邀请记录持久化)</p>
* <p>依赖:UserMapper(用户持久化)、UserInviteMapper(邀请记录持久化)、MemberGrantService(会员权益发放)</p>
* <p>使用表:bg_user(创建用户、查询邀请人)、bg_user_invite(写入邀请关系)</p>
*
* @author zk
@@ -48,6 +49,15 @@ public class UserRegisterService {
@Autowired
private UserInviteMapper userInviteMapper;
@Autowired
private MemberGrantService memberGrantService;
@Value("${app.reward.register-days:3}")
private int registerDays;
@Value("${app.reward.invite-days:7}")
private int inviteDays;
/**
* 注册新用户
* <p>1. 创建用户并生成邀请码 2. 若携带邀请码则绑定邀请关系</p>
@@ -73,6 +83,9 @@ public class UserRegisterService {
bindInvite(user, inviteCode);
}
// 发放新用户注册会员权益
memberGrantService.grant(user.getId(), registerDays);
return user;
}
@@ -82,10 +95,7 @@ public class UserRegisterService {
*/
private void bindInvite(User user, String inviteCode) {
// 查找邀请人
User inviter = userMapper.selectOne(
new LambdaQueryWrapper<User>()
.eq(User::getInviteCode, inviteCode)
);
User inviter = userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getInviteCode, inviteCode));
if (inviter == null) {
log.warn("邀请码无效 inviteCode:{} userId:{}", inviteCode, user.getId());
@@ -102,8 +112,12 @@ public class UserRegisterService {
invite.setUserId(user.getId());
invite.setInviterId(inviter.getId());
invite.setInviteCode(inviteCode);
invite.setRewardDays(inviteDays);
invite.setCreateTime(Instant.now());
userInviteMapper.insert(invite);
// 发放邀请人会员权益
memberGrantService.grant(inviter.getId(), inviteDays);
}
/**
@@ -88,6 +88,13 @@ app:
# 非会员最大限制数量
max-count: 5
# 会员权益奖励配置
reward:
# 新用户注册赠送会员天数
register-days: 3
# 邀请好友奖励会员天数
invite-days: 7
# AI 多供应商配置,第一个为默认 provider
# base-url 配到版本路径,如 DeepSeek: https://api.deepseek.com/v1,豆包: https://ark.cn-beijing.volces.com/api/v3
ai: