Commit 3f0705f4 by 段启岩

获取我的统计信息

parent 2f79e5c6
......@@ -69,14 +69,22 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
private IUserService userService;
@Autowired
public BlogServiceImpl(IBlogTagService blogTagService, ITopicReferenceService topicReferenceService, IBlogExtService blogExtService, IBlogCategoryService blogCategoryService, BlogMapper blogMapper, ITagService tagService, ITopicService topicService, IUserService userService) {
public BlogServiceImpl(IBlogTagService blogTagService, ITopicReferenceService topicReferenceService, IBlogExtService blogExtService, IBlogCategoryService blogCategoryService, BlogMapper blogMapper, ITagService tagService) {
this.blogTagService = blogTagService;
this.topicReferenceService = topicReferenceService;
this.blogExtService = blogExtService;
this.blogCategoryService = blogCategoryService;
this.blogMapper = blogMapper;
this.tagService = tagService;
}
@Autowired
public void setTopicService(ITopicService topicService) {
this.topicService = topicService;
}
@Autowired
public void setUserService(IUserService userService) {
this.userService = userService;
}
......
......@@ -15,6 +15,7 @@ import cn.meteor.beyondclouds.modules.user.service.IUserBlacklistService;
import cn.meteor.beyondclouds.modules.user.service.IUserFollowService;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
import cn.meteor.beyondclouds.modules.user.vo.UserInfoVO;
import cn.meteor.beyondclouds.modules.user.vo.UserStatisticsVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -310,6 +311,17 @@ public class UserApi {
return Response.success(followersPageVo);
}
@ApiOperation(("获取我的统计信息"))
@GetMapping("/my/statistics")
public Response<UserStatisticsVO> myStatistics(@CurrentSubject Subject subject){
// 获取用户信息
UserStatisticsVO userStatisticsVO = userService.getStatistics(String.valueOf(subject.getId()));
// 返回结果
return Response.success(userStatisticsVO);
}
}
......@@ -3,6 +3,7 @@ package cn.meteor.beyondclouds.modules.user.service;
import cn.meteor.beyondclouds.common.bean.QQAuthResult;
import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import cn.meteor.beyondclouds.modules.user.vo.UserStatisticsVO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -77,4 +78,11 @@ public interface IUserService extends IService<User> {
* @param userId
*/
void bindMobile(String mobile, String verifyCode, String userId) throws UserServiceException;
/**
* 获得统计信息
* @param userId
* @return
*/
UserStatisticsVO getStatistics(String userId);
}
......@@ -3,11 +3,23 @@ package cn.meteor.beyondclouds.modules.user.service.impl;
import cn.meteor.beyondclouds.common.bean.QQAuthResult;
import cn.meteor.beyondclouds.common.helper.IRedisHelper;
import cn.meteor.beyondclouds.core.redis.RedisKey;
import cn.meteor.beyondclouds.modules.blog.entity.Blog;
import cn.meteor.beyondclouds.modules.blog.service.IBlogService;
import cn.meteor.beyondclouds.modules.mail.dto.EmailDTO;
import cn.meteor.beyondclouds.modules.mail.service.IMailService;
import cn.meteor.beyondclouds.modules.mail.util.EmailUtils;
import cn.meteor.beyondclouds.modules.post.entity.Post;
import cn.meteor.beyondclouds.modules.post.service.IPostService;
import cn.meteor.beyondclouds.modules.project.entity.Project;
import cn.meteor.beyondclouds.modules.project.service.IProjectService;
import cn.meteor.beyondclouds.modules.question.entity.Question;
import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
import cn.meteor.beyondclouds.modules.tag.entity.Tag;
import cn.meteor.beyondclouds.modules.tag.service.ITagService;
import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.entity.UserAuthApp;
import cn.meteor.beyondclouds.modules.user.entity.UserAuthLocal;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
import cn.meteor.beyondclouds.modules.user.enums.AccountType;
import cn.meteor.beyondclouds.modules.user.enums.AuthStatus;
import cn.meteor.beyondclouds.modules.user.enums.ThirdPartyAppType;
......@@ -16,8 +28,9 @@ import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import cn.meteor.beyondclouds.modules.user.mapper.IUserMapper;
import cn.meteor.beyondclouds.modules.user.service.IUserAuthAppService;
import cn.meteor.beyondclouds.modules.user.service.IUserAuthLocalService;
import cn.meteor.beyondclouds.modules.user.service.IUserFollowService;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
import cn.meteor.beyondclouds.modules.mail.util.EmailUtils;
import cn.meteor.beyondclouds.modules.user.vo.UserStatisticsVO;
import cn.meteor.beyondclouds.util.Md5Utils;
import cn.meteor.beyondclouds.util.UUIDUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -43,6 +56,12 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
private IRedisHelper redisHelper;
private IUserAuthAppService userAuthAppService;
private IMailService mailService;
private IUserFollowService userFollowService;
private IPostService postService;
private IQuestionService questionService;
private ITagService tagService;
private IProjectService projectService;
private IBlogService blogService;
@Autowired
public UserServiceImpl(IUserAuthLocalService userAuthLocalService, IRedisHelper redisHelper, IUserAuthAppService userAuthAppService, IMailService mailService) {
......@@ -52,6 +71,36 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
this.mailService = mailService;
}
@Autowired
public void setUserFollowService(IUserFollowService userFollowService) {
this.userFollowService = userFollowService;
}
@Autowired
public void setPostService(IPostService postService) {
this.postService = postService;
}
@Autowired
public void setQuestionService(IQuestionService questionService) {
this.questionService = questionService;
}
@Autowired
public void setTagService(ITagService tagService) {
this.tagService = tagService;
}
@Autowired
public void setProjectService(IProjectService projectService) {
this.projectService = projectService;
}
@Autowired
public void setBlogService(IBlogService blogService) {
this.blogService = blogService;
}
@Override
public void registerByMobile(String mobile, String password, String verifyCode) throws UserServiceException {
//1.检查验证码是否正确
......@@ -309,4 +358,51 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
}
return null;
}
@Override
public UserStatisticsVO getStatistics(String userId) {
UserStatisticsVO userStatisticsVO=new UserStatisticsVO();
//查询关注量
QueryWrapper<UserFollow> queryAttentionsNumber = new QueryWrapper<>();
queryAttentionsNumber.eq("follower_id", userId);
queryAttentionsNumber.eq("follow_status", 0);
userStatisticsVO.setAttentionsNumber(userFollowService.count(queryAttentionsNumber));
//查询粉丝量
QueryWrapper<UserFollow> queryFollowersNumber = new QueryWrapper<>();
queryFollowersNumber.eq("followed_id", userId);
queryFollowersNumber.eq("follow_status", 0);
userStatisticsVO.setFollowersNumber(userFollowService.count(queryFollowersNumber));
//查询项目量
QueryWrapper<Project> queryProjectNumber = new QueryWrapper<>();
queryProjectNumber.eq("user_id", userId);
userStatisticsVO.setProjectNumber(projectService.count(queryProjectNumber));
//查询博客量
QueryWrapper<Blog> queryBlogNumber = new QueryWrapper<>();
queryBlogNumber.eq("user_id", userId);
userStatisticsVO.setBlogNumber(blogService.count(queryBlogNumber));
//查询问答量
QueryWrapper<Question> queryQuestionNumber = new QueryWrapper<>();
queryQuestionNumber.eq("user_id", userId);
userStatisticsVO.setQuestionNumber(questionService.count(queryQuestionNumber));
//查询动态量
QueryWrapper<Post> queryPostNumber = new QueryWrapper<>();
queryPostNumber.eq("user_id", userId);
userStatisticsVO.setPostNumber(postService.count(queryPostNumber));
//查询标签量
QueryWrapper<Tag> queryTagNumber = new QueryWrapper<>();
queryTagNumber.eq("user_id", userId);
userStatisticsVO.setTagNumber(tagService.count(queryTagNumber));
return userStatisticsVO;
}
}
package cn.meteor.beyondclouds.modules.user.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @program: beyond-clouds
* @description: 用户统计信息
* @author: Mr.Zhang
* @create: 2020-02-08 09:21
**/
@Data
public class UserStatisticsVO {
@ApiModelProperty(value = "用户粉丝量")
private Integer followersNumber;
@ApiModelProperty(value = "用户关注量")
private Integer attentionsNumber;
@ApiModelProperty(value = "用户项目量")
private Integer projectNumber;
@ApiModelProperty(value = "用户博客量")
private Integer blogNumber;
@ApiModelProperty(value = "用户回答量")
private Integer questionNumber;
@ApiModelProperty(value = "用户动态量")
private Integer postNumber;
@ApiModelProperty(value = "用户创建的标签量")
private Integer tagNumber;
}
\ No newline at end of file
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