package com.plant.api.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.plant.api.bean.dto.CommentDto;
import com.plant.api.bean.dto.PostDto;
import com.plant.api.bean.general.result.Result;
import com.plant.api.bean.general.result.ResultStatus;
import com.plant.api.bean.threadLocal.UserLocal;
import com.plant.api.bean.vto.PostVto;
import com.plant.api.entity.Comment;
import com.plant.api.entity.Post;
import com.plant.api.service.CommentService;
import com.plant.api.service.PostService;
import com.plant.api.service.UserService;
import com.plant.config.filter.login.LoginFilter;
import com.plant.util.Rules;
import javafx.geometry.Pos;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import static org.apache.commons.lang3.StringUtils.join;
/**
* <p>
* 发帖表 前端控制器
* </p>
*
* @author ${author}
* @since 2021-02-21
*/
@RestController
@RequestMapping("/post")
public class PostController {
@Autowired
private PostService postService;
@Autowired
private UserService userService;
@Autowired
private CommentService commentService;
@Resource
private Rules rules;
/**
* 发帖请求
*/
@LoginFilter
@PostMapping("/add")
public Result add(@RequestBody PostVto postVto) {
//发送前执行规则判断
if (!rules.setRulePost(postVto.getPostName(), postVto.getPostContent())) {
return Result.failure(ResultStatus.RULES);
} else {
Post post = new Post();
if (postVto.getImgList() != null) {
String photoString = ArrayUtils.toString(postVto.getImgList(), ",");
post.setPostFile(photoString.replace("[", "").trim().replace("]", ""));
} else {
post.setPostFile("");
}
post.setPostContent(postVto.getPostContent());
post.setPostName(postVto.getPostName());
post.setPostCreaterId(UserLocal.getUser().getUserId());
post.setCreateTime(new Date());
postService.save(post);
return Result.success();
}
}
/**
* 获取所有帖子
* 小程序接口
*/
@PostMapping("/list")
public List<PostDto> postDtoList(@RequestBody Post post) {
List<PostDto> postDtoList = new ArrayList<>();
if (post.getPostContent() != null) {
postService.list(new QueryWrapper<Post>().like("Post_content", post.getPostContent())).forEach(x -> {
PostDto postDto = new PostDto();
postDto.setPostId(x.getPostId());
if (x.getPostFile() != null) {
String[] photoArr = x.getPostFile().split(",");
postDto.setPostPhotoList(Arrays.asList(photoArr));
}
postDto.setPostContent(x.getPostContent());
postDto.setCreateTime(x.getCreateTime());
postDto.setPostName(x.getPostName());
postDto.setPostUserName(userService.getById(x.getPostCreaterId()).getUserName());
postDto.setCommentTotal(commentService.count(new QueryWrapper<Comment>().eq("Comment_post_id", x.getPostId())));
postDtoList.add(postDto);
});
} else {
postService.list().forEach(x -> {
PostDto postDto = new PostDto();
postDto.setPostId(x.getPostId());
if (x.getPostFile() != null) {
String[] photoArr = x.getPostFile().split(",");
postDto.setPostPhotoList(Arrays.asList(photoArr));
}
postDto.setPostContent(x.getPostContent());
postDto.setCreateTime(x.getCreateTime());
postDto.setPostName(x.getPostName());
postDto.setPostUserName(userService.getById(x.getPostCreaterId()).getUserName());
postDto.setCommentTotal(commentService.count(new QueryWrapper<Comment>().eq("Comment_post_id", x.getPostId())));
postDtoList.add(postDto);
});
}
return postDtoList;
}
/**
* 查看帖子详情
*/
@PostMapping("/detail")
public PostDto postDtoDetail(@RequestBody Post postVto) {
PostDto postDto = new PostDto();
Post post = postService.getById(postVto.getPostId());
postDto.setPostId(post.getPostId());
if (post.getPostFile() != null) {
String[] photoArr = post.getPostFile().split(",");
postDto.setPostPhotoList(Arrays.asList(photoArr));
}
postDto.setPostContent(post.getPostContent());
postDto.setCreateTime(post.getCreateTime());
postDto.setPostName(post.getPostName());
postDto.setPostUserName(userService.getById(post.getPostCreaterId()).getUserName());
postDto.setCommentTotal(commentService.count(new QueryWrapper<Comment>().eq("Comment_post_id", post.getPostId())));
List<CommentDto> commentDtoList = new ArrayList<>();
commentService.list(new QueryWrapper<Comment>().eq("Comment_post_id", post.getPostId())).forEach(x -> {
CommentDto commentDto = new CommentDto();
commentDto.setCommentId(x.getCommentId());
commentDto.setCommentContent(x.getCommentContent());
commentDto.setCommentUserName(userService.getById(x.getCommentUserId()).getUserName());
commentDtoList.add(commentDto);
});
postDto.setComments(commentDtoList);
return postDto;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
随着人们生活水平的日渐提升,再加上在pm2.5等污染物的压力下,大家越来越重视家居的空气质量,除了选择配备空气净化器,很多植物也可以对改善空气质量起到一定的辅助作用。绿植通过自身的光合作用释放大量氧气,增加空气中的含氧量,打造家居天然养吧,但由于许多人没有养殖经验或者时间安排的不足,导致养殖效果不够明显。 因此设计一款基于微信小程序的“绿植养殖指南”系统,录入各种常见绿植的养殖方法,指导用户正确的养殖,从而保证绿植存活率,减少资源浪费,更好的达到预期的效果。设置记录提醒功能,用户可以设置指定时间或者周期时间提醒浇水施肥等,避免绿植因缺水缺肥而黄叶、枯死。同时加入社区功能,让有共同爱好的用户可以在同一社区进行养殖方法的交流,有养殖经验的用户还可以在社区进行分享,用户通过也可以通过交流探索出更多的适应不同用户的养殖方法来解决用户养殖难,不会养的问题。 本文将以五大章节分别阐述系统的开发背景、意义,关键的开发技术:Spring Boot、MySQL、微信小程序,分析思想与方法:用例图、活动图、数据流图;设计理念与设计逻辑,实现效果与实现结果,介绍本系统的设计实现过程。
资源推荐
资源详情
资源评论
收起资源包目录
Spring Boot 微信小程序 MyBatis 代码 (241个子文件)
mvnw.cmd 6KB
.gitignore 395B
.gitignore 184B
code.iml 8KB
PostController.java 6KB
UserController.java 5KB
MavenWrapperDownloader.java 5KB
GeneratorCode.java 5KB
ResponseResultBodyAdvice.java 4KB
PlantController.java 4KB
GeneraController.java 2KB
LoginFilterAspect.java 2KB
InterceptorConfig.java 2KB
UserServiceImpl.java 2KB
JwtUtil.java 2KB
Result.java 2KB
BodyHttpServletRequestWrapper.java 2KB
AdminFilterAspect.java 2KB
CommentController.java 2KB
UploadController.java 1KB
Post.java 1KB
PostdetectionFilterAspect.java 1KB
ResultStatus.java 1KB
User.java 1KB
Rules.java 1KB
Water.java 1KB
Violationinfo.java 1KB
Plant.java 1KB
Comment.java 972B
Violation.java 824B
Genera.java 782B
Userplant.java 744B
BodyDispatcherServlet.java 707B
UserLocal.java 561B
Util.java 554B
ViolationinfoServiceImpl.java 544B
ViolationServiceImpl.java 531B
PostDto.java 531B
UserService.java 522B
UserplantServiceImpl.java 516B
CommentServiceImpl.java 502B
ResultException.java 500B
PlantApplication.java 497B
MD5Util.java 496B
PostServiceImpl.java 490B
WaterServiceImpl.java 488B
GeneraDto.java 484B
PlantServiceImpl.java 481B
GeneraServiceImpl.java 478B
UserAdd.java 463B
AdminFilter.java 429B
LoginFilter.java 429B
LoginDto.java 406B
ViolationController.java 373B
ViolationMapper.java 367B
ViolationinfoController.java 366B
ViolationinfoMapper.java 364B
UserplantController.java 358B
PlantDto.java 358B
TimeUtil.java 354B
UserplantMapper.java 352B
WaterController.java 350B
PostMapper.java 346B
CommentMapper.java 346B
PlantUserDto.java 346B
WaterMapper.java 340B
PlantMapper.java 333B
GeneraMapper.java 330B
UserMapper.java 315B
ViolationService.java 312B
PlantVto.java 311B
ViolationinfoService.java 309B
UserplantService.java 297B
PostService.java 291B
CommentService.java 291B
WaterService.java 285B
PlantService.java 278B
GeneraService.java 275B
PostVto.java 275B
LoginVto.java 267B
CommentDto.java 257B
RecodeDetailDto.java 255B
Page.java 251B
WaterDto.java 224B
IdList.java 192B
UpLoadDto.java 151B
send.js 4KB
bbs.js 3KB
request.js 3KB
bbsDetail.js 3KB
record.js 2KB
plant.js 2KB
register.js 1KB
recordDeatil.js 1KB
index.js 1KB
plantDeatail.js 1KB
home.js 1KB
util.js 892B
cu-custom.js 857B
me.js 837B
共 241 条
- 1
- 2
- 3
资源评论
计算机程序分享达人
- 粉丝: 2
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功