Commit b7efbf09 by 胡学良

回复列表

parent bebce5f3
package cn.meteor.beyondclouds.modules.question.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.bean.Subject;
import cn.meteor.beyondclouds.modules.question.entity.QuestionReply;
import cn.meteor.beyondclouds.modules.question.exception.QuestionReplyServiceException;
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @author 胡学良
* @since 2020/2/1
......@@ -17,12 +24,12 @@ import org.springframework.web.bind.annotation.*;
@Api(tags = "问题回复Api")
@RestController
@RequestMapping("/api")
public class QuestionReply {
public class QuestionReplyApi {
private IQuestionReplyService questionReplyService;
@Autowired
public QuestionReply(IQuestionReplyService questionReplyService) {
public QuestionReplyApi(IQuestionReplyService questionReplyService) {
this.questionReplyService = questionReplyService;
}
......@@ -63,4 +70,25 @@ public class QuestionReply {
return Response.error(e);
}
}
/**
* 问题的回复列表
* @param pageForm 分页表单
* @param questionId 问题ID
* @return 问题的回复列表
*/
@Anonymous
@ApiOperation("问题的回复列表")
@GetMapping("/question/{questionId}/replies")
public Response<PageVO<QuestionReply>> getReplies(@Valid PageForm pageForm, String questionId) {
//获取问题的回复列表
try {
IPage<QuestionReply> questionReplyPage = questionReplyService.getReplies(pageForm.getPage(), pageForm.getSize(), questionId);
PageVO<QuestionReply> questionReplyPageVO = new PageVO<>(questionReplyPage);
return Response.success(questionReplyPageVO);
} catch (QuestionReplyServiceException e) {
e.printStackTrace();
return Response.error(e);
}
}
}
......@@ -2,7 +2,9 @@ package cn.meteor.beyondclouds.modules.question.service;
import cn.meteor.beyondclouds.modules.question.entity.QuestionReply;
import cn.meteor.beyondclouds.modules.question.exception.QuestionReplyServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.models.auth.In;
/**
* <p>
......@@ -31,4 +33,14 @@ public interface IQuestionReplyService extends IService<QuestionReply> {
* @throws QuestionReplyServiceException 问题回复业务异常
*/
void adoptReply(String questionId, String replyId, String userId) throws QuestionReplyServiceException;
/**
* 问题的回复列表
* @param pageNumber 页数
* @param pageSize 页面大小
* @param questionId 问题ID
* @return 页面对象
* @throws QuestionReplyServiceException 问题回复业务异常
*/
IPage<QuestionReply> getReplies(Integer pageNumber, Integer pageSize, String questionId) throws QuestionReplyServiceException;
}
......@@ -8,8 +8,11 @@ import cn.meteor.beyondclouds.modules.question.exception.QuestionReplyServiceExc
import cn.meteor.beyondclouds.modules.question.mapper.QuestionReplyMapper;
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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -87,4 +90,19 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
updateWrapper.set("reply_status",ADOPTED_REPLY_STATUS).eq("reply_id",replyId);
update(updateWrapper);
}
@Override
public IPage<QuestionReply> getReplies(Integer pageNumber, Integer pageSize, String questionId) throws QuestionReplyServiceException {
//1.判断该问题是否存在
Question question = questionService.getOne(QuestionUtils.getWrapper("question_id", questionId));
//若问题不存在,则抛出问题不存在异常
if (null == question) {
throw new QuestionReplyServiceException(QuestionErrorCode.QUESTION_NOT_FOUND);
}
//2.得到页面信息
IPage<QuestionReply> questionReplyPage = new Page<>(pageNumber, pageSize);
return page(questionReplyPage, QuestionUtils.getWrapper("question_id",questionId));
}
}
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