Commit b7efbf09 by 胡学良

回复列表

parent bebce5f3
package cn.meteor.beyondclouds.modules.question.api; 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.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response; import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.bean.Subject; 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.exception.QuestionReplyServiceException;
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService; import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/** /**
* @author 胡学良 * @author 胡学良
* @since 2020/2/1 * @since 2020/2/1
...@@ -17,12 +24,12 @@ import org.springframework.web.bind.annotation.*; ...@@ -17,12 +24,12 @@ import org.springframework.web.bind.annotation.*;
@Api(tags = "问题回复Api") @Api(tags = "问题回复Api")
@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
public class QuestionReply { public class QuestionReplyApi {
private IQuestionReplyService questionReplyService; private IQuestionReplyService questionReplyService;
@Autowired @Autowired
public QuestionReply(IQuestionReplyService questionReplyService) { public QuestionReplyApi(IQuestionReplyService questionReplyService) {
this.questionReplyService = questionReplyService; this.questionReplyService = questionReplyService;
} }
...@@ -63,4 +70,25 @@ public class QuestionReply { ...@@ -63,4 +70,25 @@ public class QuestionReply {
return Response.error(e); 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; ...@@ -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.entity.QuestionReply;
import cn.meteor.beyondclouds.modules.question.exception.QuestionReplyServiceException; import cn.meteor.beyondclouds.modules.question.exception.QuestionReplyServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.models.auth.In;
/** /**
* <p> * <p>
...@@ -31,4 +33,14 @@ public interface IQuestionReplyService extends IService<QuestionReply> { ...@@ -31,4 +33,14 @@ public interface IQuestionReplyService extends IService<QuestionReply> {
* @throws QuestionReplyServiceException 问题回复业务异常 * @throws QuestionReplyServiceException 问题回复业务异常
*/ */
void adoptReply(String questionId, String replyId, String userId) 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 ...@@ -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.mapper.QuestionReplyMapper;
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 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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -87,4 +90,19 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q ...@@ -87,4 +90,19 @@ public class QuestionReplyServiceImpl extends ServiceImpl<QuestionReplyMapper, Q
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);
} }
@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