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