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 1e13404d..261caf17 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 @@ -41,6 +41,7 @@ public class InviteAchievementServiceImpl extends ServiceImpl() + .eq(InviteAchievement::getState, 1) .eq(InviteAchievement::getSourceUserId, userId)); } diff --git a/src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java b/src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java index 0f1db86d..4a68dd00 100644 --- a/src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java +++ b/src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java @@ -19,6 +19,8 @@ import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.PageUtils; import com.sqx.common.utils.RedisUtils; import com.sqx.common.utils.Result; +import com.sqx.modules.app.entity.InviteAchievement; +import com.sqx.modules.app.service.InviteAchievementService; import com.sqx.modules.app.utils.JwtUtils; import com.sqx.modules.common.service.CommonInfoService; import com.sqx.modules.course.dao.CourseCollectDao; @@ -72,10 +74,16 @@ public class CourseServiceImpl extends ServiceImpl implements private JwtUtils jwtUtils; @Autowired private CourseUserService courseUserService; + private final InviteAchievementService inviteAchievementService; + @Resource private RedisUtils redisUtils; + public CourseServiceImpl(InviteAchievementService inviteAchievementService) { + this.inviteAchievementService = inviteAchievementService; + } + private static String getIndexKey(Object... objs) { final StrBuilder sb = new StrBuilder(); for (Object obj : objs) { @@ -1272,7 +1280,6 @@ public class CourseServiceImpl extends ServiceImpl implements @Override public Result getRedEnvelopeTips(Long userId) { - // 查询 用户 购买次数 Integer count = ordersService.countOrderNum(userId, DateUtil.formatDateTime(DateUtil.beginOfDay(new Date()))); String totalCount = commonInfoService.findOne(901).getValue(); diff --git a/src/main/java/com/sqx/modules/integral/service/Impl/UserIntegralServiceImpl.java b/src/main/java/com/sqx/modules/integral/service/Impl/UserIntegralServiceImpl.java index b49fcacf..1ca8ad33 100644 --- a/src/main/java/com/sqx/modules/integral/service/Impl/UserIntegralServiceImpl.java +++ b/src/main/java/com/sqx/modules/integral/service/Impl/UserIntegralServiceImpl.java @@ -1,5 +1,6 @@ package com.sqx.modules.integral.service.Impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sqx.modules.integral.dao.UserIntegralDao; import com.sqx.modules.integral.entity.UserIntegral; @@ -21,7 +22,7 @@ public class UserIntegralServiceImpl extends ServiceImpl().eq(UserIntegral::getUserId, id)); if (userIntegral == null) { userIntegral = new UserIntegral(); userIntegral.setUserId(id); @@ -36,4 +37,4 @@ public class UserIntegralServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("classify", 6); - queryWrapper.eq("user_id", sourceUser.getUserId()); - queryWrapper.eq("by_user_id", user.getUserId()); - int count = userMoneyDetailsService.count(queryWrapper); - if (count == 0) { +// queryWrapper.eq("classify", 6); +// queryWrapper.eq("user_id", sourceUser.getUserId()); +// queryWrapper.eq("by_user_id", user.getUserId()); +// int count = userMoneyDetailsService.count(queryWrapper); + InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(user.getUserId()); + // 首次达标 + int signCount = Integer.parseInt(commonRepository.findOne(913).getValue()); + if (inviteAchievement.getState() == 0 && inviteAchievement.getCount() >= signCount) { //满3笔 - Integer sumOrderNum = ordersService.countOrderNum(user.getUserId(), null); - if (sumOrderNum >= Integer.parseInt(commonRepository.findOne(913).getValue())) { - String amount = commonRepository.findOne(912).getValue(); - UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); - userMoneyDetails.setClassify(6); - userMoneyDetails.setMoney(new BigDecimal(amount)); - userMoneyDetails.setUserId(sourceUser.getUserId()); - userMoneyDetails.setByUserId(user.getUserId()); - userMoneyDetails.setCreateTime(DateUtil.now()); - userMoneyDetails.setContent("分享达标奖励" + amount + "元"); - userMoneyDetails.setTitle("分享达标奖励"); - userMoneyDetails.setState(2); - userMoneyDetails.setType(1); - userMoneyDetails.setMoneyType(1); - userMoneyDetailsService.save(userMoneyDetails); - //存入余额 钱 - userMoneyService.updateAmount(1, sourceUser.getUserId(), Double.parseDouble(amount)); +// Integer sumOrderNum = ordersService.countOrderNum(user.getUserId(), null); +// if (sumOrderNum >= Integer.parseInt(commonRepository.findOne(913).getValue())) { + String amount = commonRepository.findOne(912).getValue(); + UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); + userMoneyDetails.setClassify(6); + userMoneyDetails.setMoney(new BigDecimal(amount)); + userMoneyDetails.setUserId(sourceUser.getUserId()); + userMoneyDetails.setByUserId(user.getUserId()); + userMoneyDetails.setCreateTime(DateUtil.now()); + userMoneyDetails.setContent("分享达标奖励" + amount + "元"); + userMoneyDetails.setTitle("分享达标奖励"); + userMoneyDetails.setState(2); + userMoneyDetails.setType(1); + userMoneyDetails.setMoneyType(1); + userMoneyDetailsService.save(userMoneyDetails); + //存入余额 钱 + userMoneyService.updateAmount(1, sourceUser.getUserId(), Double.parseDouble(amount)); + + inviteAchievement.setState(1); + inviteAchievementService.updateById(inviteAchievement); + + int count = inviteAchievementService.countBySourceUserId(sourceUser.getUserId()); + // 首次达标奖励 + if (count == 1) { SysUserEntity sysUser = sysUserService.selectSysUserByQdCode(user.getQdCode()); String qdAward = commonRepository.findOne(915).getValue(); - UserMoneyDetails userMoneyDetails4 = new UserMoneyDetails( - null, sysUser.getUserId(), null, "[分享达标额外奖励]", 6, 1, 2, + null, sysUser == null ? null : sysUser.getUserId(), null, "[分享达标额外奖励]", 6, 1, 2, new BigDecimal(qdAward), "推广人员首次达标,额外奖励现金红包" + qdAward, 2); - userMoneyService.updateSysAmount(1, sysUser.getUserId(), Double.valueOf(qdAward)); + userMoneyService.updateSysAmount(1, sysUser == null ? null : sysUser.getUserId(), Double.parseDouble(qdAward)); userMoneyDetailsService.save(userMoneyDetails4); - - Invite invite = inviteService.selectInviteByUser(sourceUser.getUserId(), user.getUserId(), 1); - if (invite != null) { - invite.setMoney(Double.valueOf(amount)); - invite.setState(1); - inviteDao.updateById(invite); - } } + + Invite invite = inviteService.selectInviteByUser(sourceUser.getUserId(), user.getUserId(), 1); + if (invite != null) { + invite.setMoney(Double.valueOf(amount)); + invite.setState(1); + inviteDao.updateById(invite); + } +// } } QueryWrapper moneyDetailsQuery = new QueryWrapper<>(); moneyDetailsQuery.eq("classify", 6); moneyDetailsQuery.eq("user_id", sourceUser.getUserId()); //达标人数 - int completeCount = userMoneyDetailsService.count(moneyDetailsQuery); +// int completeCount = userMoneyDetailsService.count(moneyDetailsQuery); + int completeCount = inviteAchievementService.countNum(sourceUser.getUserId(), signCount); completAwardService.list(new QueryWrapper().eq("invite_count", completeCount)).forEach(completAward -> { switch (completAward.getType()) { case 1: diff --git a/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java b/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java index c3811033..5365688c 100644 --- a/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java +++ b/src/main/java/com/sqx/modules/pay/controller/app/WuyouController.java @@ -3,6 +3,7 @@ package com.sqx.modules.pay.controller.app; import cn.hutool.core.date.DateUtil; import cn.hutool.core.thread.ThreadUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.sqx.common.annotation.Debounce; import com.sqx.common.utils.ApiAccessLimitUtil; @@ -46,12 +47,11 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.stream.Collectors; /** * @author GYJ @@ -278,9 +278,10 @@ public class WuyouController { inviteAchievement.setState(1); inviteAchievementService.updateById(inviteAchievement); - int count = inviteAchievementService.countBySourceUserId(sourceUser.getUserId()); + List list = inviteAchievementService.list(new LambdaQueryWrapper().eq(InviteAchievement::getSourceUserId, sourceUser.getUserId())); + Set collect = list.stream().filter(item -> item.getState() == 1).collect(Collectors.toSet()); // 首次达标奖励 - if (count == 1) { + if (collect.isEmpty() && list.size() == 1) { SysUserEntity sysUser = sysUserService.selectSysUserByQdCode(user.getQdCode()); String qdAward = commonRepository.findOne(915).getValue(); UserMoneyDetails userMoneyDetails4 = new UserMoneyDetails( @@ -304,11 +305,12 @@ public class WuyouController { moneyDetailsQuery.eq("classify", 6); moneyDetailsQuery.eq("user_id", sourceUser.getUserId()); //达标人数 -// int completeCount = userMoneyDetailsService.count(moneyDetailsQuery); - int completeCount = inviteAchievementService.countNum(sourceUser.getUserId(), signCount); + int completeCount = userMoneyDetailsService.count(moneyDetailsQuery); +// int completeCount = inviteAchievementService.countNum(sourceUser.getUserId(), signCount); completAwardService.list(new QueryWrapper().eq("invite_count", completeCount)).forEach(completAward -> { switch (completAward.getType()) { case 1: + UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails( sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2, completAward.getAwardNumber(), "邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励金币" + completAward.getAwardNumber(), 2); diff --git a/src/main/java/com/sqx/modules/redisService/impl/RedisServiceImpl.java b/src/main/java/com/sqx/modules/redisService/impl/RedisServiceImpl.java index 596982c8..7fc54a2b 100644 --- a/src/main/java/com/sqx/modules/redisService/impl/RedisServiceImpl.java +++ b/src/main/java/com/sqx/modules/redisService/impl/RedisServiceImpl.java @@ -250,7 +250,7 @@ public class RedisServiceImpl implements RedisService { DateTime date = DateUtil.date(); Date tomorrow = DateUtil.beginOfDay(DateUtil.offsetDay(date, 1)); long expire = DateUtil.between(date, tomorrow, DateUnit.SECOND); - redisUtils.set(key, userId, expire); + redisUtils.set(userKey, userId, expire); return false; } return true; diff --git a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java index 3846b2a4..a6f8b3b1 100644 --- a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java +++ b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java @@ -10,8 +10,10 @@ import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.RedisKeys; import com.sqx.common.utils.RedisUtils; import com.sqx.common.utils.Result; +import com.sqx.modules.app.entity.InviteAchievement; import com.sqx.modules.app.entity.UserEntity; import com.sqx.modules.app.entity.UserMoneyDetails; +import com.sqx.modules.app.service.InviteAchievementService; import com.sqx.modules.app.service.UserMoneyDetailsService; import com.sqx.modules.app.service.UserMoneyService; import com.sqx.modules.app.service.UserService; @@ -55,6 +57,11 @@ public class TaskCenterServiceImpl extends ServiceImpl taskPage = baseMapper.selectList(new QueryWrapper().eq("shows", 1).orderByAsc("sort", "type")); List resultTask = new ArrayList<>(); - boolean todaySign = true; - Integer signCount = null; for (TaskCenter s : taskPage) { Map rewardMap = taskCenterRewardService.getRewardMap(s.getId()); + boolean todaySign = true; + Integer signCount = null; if (CollectionUtil.isEmpty(rewardMap)) { continue; } @@ -209,7 +216,10 @@ public class TaskCenterServiceImpl extends ServiceImpl 0) {