From 0f9d7106076c9d4e2d4adfdcc5231911c40b15c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 7 Jan 2025 13:49:27 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=8E=92=E8=A1=8C=E6=A6=9C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sqx/modules/app/dao/UserDao.java | 3 +- .../app/service/impl/UserServiceImpl.java | 35 +++++++++++++------ src/main/resources/mapper/app/UserDao.xml | 11 +++++- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/sqx/modules/app/dao/UserDao.java b/src/main/java/com/sqx/modules/app/dao/UserDao.java index cfc39a54..ecee4a39 100644 --- a/src/main/java/com/sqx/modules/app/dao/UserDao.java +++ b/src/main/java/com/sqx/modules/app/dao/UserDao.java @@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; +import java.util.Set; /** * 用户 @@ -35,7 +36,7 @@ public interface UserDao extends BaseMapper { int insertUser(UserEntity userEntity); - List selectInviteUserList(); + List selectInviteUserList(@Param("queryUserIdList") Set queryUserIdList); int selectUserOnLineCount(String qdCode); diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java index 2cc55344..edcd68b8 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java @@ -1531,23 +1531,38 @@ public class UserServiceImpl extends ServiceImpl implements if (StrUtil.isNotBlank(phone)) { queryWrapper.like(UserEntity::getPhone, phone); } - queryWrapper.orderByDesc(UserEntity::getCreateTime); - PageHelper.startPage(page,limit); - List userEntityList = list(queryWrapper); - Map countInfoMap = baseMapper.selectInviteUserList().stream().collect(Collectors.toMap(UserEntity::getUserId, UserEntity::getCounts)); - if (!userEntityList.isEmpty()) { - Set userIdList = userEntityList.stream().map(UserEntity::getUserId).collect(Collectors.toSet()); + Set queryUserIdList = null; + if (!queryWrapper.isEmptyOfWhere()) { + queryUserIdList = list(queryWrapper.select(UserEntity::getUserId)).stream().map(UserEntity::getUserId).collect(Collectors.toSet()); + } + + PageHelper.startPage(page,limit); + List inviteList = baseMapper.selectInviteUserList(queryUserIdList); + List userInfoList = new ArrayList<>(); + if (!inviteList.isEmpty()) { + Map countInfoMap = new HashMap<>(); + ArrayList inviteCodeList = new ArrayList<>(); + inviteList.forEach(item -> { + countInfoMap.put(item.getInviterCode(), item.getCounts()); + inviteCodeList.add(item.getInviterCode()); + }); + + userInfoList = list(new LambdaQueryWrapper().in(UserEntity::getInvitationCode, inviteCodeList)); + + Set useridList = userInfoList.stream().map(UserEntity::getUserId).collect(Collectors.toSet()); Map infoMap = userMoneyService.list(new LambdaQueryWrapper() - .in(UserMoney::getUserId, userIdList)) + .in(UserMoney::getUserId, useridList)) .stream().collect(Collectors.toMap(UserMoney::getUserId, item -> item)); - userEntityList.forEach(item -> { + userInfoList.forEach(item -> { UserMoney userMoney = infoMap.get(item.getUserId()); item.setMoney(userMoney == null ? BigDecimal.ZERO : userMoney.getInviteIncomeMoney()); - item.setCounts(countInfoMap.get(item.getUserId())); + Integer i = countInfoMap.get(item.getInvitationCode()); + item.setCounts(i == null ? 0 : i); }); } - return Result.success().put("data", PageUtils.page(new PageInfo<>(userEntityList),true)); + + return Result.success().put("data", PageUtils.page(new PageInfo<>(userInfoList),true)); } @Override diff --git a/src/main/resources/mapper/app/UserDao.xml b/src/main/resources/mapper/app/UserDao.xml index 7c05619b..580d6de9 100644 --- a/src/main/resources/mapper/app/UserDao.xml +++ b/src/main/resources/mapper/app/UserDao.xml @@ -299,7 +299,16 @@