104 lines
3.7 KiB
Java
104 lines
3.7 KiB
Java
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<News> 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<News> page = new Page<>(current, size);
|
|
QueryWrapper<News> qw = new QueryWrapper<>();
|
|
qw.like(news.getTitle() != null, "title", news.getTitle())
|
|
.orderByDesc("published");
|
|
|
|
IPage<News> 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<Article> 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<Article> page = new Page<>(current, size);
|
|
QueryWrapper<Article> qw = new QueryWrapper<>();
|
|
qw.like(article.getTitle() != null, "title", article.getTitle())
|
|
.orderByDesc("published");
|
|
|
|
IPage<Article> result = articleService.page(page, qw);
|
|
|
|
return RequestBack.success(ResultCode.SUCCESS, result);
|
|
}
|
|
// 联系管理员
|
|
}
|