Commit 25ceff4e by 段启岩

项目评论列表

parent b0bc8514
package cn.meteor.beyondclouds.modules.project.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.project.entity.ProjectComment;
import cn.meteor.beyondclouds.modules.project.exception.ProjectCommentServiceException;
import cn.meteor.beyondclouds.modules.project.form.ProjectCommentForm;
import cn.meteor.beyondclouds.modules.project.service.IProjectCommentService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -72,4 +77,23 @@ public class ProjectCommentApi {
}
}
@Anonymous
@ApiOperation("评论列表")
@GetMapping("/project/{projectId}/comments")
public Response<PageVO<ProjectComment>> getProjectComments(@PathVariable("projectId") Integer projectId,
@Valid PageForm pageForm,
@RequestParam(value = "parentId" ,required = false) Integer parentId) {
try {
// 根据用户获取列表并返回
IPage<ProjectComment>commentPage = projectCommentService.getCommentPage(pageForm.getPage(), pageForm.getSize(), projectId, parentId);
PageVO<ProjectComment> projectPageVO = new PageVO<>();
projectPageVO.setTotalPage(commentPage.getPages());
projectPageVO.setDataList(commentPage.getRecords());
return Response.success(projectPageVO);
} catch (ProjectCommentServiceException e) {
e.printStackTrace();
return Response.error(e);
}
}
}
......@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.project.service;
import cn.meteor.beyondclouds.modules.project.entity.ProjectComment;
import cn.meteor.beyondclouds.modules.project.exception.ProjectCommentServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -29,4 +30,14 @@ public interface IProjectCommentService extends IService<ProjectComment> {
* @param id
*/
void deleteComment(Integer commentId, String id) throws ProjectCommentServiceException;
/**
* 获取评论分页
* @param page
* @param size
* @param projectId
* @param parentId
* @return
*/
IPage<ProjectComment> getCommentPage(Integer page, Integer size, Integer projectId, Integer parentId) throws ProjectCommentServiceException;
}
......@@ -9,6 +9,8 @@ import cn.meteor.beyondclouds.modules.project.mapper.ProjectCommentMapper;
import cn.meteor.beyondclouds.modules.project.service.IProjectCommentService;
import cn.meteor.beyondclouds.modules.project.service.IProjectService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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;
......@@ -95,4 +97,27 @@ public class ProjectCommentServiceImpl extends ServiceImpl<ProjectCommentMapper,
projectCommentQueryWrapper.like("thread", projectComment.getThread());
remove(projectCommentQueryWrapper);
}
@Override
public IPage<ProjectComment> getCommentPage(Integer pageNumber, Integer pageSize, Integer projectId, Integer parentId) throws ProjectCommentServiceException {
IPage<ProjectComment> page = new Page<>(pageNumber, pageSize);
// 如果parentId为null,则只获取一级评论
if (null == parentId) {
QueryWrapper<ProjectComment> projectCommentQueryWrapper = new QueryWrapper<>();
projectCommentQueryWrapper.eq("project_id", projectId);
projectCommentQueryWrapper.orderByDesc("create_time");
return page(page, projectCommentQueryWrapper);
}
// 如果parentId不为null,则获取其子评论
ProjectComment projectComment = getById(parentId);
if (null == projectComment) {
throw new ProjectCommentServiceException(ProjectCommentErrorCode.COMMENT_NOT_FOUND);
}
QueryWrapper<ProjectComment> projectCommentQueryWrapper = new QueryWrapper<>();
projectCommentQueryWrapper.eq("parent_id", parentId);
return page(page, projectCommentQueryWrapper);
}
}
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