1.排行榜修改
This commit is contained in:
@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户
|
* 用户
|
||||||
@@ -35,7 +36,7 @@ public interface UserDao extends BaseMapper<UserEntity> {
|
|||||||
|
|
||||||
int insertUser(UserEntity userEntity);
|
int insertUser(UserEntity userEntity);
|
||||||
|
|
||||||
List<UserEntity> selectInviteUserList();
|
List<UserEntity> selectInviteUserList(@Param("queryUserIdList") Set<Long> queryUserIdList);
|
||||||
|
|
||||||
int selectUserOnLineCount(String qdCode);
|
int selectUserOnLineCount(String qdCode);
|
||||||
|
|
||||||
|
|||||||
@@ -1531,23 +1531,38 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
|
|||||||
if (StrUtil.isNotBlank(phone)) {
|
if (StrUtil.isNotBlank(phone)) {
|
||||||
queryWrapper.like(UserEntity::getPhone, phone);
|
queryWrapper.like(UserEntity::getPhone, phone);
|
||||||
}
|
}
|
||||||
queryWrapper.orderByDesc(UserEntity::getCreateTime);
|
|
||||||
PageHelper.startPage(page,limit);
|
|
||||||
List<UserEntity> userEntityList = list(queryWrapper);
|
|
||||||
|
|
||||||
Map<Long, Integer> countInfoMap = baseMapper.selectInviteUserList().stream().collect(Collectors.toMap(UserEntity::getUserId, UserEntity::getCounts));
|
Set<Long> queryUserIdList = null;
|
||||||
if (!userEntityList.isEmpty()) {
|
if (!queryWrapper.isEmptyOfWhere()) {
|
||||||
Set<Long> userIdList = userEntityList.stream().map(UserEntity::getUserId).collect(Collectors.toSet());
|
queryUserIdList = list(queryWrapper.select(UserEntity::getUserId)).stream().map(UserEntity::getUserId).collect(Collectors.toSet());
|
||||||
|
}
|
||||||
|
|
||||||
|
PageHelper.startPage(page,limit);
|
||||||
|
List<UserEntity> inviteList = baseMapper.selectInviteUserList(queryUserIdList);
|
||||||
|
List<UserEntity> userInfoList = new ArrayList<>();
|
||||||
|
if (!inviteList.isEmpty()) {
|
||||||
|
Map<String, Integer> countInfoMap = new HashMap<>();
|
||||||
|
ArrayList<String> inviteCodeList = new ArrayList<>();
|
||||||
|
inviteList.forEach(item -> {
|
||||||
|
countInfoMap.put(item.getInviterCode(), item.getCounts());
|
||||||
|
inviteCodeList.add(item.getInviterCode());
|
||||||
|
});
|
||||||
|
|
||||||
|
userInfoList = list(new LambdaQueryWrapper<UserEntity>().in(UserEntity::getInvitationCode, inviteCodeList));
|
||||||
|
|
||||||
|
Set<Long> useridList = userInfoList.stream().map(UserEntity::getUserId).collect(Collectors.toSet());
|
||||||
Map<Long, UserMoney> infoMap = userMoneyService.list(new LambdaQueryWrapper<UserMoney>()
|
Map<Long, UserMoney> infoMap = userMoneyService.list(new LambdaQueryWrapper<UserMoney>()
|
||||||
.in(UserMoney::getUserId, userIdList))
|
.in(UserMoney::getUserId, useridList))
|
||||||
.stream().collect(Collectors.toMap(UserMoney::getUserId, item -> item));
|
.stream().collect(Collectors.toMap(UserMoney::getUserId, item -> item));
|
||||||
userEntityList.forEach(item -> {
|
userInfoList.forEach(item -> {
|
||||||
UserMoney userMoney = infoMap.get(item.getUserId());
|
UserMoney userMoney = infoMap.get(item.getUserId());
|
||||||
item.setMoney(userMoney == null ? BigDecimal.ZERO : userMoney.getInviteIncomeMoney());
|
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
|
@Override
|
||||||
|
|||||||
@@ -299,7 +299,16 @@
|
|||||||
|
|
||||||
|
|
||||||
<select id="selectInviteUserList" resultType="com.sqx.modules.app.entity.UserEntity">
|
<select id="selectInviteUserList" resultType="com.sqx.modules.app.entity.UserEntity">
|
||||||
SELECT any_value(user_id) as userId, COUNT(*) AS counts FROM tb_user GROUP BY inviter_code order by counts desc
|
SELECT any_value(inviter_code) as inviterCode, COUNT(*) AS counts
|
||||||
|
FROM tb_user
|
||||||
|
<if test="queryUserIdList != null">
|
||||||
|
where user_id in
|
||||||
|
<foreach collection="queryUserIdList" item="id" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
|
||||||
|
GROUP BY inviter_code order by counts desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectUserOnLineCount" resultType="Integer">
|
<select id="selectUserOnLineCount" resultType="Integer">
|
||||||
|
|||||||
Reference in New Issue
Block a user