Commit 7bd0cc7d by 段启岩

Merge remote-tracking branch 'origin/fix-issue#4'

# Conflicts:
#	src/main/resources/application.yml
parents 5716dde4 831e522b
......@@ -56,14 +56,14 @@ public class QuestionReplyApi {
* 采纳回复
* @param questionId 问题ID
* @param replyId 回复ID
* @param userId 发布问题用户ID
* @param subject 访问者信息
* @return default
*/
@ApiOperation("采纳回复")
@PutMapping("/question/reply/{replyId}/adoption")
public Response adoptReply(String questionId, @PathVariable("replyId") String replyId, String userId) {
public Response adoptReply(String questionId, @PathVariable("replyId") String replyId, @CurrentSubject Subject subject) {
try {
questionReplyService.adoptReply(questionId, replyId, userId);
questionReplyService.adoptReply(questionId, replyId, (String) subject.getId());
return Response.success();
} catch (QuestionReplyServiceException e) {
e.printStackTrace();
......
......@@ -38,6 +38,9 @@ public class Question implements Serializable {
@ApiModelProperty(value = "用户ID")
private String userId;
@ApiModelProperty(value = "用户昵称")
private String userNick;
@ApiModelProperty(value = "问题类别ID")
private Integer categoryId;
......@@ -50,6 +53,12 @@ public class Question implements Serializable {
@ApiModelProperty(value = "问题摘要")
private String questionAbstract;
@ApiModelProperty(value = "问题回复数")
private Integer replyNumber;
@ApiModelProperty(value = "问题是否已被解决")
private Boolean solved;
private Date createTime;
private Date updateTime;
......
......@@ -5,10 +5,13 @@
<resultMap id="blogWithTagsResultMap" type="cn.meteor.beyondclouds.modules.question.entity.Question">
<id property="questionId" column="question_id"/>
<result property="userId" column="user_id"/>
<result property="userNick" column="user_nick"/>
<result property="categoryId" column="category_id"/>
<result property="category" column="category"/>
<result property="questionTitle" column="question_title"/>
<result property="questionAbstract" column="question_abstract"/>
<result property="replyNumber" column="reply_number"/>
<result property="solved" column="solved"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<collection property="tags" ofType="cn.meteor.beyondclouds.modules.tag.entity.Tag">
......
......@@ -44,7 +44,7 @@ public interface IQuestionReplyService extends IService<QuestionReply> {
IPage<QuestionReply> getReplies(Integer pageNumber, Integer pageSize, String questionId) throws QuestionReplyServiceException;
/**
* 删除问题
* 删除问题回复
* @param replyId 回复ID
* @param userId 用户ID
* @throws QuestionReplyServiceException 问题回复业务异常
......
......@@ -83,6 +83,12 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
//默认该回复未被采纳
questionReply.setReplyStatus(0);
save(questionReply);
//更新问题的回复数量
UpdateWrapper<Question> questionUpdateWrapper = new UpdateWrapper<>();
questionUpdateWrapper.set("reply_number",question.getReplyNumber()+1)
.eq("question_id",questionId);
questionService.update(questionUpdateWrapper);
}
@Override
......@@ -117,6 +123,14 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
UpdateWrapper<QuestionReply> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("reply_status",ADOPTED_REPLY_STATUS).eq("reply_id",replyId);
update(updateWrapper);
//5.更新问题状态
if (!question.getSolved()) {
UpdateWrapper<Question> questionUpdateWrapper = new UpdateWrapper<>();
questionUpdateWrapper.set("solved", true)
.eq("question_id",questionId);
questionService.update(questionUpdateWrapper);
}
}
@Override
......@@ -143,8 +157,8 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
}
//2.判断用户是否有权限删除该回复
if (!questionReply.getUserId().equals(userId)) {
Question question = questionService.getById(questionReply.getQuestionId());
if (!questionReply.getUserId().equals(userId)) {
if (!question.getUserId().equals(userId)) {
throw new QuestionReplyServiceException(QuestionReplyErrorCode.NO_DELETE_PRIVILEGES);
}
......@@ -153,6 +167,12 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
//3.删除该回复及评论
questionReplyCommentService.remove(QuestionUtils.getWrapper("reply_id",replyId));
removeById(replyId);
//4.更新问题的回复数量
UpdateWrapper<Question> questionUpdateWrapper = new UpdateWrapper<>();
questionUpdateWrapper.set("reply_number",question.getReplyNumber()-1)
.eq("question_id",question.getQuestionId());
questionService.update(questionUpdateWrapper);
}
@Override
......
......@@ -14,6 +14,7 @@ import cn.meteor.beyondclouds.modules.topic.entity.Topic;
import cn.meteor.beyondclouds.modules.topic.entity.TopicReference;
import cn.meteor.beyondclouds.modules.topic.service.ITopicReferenceService;
import cn.meteor.beyondclouds.modules.topic.service.ITopicService;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -64,13 +65,16 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
private QuestionMapper questionMapper;
private IUserService userService;
@Autowired
public QuestionServiceImpl(IQuestionExtService questionExtService, IQuestionCategoryService questionCategoryService, ITopicService topicService, ITopicReferenceService topicReferenceService, QuestionMapper questionMapper) {
public QuestionServiceImpl(IQuestionExtService questionExtService, IQuestionCategoryService questionCategoryService, ITopicService topicService, ITopicReferenceService topicReferenceService, QuestionMapper questionMapper, IUserService userService) {
this.questionExtService = questionExtService;
this.questionCategoryService = questionCategoryService;
this.topicService = topicService;
this.topicReferenceService = topicReferenceService;
this.questionMapper = questionMapper;
this.userService = userService;
}
@Autowired
......@@ -109,6 +113,9 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
//3.保存问题信息
question.setCategory(questionCategory.getCategory());
question.setReplyNumber(0);
question.setSolved(false);
question.setUserNick(userService.getById(question.getUserId()).getNickName());
save(question);
//4.保存问题扩展信息
......
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