达标奖励
抽奖补偿
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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()));
|
||||
|
||||
Reference in New Issue
Block a user