[Java毕设项目01]基于SpringBoot开发的教务管理系统

1、系统技术栈

  • 后端:Springboot、MyBatis、SpringMVC

  • 前端:html、css、JavaScript、bootstrap、Vue.js

  • JDK版本:1.8

  • 数据库:MySQL 5.7

  • 前后端:不分离

  • 编辑器:IDEA 2022

 2、数据表的设计(只展示管理员、教师、学生的表设计)

管理员信息表

31c7aac1bb6641f7b69a3f90ab0ae4e4.png

教师信息表

bbde8c044c1b4b4daf09c68d529cba5e.png

学生信息表

e3239870662e402ba567fde90bbfdf2b.png

3、 系统界面实现以及部分后台代码实现

  • 登录模块

    ✥界面
    b2ec6fcfc81341fd89ff53c926287822.png
    ✥部分代码

    @RestController
    @RequestMapping
    public class AccountController
    {
        @Resource
        private AdminInfoService adminInfoService;
        @Resource
        private TeacherInfoService teacherInfoService;
        @Resource
        private StudentInfoService studentInfoService;
    
        /**
         * 登录
         * @param user
         * @param request
         * @return
         */
        @PostMapping("/login")
        public Result login(@RequestBody Account user, HttpServletRequest request)
        {
            //检验数据有没有填写
            if (ObjectUtil.isEmpty(user.getAccountNum()) || ObjectUtil.isEmpty(user.getPassword()) || ObjectUtil.isEmpty(user.getLevel()))
            {
                return Result.error("-1","请完善登录信息");
            }
            //判断身份
            Integer level = user.getLevel();
           // System.out.println("权限为:"+level);
    
            Account loginUser = new Account();
            //管理员
            if (1 == level)
            {
                loginUser = adminInfoService.login(user.getAccountNum(),user.getPassword());
                //System.out.println("数据为:"+loginUser);
            }
            //老师
            if (2 == level)
            {
                loginUser = teacherInfoService.login(user.getAccountNum(),user.getPassword());
            }
            //学生
            if (3 == level)
            {
                loginUser = studentInfoService.login(user.getAccountNum(),user.getPassword());
            }
            //存一份在session里面
            request.getSession().setAttribute("user",loginUser);
            return Result.success(loginUser);
        }
    
      return Result.success();
        }

  • 管理员模块

    ✥界面
    298474ae70df4e4b96a8b0037b1f6614.png
    ✥部分代码

    public class AdminInfoController
    {
        @Resource
        private AdminInfoService adminInfoService;
    
        //添加管理员
        @PostMapping
        public Result add(@RequestBody AdminInfo adminInfo)
        {
            adminInfoService.add(adminInfo);
            return Result.success();
        }
        //更新管理员信息
        @PutMapping
        public Result update(@RequestBody AdminInfo adminInfo, HttpServletRequest request)
        {
            adminInfoService.update(adminInfo);
            return Result.success();
        }
        //根据id删除
        @DeleteMapping("/{id}")
        public Result deleteById(@PathVariable Long id)
        {
             adminInfoService.deleteById(id);
            return Result.success();
        }
        //分页查询
        @GetMapping("/page")
        public Result findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize)
        {
            PageInfo<AdminInfo> info = adminInfoService.findPage(pageNum,pageSize);
            return Result.success(info);
        }
        //根据用户名模糊查询
        @GetMapping("/page/{name}")
        public Result findPageName(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @PathVariable String name)
        {
            PageInfo<AdminInfo> info = adminInfoService.findPageName(pageNum,pageSize,name);
            return Result.success(info);
        }
    }
  • 教师模块

    ✥界面
    28161795b6434e1d83e396745cd3ab58.png
    ✥部分代码

    @PostMapping("/xuanke")
    public Result xuanke(@RequestBody ClassInfo classInfo, HttpServletRequest request)
    {
    
        //接收数据
        Account user = (Account) request.getSession().getAttribute("user");
        if (ObjectUtil.isEmpty(user))
        {
            throw new CustomException("-1","登录已失效,请重新登录!");
        }
        //判断是否已选
        XuankeInfo info = xuankeInfoService.find(classInfo.getName(), classInfo.getTeacherId(), user.getId());
        if(ObjectUtil.isNotEmpty(info))
        {
            throw new CustomException("-1","你选择过该课程,请选择其他课程!");
        }
        //判断课程是否选满
        if (classInfo.getKaiban().equals(classInfo.getYixuan()))
        {
            throw new CustomException("-1","该课程选课人数已满,请选择其他课程!");
        }
        //塞一份课程信息给选课表里
        XuankeInfo xuankeInfo = new XuankeInfo();
        BeanUtils.copyProperties(classInfo,xuankeInfo);
        xuankeInfo.setId(null);
        //补全选课表里剩下的字段
        xuankeInfo.setStudentId(user.getId());
        xuankeInfo.setStatus("待开课");
        xuankeInfoService.add(xuankeInfo);
        //选课表的已选人数加1
        classInfo.setYixuan(classInfo.getYixuan()+1);
        classInfoService.update(classInfo);
    
        return Result.success();
    }
    
    @PostMapping
    public Result add(@RequestBody ClassInfo classInfo)
    {
        classInfoService.add(classInfo);
        return Result.success();
    }
    
    @DeleteMapping("/{id}")
    public Result deleteById(@PathVariable Long id)
    {
        classInfoService.deleteById(id);
        return Result.success();
    }
    
    @PutMapping
    public Result update(@RequestBody ClassInfo classInfo)
    {
        classInfoService.update(classInfo);
        return Result.success();
    }
    
    @GetMapping("/page")
    public Result findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize)
    {
        PageInfo<ClassInfo> info = classInfoService.findPage(pageNum,pageSize);
        return Result.success(info);
    }
    
    @GetMapping("/page/{name}")
    public Result findPageName(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @PathVariable String name)
    {
        PageInfo<ClassInfo> info = classInfoService.findPageName(pageNum,pageSize,name);
        return Result.success(info);
    }
  • 学生模块

    ✥界面
    7e907e1e9f2442bb999e148c02d8f1dd.png
    ✥部分代码

