当前位置:网站首页>教务管理系统(免费源码获取)
教务管理系统(免费源码获取)
2022-07-01 05:30:00 【azhou的代码园】
项目介绍
本系统使用springboot,mybatis-plus,shiro,lombok等技术,使用json传递数据 使用加盐加密对数据进行保存,前端页面使用vue搭建并打包放在static文件夹中 使用token保存当前用户,当用户登录过之后,一段时间内无需再次登录,但只保存一个角色信息,即:当使用root登录过后,再用student登录,则root用户就没有权限了。
内置用户:
学生
用户名:student
密码:student
教师
用户名:teacher
密码:teacher
教务
用户名:admin
密码:admin
系统管理员
用户名:root
密码:root
运行方式
克隆
运行BackApplication.java
功能
学院管理
人员管理
选课管理
成绩管理
历史课程查询
等等
角色
学生
教师
教务
系统管理员
权限
学生
选课相关
选课
退课
选课结果
历史课程
成绩相关
本学期成绩
历史成绩
教师
成绩管理
录入成绩
查看开课
历史开课
本学期开课
查看课程学生名单
教务
查看课程学生名单
课程管理
增加课程
查看课程
删除课程
修改课程
系统管理员
学期管理
设置当前学期
选课管理
开放选课
关闭选课
学院管理
管理学院
修改学院
删除学院
增加学院
角色管理
角色增加
管理角色
修改角色
删除角色
角色赋权
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("删除失败"));
}
}
}







边栏推荐
- Using nocalhost to develop microservice application on rainbow
- Ebpf cilium practice (2) - underlying network observability
- Vérification simple de la lecture et de l'écriture de qdatastream
- QT waiting box production
- HDU - 1024 Max Sum Plus Plus(DP)
- Understand several related problems in JVM - JVM memory layout, class loading mechanism, garbage collection
- [excel] column operation, which performs specific column for data in a cell, such as text division by comma, colon, space, etc
- LevelDB源码分析之memtable
- Common solutions for mobile terminals
- 如何创建一个根据进度改变颜色的进度条
猜你喜欢

Cockroachdb: the resistant geo distributed SQL database paper reading notes

C WPF uses dockpanel to realize screenshot box

Set集合详细讲解

实战:redux的基本使用

Things generated by busybox

Data consistency between redis and database

Set集合詳細講解

How to meet the requirements of source code confidentiality and source code security management

Rainbond结合NeuVector实践容器安全管理

Chapitre d'apprentissage mongodb: Introduction à la première leçon après l'installation
随机推荐
[excel] column operation, which performs specific column for data in a cell, such as text division by comma, colon, space, etc
实战:redux的基本使用
LRU cache for leveldb source code analysis
Set集合详细讲解
提高企业产品交付效率系列(1)—— 企业应用一键安装和升级
eBPF Cilium实战(2) - 底层网络可观测性
Flutter can refresh data every time the interface comes in
[RootersCTF2019]babyWeb
智慧运维:基于 BIM 技术的可视化管理系统
LevelDB源码分析之LRU Cache
Copier le matériel de conseils de bébé ne peut pas être vide, comment résoudre?
More than one file was found with OS independent path ‘lib/armeabi-v7a/libyuv. so‘.
How to start learning editing? Detailed analysis of zero basis
HDU - 1069 Monkey and Banana(DP+LIS)
Software intelligence: the "world" and "boundary" of AI sentient beings in AAAs system
SSGSSRCSR区别
Rust hello-word
Global and Chinese markets for soft ferrite cores 2022-2028: Research Report on technology, participants, trends, market size and share
In depth understanding of condition source code interpretation and analysis of concurrent programming
[data recovery in North Asia] a data recovery case of raid crash caused by hard disk drop during data synchronization of hot spare disk of RAID5 disk array