Merge branch 'refs/heads/test' into dev

This commit is contained in:
张松
2024-12-31 10:30:54 +08:00
7 changed files with 87 additions and 47 deletions

View File

@@ -41,6 +41,7 @@ public class InviteAchievementServiceImpl extends ServiceImpl<InviteAchievementM
@Override
public int countBySourceUserId(Long userId) {
return count(new LambdaQueryWrapper<InviteAchievement>()
.eq(InviteAchievement::getState, 1)
.eq(InviteAchievement::getSourceUserId, userId));
}

View File

@@ -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<CourseDao, Course> 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<CourseDao, Course> implements
@Override
public Result getRedEnvelopeTips(Long userId) {
// 查询 用户 购买次数
Integer count = ordersService.countOrderNum(userId, DateUtil.formatDateTime(DateUtil.beginOfDay(new Date())));
String totalCount = commonInfoService.findOne(901).getValue();

View File

@@ -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<UserIntegralDao, UserIn
@Override
public UserIntegral selectById(Long id) {
UserIntegral userIntegral = baseMapper.selectById(id);
UserIntegral userIntegral = baseMapper.selectOne(new LambdaQueryWrapper<UserIntegral>().eq(UserIntegral::getUserId, id));
if (userIntegral == null) {
userIntegral = new UserIntegral();
userIntegral.setUserId(id);
@@ -36,4 +37,4 @@ public class UserIntegralServiceImpl extends ServiceImpl<UserIntegralDao, UserIn
return userIntegralDao.updateIntegral(type,userId,num);
}
}
}

View File

@@ -7,8 +7,10 @@ import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sqx.common.utils.DateUtils;
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;
@@ -68,10 +70,16 @@ public class TempOrdersTask {
private CompletAwardService completAwardService;
@Resource
private WuyouPay wuyouPay;
private final InviteAchievementService inviteAchievementService;
private Logger logger = LoggerFactory.getLogger(getClass());
public TempOrdersTask(InviteAchievementService inviteAchievementService) {
this.inviteAchievementService = inviteAchievementService;
}
@Scheduled(cron = "0 0/10 * * * ? ")
public void order() {
@@ -165,53 +173,64 @@ public class TempOrdersTask {
//分享达标
if (sourceUser != null && sourceUser.getUserId() != 1) {
QueryWrapper<UserMoneyDetails> 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<UserMoneyDetails> 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<CompletAward>().eq("invite_count", completeCount)).forEach(completAward -> {
switch (completAward.getType()) {
case 1:

View File

@@ -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<InviteAchievement> list = inviteAchievementService.list(new LambdaQueryWrapper<InviteAchievement>().eq(InviteAchievement::getSourceUserId, sourceUser.getUserId()));
Set<InviteAchievement> 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<CompletAward>().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);

View File

@@ -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;

View File

@@ -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<TaskCenterDao, TaskCenter
private UserService userService;
@Autowired
private RedisUtils redisUtils;
private final InviteAchievementService inviteAchievementService;
public TaskCenterServiceImpl(InviteAchievementService inviteAchievementService) {
this.inviteAchievementService = inviteAchievementService;
}
@Override
@@ -62,10 +69,10 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
//任务
List<TaskCenter> taskPage = baseMapper.selectList(new QueryWrapper<TaskCenter>().eq("shows", 1).orderByAsc("sort", "type"));
List<TaskCenter> resultTask = new ArrayList<>();
boolean todaySign = true;
Integer signCount = null;
for (TaskCenter s : taskPage) {
Map<Integer, Integer> 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<TaskCenterDao, TaskCenter
signRecordService.save(signRecord);
}
} else if (taskCenter.getType().equals(3) && taskCenter.getId().equals(1L)) {
Integer sumOrderNum = ordersService.countOrderNum(userId, null);
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(userId);
// Integer sumOrderNum = ordersService.countOrderNum(userId, null);
Integer sumOrderNum = inviteAchievement.getCount();
if (sumOrderNum != null && sumOrderNum < taskCenter.getNumber()) {
return Result.error("领取失败,未达成领取条件");
} else if (recordService.countTaskNum(userId, taskCenter.getId(), null) > 0) {