Commit 9c41b925 by 段启岩

问题回复和评论列表添加头像和昵称

parent 1c3d1ee6
......@@ -11,6 +11,7 @@ import cn.meteor.beyondclouds.modules.question.entity.Question;
import cn.meteor.beyondclouds.modules.question.exception.QuestionServiceException;
import cn.meteor.beyondclouds.modules.question.exception.QuestionTagServiceException;
import cn.meteor.beyondclouds.modules.question.form.QuestionForm;
import cn.meteor.beyondclouds.modules.question.form.QuestionUpdateForm;
import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionTagService;
import cn.meteor.beyondclouds.modules.question.util.QuestionUtils;
......@@ -112,7 +113,7 @@ public class QuestionApi {
*/
@ApiOperation("修改问题")
@PutMapping("/question/{questionId}")
public Response modifyQuestion(@PathVariable("questionId") String questionId, @RequestBody @Valid QuestionForm questionForm, BindingResult result, @CurrentSubject Subject subject){
public Response modifyQuestion(@PathVariable("questionId") String questionId, @RequestBody @Valid QuestionUpdateForm questionForm, BindingResult result, @CurrentSubject Subject subject){
if (result.hasErrors()) {
return Response.fieldError(result.getFieldError());
}
......
package cn.meteor.beyondclouds.modules.question.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 问题回复表
......@@ -32,6 +33,12 @@ public class QuestionReply implements Serializable {
@ApiModelProperty(value = "用户ID")
private String userId;
@ApiModelProperty(value = "用户昵称")
private String userNick;
@ApiModelProperty(value = "用户头像")
private String userAvatar;
@ApiModelProperty(value = "问题ID")
private String questionId;
......
package cn.meteor.beyondclouds.modules.question.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 问题回复评论表
......@@ -32,6 +33,13 @@ public class QuestionReplyComment implements Serializable {
@ApiModelProperty(value = "用户ID")
private String userId;
@ApiModelProperty(value = "用户昵称")
private String userNick;
@ApiModelProperty(value = "用户头像")
private String userAvatar;
@ApiModelProperty(value = "回复ID")
private String replyId;
......
......@@ -24,6 +24,7 @@ public class QuestionForm {
private Integer categoryId;
@ApiModelProperty("标题")
@NotNull(message = "问题标题不能为空")
@NotEmpty(message = "问题标题不能为空")
@Size(max = 256, message = "问题标题太长")
private String questionTitle;
......
package cn.meteor.beyondclouds.modules.question.form;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author 胡学良
* @since 2020/1/31
*/
@ApiModel(value = "QuestionForm", description = "问题表单")
@Data
public class QuestionUpdateForm {
private static final long serialVersionUID=1L;
@ApiModelProperty("类别ID")
@NotNull(message = "问题类别ID不能为空")
private Integer categoryId;
@ApiModelProperty("标题")
@NotEmpty(message = "问题标题不能为空")
@Size(max = 256, message = "问题标题太长")
private String questionTitle;
@ApiModelProperty("摘要")
@Size(max = 256, message = "问题摘要太长")
private String questionAbstract;
@ApiModelProperty("标签")
@Size(max = 12, message = "问题标签个数不能超过5个")
private List<String> tagIds;
@ApiModelProperty("详情")
private String questionDetail;
@ApiModelProperty("话题ID")
private List<String> topicIds;
}
......@@ -11,6 +11,8 @@ import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyCommentServ
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
import cn.meteor.beyondclouds.modules.question.util.QuestionUtils;
import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -20,8 +22,6 @@ import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import java.nio.file.Watchable;
/**
* <p>
* 问题回复评论表 服务实现类
......@@ -37,12 +37,19 @@ public class QuestionReplyCommentServiceImpl extends ServiceImpl<QuestionReplyCo
private IQuestionReplyService questionReplyService;
private IUserService userService;
@Autowired
public void setQuestionReplyService(IQuestionReplyService questionReplyService) {
this.questionReplyService = questionReplyService;
}
@Autowired
public void setUserService(IUserService userService) {
this.userService = userService;
}
@Autowired
public void setQuestionService(IQuestionService questionService) {
this.questionService = questionService;
}
......@@ -74,8 +81,11 @@ public class QuestionReplyCommentServiceImpl extends ServiceImpl<QuestionReplyCo
}
//3.保存评论信息
User user = userService.getById(userId);
QuestionReplyComment questionReplyComment = new QuestionReplyComment();
questionReplyComment.setUserId(userId);
questionReplyComment.setUserNick(user.getNickName());
questionReplyComment.setUserAvatar(user.getUserAvatar());
questionReplyComment.setReplyId(replyId);
questionReplyComment.setParentId(parentId);
questionReplyComment.setComment(comment);
......
......@@ -10,6 +10,8 @@ import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyCommentServ
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
import cn.meteor.beyondclouds.modules.question.util.QuestionUtils;
import cn.meteor.beyondclouds.modules.user.entity.User;
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;
......@@ -18,8 +20,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 问题回复表 服务实现类
......@@ -39,6 +39,8 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
private QuestionReplyMapper questionReplyMapper;
private IUserService userService;
@Autowired
public void setQuestionService(IQuestionService questionService) {
this.questionService = questionService;
......@@ -50,6 +52,11 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
}
@Autowired
public void setUserService(IUserService userService) {
this.userService = userService;
}
@Autowired
public void setQuestionReplyCommentService(IQuestionReplyCommentService questionReplyCommentService) {
this.questionReplyCommentService = questionReplyCommentService;
}
......@@ -65,10 +72,14 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
}
//2.保存回复信息
User user = userService.getById(userId);
QuestionReply questionReply = new QuestionReply();
questionReply.setQuestionId(questionId);
questionReply.setReply(reply);
questionReply.setUserId(userId);
questionReply.setUserNick(user.getNickName());
questionReply.setUserAvatar(user.getUserAvatar());
//默认该回复未被采纳
questionReply.setReplyStatus(0);
save(questionReply);
......
......@@ -205,8 +205,11 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
}
//2.检查问题标题是否以?结尾
if (!question.getQuestionTitle().endsWith(QUESTION_END_EN) && !question.getQuestionTitle().endsWith(QUESTION_END_CN)){
throw new QuestionServiceException(QuestionErrorCode.QUESTION_END_ERROR);
if (!StringUtils.isEmpty(question.getQuestionTitle())) {
if (!question.getQuestionTitle().endsWith(QUESTION_END_EN) && !question.getQuestionTitle().endsWith(QUESTION_END_CN)){
throw new QuestionServiceException(QuestionErrorCode.QUESTION_END_ERROR);
}
}
//3.检查问题分类是否存在
......@@ -322,7 +325,9 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
@Override
public IPage<Question> getQuestionPage(Integer pageNumber, Integer pageSize) {
IPage<Question> page = new Page<>(pageNumber,pageSize);
return questionMapper.selectPageWithTags(page, null);
QueryWrapper<Question> questionQueryWrapper = new QueryWrapper<>();
questionQueryWrapper.orderByDesc("q.create_time");
return questionMapper.selectPageWithTags(page, questionQueryWrapper);
}
@Override
......@@ -330,6 +335,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
IPage<Question> page = new Page<>(pageNumber, pageSize);
QueryWrapper<Question> questionQueryWrapper = new QueryWrapper<>();
questionQueryWrapper.eq("q.user_id", userId);
questionQueryWrapper.orderByDesc("q.create_time");
return questionMapper.selectPageWithTags(page, questionQueryWrapper);
}
......
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