在线聊天功能-好友 联系人查询页面 参考代码

API

/**

* 根据用户id查询全部Users列表

*

* @param userId

* @return

*/

List queryAllUsersList(Long userId);

/**

* 根据用户id查询Users列表(分页查询)

*

* @param userId

* @return

*/

PageInfo queryUsersList(Long userId, Integer page, Integer pageSize);




==============================================================





API IMPL



@Override

public List queryAllUsersList(Long userId) {

Query query = Query.query(Criteria.where("userId").is(userId));

return this.mongoTemplate.find(query, Users.class);

}

@Override

public PageInfo queryUsersList(Long userId, Integer page, Integer pageSize) {

PageRequest pageRequest = PageRequest.of(page - 1, pageSize, Sort.by(Sort.Order.desc("created")));

Query query = Query.query(Criteria.where("userId").is(userId)).with(pageRequest);

List usersList = this.mongoTemplate.find(query, Users.class);

PageInfo pageInfo = new PageInfo<>();

pageInfo.setPageNum(page);

pageInfo.setPageSize(pageSize);

pageInfo.setRecords(usersList);

return pageInfo;

}




================================================================


APP VO


import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

@Data

@NoArgsConstructor

@AllArgsConstructor

public class UsersVo {

private Long id;

private String userId;

private String avatar;

private String nickname;

private String gender;

private Integer age;

private String city;

}





===========================================================




controller


/**

* 查询联系人列表

*

* @param page

* @param pageSize

* @param keyword

* @return

*/

@GetMapping("contacts")

public ResponseEntity queryContactsList(@RequestParam(value = "page", defaultValue = "1") Integer page,

@RequestParam(value = "pagesize", defaultValue = "10") Integer pageSize,

@RequestParam(value = "keyword", required = false) String keyword) {

PageResult pageResult = this.imService.queryContactsList(page, pageSize, keyword);

return ResponseEntity.ok(pageResult);

}



============================================================




service


public PageResult queryContactsList(Integer page, Integer pageSize, String keyword) {

PageResult pageResult = new PageResult();

pageResult.setPage(page);

pageResult.setPagesize(pageSize);

User user = UserThreadLocal.get();

List usersList;

if (StringUtils.isNotEmpty(keyword)) {

//关键不为空,查询所有的好友,在后面进行关键字过滤

usersList = this.usersApi.queryAllUsersList(user.getId());

} else {

//关键字为空,进行分页查询

PageInfo usersPageInfo = this.usersApi.queryUsersList(user.getId(), page, pageSize);

usersList = usersPageInfo.getRecords();

}

if (CollUtil.isEmpty(usersList)) {

return pageResult;

}

List userIds = CollUtil.getFieldValues(usersList, "friendId");

QueryWrapper queryWrapper = new QueryWrapper<>();

queryWrapper.in("user_id", userIds);

if (StringUtils.isNotEmpty(keyword)) {

queryWrapper.like("nick_name", keyword);

}

List userInfoList = this.userInfoService.queryUserInfoList(queryWrapper);

List contactsList = new ArrayList<>();

//填充用户信息

for (UserInfo userInfo : userInfoList) {

UsersVo usersVo = new UsersVo();

usersVo.setId(userInfo.getUserId());

usersVo.setAge(userInfo.getAge());

usersVo.setAvatar(userInfo.getLogo());

usersVo.setGender(userInfo.getSex().name().toLowerCase());

usersVo.setNickname(userInfo.getNickName());

//环信用户账号

usersVo.setUserId("HX_" + String.valueOf(userInfo.getUserId()));

usersVo.setCity(StringUtils.substringBefore(userInfo.getCity(), "-"));

contactsList.add(usersVo);

}

pageResult.setItems(contactsList);

return pageResult;

}

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章