前后端分離Springboot+Vue實(shí)現(xiàn)課程社區(qū)管理系統(tǒng)
項(xiàng)目編號(hào):BS-XX-141
一,項(xiàng)目簡(jiǎn)介
本項(xiàng)目主要實(shí)現(xiàn)一個(gè)基于課程選課的社區(qū)交流系統(tǒng),主要的業(yè)務(wù)背景為每個(gè)老師可以自己開設(shè)相應(yīng)的選修課,并指定可以選修的人數(shù),學(xué)生登陸系統(tǒng)后可以進(jìn)行選課,并可以在線針對(duì)自己的選課進(jìn)行在線討論,點(diǎn)贊等互動(dòng)行為。管理員則主要是對(duì)基本信息的相關(guān)管理,比如用戶和角色、權(quán)限管理等,本系統(tǒng)有著完備的權(quán)限管理控制系統(tǒng),可以根據(jù)需要自定角色并分配相應(yīng)的權(quán)限。系統(tǒng)采用前后端分離開發(fā)的方式來(lái)實(shí)現(xiàn)。
二,環(huán)境介紹
語(yǔ)言環(huán)境:Java:? jdk1.8
數(shù)據(jù)庫(kù):Mysql: mysql5.7
應(yīng)用服務(wù)器:Tomcat:? tomcat8.5.31
開發(fā)工具:IDEA或eclipse
前端技術(shù):jsp+easyui+ajax+jquery
后端技術(shù):spring+springmvc+mybatis+定時(shí)任務(wù)
三,系統(tǒng)展示
下面展示一下系統(tǒng)的主要功能:
登陸頁(yè)面:

用戶注冊(cè)

用戶管理

菜單管理

角色管理

權(quán)限分配
個(gè)人信息

學(xué)生登陸系統(tǒng)
選課

參與所選課程的社區(qū)討論
老師登陸系統(tǒng)
開設(shè)課程

參與社區(qū)討論

