达标奖励

抽奖补偿
This commit is contained in:
2024-12-31 11:20:49 +08:00
parent a6949a92a0
commit 40c7bce626
10 changed files with 129 additions and 246 deletions

View File

@@ -54,7 +54,7 @@ public class CashOutTask{
}
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
cashOut.getUserId(), null, null, "提现失败", 4, 1, 1,
new BigDecimal(cashOut.getMoney()), "提现失败存入余额" + cashOut.getMoney() + "", 1);
new BigDecimal(cashOut.getMoney()), "提现失败存入余额" + cashOut.getMoney() + "", 1,cashOut.getId());
//存入余额 钱
userMoneyService.updateAmount(1, cashOut.getUserId(), Double.parseDouble(cashOut.getMoney()));

View File

@@ -66,7 +66,7 @@ public class CashOutTask2{
}
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
cashOut.getUserId(), null, null, "提现失败", 4, 1, 1,
new BigDecimal(cashOut.getMoney()), "提现失败存入余额" + cashOut.getMoney() + "", 1);
new BigDecimal(cashOut.getMoney()), "提现失败存入余额" + cashOut.getMoney() + "", 1,cashOut.getId());
//存入余额 钱
userMoneyService.updateAmount(1, cashOut.getUserId(), Double.parseDouble(cashOut.getMoney()));

View File

