Commit 6293bf70 by 段启岩

用户统计字段新增字段

parent f2b7a690
...@@ -4,6 +4,7 @@ import cn.meteor.beyondclouds.modules.blog.entity.Blog; ...@@ -4,6 +4,7 @@ import cn.meteor.beyondclouds.modules.blog.entity.Blog;
import cn.meteor.beyondclouds.modules.post.entity.Post; import cn.meteor.beyondclouds.modules.post.entity.Post;
import cn.meteor.beyondclouds.modules.project.entity.Project; import cn.meteor.beyondclouds.modules.project.entity.Project;
import cn.meteor.beyondclouds.modules.question.entity.Question; import cn.meteor.beyondclouds.modules.question.entity.Question;
import cn.meteor.beyondclouds.modules.question.entity.QuestionReply;
import cn.meteor.beyondclouds.modules.user.entity.User; import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow; import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
import cn.meteor.beyondclouds.modules.user.entity.UserStatistics; import cn.meteor.beyondclouds.modules.user.entity.UserStatistics;
...@@ -56,6 +57,16 @@ public enum DataItemType { ...@@ -56,6 +57,16 @@ public enum DataItemType {
QUESTION(Question.class), QUESTION(Question.class),
/** /**
* 问题回答
*/
QUESTION_REPLY(QuestionReply.class),
/**
* 问题回答 被采纳
*/
QUESTION_REPLY_ACCEPT(QuestionReply.class),
/**
* 用户关注 * 用户关注
*/ */
USER_FOLLOW(UserFollow .class); USER_FOLLOW(UserFollow .class);
......
package cn.meteor.beyondclouds.modules.question.service.impl; package cn.meteor.beyondclouds.modules.question.service.impl;
import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.modules.question.entity.Question; import cn.meteor.beyondclouds.modules.question.entity.Question;
import cn.meteor.beyondclouds.modules.question.entity.QuestionReply; import cn.meteor.beyondclouds.modules.question.entity.QuestionReply;
import cn.meteor.beyondclouds.modules.question.enums.QuestionErrorCode; import cn.meteor.beyondclouds.modules.question.enums.QuestionErrorCode;
...@@ -10,6 +12,7 @@ import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyCommentServ ...@@ -10,6 +12,7 @@ import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyCommentServ
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService; import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionService; import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
import cn.meteor.beyondclouds.modules.question.util.QuestionUtils; import cn.meteor.beyondclouds.modules.question.util.QuestionUtils;
import cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService;
import cn.meteor.beyondclouds.modules.user.entity.User; import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.service.IUserService; import cn.meteor.beyondclouds.modules.user.service.IUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -47,6 +50,8 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q ...@@ -47,6 +50,8 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
private IUserService userService; private IUserService userService;
private IMessageQueueService messageQueueService;
@Autowired @Autowired
public void setQuestionService(IQuestionService questionService) { public void setQuestionService(IQuestionService questionService) {
this.questionService = questionService; this.questionService = questionService;
...@@ -58,6 +63,11 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q ...@@ -58,6 +63,11 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
} }
@Autowired @Autowired
public void setMessageQueueService(IMessageQueueService messageQueueService) {
this.messageQueueService = messageQueueService;
}
@Autowired
public void setUserService(IUserService userService) { public void setUserService(IUserService userService) {
this.userService = userService; this.userService = userService;
} }
...@@ -95,6 +105,8 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q ...@@ -95,6 +105,8 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
questionUpdateWrapper.set("reply_number",question.getReplyNumber() + 1) questionUpdateWrapper.set("reply_number",question.getReplyNumber() + 1)
.eq("question_id",questionId); .eq("question_id",questionId);
questionService.update(questionUpdateWrapper); questionService.update(questionUpdateWrapper);
messageQueueService.sendDataItemChangeMessage(DataItemChangeMessage.addMessage(DataItemType.QUESTION_REPLY, questionReply.getReplyId(), userId));
} }
@Override @Override
...@@ -137,6 +149,8 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q ...@@ -137,6 +149,8 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
.eq("question_id", questionId); .eq("question_id", questionId);
questionService.update(questionUpdateWrapper); questionService.update(questionUpdateWrapper);
} }
messageQueueService.sendDataItemChangeMessage(DataItemChangeMessage.updateMessage(DataItemType.QUESTION_REPLY_ACCEPT, questionReply.getReplyId(), userId));
} }
@Override @Override
......
...@@ -52,6 +52,12 @@ public class UserStatistics implements Serializable { ...@@ -52,6 +52,12 @@ public class UserStatistics implements Serializable {
@ApiModelProperty(value = "问答数量") @ApiModelProperty(value = "问答数量")
private Integer questionNum; private Integer questionNum;
@ApiModelProperty(value = "回答数量")
private Integer questionReplyNum;
@ApiModelProperty(value = "回答被采纳数量")
private Integer replyAcceptedNum;
@ApiModelProperty(value = "用户被访问的次数") @ApiModelProperty(value = "用户被访问的次数")
private Integer visitedNum; private Integer visitedNum;
......
...@@ -10,6 +10,8 @@ import cn.meteor.beyondclouds.modules.post.service.IPostService; ...@@ -10,6 +10,8 @@ import cn.meteor.beyondclouds.modules.post.service.IPostService;
import cn.meteor.beyondclouds.modules.project.entity.Project; import cn.meteor.beyondclouds.modules.project.entity.Project;
import cn.meteor.beyondclouds.modules.project.service.IProjectService; import cn.meteor.beyondclouds.modules.project.service.IProjectService;
import cn.meteor.beyondclouds.modules.question.entity.Question; import cn.meteor.beyondclouds.modules.question.entity.Question;
import cn.meteor.beyondclouds.modules.question.entity.QuestionReply;
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionService; import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
import cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService; import cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow; import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
...@@ -45,6 +47,8 @@ public class UserStatisticsListener implements DataItemChangeListener { ...@@ -45,6 +47,8 @@ public class UserStatisticsListener implements DataItemChangeListener {
private IQuestionService questionService; private IQuestionService questionService;
private IQuestionReplyService questionReplyService;
@Autowired @Autowired
public void setQuestionService(IQuestionService questionService) { public void setQuestionService(IQuestionService questionService) {
this.questionService = questionService; this.questionService = questionService;
...@@ -57,6 +61,11 @@ public class UserStatisticsListener implements DataItemChangeListener { ...@@ -57,6 +61,11 @@ public class UserStatisticsListener implements DataItemChangeListener {
} }
@Autowired @Autowired
public void setQuestionReplyService(IQuestionReplyService questionReplyService) {
this.questionReplyService = questionReplyService;
}
@Autowired
public void setBlogService(IBlogService blogService) { public void setBlogService(IBlogService blogService) {
this.blogService = blogService; this.blogService = blogService;
} }
...@@ -86,13 +95,23 @@ public class UserStatisticsListener implements DataItemChangeListener { ...@@ -86,13 +95,23 @@ public class UserStatisticsListener implements DataItemChangeListener {
onDataChange(dataItemChangeMessage); onDataChange(dataItemChangeMessage);
} }
/**
* 博客浏览量改变或回答被采纳
* @param dataItemChangeMessage
*/
@Override @Override
public void onDataItemUpdate(DataItemChangeMessage dataItemChangeMessage) { public void onDataItemUpdate(DataItemChangeMessage dataItemChangeMessage) {
if (dataItemChangeMessage.getItemType().equals(DataItemType.BLOG_VIEW_NUM)) { if (dataItemChangeMessage.getItemType().equals(DataItemType.BLOG_VIEW_NUM)) {
onDataChange(dataItemChangeMessage); onDataChange(dataItemChangeMessage);
} }
if (dataItemChangeMessage.getItemType().equals(DataItemType.QUESTION_REPLY_ACCEPT)) {
onDataChange(dataItemChangeMessage);
}
} }
/** /**
* 汇总ADD和delete消息 * 汇总ADD和delete消息
* @param dataItemChangeMessage * @param dataItemChangeMessage
...@@ -139,7 +158,7 @@ public class UserStatisticsListener implements DataItemChangeListener { ...@@ -139,7 +158,7 @@ public class UserStatisticsListener implements DataItemChangeListener {
if (itemType.equals(DataItemType.BLOG_VIEW_NUM)) { if (itemType.equals(DataItemType.BLOG_VIEW_NUM)) {
// 更新博客浏览量 // 更新博客浏览量
updateUserStatisticValue((String) operatorId, "blog_view_num", blogService.allBlogViewCount(operatorId)); updateUserStatisticValue(operatorId, "blog_view_num", blogService.allBlogViewCount(operatorId));
} }
if (itemType.equals(DataItemType.PROJECT)) { if (itemType.equals(DataItemType.PROJECT)) {
...@@ -163,7 +182,24 @@ public class UserStatisticsListener implements DataItemChangeListener { ...@@ -163,7 +182,24 @@ public class UserStatisticsListener implements DataItemChangeListener {
// 更新问答发布量 // 更新问答发布量
QueryWrapper<Question> questionQueryWrapper = new QueryWrapper<>(); QueryWrapper<Question> questionQueryWrapper = new QueryWrapper<>();
questionQueryWrapper.eq("user_id", operatorId); questionQueryWrapper.eq("user_id", operatorId);
updateUserStatisticValue((String) itemId, "question_num", questionService.count(questionQueryWrapper)); updateUserStatisticValue(operatorId, "question_num", questionService.count(questionQueryWrapper));
}
if (itemType.equals(DataItemType.QUESTION_REPLY)) {
// 更新问题回答量
QueryWrapper<QuestionReply> questionReplyQueryWrapper = new QueryWrapper<>();
questionReplyQueryWrapper.eq("user_id", operatorId);
updateUserStatisticValue(operatorId, "question_reply_num", questionReplyService.count(questionReplyQueryWrapper));
}
if (itemType.equals(DataItemType.QUESTION_REPLY_ACCEPT)) {
// 更新答案被采纳量
QuestionReply questionReply = questionReplyService.getById(itemId);
String userId = questionReply.getUserId();
QueryWrapper<QuestionReply> questionReplyQueryWrapper = new QueryWrapper<>();
questionReplyQueryWrapper.eq("user_id", userId);
questionReplyQueryWrapper.eq("reply_status", 1);
updateUserStatisticValue(userId, "reply_accepted_num", questionReplyService.count(questionReplyQueryWrapper));
} }
// 修改完用户统计信息后发送用户统计信息修改的通知 // 修改完用户统计信息后发送用户统计信息修改的通知
......
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