四,核心代碼展示
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.*;public class CommentController { ? ?
? ?CommentServiceImpl commentService; ? ?/**
? ? * 查詢當(dāng)前課程的論壇數(shù)據(jù)
? ? * @param courseId
? ? * @return List
? ? */
? ?
? ?public Result ?getCommentList( { ? ? ? ? Long courseId)return Results.success(commentService.getCommentInfo(courseId));
? ?} ? ?/**
? ? * 添加評(píng)論
? ? * @param comment
? ? * @return
? ? */
? ?
? ?public Result add( {
? ? ? ?commentService.addComment(comment); ? ? ? ? Comment comment)return Results.success();
? ?} ? ?/**
? ? * 刪除評(píng)論
? ? * @param id
? ? * @return
? ? */
? ?
? ?public Result remove( {
? ? ? ?commentService.removeById(id); ? ? ? ? Long 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.*;public class CommentThumbsController { ? ?
? ?CommentThumbsImpl commentThumbsService; ? ?/**
? ? * 獲取用戶點(diǎn)贊的帖子
? ? * @param userId
? ? * @return
? ? */
? ?
? ?public Result getLikeComments( { ? ? ? ? Long userId)return Results.success(commentThumbsService.list(new QueryWrapper<CommentThumbs>().eq("user_id", userId)));
? ?} ? ?/**
? ? * 點(diǎn)贊
? ? * @param commentThumbs
? ? * @return
? ? */
? ?
? ?public Result giveThumbs( {
? ? ? ?commentThumbsService.addThumbs(commentThumbs); ? ? ? ? CommentThumbs commentThumbs)return Results.success();
? ?} ? ?/**
? ? * 取消點(diǎn)贊
? ? * @param id
? ? * @return
? ? */
? ?
? ?public Result cancel( {
? ? ? ?commentThumbsService.cancelThumbs(id); ? ? ? ? Long 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;public class CourseController { ? ?
? ?CourseServiceImpl courseService; ? ?/**
? ? * 獲取課程分頁(yè)數(shù)據(jù)
? ? * @param page
? ? * @param pageSize
? ? * @param teacherId
? ? * @return
? ? */
? ?
? ?public Result getCourseList(int page, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int pageSize, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Long teacherId) {
? ? ? ?IPage<Course> courseIPage = new Page<>(page, pageSize);
? ? ? ?QueryWrapper<Course> queryWrapper = new QueryWrapper<>(); ? ? ? ?if (teacherId > 0) {
? ? ? ? ? ?queryWrapper.eq("teacher_id", teacherId);
? ? ? ?} ? ? ? ?return Results.success(courseService.page(courseIPage, queryWrapper));
? ?} ? ?/**
? ? * 獲取全部課程信息
? ? * @return
? ? */
? ?
? ?public Result getAllCourseList() { ? ? ? ?return Results.success(courseService.list());
? ?} ? ?/**
? ? * 添加課程
? ? * @param course
? ? * @return newCourseId
? ? */
? ?
? ?public Result add( {
? ? ? ?courseService.save(course);
? ? ? ?List<Course> courseList = courseService.list();
? ? ? ?System.out.println(courseList.get(courseList.size() - Course course)1).getId()); ? ? ? ?return Results.success(courseList.get(courseList.size() - 1).getId());
? ?} ? ?/**
? ? * 修改課程信息
? ? * @param course
? ? * @return
? ? */
? ?
? ?public Result update( { ? ? ? ? Course course)if (courseService.updateById(course)) return Results.success(); ? ? ? ?else return Results.failure("編輯失敗");
? ?} ? ?/**
? ? * 刪除課程
? ? * @param id
? ? * @return
? ? */
? ?
? ?public Result remove( { ? ? ? ? Long id)if (courseService.removeById(id)) return Results.success(); ? ? ? ?else return Results.failure("刪除失敗");
? ?} ? ?/**
? ? * 選課
? ? * @param courseId
? ? * @param userId
? ? * @return
? ? */
? ?
? ?public Result selectCourse( {
? ? ? ?courseService.selectCourseById(courseId, userId); ? ? ? ? Long courseId, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Long userId)return Results.success();
? ?} ? ?/**
? ? * 退選
? ? * @param courseId
? ? * @param userId
? ? * @return
? ? */
? ?
? ?public Result deselectCourse( {
? ? ? ?courseService.deselectCourseById(courseId, userId); ? ? ? ? Long courseId, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Long 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;public class MenuController { ? ?
? ?MenuServiceImpl menuService; ? ?
? ?RoleServiceImpl roleService; ? ?
? ?RoleMenuMapper roleMenuMapper; ? ?/**
? ? * 獲取菜單信息
? ? * @param name
? ? * @return
? ? */
? ?
? ?public Result getTreeMenu( { ? ? ? ? String name)return Results.success(menuService.selectTreeMenu(name));
? ?} ? ?/**
? ? * 添加菜單
? ? * @param menu
? ? * @return
? ? */
? ?
? ?public Result add( { ? ? ? ? Menu menu)return Results.success(menuService.save(menu));
? ?} ? ?/**
? ? * 編輯菜單
? ? * @param menu
? ? * @return
? ? */
? ?
? ?public Result update( { ? ? ? ? Menu menu)return Results.success(menuService.updateById(menu));
? ?} ? ?/**
? ? * 刪除菜單
? ? * @param id
? ? * @return
? ? */
? ?
? ?public Result remove( { ? ? ? ? Long id)return Results.success(menuService.removeById(id));
? ?} ? ?/**
? ? * 獲取對(duì)應(yīng)角色的路由信息
? ? * @param userType
? ? * @return
? ? */
? ?
? ?public Result getRouteList( { ? ? ? ? String userType)Long roleId = roleService.selectRoleId(userType);
? ? ? ?List<Long> menuIds = roleMenuMapper.selectByRoleId(roleId);
? ? ? ?List<Menu> menus = menuService.selectTreeMenu(""); ? ? ? ?// 對(duì)查出的所有菜單針對(duì)對(duì)應(yīng)角色進(jìn)行過濾
? ? ? ?List<Menu> roleMenu = menuService.filterMenu(menus, menuIds); ? ? ? ?return Results.success(roleMenu);
? ?}
}
五,項(xiàng)目總結(jié)
本系統(tǒng)基于前后端分離開發(fā)實(shí)現(xiàn),界面設(shè)計(jì)簡(jiǎn)潔大方,人機(jī)交互方便,適合做課程設(shè)計(jì)與畢業(yè)設(shè)計(jì)。