好高骛远网

前后端分离Springboot+Vue实现课程社区管理系统

前后端分离Springboot+Vue实现课程社区管理系统

作者主页:编程指南针

作者简介:Java领域优质创作者、前后CSDN博客专家 、端分掘金特邀作者、实现社区多年架构师设计经验、课程腾讯课堂常驻讲师

主要内容:Java项目、管理毕业设计、系统简历模板、前后学习资料、端分面试题库、实现社区技术互助

文末获取源码 

项目编号:BS-XX-141

一,课程项目简介

本项目主要实现一个基于课程选课的管理社区交流系统,主要的系统业务背景为每个老师可以自己开设相应的选修课,并指定可以选修的前后人数,学生登陆系统后可以进行选课,端分并可以在线针对自己的实现社区选课进行在线讨论,点赞等互动行为。管理员则主要是对基本信息的相关管理,比如用户和角色、权限管理等,本系统有着完备的权限管理控制系统,可以根据需要自定角色并分配相应的权限。系统采用前后端分离开发的方式来实现。

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

前端技术:jsp+easyui+ajax+jquery

后端技术:spring+springmvc+mybatis+定时任务

三,系统展示

下面展示一下系统的主要功能:

登陆页面:

用户注册

用户管理

菜单管理

角色管理

权限分配

个人信息

学生登陆系统

选课

参与所选课程的社区讨论

老师登陆系统

开设课程

参与社区讨论

四,核心代码展示

