package com.zhujizheng.IHome.everymoment.controller;
import com.zhujizheng.IHome.everymoment.dto.*;
import com.zhujizheng.IHome.everymoment.service.PYEveryMomentService;
import com.zhujizheng.IHome.everymoment.vo.PYEveryMomentCommentVO;
import com.zhujizheng.IHome.everymoment.vo.PYEveryMomentImgVO;
import com.zhujizheng.IHome.everymoment.vo.PYEveryMomentThumbupVO;
import com.zhujizheng.IHome.everymoment.vo.PYEveryMomentVO;
import com.zhujizheng.IHome.util.response.ResponseResult;
import com.zhujizheng.IHome.util.response.RestResultGenerator;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Created with IntelliJ IDEA
*
* Author: yons
* Date: 2019/03/08
* Time: 00:06
* Description: 每刻相关接口
* Copyright © 2019年 com.zhujizheng. All rights reserved.
*/
@Api("每刻相关")
@RestController
@RequestMapping("/everymoment")
@Slf4j
public class PYEveryMomentController {
/**
* 动态相关的操作
*/
@Autowired
private PYEveryMomentService everyMomentService;
@ApiOperation("获取前10条动态")
@ApiImplicitParam(name = "pullEveryMomentDTO", value = "根据用户id和每刻id获取每刻列表", required = true, dataType = "PYEveryMomentPullDTO")
@PostMapping("/pull")
public ResponseResult pullEveryMoment(@Validated @RequestBody PYEveryMomentPullDTO pullEveryMomentDTO) {
List everyMomentList = everyMomentService.pullEveryMoment(pullEveryMomentDTO);
if (everyMomentList == null) {
return RestResultGenerator.genErrorResult("获取动态失败");
}
return RestResultGenerator.genResult(everyMomentList, "获取动态成功");
}
@ApiOperation("获取某条动态")
@ApiImplicitParam(name = "emId", value = "动态id", paramType = "path", required = true, dataType = "int")
@GetMapping("/pull/{emId}")
public ResponseResult getEveryMomentByEmId(@PathVariable int emId) {
PYEveryMomentVO everyMomentVO = everyMomentService.getEveryMomentByEmId(emId);
if (everyMomentVO == null) {
return RestResultGenerator.genErrorResult("获取动态失败");
}
return RestResultGenerator.genResult(everyMomentVO, "获取动态成功");
}
@ApiOperation("发布动态")
@ApiImplicitParam(name = "pushEveryMomentDTO", value = "发布动态的数据", required = true, dataType = "PYEveryMomentPushDTO")
@PostMapping("/push")
public ResponseResult pushEveryMoment(@Validated @RequestBody PYEveryMomentPushDTO pushEveryMomentDTO) {
System.out.println("dto = " + pushEveryMomentDTO);
PYEveryMomentVO everyMomentVO = everyMomentService.pushEveryMoment(pushEveryMomentDTO);
if (everyMomentVO == null) {
return RestResultGenerator.genErrorResult("发布失败");
} else {
return RestResultGenerator.genResult(everyMomentVO, "发布成功");
}
}
@ApiOperation("删除动态")
@ApiImplicitParam(name = "deleteEveryMomentDTO", value = "根据emId删除动态", required = true, dataType = "PYEveryMomentDeleteDTO")
@PostMapping("/delete")
public ResponseResult deleteEveryMoment(@Validated @RequestBody PYEveryMomentDeleteDTO deleteEveryMomentDTO) {
int result = everyMomentService.deleteEveryMoment(deleteEveryMomentDTO);
if (result == 0) {
return RestResultGenerator.genErrorResult("删除动态失败");
}
return RestResultGenerator.genResult("删除动态成功");
}
@ApiOperation("点赞动态")
@ApiImplicitParam(name = "thumbupDTO", value = "点赞动态", required = true, dataType = "PYEveryMomentThumbupDTO")
@PostMapping("/thumbup")
public ResponseResult thumbupEveryMoment(@Validated @RequestBody PYEveryMomentThumbupDTO thumbupDTO) {
System.out.println("thumbupDTO = " + thumbupDTO);
PYEveryMomentThumbupVO thumbupVO = everyMomentService.thumbupEveryMoment(thumbupDTO);
if (thumbupVO == null) {
return RestResultGenerator.genErrorResult("点赞失败");
}
return RestResultGenerator.genResult(thumbupVO, "点赞成功");
}
@ApiOperation("取消点赞动态")
@ApiImplicitParam(name = "cancelThumbupDTO", value = "取消点赞动态", required = true, dataType = "PYEveryMomentCancelThumbupDTO")
@PostMapping("/cancelthumbup")
public ResponseResult cancelThumbupEveryMoment(@Validated @RequestBody PYEveryMomentCancelThumbupDTO cancelThumbupDTO) {
int result = everyMomentService.cancelThumbupEveryMoment(cancelThumbupDTO);
if (result == 0) {
return RestResultGenerator.genErrorResult("取消点赞失败");
}
return RestResultGenerator.genResult( "取消点赞成功");
}
@ApiOperation("评论动态")
@ApiImplicitParam(name = "commentDTO", value = "评论模型", required = true, dataType = "PYEveryMomentCommentDTO")
@PostMapping("/comment")
public ResponseResult commentEveryMoment(@Validated @RequestBody PYEveryMomentCommentDTO commentDTO) {
PYEveryMomentCommentVO commentVO = everyMomentService.commentEveryMoment(commentDTO);
if (commentVO == null) {
return RestResultGenerator.genErrorResult("评论失败");
}
return RestResultGenerator.genResult(commentVO, "评论成功");
}
@ApiOperation("删除评论")
@ApiImplicitParam(name = "deleteCommentDTO", value = "删除评论的模型", required = true, dataType = "PYEveryMomentDeleteCommentDTO")
@PostMapping("/deletecomment")
public ResponseResult deleteCommentEveryMoment(@Validated @RequestBody PYEveryMomentDeleteCommentDTO deleteCommentDTO) {
int result = everyMomentService.deleteCommentEveryMoment(deleteCommentDTO);
if (result == 0) {
return RestResultGenerator.genErrorResult("删除评论失败");
}
return RestResultGenerator.genResult("删除评论成功");
}
@ApiOperation("获取用户动态的最后几张图片")
@ApiImplicitParam(name = "userId", value = "用户id", paramType = "path", required = true, dataType = "int")
@GetMapping("/getLastImgList/{userId}")
public ResponseResult getImgListWithUserId(@PathVariable int userId) {
List imgList = everyMomentService.getImgListWithUserId(userId);
if (imgList == null) {
return RestResultGenerator.genErrorResult("获取图片列表失败");
}
return RestResultGenerator.genResult(imgList, "获取图片列表成功");
}
}