Merge branch 'refs/heads/test' into dev

This commit is contained in:
张松
2024-12-31 14:58:34 +08:00
14 changed files with 190 additions and 272 deletions

View File

@@ -1,6 +1,7 @@
package com.sqx.modules.app.entity; package com.sqx.modules.app.entity;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.amazonaws.services.dynamodbv2.xspec.L;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@@ -38,6 +39,8 @@ public class UserMoneyDetails implements Serializable {
@ApiModelProperty("渠道用户id") @ApiModelProperty("渠道用户id")
@TableField("sys_user_id") @TableField("sys_user_id")
private Long sysUserId; private Long sysUserId;
@ApiModelProperty("源id")
private Long sourceId;
/** /**
* 对应用户id * 对应用户id
@@ -119,6 +122,22 @@ public class UserMoneyDetails implements Serializable {
* @param money 金额 * @param money 金额
* @param content 内容描述 * @param content 内容描述
*/ */
public UserMoneyDetails(Long userId, Long sysUserId, Long byUserId, String title, Integer classify, Integer type,
Integer state, BigDecimal money, String content, Integer moneyType,Long sourceId) {
this.userId = userId;
this.sysUserId = sysUserId;
this.byUserId = byUserId;
this.title = title;
this.classify = classify;
this.type = type;
this.state = state;
this.money = money;
this.content = content;
this.createTime = DateUtil.now();
this.moneyType = moneyType;
this.sourceId = sourceId;
}
public UserMoneyDetails(Long userId, Long sysUserId, Long byUserId, String title, Integer classify, Integer type, public UserMoneyDetails(Long userId, Long sysUserId, Long byUserId, String title, Integer classify, Integer type,
Integer state, BigDecimal money, String content, Integer moneyType) { Integer state, BigDecimal money, String content, Integer moneyType) {
this.userId = userId; this.userId = userId;

View File

@@ -68,6 +68,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import weixin.popular.api.SnsAPI; import weixin.popular.api.SnsAPI;
@@ -116,6 +117,10 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
private DiscSpinningService discSpinningService; private DiscSpinningService discSpinningService;
@Autowired @Autowired
private SysUserService sysUserService; private SysUserService sysUserService;
@Value("${spring.profiles.active}")
private String profiles;
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true); private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
@Override @Override
@@ -902,7 +907,14 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
if (StringUtils.isEmpty(msg)) { if (StringUtils.isEmpty(msg)) {
return Result.error("验证码不能为空!"); return Result.error("验证码不能为空!");
} }
Msg msg1 = msgDao.findByPhoneAndCode(phone, msg); Msg msg1 = null;
if (!"prod".equals(profiles) && !"147258".equals(msg)) {
msg1 = msgDao.findByPhoneAndCode(phone, msg);
if (msg1 == null) {
return Result.error("验证码不正确!");
}
}
if (msg1 == null) { if (msg1 == null) {
return Result.error("验证码不正确!"); return Result.error("验证码不正确!");
} }

View File

@@ -90,7 +90,7 @@ public class DiscSpinningServiceImpl extends ServiceImpl<DiscSpinningDao, DiscSp
UserMoneyDetails userMoneyDetails = new UserMoneyDetails( UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
receive.getUserId(), null, null, "[现金大转盘]", 5, 1, 2, receive.getUserId(), null, null, "[现金大转盘]", 5, 1, 2,
receive.getNumber(), "现金红包奖励" + receive.getNumber() + "", 1); receive.getNumber(), "现金红包奖励" + receive.getNumber() + "", 1,receive.getId());
//上一秒 //上一秒
userMoneyDetails.setCreateTime(DateUtil.format(new Date(System.currentTimeMillis() - 1000), "yyyy-MM-dd HH:mm:ss")); userMoneyDetails.setCreateTime(DateUtil.format(new Date(System.currentTimeMillis() - 1000), "yyyy-MM-dd HH:mm:ss"));
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);

View File

@@ -4,13 +4,16 @@ package com.sqx.modules.invite.controller.app;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig; import cn.hutool.extra.qrcode.QrConfig;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.utils.PageUtils; import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result; import com.sqx.common.utils.Result;
import com.sqx.modules.app.annotation.Login; import com.sqx.modules.app.annotation.Login;
import com.sqx.modules.app.annotation.LoginUser; import com.sqx.modules.app.annotation.LoginUser;
import com.sqx.modules.app.entity.InviteAchievement;
import com.sqx.modules.app.entity.UserEntity; import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.service.InviteAchievementService;
import com.sqx.modules.app.service.UserMoneyDetailsService; import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService; import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserService; import com.sqx.modules.app.service.UserService;
@@ -65,6 +68,11 @@ public class AppInviteController {
private QrConfig qrconig; private QrConfig qrconig;
@Autowired @Autowired
private UrlAddressService urlAddressService; private UrlAddressService urlAddressService;
private final InviteAchievementService inviteAchievementService;
public AppInviteController(InviteAchievementService inviteAchievementService) {
this.inviteAchievementService = inviteAchievementService;
}
@RequestMapping(value = "/selectInviteCount", method = RequestMethod.GET) @RequestMapping(value = "/selectInviteCount", method = RequestMethod.GET)
@ApiOperation("查看我邀请的人员数量") @ApiOperation("查看我邀请的人员数量")
@@ -105,7 +113,9 @@ public class AppInviteController {
} }
InviteMoney inviteMoney = inviteMoneyService.selectInviteMoneyByUserId(userId); InviteMoney inviteMoney = inviteMoneyService.selectInviteMoneyByUserId(userId);
Integer inviteCount = inviteService.selectInviteCount2(userEntity.getInvitationCode()); Integer inviteCount = inviteService.selectInviteCount2(userEntity.getInvitationCode());
Integer inviteSignCount = inviteService.selectInviteSignCount(userEntity.getInvitationCode()); // Integer inviteSignCount = inviteService.selectInviteSignCount(userEntity.getInvitationCode());
int inviteSignCount = inviteAchievementService.count(new LambdaQueryWrapper<InviteAchievement>().eq(InviteAchievement::getState, 1)
.eq(InviteAchievement::getSourceUserId, userId));
Map<String, Double> earningMap = userMoneyDetailsService.queryUserTotalEarning(userId); Map<String, Double> earningMap = userMoneyDetailsService.queryUserTotalEarning(userId);
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
result.put("inviteMoney", inviteMoney); result.put("inviteMoney", inviteMoney);

View File

@@ -54,7 +54,7 @@ public class CashOutTask{
} }
UserMoneyDetails userMoneyDetails = new UserMoneyDetails( UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
cashOut.getUserId(), null, null, "提现失败", 4, 1, 1, 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())); userMoneyService.updateAmount(1, cashOut.getUserId(), Double.parseDouble(cashOut.getMoney()));

View File

