Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
commit
c8bf57c7ff
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue