Commit 2d6e8e5f by 段启岩

热门答主功能

parent 6293bf70
......@@ -391,6 +391,20 @@ public class UserApi {
}
@Anonymous
@ApiOperation("热门答主")
@GetMapping("/user/hotRepliers")
public Response<?> hotRepliers(@Valid PageForm pageForm, BindingResult bindingResult){
if (bindingResult.hasErrors()) {
return Response.fieldError(bindingResult.getFieldError());
}
PageDTO<UserFollowDTO> userFollowDTOPage = userService.getHotReplies(pageForm.getPage(), pageForm.getSize());
return Response.success(userFollowDTOPage);
}
@Anonymous
@ApiOperation("社区精英")
@GetMapping("/user/elites")
public Response<?> getEliteUsers(@Valid PageForm pageForm, BindingResult bindingResult) {
......
......@@ -42,4 +42,12 @@ public interface UserMapper extends BaseMapper<User> {
* @return
*/
IPage<UserFollowDTO> selectEliteUserPage(Page<Object> objectPage);
/**
* 热门答主
* @param objectPage
* @return
*/
IPage<UserFollowDTO> selectHotReplierPage(Page<Object> objectPage);
}
......@@ -12,6 +12,8 @@
us.project_num `statistics.project_num`,
us.post_num `statistics.post_num`,
us.question_num `statistics.question_num`,
us.question_reply_num `statistics.question_reply_num`,
us.reply_accepted_num `statistics.reply_accepted_num`,
us.visited_num `statistics.visited_num`
from `user` u, user_statistics us
where u.user_id = us.user_id
......@@ -30,6 +32,8 @@
us.project_num `statistics.project_num`,
us.post_num `statistics.post_num`,
us.question_num `statistics.question_num`,
us.question_reply_num `statistics.question_reply_num`,
us.reply_accepted_num `statistics.reply_accepted_num`,
us.visited_num `statistics.visited_num`
from `user` u, user_statistics us
where u.user_id = us.user_id
......@@ -52,6 +56,8 @@
us.project_num `statistics.project_num`,
us.post_num `statistics.post_num`,
us.question_num `statistics.question_num`,
us.question_reply_num `statistics.question_reply_num`,
us.reply_accepted_num `statistics.reply_accepted_num`,
us.visited_num `statistics.visited_num`
FROM `user` u, user_statistics us
WHERE u.user_id = us.user_id
......@@ -70,10 +76,32 @@
us.project_num `statistics.project_num`,
us.post_num `statistics.post_num`,
us.question_num `statistics.question_num`,
us.question_reply_num `statistics.question_reply_num`,
us.reply_accepted_num `statistics.reply_accepted_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>
<select id="selectHotReplierPage" 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.question_reply_num `statistics.question_reply_num`,
us.reply_accepted_num `statistics.reply_accepted_num`,
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
order by us.reply_accepted_num desc
</select>
</mapper>
......@@ -131,4 +131,12 @@ public interface IUserService extends IService<User> {
* @return
*/
PageDTO<UserFollowDTO> getEliteUsers(Integer page, Integer size);
/**
* 获取热门答主
* @param page
* @param size
* @return
*/
PageDTO<UserFollowDTO> getHotReplies(Integer page, Integer size);
}
......@@ -506,4 +506,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
pageDTO.setDataList(userFollowDTOList);
return pageDTO;
}
@Override
public PageDTO<UserFollowDTO> getHotReplies(Integer pageNumber, Integer pageSize) {
IPage<UserFollowDTO> userPage = userMapper.selectHotReplierPage(new Page<>(pageNumber, pageSize));
List<UserFollowDTO> userFollowDTOList = userPage.getRecords();
if (!CollectionUtils.isEmpty(userFollowDTOList)) {
if (SubjectUtils.isAuthenticated()) {
Set<String> followUserIds = userFollowService.getCurrentUserFollowedUserIds();
userFollowDTOList.forEach(userFollowDTO -> {
userFollowDTO.setFollowedUser(followUserIds.contains(userFollowDTO.getUserId()));
});
} else {
userFollowDTOList.forEach(userFollowDTO -> {
userFollowDTO.setFollowedUser(false);
});
}
}
PageDTO<UserFollowDTO> userFollowDTOPage = new PageDTO<>();
PageUtils.copyMeta(userPage, userFollowDTOPage);
userFollowDTOPage.setDataList(userFollowDTOList);
return userFollowDTOPage;
}
}
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