达标奖励

抽奖补偿
This commit is contained in:
wangw 2024-12-31 11:20:49 +08:00
parent a6949a92a0
commit 40c7bce626
10 changed files with 129 additions and 246 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

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

@ -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,8 +30,10 @@ 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;
@ -70,10 +73,11 @@ 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) {
@ -83,6 +87,9 @@ public class TempOrdersTask {
@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,13 +138,13 @@ 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);
@ -145,7 +152,7 @@ public class TempOrdersTask {
UserEntity user = userService.selectUserById(order.getUserId()); UserEntity user = userService.selectUserById(order.getUserId());
UserEntity byUser = userService.queryByInvitationCode(user.getInviterCode()); 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"); Object oneUserId = map.get("oneUserId");
if (oneUserId != null) { if (oneUserId != null) {
order.setOneUserId(Long.parseLong(String.valueOf(oneUserId))); order.setOneUserId(Long.parseLong(String.valueOf(oneUserId)));
@ -163,7 +170,23 @@ public class TempOrdersTask {
} }
ordersService.updateById(order); ordersService.updateById(order);
ordersService.insertOrders(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); activities(user, byUser);
}); });
} }
@ -171,86 +194,83 @@ public class TempOrdersTask {
@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()); InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(user.getUserId());
// queryWrapper.eq("by_user_id", user.getUserId()); // 首次达标
// int count = userMoneyDetailsService.count(queryWrapper); int signCount = Integer.parseInt(commonRepository.findOne(913).getValue());
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(user.getUserId()); if (inviteAchievement.getState() == 0 && inviteAchievement.getCount() >= signCount) {
// 首次达标 //满3笔
int signCount = Integer.parseInt(commonRepository.findOne(913).getValue()); String amount = commonRepository.findOne(912).getValue();
if (inviteAchievement.getState() == 0 && inviteAchievement.getCount() >= signCount) { UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
//满3笔 userMoneyDetails.setClassify(6);
// Integer sumOrderNum = ordersService.countOrderNum(user.getUserId(), null); userMoneyDetails.setMoney(new BigDecimal(amount));
// if (sumOrderNum >= Integer.parseInt(commonRepository.findOne(913).getValue())) { userMoneyDetails.setUserId(sourceUser.getUserId());
String amount = commonRepository.findOne(912).getValue(); userMoneyDetails.setByUserId(user.getUserId());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); userMoneyDetails.setCreateTime(DateUtil.now());
userMoneyDetails.setClassify(6); userMoneyDetails.setContent("分享达标奖励" + amount + "");
userMoneyDetails.setMoney(new BigDecimal(amount)); userMoneyDetails.setTitle("分享达标奖励");
userMoneyDetails.setUserId(sourceUser.getUserId()); userMoneyDetails.setState(2);
userMoneyDetails.setByUserId(user.getUserId()); userMoneyDetails.setType(1);
userMoneyDetails.setCreateTime(DateUtil.now()); userMoneyDetails.setMoneyType(1);
userMoneyDetails.setContent("分享达标奖励" + amount + ""); userMoneyDetailsService.save(userMoneyDetails);
userMoneyDetails.setTitle("分享达标奖励"); //上级 存入余额
userMoneyDetails.setState(2); userMoneyService.updateAmount(1, sourceUser.getUserId(), Double.parseDouble(amount));
userMoneyDetails.setType(1);
userMoneyDetails.setMoneyType(1);
userMoneyDetailsService.save(userMoneyDetails);
//存入余额
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));
//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

@ -71,8 +71,8 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
List<TaskCenter> resultTask = new ArrayList<>(); List<TaskCenter> resultTask = new ArrayList<>();
for (TaskCenter s : taskPage) { for (TaskCenter s : taskPage) {
Map<Integer, Integer> rewardMap = taskCenterRewardService.getRewardMap(s.getId()); Map<Integer, Integer> rewardMap = taskCenterRewardService.getRewardMap(s.getId());
boolean todaySign = true; boolean todaySign = true;
Integer signCount = null; Integer signCount = null;
if (CollectionUtil.isEmpty(rewardMap)) { if (CollectionUtil.isEmpty(rewardMap)) {
continue; continue;
} }
@ -146,13 +146,13 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
s.setDiscNumber(null); s.setDiscNumber(null);
s.setNumber(null); s.setNumber(null);
} }
}else{ } else {
if (recordService.countTaskNum(userId, s.getId(), DateUtil.beginOfMonth(new Date()) + " 00:00:00") > 0) { if (recordService.countTaskNum(userId, s.getId(), DateUtil.beginOfMonth(new Date()) + " 00:00:00") > 0) {
s.setButtonTitle("已领取"); s.setButtonTitle("已领取");
s.setDisabled(false); s.setDisabled(false);
s.setNumber(null); s.setNumber(null);
s.setDiscNumber(null); s.setDiscNumber(null);
}else { } else {
s.setDiscNumber(null); s.setDiscNumber(null);
s.setNumber(null); s.setNumber(null);
} }
@ -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