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