Bootstrap

教务管理系统(免费源码获取)

项目介绍

本系统使用springboot,mybatis-plus,shiro,lombok等技术,使用json传递数据 使用加盐加密对数据进行保存,前端页面使用vue搭建并打包放在static文件夹中 使用token保存当前用户,当用户登录过之后,一段时间内无需再次登录,但只保存一个角色信息,即:当使用root登录过后,再用student登录,则root用户就没有权限了。

内置用户:

  • 学生

    • 用户名:student

    • 密码:student

  • 教师

    • 用户名:teacher

    • 密码:teacher

  • 教务

    • 用户名:admin

    • 密码:admin

  • 系统管理员

    • 用户名:root

    • 密码:root

运行方式

功能

  • 学院管理

  • 人员管理

  • 选课管理

  • 成绩管理

  • 历史课程查询

  • 等等

角色

  • 学生

  • 教师

  • 教务

  • 系统管理员

权限

  • 学生

    1. 选课相关

    2. 选课

    3. 退课

    4. 选课结果

    5. 历史课程

    6. 成绩相关

    7. 本学期成绩

    8. 历史成绩

  • 教师

    1. 成绩管理

    2. 录入成绩

    3. 查看开课

    4. 历史开课

    5. 本学期开课

    6. 查看课程学生名单

  • 教务

    1. 查看课程学生名单

    2. 课程管理

    3. 增加课程

    4. 查看课程

    5. 删除课程

    6. 修改课程

  • 系统管理员

    1. 学期管理

    2. 设置当前学期

    3. 选课管理

    4. 开放选课

    5. 关闭选课

    6. 学院管理

    7. 管理学院

    8. 修改学院

    9. 删除学院

    10. 增加学院

    11. 角色管理

    12. 角色增加

    13. 管理角色

    14. 修改角色

    15. 删除角色

    16. 角色赋权

package com.tsubaki.controller;


import com.alibaba.fastjson.JSON;
import com.tsubaki.entity.School;
import com.tsubaki.entity.Term;
import com.tsubaki.response.Result;
import com.tsubaki.service.SchoolService;
import com.tsubaki.util.StringUtil;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author tsubaki
 * @since 2022-01-17
 */
@RestController
@RequestMapping("/school")
public class SchoolController {
    @Autowired
    private SchoolService schoolService;

    @ApiOperation("获取所有学院信息")
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    public String getAllSchool(@Nullable String pageNum, @Nullable String pageSize) {
        Integer first = StringUtil.changeString(pageNum);
        Integer second = StringUtil.changeString(pageSize);
        Map<String, Object> map = schoolService.getAll(first,second);
        if ((long)(map.get("total")) == 0){
            return JSON.toJSONString(new Result().setCode(200).setMessage("当前无学院信息"));
        }

        return JSON.toJSONString(new Result().setCode(200).setData(map));
    }

    @ApiOperation("增加学院信息")
//    @RequiresPermissions("school:add")
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String saveSchool(@RequestBody School school) {
        schoolService.saveOrUpdate(school);
        return JSON.toJSONString(new Result().setCode(200).setMessage("添加成功"));
    }

    @ApiOperation("修改学院信息")
    @RequiresPermissions("school:update")
    @RequestMapping(value = "/update", method = RequestMethod.PUT)
    public String setThisTerm(@RequestBody School school) {
        schoolService.saveOrUpdate(school);
        return JSON.toJSONString(new Result().setCode(200).setMessage("修改成功"));
    }

    @ApiOperation("删除学院")
//    @RequiresPermissions("school:delete")
    @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
    public String setThisTerm(Integer schoolId) {
//        schoolService.removeById(schoolId);
        if (schoolService.removeById(schoolId)){
//            System.out.println();
            return JSON.toJSONString(new Result().setCode(200).setMessage("删除成功"));
        }else {
            return JSON.toJSONString(new Result().setCode(500).setMessage("删除失败"));
        }
    }

}

 教务管理系统-源码获取链接https://gitee.com/wuyanzua/blog-applet

;