xgl-case/src/main/java/com/nbclass/activity/controller/casesfirst/CommentController.java
2021-12-03 18:27:07 +08:00

343 lines
11 KiB
Java

package com.nbclass.activity.controller.casesfirst;
import com.github.pagehelper.PageInfo;
import com.nbclass.activity.model.*;
import com.nbclass.activity.service.CommentService;
import com.nbclass.activity.service.ContentService;
import com.nbclass.exception.ParameterException;
import com.nbclass.util.JWTUtils;
import com.nbclass.vo.base.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 评论api
*/
@RestController
@RequestMapping("/comment")
public class CommentController {
@Autowired
private CommentService commentService;
@Autowired
private ContentService contentService;
/**
* 案例详情和评论列表
* @param contentId
* @return
*/
@GetMapping("/getComment")
public Result getComment(HttpServletRequest request,Long contentId){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
Content content = commentService.getComment(contentId,Long.parseLong(userId));
return Result.success(content);
}
/**
* 评论回复列表
* @param request
* @param commentId 评论id
* @return
*/
@GetMapping("/getCommentReplyList")
public Result getCommentReplyList(HttpServletRequest request,Long commentId){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
Comment comment = commentService.getCommentReplyList(commentId,Long.parseLong(userId));
return Result.success(comment);
}
/**
* 添加用户发布信息
* @param comment
* @return
*/
@PostMapping("/saveComment")
public Result saveComment(Comment comment,HttpServletRequest request){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
comment.setUserId(Long.parseLong(userId));
commentService.saveComment(comment);
//更新案例总评论数
contentService.updateComments(comment.getContentId());
return Result.success();
}
/**
* 添加评论点赞
* @param commentId 评论Id
* @return
*/
@PostMapping("/updatePraiseNo")
public Result updatePraiseNo(Long commentId, HttpServletRequest request){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
//根据评论id获取被点赞人Id
Comment comment = commentService.getCommentUserId(commentId);
System.out.println(comment);
Praise praise = new Praise();
praise.setCommentId(commentId);
praise.setPraiseId(Long.parseLong(userId));
praise.setUserId(comment.getUserId());
commentService.savePraiseNo(praise);
//评论总数加1
commentService.updatePraiseno(commentId);
return Result.success();
}
/**
* 取消评论点赞
* @return
*/
@PostMapping("/deletePraise")
public Result deletePraise(Long commentId,HttpServletRequest request){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
commentService.deletePraise(commentId,Long.parseLong(userId));
//总点赞数减一
commentService.updatePraiseNoONE(commentId);
return Result.success();
}
/**
* 添加案例点赞
* @param contentId
* @return
*/
@PostMapping("/updateContentPraiseNo")
public Result updateContentPraiseNo(Long contentId){
commentService.updateContentPraiseNo(contentId);
return Result.success();
}
/**
* 用户回复
* @param comment
* @param request
* @return
*/
@PostMapping("/saveUserReply")
public Result saveUserReply(Comment comment,HttpServletRequest request){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
comment.setReplyId(Long.parseLong(userId));
commentService.saveUserReply(comment);
//评论总回复数加一
commentService.updateReplyNumberONE(comment.getCommentId());
//更新案例总评论数
contentService.updateComments(comment.getContentId());
return Result.success();
}
/**
* 用户举报
* @param report
* @return
*/
@PostMapping("/saveReport")
public Result saveReport(Report report,HttpServletRequest request){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
report.setReportId(Long.parseLong(userId));
commentService.saveReport(report);
return Result.success();
}
/**
* 举报列表获取
* @param page
* @param pageSize
* @return
*/
@GetMapping("/getReport")
public Result getReport(Integer page,Integer pageSize,HttpServletRequest request){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
PageInfo<Report> list = commentService.getReport(page,pageSize,userId);
return Result.success(list);
}
/**
* 添加标签、索引反馈日志
* @return
*/
@PostMapping("/saveLabelLogger")
public Result saveLabelLogger(LabelLogger labelLogger,HttpServletRequest request){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
labelLogger.setUserId(Long.parseLong(userId));
commentService.saveLabelLogger(labelLogger);
//案例索引标签反馈次数+1
contentService.updateLabelFeedback(labelLogger.getContentId());
return Result.success();
}
/**
* 标签、索引反馈日志列表
* @param request
* @param page
* @param pageSize
* @return
*/
@GetMapping("/getLabelLogger")
public Result getLabelLogger(HttpServletRequest request,Integer page,Integer pageSize){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
PageInfo<LabelLogger> list = commentService.getLabelLogger(page,pageSize,Long.parseLong(userId));
return Result.success(list);
}
/**
* 新建文件夹
* @param favoritesFolder
* @param request
* @return
*/
@PostMapping("/saveFavorites")
public Result saveFavorites(FavoritesFolder favoritesFolder, HttpServletRequest request){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
//判断文件夹是否重名
int result = commentService.getFavoritesName(favoritesFolder.getName());
if(result > 0){
throw new ParameterException("文件夹已存在!");
}
favoritesFolder.setUserId(Long.parseLong(userId));
commentService.saveFavorites(favoritesFolder);
return Result.success();
}
/**
* 案例详情的文件夹列表
* @param request
* @return
*/
@GetMapping("/getUserFolder")
public Result getUserFolder(HttpServletRequest request,Integer page,Integer pageSize,Long commentId){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
PageInfo<FavoritesFolder> list = commentService.getUserFolder(Long.parseLong(userId),page,pageSize,commentId);
return Result.success(list);
}
/**
* 收藏案例到文件夹中
* @param contentId
* @return
*/
@PostMapping("/saveFolder")
public Result saveFolder(Long folderId,Long contentId){
//判断该文件夹是否已被收藏
int result = commentService.getFolderExistence(folderId,contentId);
if(result > 0 ){
throw new ParameterException("该文件夹已被收藏!");
}
//收藏案例到文件夹中
commentService.saveFolder(folderId,contentId);
//添加收藏总数
commentService.saveFolderTotal(folderId);
//更新案例的收藏总数+1
commentService.updateCollectionNumber(contentId);
return Result.success();
}
/**
* 取消文件夹中的案例收藏
* @param folderId
* @param contentId
* @return
*/
@PostMapping("/deleteFolderResources")
public Result deleteFolderResources(Long folderId,Long contentId){
commentService.deleteFolderResources(folderId,contentId);
//更新案例的收藏总数-1
commentService.updateCollectionNumberReduce(contentId);
return Result.success();
}
/**
* 获取用户文件夹列表
* @param request
* @return
*/
@GetMapping("/getUserFolderList")
public Result getUserFolderList(HttpServletRequest request,Integer page,Integer pageSize){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
PageInfo<FavoritesFolder> list = commentService.getUserFolderList(Long.parseLong(userId),page,pageSize);
return Result.success(list);
}
/**
* 我的收藏
* @param request
* @param page
* @param pageSize
* @return
*/
@GetMapping("/getMyCollection")
public Result getMyCollection(HttpServletRequest request,Integer page,Integer pageSize,Long folderId){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
PageInfo<Content> list = commentService.getMyCollection(Long.parseLong(userId),page,pageSize,folderId);
return Result.success(list);
}
/**
* 个人中心回复列表
* @param page
* @param pageSize
* @return
*/
@GetMapping("/getReplyList")
public Result getReplyList(HttpServletRequest request,Integer page,Integer pageSize){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
PageInfo<Comment> list = commentService.getReplyList(Long.parseLong(userId),page,pageSize);
return Result.success(list);
}
/**
* 点赞列表
* @param request
* @param page
* @param pageSize
* @return
*/
@GetMapping("/getFabulousList")
public Result getFabulousList(HttpServletRequest request,Integer page,Integer pageSize){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
PageInfo<Comment> list = commentService.getFabulousList(Long.parseLong(userId),page,pageSize);
return Result.success(list);
}
/**
* 案例打分
* @param scoring
* @return
*/
@PostMapping("/saveScoring")
public Result saveScoring(HttpServletRequest request,Scoring scoring){
String token = request.getHeader("token");
String userId = JWTUtils.getUserId(token);
scoring.setUserId(Long.parseLong(userId));
commentService.saveScoring(scoring);
return Result.success();
}
}