用户不存在时 初始化记录

This commit is contained in:
wangw 2025-03-20 15:34:37 +08:00
parent 2ded972dcd
commit ca995858c8
3 changed files with 32 additions and 11 deletions

View File

@ -4,16 +4,22 @@ import com.sqx.modules.app.entity.InviteAchievement;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Administrator
* @description 针对表invite_achievement的数据库操作Service
* @createDate 2024-12-30 13:26:18
*/
* @author Administrator
* @description 针对表invite_achievement的数据库操作Service
* @createDate 2024-12-30 13:26:18
*/
public interface InviteAchievementService extends IService<InviteAchievement> {
int countByUserId(Long userId);
InviteAchievement getByUserId(Long userId);
/**
* @param sourceUserId 上级userId 不存在填充自己Id
* @param userId 下级userId
*/
InviteAchievement getByUserIdOrSave(Long sourceUserId, Long userId);
int incrCount(Long id, Long userId, int i);
boolean insertNotExists(InviteAchievement inviteAchievement);

View File

@ -3,18 +3,19 @@ package com.sqx.modules.app.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.app.entity.InviteAchievement;
import com.sqx.modules.app.entity.UserInfo;
import com.sqx.modules.app.service.InviteAchievementService;
import com.sqx.modules.app.mapper.InviteAchievementMapper;
import org.springframework.stereotype.Service;
/**
* @author Administrator
* @description 针对表invite_achievement的数据库操作Service实现
* @createDate 2024-12-30 13:26:18
*/
* @author Administrator
* @description 针对表invite_achievement的数据库操作Service实现
* @createDate 2024-12-30 13:26:18
*/
@Service
public class InviteAchievementServiceImpl extends ServiceImpl<InviteAchievementMapper, InviteAchievement>
implements InviteAchievementService{
implements InviteAchievementService {
@Override
public int countByUserId(Long userId) {
@ -28,9 +29,23 @@ public class InviteAchievementServiceImpl extends ServiceImpl<InviteAchievementM
.eq(InviteAchievement::getTargetUserId, userId));
}
@Override
public InviteAchievement getByUserIdOrSave(Long sourceUserId, Long userId) {
InviteAchievement one = getOne(new LambdaQueryWrapper<InviteAchievement>()
.eq(InviteAchievement::getUserId, sourceUserId)
.eq(InviteAchievement::getTargetUserId, userId));
if (one == null) {
one = new InviteAchievement();
one.setUserId(sourceUserId);
one.setTargetUserId(userId);
save(one);
}
return one;
}
@Override
public int incrCount(Long id, Long userId, int i) {
return baseMapper.incrCount(id, userId,i);
return baseMapper.incrCount(id, userId, i);
}
@Override

View File

@ -390,7 +390,7 @@ public class TempOrdersTask {
}
// 查询是否开启分享循环奖励
int isLoop = Integer.parseInt(commonRepository.findOne(932).getValue());
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(sourceUser.getUserId());
InviteAchievement inviteAchievement = inviteAchievementService.getByUserIdOrSave(sourceUser.getInviterUserId(),sourceUser.getUserId());
// 发放奖励
int awardCount = inviteAchievement.getGiveAwardCount();
// 如果未开启循环奖励并且已经发放过奖励则跳过