Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
张松 2025-01-04 15:17:35 +08:00
commit c8bf57c7ff
1 changed files with 99 additions and 12 deletions

View File

@ -1,5 +1,7 @@
package com.sqx.modules.invite.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@ -10,14 +12,8 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.PageUtils;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.entity.UserMoney;
import com.sqx.modules.app.entity.UserMoneyDetails;
import com.sqx.modules.app.entity.UserVip;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserService;
import com.sqx.modules.app.service.UserVipService;
import com.sqx.modules.app.entity.*;
import com.sqx.modules.app.service.*;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.invite.dao.InviteDao;
import com.sqx.modules.invite.entity.Invite;
@ -34,6 +30,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* 邀请记录
@ -60,6 +57,8 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
private UserVipService userVipService;
@Autowired
private SysUserService sysUserService;
@Autowired
private InviteAchievementService inviteAchievementService;
@Override
public PageUtils selectInviteList(int page, int limit, Integer state, Long userId) {
@ -76,7 +75,36 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
public PageUtils selectInviteUser(int page, int limit, Long userId, Integer state, Integer userType) {
UserEntity userEntity = userService.queryByUserId(userId);
PageHelper.startPage(page, limit);
return PageUtils.page(new PageInfo<>(inviteDao.selectInviteUser(userEntity.getInvitationCode())));
LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(UserEntity::getUserId, UserEntity::getAvatar, UserEntity::getUserName);
queryWrapper.eq(UserEntity::getInviterCode, userEntity.getInvitationCode());
List<UserEntity> list = userService.list(queryWrapper);
PageInfo<UserEntity> pageInfo = new PageInfo<>(list);
if (list.isEmpty()) {
return PageUtils.page(pageInfo);
}
List<Long> userIds = list.stream().map(UserEntity::getUserId).collect(Collectors.toList());
LambdaQueryWrapper<InviteAchievement> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.gt(InviteAchievement::getCount, 3);
queryWrapper1.eq(InviteAchievement::getUserId, userId);
queryWrapper1.in(InviteAchievement::getTargetUserId, userIds);
List<InviteAchievement> achievementList = inviteAchievementService.list(queryWrapper1);
Set<Long> achievementUserIds = achievementList.stream().map(InviteAchievement::getTargetUserId).collect(Collectors.toSet());
List<JSONObject> jsonList = new ArrayList<>();
for (UserEntity entity : list) {
JSONObject item = new JSONObject();
item.put("userId", entity.getUserId());
item.put("avatar", entity.getAvatar());
item.put("userName", entity.getUserName());
item.put("recordNum", achievementUserIds.contains(entity.getUserId()) ? 1 : 0);
jsonList.add(item);
}
return new PageUtils(jsonList, (int) pageInfo.getTotal(), pageInfo.getPageSize(), pageInfo.getPageNum());
}
@Override
@ -232,7 +260,18 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
public Map<String, Object> updateInvite(UserEntity userEntity, String format, Long userId, BigDecimal price) {
Map<String, Object> result = new HashMap<>();
if (userEntity != null && userId != null && price != null) {
Invite invite1 = inviteDao.selectInviteByUser(userEntity.getUserId(), userId, 1);
if (invite1 == null) {
Invite invite = new Invite();
invite.setState(0);
invite.setMoney(0.00);
invite.setUserId(userEntity.getUserId());
invite.setInviteeUserId(userId);
invite.setCreateTime(format);
invite.setUserType(1);
inviteDao.insert(invite);
invite1 = inviteDao.selectInviteByUser(userEntity.getUserId(), userId, 1);
}
UserEntity userEntity1 = userService.selectUserById(userId);
BigDecimal oneMoney = BigDecimal.ZERO;
BigDecimal twoMoney = BigDecimal.ZERO;
@ -240,17 +279,65 @@ public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements
BigDecimal rateMoney = userEntity.getRate();
oneMoney = rateMoney;
Double money = rateMoney.doubleValue();
invite1.setUserType(1);
invite1.setState(1);
BigDecimal add = BigDecimal.valueOf(invite1.getMoney()).add(BigDecimal.valueOf(money));
invite1.setMoney(add.doubleValue());
inviteDao.updateById(invite1);
inviteMoneyService.updateInviteMoneySum(money, userEntity.getUserId());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(userEntity.getUserId());
userMoneyDetails.setType(1);
//
userMoneyDetails.setClassify(1);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(format);
userMoneyDetails.setTitle("[邀请好友]好友名称:" + userEntity1.getUserName());
userMoneyDetails.setContent("获取佣金:" + money);
userMoneyDetails.setMoneyType(1);
userMoneyDetails.setState(2);
userMoneyDetailsService.save(userMoneyDetails);
userMoneyService.updateAmount(1, userEntity.getUserId(), money);
result.put("oneUserId", userEntity.getUserId());
result.put("oneMoney", money);
}
UserEntity two = userService.queryByInvitationCode(userEntity.getInviterCode());
if (two != null) {
Invite invite2 = inviteDao.selectInviteByUser(two.getUserId(), userId, 2);
if (invite2 == null) {
Invite invite = new Invite();
invite.setState(0);
invite.setMoney(0.00);
invite.setUserId(two.getUserId());
invite.setInviteeUserId(userId);
invite.setCreateTime(format);
invite.setUserType(2);
inviteDao.insert(invite);
invite2 = inviteDao.selectInviteByUser(two.getUserId(), userId, 2);
}
if (two.getTwoRate() != null && two.getTwoRate().doubleValue() > 0) {
BigDecimal rateMoney = two.getTwoRate();
twoMoney = rateMoney;
Double money = rateMoney.doubleValue();
invite2.setUserType(2);
invite2.setState(1);
BigDecimal add = BigDecimal.valueOf(invite2.getMoney()).add(BigDecimal.valueOf(money));
invite2.setMoney(add.doubleValue());
inviteDao.updateById(invite2);
inviteMoneyService.updateInviteMoneySum(money, two.getUserId());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(two.getUserId());
userMoneyDetails.setType(1);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(format);
//
userMoneyDetails.setClassify(1);
userMoneyDetails.setTitle("[邀请好友]好友名称:" + userEntity1.getUserName());
userMoneyDetails.setContent("获取佣金:" + money);
userMoneyDetails.setMoneyType(1);
userMoneyDetails.setState(2);
userMoneyDetailsService.save(userMoneyDetails);
userMoneyService.updateAmount(1, two.getUserId(), money);
result.put("twoUserId", two.getUserId());
result.put("twoMoney", money);
}