基于springboot+vue的博客论坛系统,如果你想学习更多的项目源码。
1,系统的功能需求
主要针对博客论坛的管理员对论坛信息进行有效的管理,对用户数量,链接数量,文章数量进行增删改查,能通过数据统计分析近来论坛的发展情况,还能通过类别更改管理论坛的界面。游客则通过发布文章,管理文章对论坛做出贡献,发布自己的想法。
(1)用户管理。该模块是由管理员进行操作的,将所有用户的用户名,邮箱,创建时间,用户状态,列在一张表上,方便管理员增加、删除、修改,查询用户的信息,还可以批量删除。
(2)文章管理。这个模块是管理员和用户都可以操作的,他们都可以对现有文章进行删除、修改,查询的操作。他们还可以在文章添加板块,进行文章创作。
(3)链接管理。该模块是在论坛页面的右边添加友情网站的链接,起到互帮互助的作用,它也由两个小板块组成,链接添加和链接列表,这是只有管理员才能查看且增删查改的板块,
(4)日志管理。日志模块是所有用户包括管理员论坛对后台管理系统的访问记录,由管理员查看,能够进行查询,删除和批量删除的操作。
(5)数据管理。数据模块是以月为单位,对论坛的发帖量和访问量进行数据统计,并转换成柱状图的形式呈现,是只能由管理员查看的用于网站现状的分析的工具。分为文章发表数据和文章浏览数据。
(6)系统管理。这个模块下面有一个前台栏目列表,是前台论坛上方展示的分类类别,有由管理员增加、删除、修改,查询的功能。
2,系统的技术栈
springboot+vue
3,系统的演示
4,核心代码展示
/** * 后台控制管理 */ @Controller @RequestMapping("/admin") public class AdminController { @Autowired private MenuService menuService; /** * 跳转到后台页 */ @RequiresPermissions("base:admin:views") @GetMapping("/index") public String index(){ return Views.ADMIN; } /** * 后台主页 */ @RequiresPermissions("base:admin:views") @GetMapping("/main") public String main(){ return Views.ADMIN_MAIN; } /** * 根据权限获取菜单 * @return */ @RequiresPermissions("base:admin:views") @PostMapping("/getMenu") @ResponseBody public List<Menu> getMenu(){ return UserUtils.getMenuinfoList(); } }
package com.ruixin.controller; import com.ruixin.common.utils.Views; import org.springframework.boot.autoconfigure.web.ErrorController; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping(value = "error") public class BaseErrorController implements ErrorController { @Override public String getErrorPath(){ return Views.NOT_FOUNT; } @RequestMapping public String error() { return Views.NOT_FOUNT; } }
@Controller public class CommentController { @Autowired private CommentService commentService; @PostMapping("/comment/add") @ResponseBody public String CommentAdd(@RequestParam("container")String container,@RequestParam("newsid") String newsId){ Comment comment = new Comment(); comment.setContent(container); comment.setNewsId(Integer.parseInt(newsId)); comment.setStatus("0"); commentService.save(comment); return "success"; } }
@GetMapping("/font/test") public String test(){ System.out.println("跳进测试的页面"); return Views.TEXT_PAGE; } /** * 跳转到三级页面 * @param model * @param id * @return */ @GetMapping("/third/{id}") public String third(Model model, @PathVariable("id")int id, Page<Comment> page){ //加载内容 model.addAttribute("typeList",newsService.findTypeList()); News news=newsService.get(id); model.addAttribute("news",news); news.setRead(String.valueOf(Integer.parseInt(news.getRead())+1)); newsService.save(news); //加载评论 Page<Comment> commentPage=commentService.getFindId(page,new Comment(),id); model.addAttribute("commentPage",commentPage); return Views.THIRD; } /** * 关于我 */ @GetMapping("/about") public String about(Model model){ model.addAttribute("typeList",newsService.findTypeList()); return Views.ABOUT; }