达标奖励

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

View File

@@ -23,6 +23,7 @@ import com.sqx.modules.complet.service.CompletAwardService;
import com.sqx.modules.invite.dao.InviteDao;
import com.sqx.modules.invite.entity.Invite;
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.service.OrdersService;
import com.sqx.modules.pay.dao.CashOutDao;
@@ -64,35 +65,22 @@ public class WuyouController {
private final OrdersService ordersService;
private final PayDetailsDao payDetailsDao;
private final UserService userService;
private final InviteService inviteService;
private final InviteDao inviteDao;
private final UserMoneyService userMoneyService;
private final UserMoneyDetailsService userMoneyDetailsService;
private final CommonInfoService commonRepository;
private final CashOutDao cashOutDao;
private final CompletAwardService completAwardService;
private final SysUserService sysUserService;
private final WuyouPay wuyouPay;
private final InviteAchievementService inviteAchievementService;
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private final TempOrdersTask ordersTask;
WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, UserService userService, InviteService inviteService, CashOutDao cashOutDao,
UserMoneyService userMoneyService, UserMoneyDetailsService userMoneyDetailsService, CommonInfoService commonRepository,
InviteDao inviteDao, CompletAwardService completAwardService, SysUserService sysUserService, WuyouPay wuyouPay, InviteAchievementService inviteAchievementService) {
WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, CashOutDao cashOutDao, UserMoneyService userMoneyService,
UserMoneyDetailsService userMoneyDetailsService, TempOrdersTask ordersTask,
WuyouPay wuyouPay) {
this.ordersService = ordersService;
this.payDetailsDao = payDetailsDao;
this.userService = userService;
this.inviteService = inviteService;
this.cashOutDao = cashOutDao;
this.userMoneyService = userMoneyService;
this.userMoneyDetailsService = userMoneyDetailsService;
this.commonRepository = commonRepository;
this.inviteDao = inviteDao;
this.completAwardService = completAwardService;
this.sysUserService = sysUserService;
this.wuyouPay = wuyouPay;
this.inviteAchievementService = inviteAchievementService;
this.ordersTask = ordersTask;
}
@Debounce(interval = 1000, value = "#orderId")
@@ -112,7 +100,7 @@ public class WuyouController {
if (payDetails == null) {
payDetails = new PayDetails();
payDetails.setState(0);
payDetails.setCreateTime(sdf.format(new Date()));
payDetails.setCreateTime(DateUtil.now());
payDetails.setOrderId(order.getOrdersNo());
payDetails.setUserId(order.getUserId());
payDetails.setMoney(order.getPayMoney().doubleValue());
@@ -126,7 +114,7 @@ public class WuyouController {
}
if (order.getPayMoney().compareTo(BigDecimal.ZERO) == 0) {
updateOrderStatus(payDetails, order);
ordersTask.updateOrderStatus(payDetails, order);
Map<String, Object> data = new HashMap<>();
data.put("tradeNo", payDetails.getTradeNo());
data.put("payStatus", 1);
@@ -170,7 +158,7 @@ public class WuyouController {
if ("SUCCESS".equals(baseResp.getPayStatus())) {
payDetails.setThirdOrderNo(baseResp.getData().getOrder_sn());
updateOrderStatus(payDetails, order);
ordersTask.updateOrderStatus(payDetails, order);
return Result.success().put("data", 1);
}
@@ -236,161 +224,10 @@ public class WuyouController {
}
payDetails.setThirdOrderNo(notifyDto.getOrder_sn());
updateOrderStatus(payDetails, order);
ordersTask.updateOrderStatus(payDetails, order);
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) {
log.info("无忧支付提现回调, {}", notifyDto);
@@ -420,7 +257,7 @@ public class WuyouController {
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
cashOut.getUserId(), null, null, "提现失败", 4, 1, 1,
new BigDecimal(cashOut.getMoney()), "提现失败存入余额" + cashOut.getMoney() + "", 1);
new BigDecimal(cashOut.getMoney()), "提现失败存入余额" + cashOut.getMoney() + "", 1, cashOut.getId());
//存入余额 钱
userMoneyService.updateAmount(1, cashOut.getUserId(), Double.parseDouble(cashOut.getMoney()));
userMoneyDetailsService.save(userMoneyDetails);

View File

@@ -616,7 +616,7 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
baseMapper.updateById(entity);
UserMoneyDetails userMoneyDetails = new UserMoneyDetails(
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);
//归还余额 钱
userMoneyService.updateAmount(1, entity.getUserId(), Convert.toDouble(entity.getMoney()));