红包任务

This commit is contained in:
2024-12-28 15:49:21 +08:00
parent e77bb19459
commit d973622445
6 changed files with 134 additions and 114 deletions

View File

@@ -1,6 +1,7 @@
package com.sqx.modules.pay.controller.app;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.annotation.Debounce;
@@ -210,7 +211,7 @@ public class WuyouController {
log.info("无忧支付回调成功, 参数: {}", JSONObject.toJSONString(notifyDto));
PayDetails payDetails = payDetailsDao.selectByTradeNo(notifyDto.getOut_trade_no());
if(payDetails == null) {
if (payDetails == null) {
log.error("无忧支付回调订单不存在, 参数: {}", JSONObject.toJSONString(notifyDto));
return "success";
}
@@ -240,76 +241,78 @@ public class WuyouController {
@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);
if (count == 0) {
//满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));
SysUserEntity sysUser = sysUserService.selectSysUserByQdCode(user.getQdCode());
String qdAward = commonRepository.findOne(915).getValue();
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);
if (count == 0) {
//满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));
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);
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);
userMoneyService.updateSysAmount(1, sysUser == null ? null : sysUser.getUserId(), Double.parseDouble(qdAward));
userMoneyDetailsService.save(userMoneyDetails4);
Invite invite = inviteService.selectInviteByUser(sourceUser.getUserId(), user.getUserId(), 1);
if (invite != null) {
invite.setMoney(Double.valueOf(amount));
invite.setState(1);
inviteDao.updateById(invite);
}
Invite invite = inviteService.selectInviteByUser(sourceUser.getUserId(), user.getUserId(), 1);
if (invite != null) {
invite.setMoney(Double.valueOf(amount));
invite.setState(1);
inviteDao.updateById(invite);
}
}
QueryWrapper<UserMoneyDetails> moneyDetailsQuery = new QueryWrapper<>();
moneyDetailsQuery.eq("classify", 6);
moneyDetailsQuery.eq("user_id", sourceUser.getUserId());
//达标人数
int completeCount = userMoneyDetailsService.count(moneyDetailsQuery);
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;
}
});
}
QueryWrapper<UserMoneyDetails> moneyDetailsQuery = new QueryWrapper<>();
moneyDetailsQuery.eq("classify", 6);
moneyDetailsQuery.eq("user_id", sourceUser.getUserId());
//达标人数
int completeCount = userMoneyDetailsService.count(moneyDetailsQuery);
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) {
@@ -344,17 +347,20 @@ public class WuyouController {
}
ordersService.updateById(order);
ordersService.insertOrders(order);
CompletableFuture.runAsync(() -> {
ApiAccessLimitUtil.runFunAndCheckKey(() -> {
WuyouController proxy = applicationContext.getBean(WuyouController.class);
proxy.activities(user, byUser);
return null;
}, RedisKeys.getLockKey("activaties", user.getUserId(), byUser.getUserId()), 15);
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);
Map<String, Object> params = new HashMap<>();
params.put("callbacks", notifyDto.getCallbacks());
@@ -373,10 +379,10 @@ public class WuyouController {
if ("2".equals(notifyDto.getStatus())) {
cashOut.setState(1);
cashOut.setOutAt(DateUtil.now());
} else if(!cashOut.getState().equals(2)){
} else if (!cashOut.getState().equals(2)) {
cashOut.setState(2);
cashOut.setRefund(notifyDto.getMsg());
if(StringUtils.isNotBlank(notifyDto.getMsg()) && notifyDto.getMsg().contains("已驳回")){
if (StringUtils.isNotBlank(notifyDto.getMsg()) && notifyDto.getMsg().contains("已驳回")) {
cashOut.setRefund("提现失败,请检查支付宝账号与收款人姓名后重试。");
}