@@ -9,6 +9,7 @@ import com.sqx.modules.discSpinning.service.DiscSpinningService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -26,10 +27,16 @@ public class SpinningTask3 {
@Resource
private DiscSpinningRecordService recordService;
@Value("${spring.profiles.active}")
private String profiles;
private Logger logger = LoggerFactory.getLogger(getClass());
@Scheduled(cron = "0 0/5 * * * ? ")
public void record() {
if (!"prod".equals(profiles)) {
return;
}
record("1");
}

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sqx.common.utils.DateUtils;
@@ -29,8 +30,10 @@ import com.sqx.modules.pay.wuyou.BaseResp;
import com.sqx.modules.pay.wuyou.WuyouPay;
import com.sqx.modules.sys.entity.SysUserEntity;
import com.sqx.modules.sys.service.SysUserService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -70,10 +73,11 @@ public class TempOrdersTask {
private CompletAwardService completAwardService;
@Resource
private WuyouPay wuyouPay;
@Value("${spring.profiles.active}")
private String profiles;
private final InviteAchievementService inviteAchievementService;
private Logger logger = LoggerFactory.getLogger(getClass());
public TempOrdersTask(InviteAchievementService inviteAchievementService) {
@@ -83,6 +87,9 @@ public class TempOrdersTask {
@Scheduled(cron = "0 0/10 * * * ? ")
public void order() {
if (!"pay".equals(profiles)) {
return;
}
logger.info("订单表数据处理开始");
List<Orders> orders = ordersDao.selectList(Wrappers.<Orders>lambdaQuery()
.eq(Orders::getStatus, 0)
@@ -131,13 +138,13 @@ public class TempOrdersTask {
logger.info("订单表数据处理完毕");
}
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private void updateOrderStatus(PayDetails payDetails, Orders order) {
public void updateOrderStatus(PayDetails payDetails, Orders order) {
if (payDetails.getState() == 1) {
return;
}
String format = sdf.format(new Date());
payDetailsDao.updateState(payDetails.getId(), 1, format, payDetails.getTradeNo(), payDetails.getThirdOrderNo());
payDetailsDao.updateState(payDetails.getId(), 1, DateUtil.now(), payDetails.getTradeNo(), payDetails.getThirdOrderNo());
order.setPayWay(9);
order.setStatus(1);
@@ -145,7 +152,7 @@ public class TempOrdersTask {
UserEntity user = userService.selectUserById(order.getUserId());
UserEntity byUser = userService.queryByInvitationCode(user.getInviterCode());
Map<String, Object> map = inviteService.updateInvite(byUser, format, user.getUserId(), order.getPayMoney());
Map<String, Object> map = inviteService.updateInvite(byUser, DateUtil.now(), user.getUserId(), order.getPayMoney());
Object oneUserId = map.get("oneUserId");
if (oneUserId != null) {
order.setOneUserId(Long.parseLong(String.valueOf(oneUserId)));
@@ -163,7 +170,23 @@ public class TempOrdersTask {
}
ordersService.updateById(order);
ordersService.insertOrders(order);
CompletableFuture.runAsync(() -> {
if (byUser != null) {
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(user.getUserId());
if (inviteAchievement == null) {
inviteAchievement = new InviteAchievement();
inviteAchievement.setState(0);
inviteAchievement.setCount(1);
inviteAchievement.setCreateTime(DateUtil.date());
inviteAchievement.setUserId(user.getUserId());
inviteAchievement.setSourceUserId(byUser.getUserId());
inviteAchievementService.save(inviteAchievement);
} else {
inviteAchievementService.incrCount(inviteAchievement.getId(), 1);
}
}
ThreadUtil.execAsync(() -> {
activities(user, byUser);
});
}
@@ -171,86 +194,83 @@ public class TempOrdersTask {
@Transactional
public void activities(UserEntity user, UserEntity sourceUser) {
//分享达标
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);
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));
if (sourceUser == null || sourceUser.getUserId() == 1) {
return;
}
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(user.getUserId());
// 首次达标
int signCount = Integer.parseInt(commonRepository.findOne(913).getValue());
if (inviteAchievement.getState() == 0 && inviteAchievement.getCount() >= signCount) {
//满3笔
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);
inviteAchievement.setState(1);
inviteAchievementService.updateById(inviteAchievement);
int count = inviteAchievementService.countBySourceUserId(sourceUser.getUserId());
// 首次达标奖励
if (count == 1) {
SysUserEntity sysUser = sysUserService.selectSysUserByQdCode(user.getQdCode());
//代理
if (StringUtils.isNotBlank(user.getQdCode()) && !"666666".equals(user.getQdCode())) {
SysUserEntity sysUser = sysUserService.selectSysUserByQdCode(user.getQdCode());
if (sysUser != null) {
String qdAward = commonRepository.findOne(915).getValue();
UserMoneyDetails userMoneyDetails4 = new UserMoneyDetails(
null, sysUser == null ? null : sysUser.getUserId(), null, "[分享达标额外奖励]", 6, 1, 2,
null, sysUser.getUserId(), null, "[分享达标额外奖励]", 6, 1, 2,
new BigDecimal(qdAward), "推广人员首次达标,额外奖励现金红包" + qdAward, 2);
userMoneyService.updateSysAmount(1, sysUser == null ? null : sysUser.getUserId(), Double.parseDouble(qdAward));
userMoneyService.updateSysAmount(1, 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);
}
// }
}
}
int count = inviteAchievementService.count(
new LambdaQueryWrapper<InviteAchievement>()
.eq(InviteAchievement::getSourceUserId, sourceUser.getUserId())
.eq(InviteAchievement::getState, 1));
//count 邀请的已达标人数
completAwardService.list(new QueryWrapper<CompletAward>().eq("invite_count", count).eq("status", 1)).forEach(completAward -> {
QueryWrapper<UserMoneyDetails> moneyDetailsQuery = new QueryWrapper<>();
moneyDetailsQuery.eq("classify", 6);
moneyDetailsQuery.eq("user_id", sourceUser.getUserId());
moneyDetailsQuery.eq("source_id", completAward.getId());
//达标人数
// int completeCount = userMoneyDetailsService.count(moneyDetailsQuery);
int completeCount = inviteAchievementService.countNum(sourceUser.getUserId(), signCount);
completAwardService.list(new QueryWrapper<CompletAward>().eq("invite_count", completeCount)).forEach(completAward -> {
int awardCount = userMoneyDetailsService.count(moneyDetailsQuery);
if (awardCount < 1) {
switch (completAward.getType()) {
case 1:
UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails(
sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2,
completAward.getAwardNumber(), "邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励金币" + completAward.getAwardNumber(), 2);
sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2, completAward.getAwardNumber(),
"邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励金币" + completAward.getAwardNumber(), 2, completAward.getId());
userMoneyService.updateMoney(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue());
userMoneyDetailsService.save(userMoneyDetails1);
break;
case 2:
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(
sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2,
completAward.getAwardNumber(), "邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励现金红包" + completAward.getAwardNumber(), 1);
sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2, completAward.getAwardNumber(),
"邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励现金红包" + completAward.getAwardNumber(), 1, completAward.getId());
userMoneyService.updateAmount(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue());
userMoneyDetailsService.save(userMoneyDetails2);
break;
}
});
}
}
});
}
}