@@ -66,7 +66,7 @@ public class CashOutTask2{
} }
UserMoneyDetails userMoneyDetails = new UserMoneyDetails( UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
cashOut.getUserId(), null, null, "提现失败", 4, 1, 1, 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())); 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.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -26,10 +27,16 @@ public class SpinningTask3 {
@Resource @Resource
private DiscSpinningRecordService recordService; private DiscSpinningRecordService recordService;
@Value("${spring.profiles.active}")
private String profiles;
private Logger logger = LoggerFactory.getLogger(getClass()); private Logger logger = LoggerFactory.getLogger(getClass());
@Scheduled(cron = "0 0/5 * * * ? ") @Scheduled(cron = "0 0/5 * * * ? ")
public void record() { public void record() {
if (!"prod".equals(profiles)) {
return;
}
record("1"); record("1");
} }

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.json.JSONUtil; 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.DateUtils;
@@ -29,19 +30,19 @@ import com.sqx.modules.pay.wuyou.BaseResp;
import com.sqx.modules.pay.wuyou.WuyouPay; import com.sqx.modules.pay.wuyou.WuyouPay;
import com.sqx.modules.sys.entity.SysUserEntity; import com.sqx.modules.sys.entity.SysUserEntity;
import com.sqx.modules.sys.service.SysUserService; import com.sqx.modules.sys.service.SysUserService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
@Component @Component
public class TempOrdersTask { public class TempOrdersTask {
@@ -70,19 +71,22 @@ public class TempOrdersTask {
private CompletAwardService completAwardService; private CompletAwardService completAwardService;
@Resource @Resource
private WuyouPay wuyouPay; private WuyouPay wuyouPay;
@Value("${spring.profiles.active}")
private String profiles;
private final InviteAchievementService inviteAchievementService; private final InviteAchievementService inviteAchievementService;
private Logger logger = LoggerFactory.getLogger(getClass()); private Logger logger = LoggerFactory.getLogger(getClass());
public TempOrdersTask(InviteAchievementService inviteAchievementService) { public TempOrdersTask(InviteAchievementService inviteAchievementService,TempOrdersTask ordersTask) {
this.inviteAchievementService = inviteAchievementService; this.inviteAchievementService = inviteAchievementService;
} }
@Scheduled(cron = "0 0/10 * * * ? ") @Scheduled(cron = "0 0/10 * * * ? ")
public void order() { public void order() {
if (!"pay".equals(profiles)) {
return;
}
logger.info("订单表数据处理开始"); logger.info("订单表数据处理开始");
List<Orders> orders = ordersDao.selectList(Wrappers.<Orders>lambdaQuery() List<Orders> orders = ordersDao.selectList(Wrappers.<Orders>lambdaQuery()
.eq(Orders::getStatus, 0) .eq(Orders::getStatus, 0)
@@ -131,59 +135,74 @@ public class TempOrdersTask {
logger.info("订单表数据处理完毕"); 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;
}
payDetailsDao.updateState(payDetails.getId(), 1, DateUtil.now(), payDetails.getTradeNo(), payDetails.getThirdOrderNo());
String format = sdf.format(new Date());
payDetailsDao.updateState(payDetails.getId(), 1, format, payDetails.getTradeNo(), payDetails.getThirdOrderNo());
order.setPayWay(9); order.setPayWay(9);
order.setStatus(1); order.setStatus(1);
order.setPayTime(DateUtils.format(new Date())); order.setPayTime(DateUtils.format(new Date()));
UserEntity user = userService.selectUserById(order.getUserId());
UserEntity byUser = userService.queryByInvitationCode(user.getInviterCode());
Map<String, Object> map = inviteService.updateInvite(byUser, format, user.getUserId(), order.getPayMoney());
Object oneUserId = map.get("oneUserId");
if (oneUserId != null) {
order.setOneUserId(Long.parseLong(String.valueOf(oneUserId)));
order.setOneMoney(new BigDecimal(String.valueOf(map.get("oneMoney"))));
}
Object twoUserId = map.get("twoUserId");
if (twoUserId != null) {
order.setTwoUserId(Long.parseLong(String.valueOf(twoUserId)));
order.setTwoMoney(new BigDecimal(String.valueOf(map.get("twoMoney"))));
}
Object sysUserId = map.get("sysUserId");
if (sysUserId != null) {
order.setSysUserId(Long.parseLong(String.valueOf(sysUserId)));
order.setQdMoney(new BigDecimal(String.valueOf(map.get("qdMoney"))));
}
ordersService.updateById(order); ordersService.updateById(order);
ordersService.insertOrders(order); ordersService.insertOrders(order);
CompletableFuture.runAsync(() -> {
UserEntity user = userService.selectUserById(order.getUserId());
UserEntity byUser = userService.queryByInvitationCode(user.getInviterCode());
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(() -> {
ThreadUtil.sleep(1000);
activities(user, byUser); activities(user, byUser);
}); });
ThreadUtil.execAsync(() -> {
inviteService.updateInvite(byUser, DateUtil.now(), 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)));
// order.setOneMoney(new BigDecimal(String.valueOf(map.get("oneMoney"))));
// }
// Object twoUserId = map.get("twoUserId");
// if (twoUserId != null) {
// order.setTwoUserId(Long.parseLong(String.valueOf(twoUserId)));
// order.setTwoMoney(new BigDecimal(String.valueOf(map.get("twoMoney"))));
// }
// Object sysUserId = map.get("sysUserId");
// if (sysUserId != null) {
// order.setSysUserId(Long.parseLong(String.valueOf(sysUserId)));
// order.setQdMoney(new BigDecimal(String.valueOf(map.get("qdMoney"))));
// }
} }
@Transactional @Transactional
public void activities(UserEntity user, UserEntity sourceUser) { public void activities(UserEntity user, UserEntity sourceUser) {
//分享达标 //分享达标
if (sourceUser != null && sourceUser.getUserId() != 1) { if (sourceUser == null || sourceUser.getUserId() == 1) {
QueryWrapper<UserMoneyDetails> queryWrapper = new QueryWrapper<>(); return;
// 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()); InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(user.getUserId());
// 首次达标 // 首次达标
int signCount = Integer.parseInt(commonRepository.findOne(913).getValue()); int signCount = Integer.parseInt(commonRepository.findOne(913).getValue());
logger.info("{}签到次数: {}", user.getUserName(), inviteAchievement.getCount());
if (inviteAchievement.getState() == 0 && inviteAchievement.getCount() >= signCount) { if (inviteAchievement.getState() == 0 && inviteAchievement.getCount() >= signCount) {
//满3笔 //满3笔
// Integer sumOrderNum = ordersService.countOrderNum(user.getUserId(), null);
// if (sumOrderNum >= Integer.parseInt(commonRepository.findOne(913).getValue())) {
String amount = commonRepository.findOne(912).getValue(); String amount = commonRepository.findOne(912).getValue();
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setClassify(6); userMoneyDetails.setClassify(6);
@@ -197,60 +216,62 @@ public class TempOrdersTask {
userMoneyDetails.setType(1); userMoneyDetails.setType(1);
userMoneyDetails.setMoneyType(1); userMoneyDetails.setMoneyType(1);
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);
//存入余额 钱 //上级 存入余额 钱
userMoneyService.updateAmount(1, sourceUser.getUserId(), Double.parseDouble(amount)); userMoneyService.updateAmount(1, sourceUser.getUserId(), Double.parseDouble(amount));
inviteAchievement.setState(1); inviteAchievement.setState(1);
inviteAchievementService.updateById(inviteAchievement); inviteAchievementService.updateById(inviteAchievement);
int count = inviteAchievementService.countBySourceUserId(sourceUser.getUserId()); //代理
// 首次达标奖励 if (StringUtils.isNotBlank(user.getQdCode()) && !"666666".equals(user.getQdCode())) {
if (count == 1) {
SysUserEntity sysUser = sysUserService.selectSysUserByQdCode(user.getQdCode()); SysUserEntity sysUser = sysUserService.selectSysUserByQdCode(user.getQdCode());
if (sysUser != null) {
String qdAward = commonRepository.findOne(915).getValue(); String qdAward = commonRepository.findOne(915).getValue();
UserMoneyDetails userMoneyDetails4 = new UserMoneyDetails( 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); 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); 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));
logger.info("邀请人员: {}", count);
//count 邀请的已达标人数
completAwardService.list(new QueryWrapper<CompletAward>().eq("invite_count", count).eq("status", 1)).forEach(completAward -> {
QueryWrapper<UserMoneyDetails> moneyDetailsQuery = new QueryWrapper<>(); QueryWrapper<UserMoneyDetails> moneyDetailsQuery = new QueryWrapper<>();
moneyDetailsQuery.eq("classify", 6); moneyDetailsQuery.eq("classify", 6);
moneyDetailsQuery.eq("user_id", sourceUser.getUserId()); moneyDetailsQuery.eq("user_id", sourceUser.getUserId());
moneyDetailsQuery.eq("source_id", completAward.getId());
//达标人数 //达标人数
// int completeCount = userMoneyDetailsService.count(moneyDetailsQuery); int awardCount = userMoneyDetailsService.count(moneyDetailsQuery);
int completeCount = inviteAchievementService.countNum(sourceUser.getUserId(), signCount); if (awardCount < 1) {
completAwardService.list(new QueryWrapper<CompletAward>().eq("invite_count", completeCount)).forEach(completAward -> {
switch (completAward.getType()) { switch (completAward.getType()) {
case 1: case 1:
UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails( UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails(
sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2, sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2, completAward.getAwardNumber(),
completAward.getAwardNumber(), "邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励金币" + completAward.getAwardNumber(), 2); "邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励金币" + completAward.getAwardNumber(), 2, completAward.getId());
userMoneyService.updateMoney(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue()); userMoneyService.updateMoney(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue());
userMoneyDetailsService.save(userMoneyDetails1); userMoneyDetailsService.save(userMoneyDetails1);
break; break;
case 2: case 2:
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails( UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(
sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2, sourceUser.getUserId(), null, null, "[分享达标额外奖励]", 6, 1, 2, completAward.getAwardNumber(),
completAward.getAwardNumber(), "邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励现金红包" + completAward.getAwardNumber(), 1); "邀请人员已有" + completAward.getInviteCount() + "人完成达标任务,额外奖励现金红包" + completAward.getAwardNumber(), 1, completAward.getId());
userMoneyService.updateAmount(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue()); userMoneyService.updateAmount(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue());
userMoneyDetailsService.save(userMoneyDetails2); userMoneyDetailsService.save(userMoneyDetails2);
break; break;
} }
}
}); });
}
} }
} }

View File

@@ -23,6 +23,7 @@ import com.sqx.modules.complet.service.CompletAwardService;
import com.sqx.modules.invite.dao.InviteDao; import com.sqx.modules.invite.dao.InviteDao;
import com.sqx.modules.invite.entity.Invite; import com.sqx.modules.invite.entity.Invite;
import com.sqx.modules.invite.service.InviteService; import com.sqx.modules.invite.service.InviteService;
import com.sqx.modules.job.task.TempOrdersTask;
import com.sqx.modules.orders.entity.Orders; import com.sqx.modules.orders.entity.Orders;
import com.sqx.modules.orders.service.OrdersService; import com.sqx.modules.orders.service.OrdersService;
import com.sqx.modules.pay.dao.CashOutDao; import com.sqx.modules.pay.dao.CashOutDao;
@@ -64,35 +65,22 @@ public class WuyouController {
private final OrdersService ordersService; private final OrdersService ordersService;
private final PayDetailsDao payDetailsDao; private final PayDetailsDao payDetailsDao;
private final UserService userService;
private final InviteService inviteService;
private final InviteDao inviteDao;
private final UserMoneyService userMoneyService; private final UserMoneyService userMoneyService;
private final UserMoneyDetailsService userMoneyDetailsService; private final UserMoneyDetailsService userMoneyDetailsService;
private final CommonInfoService commonRepository;
private final CashOutDao cashOutDao; private final CashOutDao cashOutDao;
private final CompletAwardService completAwardService;
private final SysUserService sysUserService;
private final WuyouPay wuyouPay; private final WuyouPay wuyouPay;
private final InviteAchievementService inviteAchievementService; private final TempOrdersTask ordersTask;
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, UserService userService, InviteService inviteService, CashOutDao cashOutDao, WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, CashOutDao cashOutDao, UserMoneyService userMoneyService,
UserMoneyService userMoneyService, UserMoneyDetailsService userMoneyDetailsService, CommonInfoService commonRepository, UserMoneyDetailsService userMoneyDetailsService, TempOrdersTask ordersTask,
InviteDao inviteDao, CompletAwardService completAwardService, SysUserService sysUserService, WuyouPay wuyouPay, InviteAchievementService inviteAchievementService) { WuyouPay wuyouPay) {
this.ordersService = ordersService; this.ordersService = ordersService;
this.payDetailsDao = payDetailsDao; this.payDetailsDao = payDetailsDao;
this.userService = userService;
this.inviteService = inviteService;
this.cashOutDao = cashOutDao; this.cashOutDao = cashOutDao;
this.userMoneyService = userMoneyService; this.userMoneyService = userMoneyService;
this.userMoneyDetailsService = userMoneyDetailsService; this.userMoneyDetailsService = userMoneyDetailsService;
this.commonRepository = commonRepository;
this.inviteDao = inviteDao;
this.completAwardService = completAwardService;
this.sysUserService = sysUserService;
this.wuyouPay = wuyouPay; this.wuyouPay = wuyouPay;
this.inviteAchievementService = inviteAchievementService; this.ordersTask = ordersTask;
} }
@Debounce(interval = 1000, value = "#orderId") @Debounce(interval = 1000, value = "#orderId")
@@ -112,7 +100,7 @@ public class WuyouController {
if (payDetails == null) { if (payDetails == null) {
payDetails = new PayDetails(); payDetails = new PayDetails();
payDetails.setState(0); payDetails.setState(0);
payDetails.setCreateTime(sdf.format(new Date())); payDetails.setCreateTime(DateUtil.now());
payDetails.setOrderId(order.getOrdersNo()); payDetails.setOrderId(order.getOrdersNo());
payDetails.setUserId(order.getUserId()); payDetails.setUserId(order.getUserId());
payDetails.setMoney(order.getPayMoney().doubleValue()); payDetails.setMoney(order.getPayMoney().doubleValue());
@@ -126,7 +114,7 @@ public class WuyouController {
} }
if (order.getPayMoney().compareTo(BigDecimal.ZERO) == 0) { if (order.getPayMoney().compareTo(BigDecimal.ZERO) == 0) {
updateOrderStatus(payDetails, order); ordersTask.updateOrderStatus(payDetails, order);
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
data.put("tradeNo", payDetails.getTradeNo()); data.put("tradeNo", payDetails.getTradeNo());
data.put("payStatus", 1); data.put("payStatus", 1);
@@ -170,7 +158,7 @@ public class WuyouController {
if ("SUCCESS".equals(baseResp.getPayStatus())) { if ("SUCCESS".equals(baseResp.getPayStatus())) {
payDetails.setThirdOrderNo(baseResp.getData().getOrder_sn()); payDetails.setThirdOrderNo(baseResp.getData().getOrder_sn());
updateOrderStatus(payDetails, order); ordersTask.updateOrderStatus(payDetails, order);
return Result.success().put("data", 1); return Result.success().put("data", 1);
} }
@@ -236,161 +224,10 @@ public class WuyouController {
} }
payDetails.setThirdOrderNo(notifyDto.getOrder_sn()); payDetails.setThirdOrderNo(notifyDto.getOrder_sn());
updateOrderStatus(payDetails, order); ordersTask.updateOrderStatus(payDetails, order);
return "success"; return "success";
} }
@Transactional
public void activities(UserEntity user, UserEntity sourceUser) {
//分享达标
if (sourceUser == null || sourceUser.getUserId() == 1) {
return;
}
// 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));
inviteAchievement.setState(1);
inviteAchievementService.updateById(inviteAchievement);
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 (collect.isEmpty() && list.size() == 1) {
SysUserEntity sysUser = sysUserService.selectSysUserByQdCode(user.getQdCode());
String qdAward = commonRepository.findOne(915).getValue();
UserMoneyDetails userMoneyDetails4 = new UserMoneyDetails(
null, sysUser == null ? null : sysUser.getUserId(), null, "[分享达标额外奖励]", 6, 1, 2,
new BigDecimal(qdAward), "推广人员首次达标,额外奖励现金红包" + qdAward, 2);
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);
}
// }
}
QueryWrapper<UserMoneyDetails> moneyDetailsQuery = new QueryWrapper<>();
moneyDetailsQuery.eq("classify", 6);
moneyDetailsQuery.eq("user_id", sourceUser.getUserId());
//达标人数
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);
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);
userMoneyService.updateAmount(1, sourceUser.getUserId(), completAward.getAwardNumber().doubleValue());
userMoneyDetailsService.save(userMoneyDetails2);
break;
}
});
}
private 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());
order.setPayWay(9);
order.setStatus(1);
order.setPayTime(DateUtils.format(new Date()));
UserEntity user = userService.selectUserById(order.getUserId());
UserEntity byUser = userService.queryByInvitationCode(user.getInviterCode());
Map<String, Object> map = inviteService.updateInvite(byUser, format, user.getUserId(), order.getPayMoney());
Object oneUserId = map.get("oneUserId");
if (oneUserId != null) {
order.setOneUserId(Long.parseLong(String.valueOf(oneUserId)));
order.setOneMoney(new BigDecimal(String.valueOf(map.get("oneMoney"))));
}
Object twoUserId = map.get("twoUserId");
if (twoUserId != null) {
order.setTwoUserId(Long.parseLong(String.valueOf(twoUserId)));
order.setTwoMoney(new BigDecimal(String.valueOf(map.get("twoMoney"))));
}
Object sysUserId = map.get("sysUserId");
if (sysUserId != null) {
order.setSysUserId(Long.parseLong(String.valueOf(sysUserId)));
order.setQdMoney(new BigDecimal(String.valueOf(map.get("qdMoney"))));
}
ordersService.updateById(order);
ordersService.insertOrders(order);
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);
});
// CompletableFuture.runAsync(() -> {
// ApiAccessLimitUtil.runFunAndCheckKey(() -> {
// WuyouController proxy = applicationContext.getBean(WuyouController.class);
// proxy.activities(user, byUser);
// return null;
// }, RedisKeys.getLockKey("activaties", user.getUserId(), byUser.getUserId()), 15);
// });
}
private void updateCashAsync(NotifyDto notifyDto) { private void updateCashAsync(NotifyDto notifyDto) {
log.info("无忧支付提现回调, {}", notifyDto); log.info("无忧支付提现回调, {}", notifyDto);
@@ -420,7 +257,7 @@ public class WuyouController {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails( UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
cashOut.getUserId(), null, null, "提现失败", 4, 1, 1, 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())); userMoneyService.updateAmount(1, cashOut.getUserId(), Double.parseDouble(cashOut.getMoney()));
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);

View File

@@ -616,7 +616,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
baseMapper.updateById(entity); baseMapper.updateById(entity);
UserMoneyDetails userMoneyDetails = new UserMoneyDetails( UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
entity.getUserId(), entity.getSysUserId(), null, "[提现退款]", 4, 1, 2, entity.getUserId(), entity.getSysUserId(), null, "[提现退款]", 4, 1, 2,
new BigDecimal(entity.getMoney()), "提现失败,自动退款" + entity.getMoney() + "", 1); new BigDecimal(entity.getMoney()), "提现失败,自动退款" + entity.getMoney() + "", 1,entity.getId());
userMoneyDetailsService.save(userMoneyDetails); userMoneyDetailsService.save(userMoneyDetails);
//归还余额 钱 //归还余额 钱
userMoneyService.updateAmount(1, entity.getUserId(), Convert.toDouble(entity.getMoney())); userMoneyService.updateAmount(1, entity.getUserId(), Convert.toDouble(entity.getMoney()));

