package xin.merlin.myblog_server.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import xin.merlin.myblog_server.entity.Article; import xin.merlin.myblog_server.entity.Comment; import xin.merlin.myblog_server.entity.News; import xin.merlin.myblog_server.service.impl.*; import xin.merlin.myblog_server.utils.JwtUtil; import xin.merlin.myblog_server.utils.RequestBack; import xin.merlin.myblog_server.utils.enums.ResultCode; import java.util.List; @RestController @RequestMapping("/blog") public class BasicController { @Resource private NewsServiceImpl newsService; @Autowired private ArticleServiceImpl articleService; @Autowired private UserServiceImpl userService; @Autowired private CommentServiceImpl commentService; @Autowired private JwtUtil jwtUtil; // 获取用户个人信息 @GetMapping("/get/userinfo") public RequestBack getUserinfo(@RequestHeader("Authorization") String token) { token = token.substring(7); return RequestBack.success(ResultCode.SUCCESS,userService.getById(jwtUtil.getUId(token))); } // 获取新闻 @GetMapping("/get/news") public RequestBack getNews(@RequestParam Integer current,@RequestParam Integer size) { Page page = new Page<>(current,size); page.setOrders(List.of(OrderItem.desc("published"))); return RequestBack.success(ResultCode.SUCCESS,newsService.page(page)); } // 搜索新闻 @PostMapping("/search/news") public RequestBack searchNews(@RequestParam Integer current, @RequestParam Integer size, @RequestBody News news) { Page page = new Page<>(current, size); QueryWrapper qw = new QueryWrapper<>(); qw.like(news.getTitle() != null, "title", news.getTitle()) .orderByDesc("published"); IPage result = newsService.page(page, qw); return RequestBack.success(ResultCode.SUCCESS, result); } // 获取文章 @GetMapping("/get/article/{a_id}") public RequestBack getArticle(@PathVariable Integer a_id) { return RequestBack.success(ResultCode.SUCCESS,articleService.getById(a_id)); } // 获取文章 @GetMapping("/get/articles") public RequestBack getArticles(@RequestParam Integer current,@RequestParam Integer size) { Page
page = new Page<>(current,size); page.setOrders(List.of(OrderItem.desc("published"))); return RequestBack.success(ResultCode.SUCCESS,articleService.page(page)); } // 发表评论 @PostMapping("/publish/comment") public RequestBack publishComment(@RequestBody Comment comment) { commentService.save(comment); return RequestBack.success(ResultCode.SUCCESS); } // 搜索新闻 @PostMapping("/search/articles") public RequestBack searchArticles(@RequestParam Integer current, @RequestParam Integer size, @RequestBody Article article) { Page
page = new Page<>(current, size); QueryWrapper
qw = new QueryWrapper<>(); qw.like(article.getTitle() != null, "title", article.getTitle()) .orderByDesc("published"); IPage
result = articleService.page(page, qw); return RequestBack.success(ResultCode.SUCCESS, result); } // 联系管理员 }