@RestController
@RequestMapping("/xuankeInfo")
public class XuankeInfoController
{
    @Resource
    private XuankeInfoService xuankeInfoService;

    /**
     * 查询所有
     * @param request
     * @return
     */
    @GetMapping
    public Result findAll(HttpServletRequest request)
    {
        List<XuankeInfo> list =  xuankeInfoService.findAll(request);
        return Result.success(list);
    }

    /**
     * 根据id删除
     * @param id
     * @return
     */
    @DeleteMapping("/{id}")
    public Result deleteById(@PathVariable Long id)
    {
        xuankeInfoService.deleteById(id);
        return Result.success();
    }

    /**
     * 更新
     * @param xuankeInfo
     * @return
     */
    @PutMapping
    public Result update(@RequestBody XuankeInfo xuankeInfo)
    {
        xuankeInfoService.update(xuankeInfo);
        return Result.success();
    }
}

  • 学院模块

    ✥界面
    c8959cb7b16e405d842ca1555f63b727.png
    ✥部分代码

    @RestController
    @RequestMapping("/collegeInfo")
    public class CollegeInfoController
    {
        @Resource
        private CollegeInfoService collegeInfoService;
    
        @GetMapping
        public Result findAll()
        {
           List<CollegeInfo> list =  collegeInfoService.findAll();
            return Result.success(list);
        }
    
        @PostMapping
        public Result add(@RequestBody CollegeInfo collegeInfo)
        {
            collegeInfoService.add(collegeInfo);
            return Result.success();
        }
    
        @DeleteMapping("/{id}")
        public Result deleteById(@PathVariable Long id)
        {
            collegeInfoService.deleteById(id);
            return Result.success();
        }
    
        @PutMapping
        public Result update(@RequestBody CollegeInfo collegeInfo)
        {
            collegeInfoService.update(collegeInfo);
            return Result.success();
        }
    
        @GetMapping("/page")
        public Result findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize)
        {
            PageInfo<CollegeInfo> info = collegeInfoService.findPage(pageNum,pageSize);
            return Result.success(info);
        }
    
        //模糊查询
        @GetMapping("/page/{name}")
        public Result findPageName(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @PathVariable String name)
        {
            PageInfo<CollegeInfo> info = collegeInfoService.findPageName(pageNum,pageSize,name);
            return Result.success(info);
        }
    }

  • 专业模块

    ✥界面
    27ebcced1d484f3f86b71e2c738148c3.png
    ✥部分代码

    @RestController
    @RequestMapping("/specialityInfo")
    public class SpecialityInfoController
    {
        @Resource
        private SpecialityInfoService specialityInfoService;
    
        @GetMapping
        public Result findAll()
        {
            List<SpecialityInfo> list =  specialityInfoService.findAll();
            return Result.success(list);
        }
    
        @PostMapping
        public Result add(@RequestBody SpecialityInfo specialityInfo)
        {
            specialityInfoService.add(specialityInfo);
            return Result.success();
        }
    
        @DeleteMapping("/{id}")
        public Result deleteById(@PathVariable Long id)
        {
            specialityInfoService.deleteById(id);
            return Result.success();
        }
    
        @PutMapping
        public Result update(@RequestBody SpecialityInfo specialityInfo)
        {
            specialityInfoService.update(specialityInfo);
            return Result.success();
        }
    
        @GetMapping("/page")
        public Result findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize)
        {
            PageInfo<SpecialityInfo> info = specialityInfoService.findPage(pageNum,pageSize);
            return Result.success(info);
        }
    
        @GetMapping("/page/{name}")
        public Result findPageName(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @PathVariable String name)
        {
            PageInfo<SpecialityInfo> info = specialityInfoService.findPageName(pageNum,pageSize,name);
            return Result.success(info);
        }
    
    }

4、总结

  1. 管理员:管理员可以看到以上所有模块,管理所有模块信息

  2. 教师:教师可以看到学院信息、专业信息,但只能查看;可以查看自己的课程信息;可以查看自己课程的选课信息

  3. 学生:学生可以查看学院、专业信息;可以对已有的课程进行选课,可以再选课信息模块对已选的课程进行取消。如果某个课程被删除,那么已选该课程的选课信息状态变成已取消

  4. 项目所有展示的功能已经实现,大家也可以根据实际情况添加几个自己喜欢的模块

  5. 需要源码的请私信我获取,这里发不了压缩包,希望对你有所帮助

     

    我是猪猪侠,一个爱写代码的码农,期待我们下篇再会!!!

    4f6babf375b04d0f9d6a46257df426f6.gif

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值