View File

@@ -42,6 +42,12 @@ public class WuyouPay {
} }
public BaseResp payOrder(String orderNo, String amount, String userAgent, String allId, String payType) { public BaseResp payOrder(String orderNo, String amount, String userAgent, String allId, String payType) {
String payConfig = commonInfoService.findOne(926).getValue();
if (!"1".equals(payConfig)) {
BaseResp baseResp = new BaseResp();
baseResp.setErrorMsg("暂无支付渠道");
return baseResp;
}
Map<String, Object> params = getBaseParams(); Map<String, Object> params = getBaseParams();
params.put("type", "6001"); params.put("type", "6001");
params.put("is_code", "1"); params.put("is_code", "1");
@@ -111,6 +117,12 @@ public class WuyouPay {
* @param userName 支付宝名称 * @param userName 支付宝名称
*/ */
public BaseResp extractOrder(String outOrderNo, String amount, String account, String userName) { public BaseResp extractOrder(String outOrderNo, String amount, String account, String userName) {
String payConfig = commonInfoService.findOne(927).getValue();
if (!"1".equals(payConfig)) {
BaseResp baseResp = new BaseResp();
baseResp.setErrorMsg("暂无提现渠道");
return baseResp;
}
Map<String, Object> params = getBaseParams(); Map<String, Object> params = getBaseParams();
params.put("out_trade_no", outOrderNo); params.put("out_trade_no", outOrderNo);

View File

@@ -236,7 +236,7 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
case 1: case 1:
UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails( UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails(
userId, null, null, "[任务中心]", 7, 1, 2, userId, null, null, "[任务中心]", 7, 1, 2,
new BigDecimal(reward.getNumber()), taskCenter.getTitle() + "任务完成,金币奖励" + reward.getNumber(), 2); new BigDecimal(reward.getNumber()), taskCenter.getTitle() + "任务完成,金币奖励" + reward.getNumber(), 2, reward.getTaskId());
userMoneyService.updateMoney(1, userId, reward.getNumber()); userMoneyService.updateMoney(1, userId, reward.getNumber());
userMoneyDetailsService.save(userMoneyDetails1); userMoneyDetailsService.save(userMoneyDetails1);
@@ -245,7 +245,7 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
case 2: case 2:
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails( UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails(
userId, null, null, "[任务中心]", 7, 1, 2, userId, null, null, "[任务中心]", 7, 1, 2,
new BigDecimal(reward.getNumber()), taskCenter.getTitle() + "任务完成,现金奖励" + reward.getNumber(), 1); new BigDecimal(reward.getNumber()), taskCenter.getTitle() + "任务完成,现金奖励" + reward.getNumber(), 1, reward.getTaskId());
userMoneyService.updateAmount(1, userId, reward.getNumber()); userMoneyService.updateAmount(1, userId, reward.getNumber());
userMoneyDetailsService.save(userMoneyDetails2); userMoneyDetailsService.save(userMoneyDetails2);

View File

@@ -78,7 +78,7 @@
count(*) count(*)
FROM FROM
tb_user tu tb_user tu
LEFT JOIN INNER JOIN
(SELECT user_id (SELECT user_id
FROM orders FROM orders
WHERE pay_way = 9 WHERE pay_way = 9

View File

@@ -38,7 +38,7 @@ public class Tets {
UserEntity userEntity = userService.selectUserById(26972L); UserEntity userEntity = userService.selectUserById(26972L);
UserEntity byUser = userService.queryByInvitationCode(userEntity.getInviterCode()); UserEntity byUser = userService.queryByInvitationCode(userEntity.getInviterCode());
proxy.activities(userEntity, byUser); // proxy.activities(userEntity, byUser);
System.out.println(proxy); System.out.println(proxy);
} }