package com.course.api.controller;import com.course.api.config.Result.Result;import com.course.api.config.Result.Results;import com.course.api.entity.Comment;import com.course.api.service.Impl.CommentServiceImpl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping("/comment")public class CommentController {     @Autowired    CommentServiceImpl commentService;    /**     * 查询当前课程的论坛数据     * @param courseId     * @return List     */    @GetMapping("getCommentList")    public Result  getCommentList(@RequestParam Long courseId) {         return Results.success(commentService.getCommentInfo(courseId));    }    /**     * 添加评论     * @param comment     * @return     */    @PostMapping("/add")    public Result add(@RequestBody Comment comment) {         commentService.addComment(comment);        return Results.success();    }    /**     * 删除评论     * @param id     * @return     */    @DeleteMapping("/delete/{ id}")    public Result remove(@PathVariable(value = "id") Long id) {         commentService.removeById(id);        return Results.success();    }}
package com.course.api.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.course.api.config.Result.Result;import com.course.api.config.Result.Results;import com.course.api.entity.CommentThumbs;import com.course.api.service.Impl.CommentThumbsImpl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping("/commentThumbs")public class CommentThumbsController {     @Autowired    CommentThumbsImpl commentThumbsService;    /**     * 获取用户点赞的帖子     * @param userId     * @return     */    @GetMapping("/getLikeComments")    public Result getLikeComments(@RequestParam Long userId) {         return Results.success(commentThumbsService.list(new QueryWrapper().eq("user_id", userId)));    }    /**     * 点赞     * @param commentThumbs     * @return     */    @PostMapping("/giveThumbs")    public Result giveThumbs(@RequestBody CommentThumbs commentThumbs) {         commentThumbsService.addThumbs(commentThumbs);        return Results.success();    }    /**     * 取消点赞     * @param id     * @return     */    @DeleteMapping("/cancel/{ id}")    public Result cancel(@PathVariable(value = "id") Long id) {         commentThumbsService.cancelThumbs(id);        return Results.success();    }}
package com.course.api.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.course.api.config.Result.Result;import com.course.api.config.Result.Results;import com.course.api.entity.Course;import com.course.api.service.Impl.CourseServiceImpl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.List;@RestController@RequestMapping("/course")public class CourseController {     @Autowired    CourseServiceImpl courseService;    /**     * 获取课程分页数据     * @param page     * @param pageSize     * @param teacherId     * @return     */    @GetMapping("/getCourseList")    public Result getCourseList(@RequestParam int page,                                @RequestParam int pageSize,                                @RequestParam(defaultValue = "0") Long teacherId) {         IPagecourseIPage = new Page<>(page, pageSize);        QueryWrapperqueryWrapper = new QueryWrapper<>();        if (teacherId >0) {             queryWrapper.eq("teacher_id", teacherId);        }        return Results.success(courseService.page(courseIPage, queryWrapper));    }    /**     * 获取全部课程信息     * @return     */    @GetMapping("/getAllCourseList")    public Result getAllCourseList() {         return Results.success(courseService.list());    }    /**     * 添加课程     * @param course     * @return newCourseId     */    @PostMapping("/add")    public Result add(@RequestBody Course course) {         courseService.save(course);        ListcourseList = courseService.list();        System.out.println(courseList.get(courseList.size() - 1).getId());        return Results.success(courseList.get(courseList.size() - 1).getId());    }    /**     * 修改课程信息     * @param course     * @return     */    @PutMapping("update")    public Result update(@RequestBody Course course) {         if (courseService.updateById(course)) return Results.success();        else return Results.failure("编辑失败");    }    /**     * 删除课程     * @param id     * @return     */    @DeleteMapping("delete/{ id}")    public Result remove(@PathVariable(value = "id") Long id) {         if (courseService.removeById(id)) return Results.success();        else return Results.failure("删除失败");    }    /**     * 选课     * @param courseId     * @param userId     * @return     */    @PutMapping("/selectCourse/{ courseId}/{ userId}")    public Result selectCourse(@PathVariable(value = "courseId") Long courseId,                               @PathVariable(value = "userId") Long userId) {         courseService.selectCourseById(courseId, userId);        return Results.success();    }    /**     * 退选     * @param courseId     * @param userId     * @return     */    @PutMapping("deselectCourse/{ courseId}/{ userId}")    public Result deselectCourse(@PathVariable(value = "courseId") Long courseId,                                 @PathVariable(value = "userId") Long userId) {         courseService.deselectCourseById(courseId, userId);        return Results.success();    }}
package com.course.api.controller;import com.course.api.config.Result.Result;import com.course.api.config.Result.Results;import com.course.api.entity.Menu;import com.course.api.mapper.RoleMenuMapper;import com.course.api.service.Impl.MenuServiceImpl;import com.course.api.service.Impl.RoleServiceImpl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.List;@RestController@RequestMapping("/menu")public class MenuController {     @Autowired    MenuServiceImpl menuService;    @Autowired    RoleServiceImpl roleService;    @Autowired    RoleMenuMapper roleMenuMapper;    /**     * 获取菜单信息     * @param name     * @return     */    @GetMapping("/getTreeMenu")    public Result getTreeMenu(@RequestParam(defaultValue = "") String name) {         return Results.success(menuService.selectTreeMenu(name));    }    /**     * 添加菜单     * @param menu     * @return     */    @PostMapping("/add")    public Result add(@RequestBody Menu menu) {         return Results.success(menuService.save(menu));    }    /**     * 编辑菜单     * @param menu     * @return     */    @PutMapping("/update")    public Result update(@RequestBody Menu menu) {         return Results.success(menuService.updateById(menu));    }    /**     * 删除菜单     * @param id     * @return     */    @DeleteMapping("/delete/{ id}")    public Result remove(@PathVariable(value = "id") Long id) {         return Results.success(menuService.removeById(id));    }    /**     * 获取对应角色的路由信息     * @param userType     * @return     */    @GetMapping("/getRouteList")    public Result getRouteList(@RequestParam String userType) {         Long roleId = roleService.selectRoleId(userType);        ListmenuIds = roleMenuMapper.selectByRoleId(roleId);        Listmenus = menuService.selectTreeMenu("");        // 对查出的所有菜单针对对应角色进行过滤        ListroleMenu = menuService.filterMenu(menus, menuIds);        return Results.success(roleMenu);    }}

五,项目总结

本系统基于前后端分离开发实现,界面设计简洁大方,人机交互方便,适合做课程设计与毕业设计。

未经允许不得转载:好高骛远网 » 前后端分离Springboot+Vue实现课程社区管理系统