Commit a47baaf2 by 段启岩

添加活跃用户和精英用户接口

parent 89bd0b57
......@@ -390,6 +390,28 @@ public class UserApi {
return Response.success(userFollowDTOPage);
}
@Anonymous
@ApiOperation("社区精英")
@GetMapping("/user/creams")
public Response<?> getCreamUsers(@Valid PageForm pageForm, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return Response.fieldError(bindingResult.getFieldError());
}
PageDTO<UserFollowDTO> pageDTO = userService.getCreamUsers(pageForm.getPage(), pageForm.getSize());
return Response.success(pageDTO);
}
@Anonymous
@ApiOperation("活跃用户")
@GetMapping("/user/actives")
public Response<?> getActiveUsers(@Valid PageForm pageForm, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return Response.fieldError(bindingResult.getFieldError());
}
PageDTO<UserFollowDTO> pageDTO = userService.getActivesUsers(pageForm.getPage(), pageForm.getSize());
return Response.success(pageDTO);
}
}
......@@ -28,4 +28,18 @@ public interface UserMapper extends BaseMapper<User> {
* @return
*/
List<UserFollowDTO> listByIdsWithStatistics(@Param("userIds") List<String> userIds);
/**
* 获取活跃用户
* @param page
* @return
*/
IPage<UserFollowDTO> selectActivesUserPage(IPage<UserFollowDTO> page);
/**
* 获取精英用户
* @param objectPage
* @return
*/
IPage<UserFollowDTO> selectCreamUserPage(Page<Object> objectPage);
}
......@@ -15,7 +15,7 @@
us.visited_num `statistics.visited_num`
from `user` u, user_statistics us
where u.user_id = us.user_id
AND US.blog_view_num > 0
AND us.blog_view_num > 0
order by us.blog_view_num desc
</select>
......@@ -40,5 +40,40 @@
</foreach>
order by us.blog_view_num desc
</select>
<select id="selectActivesUserPage" resultType="cn.meteor.beyondclouds.modules.user.dto.UserFollowDTO">
SELECT
u.*,
u.nick_name user_nick,
us.followed_num `statistics.followed_num`,
us.fans_num `statistics.fans_num`,
us.blog_num `statistics.blog_num`,
us.blog_view_num `statistics.blog_view_num`,
us.project_num `statistics.project_num`,
us.post_num `statistics.post_num`,
us.question_num `statistics.question_num`,
us.visited_num `statistics.visited_num`
FROM `user` u, user_statistics us
WHERE u.user_id = us.user_id
ORDER BY blog_num + project_num + post_num * 0.1 + blog_view_num DESC
</select>
<select id="selectCreamUserPage" resultType="cn.meteor.beyondclouds.modules.user.dto.UserFollowDTO">
SELECT
u.*,
u.nick_name user_nick,
us.followed_num `statistics.followed_num`,
us.fans_num `statistics.fans_num`,
us.blog_num `statistics.blog_num`,
us.blog_view_num `statistics.blog_view_num`,
us.project_num `statistics.project_num`,
us.post_num `statistics.post_num`,
us.question_num `statistics.question_num`,
us.visited_num `statistics.visited_num`
FROM `user` u, user_statistics us
WHERE u.user_id = us.user_id
ORDER BY blog_num + project_num + post_num + blog_view_num DESC
</select>
</mapper>
......@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.user.service;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.common.dto.QQAuthResultDTO;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.modules.user.dto.UserFollowDTO;
import cn.meteor.beyondclouds.modules.user.dto.UserInfoDTO;
import cn.meteor.beyondclouds.modules.user.entity.User;
......@@ -114,4 +115,20 @@ public interface IUserService extends IService<User> {
* @return
*/
List<UserFollowDTO> listByIdsWithStatistics(List<String> userIds);
/**
* 获取社区活跃用户
* @param page
* @param size
* @return
*/
PageDTO<UserFollowDTO> getActivesUsers(Integer page, Integer size);
/**
* 获取社区精英
* @param page
* @param size
* @return
*/
PageDTO<UserFollowDTO> getCreamUsers(Integer page, Integer size);
}
......@@ -457,4 +457,48 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
public List<UserFollowDTO> listByIdsWithStatistics(List<String> userIds) {
return userMapper.listByIdsWithStatistics(userIds);
}
@Override
public PageDTO<UserFollowDTO> getActivesUsers(Integer page, Integer size) {
IPage<UserFollowDTO> userFollowDTOPage = userMapper.selectActivesUserPage(new Page<>(page, size));
List<UserFollowDTO> userFollowDTOList = userFollowDTOPage.getRecords();
if (SubjectUtils.isAuthenticated()) {
Set<String> followedUserIds = userFollowService.getCurrentUserFollowedUserIds();
userFollowDTOList.stream()
.forEach(userFollowDTO -> {
userFollowDTO.setFollowedUser(followedUserIds.contains(userFollowDTO.getUserId()));
});
} else {
userFollowDTOList.stream()
.forEach(userFollowDTO -> {
userFollowDTO.setFollowedUser(false);
});
}
PageDTO<UserFollowDTO> pageDTO = new PageDTO<>();
PageUtils.copyMeta(userFollowDTOPage, pageDTO);
pageDTO.setDataList(userFollowDTOList);
return pageDTO;
}
@Override
public PageDTO<UserFollowDTO> getCreamUsers(Integer page, Integer size) {
IPage<UserFollowDTO> userFollowDTOPage = userMapper.selectCreamUserPage(new Page<>(page, size));
List<UserFollowDTO> userFollowDTOList = userFollowDTOPage.getRecords();
if (SubjectUtils.isAuthenticated()) {
Set<String> followedUserIds = userFollowService.getCurrentUserFollowedUserIds();
userFollowDTOList.stream()
.forEach(userFollowDTO -> {
userFollowDTO.setFollowedUser(followedUserIds.contains(userFollowDTO.getUserId()));
});
} else {
userFollowDTOList.stream()
.forEach(userFollowDTO -> {
userFollowDTO.setFollowedUser(false);
});
}
PageDTO<UserFollowDTO> pageDTO = new PageDTO<>();
PageUtils.copyMeta(userFollowDTOPage, pageDTO);
pageDTO.setDataList(userFollowDTOList);
return pageDTO;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment