查询用户信息
This commit is contained in:
parent
822526b913
commit
ff456d7533
@ -60,4 +60,14 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
<!-- <select id="getFollowedVlogerIds" resultType="com.imooc.pojo.Fans" parameterType="map">-->
|
||||||
|
<!-- SELECT vloger_id, MAX(is_fan_friend_of_mine) AS is_fan_friend_of_mine-->
|
||||||
|
<!-- FROM t_fans-->
|
||||||
|
<!-- WHERE fan_id = #{currentUserId}-->
|
||||||
|
<!-- AND vloger_id IN-->
|
||||||
|
<!-- <foreach collection='vlogerIds' item='vlogerId' open='(' separator=',' close=')'>-->
|
||||||
|
<!-- #{vlogerId}-->
|
||||||
|
<!-- </foreach>-->
|
||||||
|
<!-- GROUP BY vloger_id-->
|
||||||
|
<!-- </select>-->
|
||||||
</mapper>
|
</mapper>
|
@ -2,6 +2,7 @@ package com.imooc.service.impl;
|
|||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
import com.imooc.base.BaseInfoProperties;
|
||||||
import com.imooc.bo.UpdatedUserBO;
|
import com.imooc.bo.UpdatedUserBO;
|
||||||
import com.imooc.enums.Sex;
|
import com.imooc.enums.Sex;
|
||||||
import com.imooc.enums.UserInfoModifyType;
|
import com.imooc.enums.UserInfoModifyType;
|
||||||
@ -9,6 +10,8 @@ import com.imooc.enums.YesOrNo;
|
|||||||
import com.imooc.exceptions.GraceException;
|
import com.imooc.exceptions.GraceException;
|
||||||
import com.imooc.grace.result.ResponseStatusEnum;
|
import com.imooc.grace.result.ResponseStatusEnum;
|
||||||
import com.imooc.mapper.FansMapper;
|
import com.imooc.mapper.FansMapper;
|
||||||
|
import com.imooc.mapper.FansMapperCustom;
|
||||||
|
import com.imooc.service.FansService;
|
||||||
import com.imooc.mapper.UserMemberMapper;
|
import com.imooc.mapper.UserMemberMapper;
|
||||||
import com.imooc.mapper.UsersMapper;
|
import com.imooc.mapper.UsersMapper;
|
||||||
import com.imooc.mo.Token;
|
import com.imooc.mo.Token;
|
||||||
@ -48,9 +51,13 @@ import static com.imooc.base.BaseInfoProperties.MOBILE_SMSCODE;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class UserServiceImpl implements UserService {
|
public class UserServiceImpl extends BaseInfoProperties implements UserService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private UsersMapper usersMapper;
|
private UsersMapper usersMapper;
|
||||||
|
@Autowired
|
||||||
|
private FansMapperCustom fansMapperCustom;
|
||||||
|
@Autowired
|
||||||
|
private FansService fansService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PasswordEncoder passwordEncoder;
|
private PasswordEncoder passwordEncoder;
|
||||||
@ -325,6 +332,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
try {
|
try {
|
||||||
PageHelper.startPage(page, pageSize);
|
PageHelper.startPage(page, pageSize);
|
||||||
List<UsersVO> userList = usersMapper.searchByNickname(nickname);
|
List<UsersVO> userList = usersMapper.searchByNickname(nickname);
|
||||||
|
|
||||||
if(currentUserId.isEmpty()){
|
if(currentUserId.isEmpty()){
|
||||||
return userList;
|
return userList;
|
||||||
}
|
}
|
||||||
@ -332,35 +340,62 @@ public class UserServiceImpl implements UserService {
|
|||||||
// 提取模糊查询出的用户 ID 列表
|
// 提取模糊查询出的用户 ID 列表
|
||||||
List<String> vlogerIds = userList.stream().map(UsersVO::getId).collect(Collectors.toList());
|
List<String> vlogerIds = userList.stream().map(UsersVO::getId).collect(Collectors.toList());
|
||||||
log.info("用户列表" + vlogerIds);
|
log.info("用户列表" + vlogerIds);
|
||||||
|
if (vlogerIds.isEmpty()) {
|
||||||
// 获取当前用户关注的
|
log.info("没有查询到用户 ID,跳过关注关系查询");
|
||||||
List<java.util.Map<String, Object>> followedRelations = fansMapper.getFollowedVlogerIds(currentUserId, vlogerIds);
|
return userList;
|
||||||
// 构建 vlogerId 到 is_fan_friend_of_mine 的映射
|
}
|
||||||
java.util.Map<String, Integer> relationMap = followedRelations.stream()
|
//
|
||||||
.collect(Collectors.toMap(
|
|
||||||
map -> (String) map.get("vloger_id"),
|
|
||||||
map -> (Integer) map.get("is_fan_friend_of_mine")
|
|
||||||
));
|
|
||||||
Set<String> followedVlogerIds = relationMap.keySet();
|
|
||||||
|
|
||||||
// 遍历设置每个用户的关注状态及展示状态
|
|
||||||
userList.forEach(usersVO -> {
|
userList.forEach(usersVO -> {
|
||||||
boolean isFollowed = followedVlogerIds.contains(usersVO.getId());
|
|
||||||
usersVO.setIsFollowed(isFollowed);
|
Boolean isFollowed = fansService.queryDoIFollowVloger(currentUserId,usersVO.getId());
|
||||||
if (isFollowed) {
|
if (isFollowed) {
|
||||||
Integer isFanFriendOfMine = relationMap.get(usersVO.getId());
|
String relationship = redis.get(REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + usersVO.getId() + ":" + currentUserId);
|
||||||
if (isFanFriendOfMine != null && isFanFriendOfMine == 1) {
|
if (StringUtils.isNotBlank(relationship) && relationship.equalsIgnoreCase("1")) {
|
||||||
usersVO.setFollowStatus("互相关注"); // 假设 UsersVO 有此方法设置展示状态
|
usersVO.setFollowStatus("互相关注"); // 假设 UsersVO 有此方法设置展示状态
|
||||||
} else {
|
}else {
|
||||||
usersVO.setFollowStatus("已关注");
|
usersVO.setFollowStatus("已关注");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
usersVO.setFollowStatus("未关注");
|
usersVO.setFollowStatus("未关注");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
log.info("用户列表" + userList);
|
|
||||||
return userList;
|
return userList;
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// // 获取当前用户关注的
|
||||||
|
// List<java.util.Map<String, Object>> followedRelations = fansMapper.getFollowedVlogerIds(currentUserId, vlogerIds);
|
||||||
|
// log.info("获取当前用户关注的: {}", followedRelations);
|
||||||
|
// // 构建 vlogerId 到 is_fan_friend_of_mine 的映射
|
||||||
|
// java.util.Map<String, Integer> relationMap = followedRelations.stream()
|
||||||
|
// .filter(Objects::nonNull) // 排除整个 map 为 null 的情况
|
||||||
|
// .collect(Collectors.toMap(
|
||||||
|
// map -> (String) map.get("vloger_id"),
|
||||||
|
// map -> (Integer) map.get("is_fan_friend_of_mine")
|
||||||
|
// ));
|
||||||
|
// log.info("构造的 relationMap: {}", relationMap);
|
||||||
|
// Set<String> followedVlogerIds = relationMap.keySet();
|
||||||
|
//
|
||||||
|
// // 遍历设置每个用户的关注状态及展示状态
|
||||||
|
// userList.forEach(usersVO -> {
|
||||||
|
// boolean isFollowed = followedVlogerIds.contains(usersVO.getId());
|
||||||
|
// usersVO.setIsFollowed(isFollowed);
|
||||||
|
// if (isFollowed) {
|
||||||
|
// Integer isFanFriendOfMine = relationMap.get(usersVO.getId());
|
||||||
|
// if (isFanFriendOfMine != null && isFanFriendOfMine == 1) {
|
||||||
|
// usersVO.setFollowStatus("互相关注"); // 假设 UsersVO 有此方法设置展示状态
|
||||||
|
// } else {
|
||||||
|
// usersVO.setFollowStatus("已关注");
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// usersVO.setFollowStatus("未关注");
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// log.info("用户列表" + userList);
|
||||||
|
// return userList;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("搜索用户时发生异常", e);
|
log.error("搜索用户时发生异常", e);
|
||||||
throw new RuntimeException("搜索用户时发生异常", e);
|
throw new RuntimeException("搜索用户时发生异常", e);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user