diff --git a/src/main/java/com/sqx/modules/app/service/InviteAchievementService.java b/src/main/java/com/sqx/modules/app/service/InviteAchievementService.java index 44828abf..c84a56f5 100644 --- a/src/main/java/com/sqx/modules/app/service/InviteAchievementService.java +++ b/src/main/java/com/sqx/modules/app/service/InviteAchievementService.java @@ -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 { 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); diff --git a/src/main/java/com/sqx/modules/app/service/impl/InviteAchievementServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/InviteAchievementServiceImpl.java index 1136f33f..71529243 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/InviteAchievementServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/InviteAchievementServiceImpl.java @@ -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 - implements InviteAchievementService{ + implements InviteAchievementService { @Override public int countByUserId(Long userId) { @@ -28,9 +29,23 @@ public class InviteAchievementServiceImpl extends ServiceImpl() + .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 diff --git a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java index f80b37b6..d7f2384e 100644 --- a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java +++ b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java @@ -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(); // 如果未开启循环奖励,并且已经发放过奖励,则跳过