基于javaweb+mysql的springboot在线学生选课系统(java+springboot+vue+maven+mysql)

基于javaweb+mysql的springboot在线学生选课系统(java+springboot+vue+maven+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥10

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot在线学生选课系统(java+springboot+vue+maven+mysql)


管理员:

10001	123456

学生:

1803010028	123456

1803010039	123456

1803010045	123456

1803010046	123456

老师:

180014	123456

180019	123456

一、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。

                jsonObject.put("msg", "重置密码失败!");
                jsonObject.put("code", "255");
                return jsonObject.toString();
            } else {
                ResultCode result = new ResultCode(255);
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("msg", "重置密码成功!");
                jsonObject.put("code", "200");
                return jsonObject.toString();
            }
        }
    }

}

    /**
     * 根据账户信息对密码进行更新
     **/
    @CrossOrigin
    @PutMapping("/api/student/updateselfpwd/{xuehao}")
    public StudentUser updateStuPwd(@PathVariable("xuehao") Integer xuehao, @RequestBody StudentUser studentUser) throws Exception {
        studentUser.setXuehao(xuehao);
        studentUser.setPassword(MD5.md5(studentUser.getPassword()));
        return studentUserDAO.saveAndFlush(studentUser);
    }

    /**
     * 获取当前学生账户所在班级的可选课程
     **/
    @CrossOrigin
    @ResponseBody
    @PostMapping("/api/sutdent/getselectionall")
    public List<Map<String, Object>> SelectionALLQuery(@RequestBody Map<String, Object> json) {
        String kechengleixing = String.valueOf(json.get("kechengleibie"));
        String like = String.valueOf(json.get("like"));
        Integer xuehao = Integer.valueOf((String) json.get("xuehao"));
        String xuefen = String.valueOf(json.get("xuefen"));

        // 情况一: 没有任何筛选条件
        if (StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(like) && StringUtils.isEmpty(xuefen)) {
            return curriDAO.findCurriNo(xuehao);
        }
        // 情况二: 模糊查询
        if (!StringUtils.isEmpty(like) && StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(xuefen)) {
            return curriDAO.findCurriLike(xuehao, like);
        }
        // 情况三: 学分
        if (!StringUtils.isEmpty(xuefen) && StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(like)) {
            return curriDAO.findCurriXuefen(xuehao, Integer.valueOf(xuefen));
        }
        // 情况四: 课程类别
        if (!StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(like) && StringUtils.isEmpty(xuefen)) {
            return curriDAO.findCurriLeixing(xuehao, kechengleixing);
        }
        // 情况五: 学分和模糊查询
        if (!StringUtils.isEmpty(xuefen) && !StringUtils.isEmpty(like) && StringUtils.isEmpty(kechengleixing)) {
            return curriDAO.findCurriXandLike(xuehao, like, Integer.valueOf(xuefen));
        }
        // 情况六:学分和课程类型

    /**
     * 根据学号进行删除
     **/
    @Autowired
    StudentUserDAO studentUserDAO;

    @CrossOrigin
    @DeleteMapping("/api/admin/deletestu/{xuehao}")
    public Integer deleteStu(@PathVariable("xuehao") Integer xuehao) {
        return studentUserDAO.deleteByXuehao(xuehao);
    }

    /**
     * 添加学生用户信息
     **/
    @Autowired
    MajorDAO majorDAO;

    @CrossOrigin
    @PostMapping("/api/admin/addstu")
    public StudentUser saveStu(@RequestBody StudentUser studentUser) throws Exception {
        // 设置创建时间
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        studentUser.setCtime(df.format(new Date()));
        studentUser.setPassword(MD5.md5(studentUser.getPassword()));
        return studentUserDAO.save(studentUser);
    }

    /**
     * 根据教师账号进行更新
     ***/
    @CrossOrigin
    @PutMapping("/api/admin/updatetea/{zhanghu}")
    public TeacherUser updateTeaUser(@PathVariable("zhanghu") Integer zhanghu, @RequestBody TeacherUser teacherUser) throws Exception {
        teacherUser.setZhanghu(zhanghu);
        if (teacherUser.getPassword().length() != 64) {
            teacherUser.setPassword(MD5.md5(teacherUser.getPassword()));
        }
        return teacherUserDAO.saveAndFlush(teacherUser);
    }

    /**
     * 根据教师账户进行删除
     **/
        banjiModel.setCtime(df.format(new Date()));
        return banjiDAO.saveAndFlush(banjiModel);
    }

    /**
     * 添加班级信息
     **/
    @CrossOrigin
    @PostMapping("/api/admin/addbanji")
    public BanjiModel addBanjiUser(@RequestBody Map<String, Object> json) {
        String banjiname = (String) json.get("banjiname");
        String majorname = (String) json.get("majorname");
        String content = (String) json.get("content");
        // 获取 已知majorname 的 majorid
        MajorModel majorModel = majorDAO.findByMajorname(majorname);
        BanjiModel banjiModel = new BanjiModel();
        banjiModel.setBanjiname(banjiname);
        banjiModel.setMajorid(majorModel.getMajorid());
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        banjiModel.setCtime(df.format(new Date()));
        banjiModel.setContent(content);
        return banjiDAO.save(banjiModel);
    }

    /**
     * 添加专业信息
     **/
    @CrossOrigin
    @PostMapping("/api/admin/addmajor")
    public MajorModel addMajorUser(@RequestBody Map<String, Object> json) {
        String majorname = String.valueOf(json.get("majorname"));
        String collegename = String.valueOf(json.get("college"));
        String content = String.valueOf(json.get("content"));
        // 获取已知 collegename 的 collegeid
        CollegeModel collegeModel = collegeDAO.findByCollegename(collegename);
        MajorModel majorModel = new MajorModel();
        majorModel.setCollegeid(collegeModel.getCollegeid());
        majorModel.setMajorname(majorname);
        majorModel.setContent(content);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        majorModel.setCtime(df.format(new Date()));
        return majorDAO.save(majorModel);
            String sqltext = "";
            for (int i = 0; i < list.length; i++) {
                Integer[] list1 = studentUserDAO.findByXhinBJ(list[i]);
                for (int j = 0; j < list1.length; j++) {
                    SelectionModel selectionModel = new SelectionModel();
                    selectionModel.setKechengid(kechengid);
                    selectionModel.setXuehao(list1[j]);
                    selectionModel.setCtime(df.format(new Date()));
                    selectionDAO.save(selectionModel);
                }
            }
        }
        return curriModel1;
    }

    /**
     * 获取选课信息 (有对课程名称进行模糊查询和对课程类型进行筛选条件)
     ***/
    @Autowired
    SelectionDAO selectionDAO;

    @CrossOrigin
    @ResponseBody
    @PostMapping("/api/teacher/getselection")
    public List<Map<String, Object>> SelectionQuery(@RequestBody Map<String, Object> json) {
        String kechengteacher = String.valueOf(json.get("kechengteacher"));
        String kechengname = String.valueOf(json.get("kechengname"));
        String kechengleibie = String.valueOf(json.get("kechengleibie"));

        // 情况一:没有筛选条件的情况
        if (StringUtils.isEmpty(kechengname) && StringUtils.isEmpty(kechengleibie)) {
            return selectionDAO.SelectionClass(kechengteacher);
        }
        // 情况二:筛选课程类型为必修,模糊查询没有
        if (StringUtils.isEmpty(kechengname) && kechengleibie.equals("必修")) {
            return selectionDAO.SelectionClassBixiu(kechengteacher);
        }
        // 情况三:筛选课程类型为选修,模糊查询没有
        if (StringUtils.isEmpty(kechengname) && kechengleibie.equals("选修")) {
            return selectionDAO.SelectionClassXuanxiu(kechengteacher);
        }
        // 情况四:有模糊查询条件,无课程类别筛选
    public BanjiModel updateBanjiUser(@PathVariable("banjiid") Integer banjiid, @RequestBody Map<String, Object> json) {
        String banjiname = (String) json.get("banjiname");
        String majorname = (String) json.get("majorname");
        String content = (String) json.get("content");
        // 获取 已知majorname 的 majorid
        MajorModel majorModel = majorDAO.findByMajorname(majorname);
        Integer majorid = majorModel.getMajorid();
        BanjiModel banjiModel = new BanjiModel();
        banjiModel.setBanjiid(banjiid);
        banjiModel.setBanjiname(banjiname);
        banjiModel.setMajorid(majorid);
        banjiModel.setContent(content);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        banjiModel.setCtime(df.format(new Date()));
        return banjiDAO.saveAndFlush(banjiModel);
    }

    /**
     * 添加班级信息
     **/
    @CrossOrigin
    @PostMapping("/api/admin/addbanji")
    public BanjiModel addBanjiUser(@RequestBody Map<String, Object> json) {
        String banjiname = (String) json.get("banjiname");
        String majorname = (String) json.get("majorname");
        String content = (String) json.get("content");
        // 获取 已知majorname 的 majorid
        MajorModel majorModel = majorDAO.findByMajorname(majorname);
        BanjiModel banjiModel = new BanjiModel();
        banjiModel.setBanjiname(banjiname);
        banjiModel.setMajorid(majorModel.getMajorid());
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        banjiModel.setCtime(df.format(new Date()));
        banjiModel.setContent(content);
        return banjiDAO.save(banjiModel);
    }

    /**
     * 添加专业信息
     **/
    @CrossOrigin
    @PostMapping("/api/admin/addmajor")
    public MajorModel addMajorUser(@RequestBody Map<String, Object> json) {
        String majorname = String.valueOf(json.get("majorname"));
        String collegename = String.valueOf(json.get("college"));
        String content = String.valueOf(json.get("content"));
        // 获取已知 collegename 的 collegeid
    @CrossOrigin
    @PostMapping("/api/admin/addtea")
    public TeacherUser saveTea(@RequestBody TeacherUser teacherUser) throws Exception {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        teacherUser.setCtime(df.format(new Date()));
        teacherUser.setPassword(MD5.md5(teacherUser.getPassword()));
        return teacherUserDAO.save(teacherUser);
    }

    /**
     * 对所有教师信息进行动态分页查询
     **/
    @Autowired
    UserService userService;

    @CrossOrigin
    @ResponseBody
    @PostMapping("/api/admin/tealist")
    public Page<TeacherUser> pageQuery(@RequestBody Map<String, Object> json) {
        Integer pageNum = Integer.valueOf((Integer) json.get("pageNum"));
        Integer pageSize = Integer.valueOf((Integer) json.get("pageSize"));
        String college = String.valueOf((String) json.get("college"));
        String major = String.valueOf(json.get("major"));
        String like = String.valueOf(json.get("query"));
        String sex = String.valueOf(json.get("sex"));
        Pageable pageable = PageRequest.of(pageNum - 1, pageSize);
        return userService.getTeaList(like, college, major, sex, pageable);
    }

    /**
     * 根据学号进行删除
     **/
    @Autowired
    StudentUserDAO studentUserDAO;

    @CrossOrigin
    @DeleteMapping("/api/admin/deletestu/{xuehao}")
    public Integer deleteStu(@PathVariable("xuehao") Integer xuehao) {
        return studentUserDAO.deleteByXuehao(xuehao);
    }

    /**
     * 添加学生用户信息
     **/
    @CrossOrigin
    @ResponseBody
    @PostMapping("/api/teacher/studentlist")
    public Page<StudentUser> pageQuery1(@RequestBody Map<String, Object> json) {
        Integer pageNum = Integer.valueOf((Integer) json.get("pageNum"));
        Integer pageSize = Integer.valueOf((Integer) json.get("pageSize"));
        String college = String.valueOf((String) json.get("college"));
        String major = String.valueOf(json.get("major"));
        String banji = String.valueOf(json.get("banji"));
        String like = String.valueOf(json.get("query"));
        String sex = String.valueOf(json.get("sex"));
        Pageable pageable = PageRequest.of(pageNum - 1, pageSize);
        return userService.getStuList(like, college, major, banji, sex, pageable);
    }

    /***
     * 根据学号进行查询
     * **/
    @CrossOrigin
    @GetMapping("/api/teacher/getstu/{xuehao}")
    public StudentUser getUserInfo(@PathVariable("xuehao") Integer xuehao) {
        Optional<StudentUser> optional = Optional.ofNullable(studentUserDAO.findByXuehao(xuehao));
        return optional.orElseGet(StudentUser::new);
    }

    /**
     * 根据学号进行更新
     ***/
    @CrossOrigin
    @PutMapping("/api/teacher/updatestu/{xuehao}")
    public StudentUser updateStuUser(@PathVariable("xuehao") Integer xuehao, @RequestBody StudentUser studentUser) throws Exception {
        studentUser.setXuehao(xuehao);
        if (studentUser.getPassword().length() != 64) {
            studentUser.setPassword(MD5.md5(studentUser.getPassword()));
        }
        return studentUserDAO.saveAndFlush(studentUser);
    }

    /**
     * 获取学院信息
     **/
    @CrossOrigin
    @GetMapping("/api/teacher/getcollegegroup")
    public List<Object> findByCollegeGroup() {
        return studentUserDAO.getByCollegegroup();
    }

    /**
            return curriDAO.findCurriNo(xuehao);
        }
        // 情况二: 模糊查询
        if (!StringUtils.isEmpty(like) && StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(xuefen)) {
            return curriDAO.findCurriLike(xuehao, like);
        }
        // 情况三: 学分
        if (!StringUtils.isEmpty(xuefen) && StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(like)) {
            return curriDAO.findCurriXuefen(xuehao, Integer.valueOf(xuefen));
        }
        // 情况四: 课程类别
        if (!StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(like) && StringUtils.isEmpty(xuefen)) {
            return curriDAO.findCurriLeixing(xuehao, kechengleixing);
        }
        // 情况五: 学分和模糊查询
        if (!StringUtils.isEmpty(xuefen) && !StringUtils.isEmpty(like) && StringUtils.isEmpty(kechengleixing)) {
            return curriDAO.findCurriXandLike(xuehao, like, Integer.valueOf(xuefen));
        }
        // 情况六:学分和课程类型
        if (!StringUtils.isEmpty(xuefen) && !StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(like)) {
            return curriDAO.findCurriXandLeixing(xuehao, Integer.valueOf(xuefen), kechengleixing);
        }
        // 情况七: like 和 课程类型
        if (!StringUtils.isEmpty(like) && !StringUtils.isEmpty(kechengleixing) && StringUtils.isEmpty(xuefen)) {
            return curriDAO.findCurriLandLeibie(xuehao, like, kechengleixing);
        }
        // 情况八: like 学分 课程类型
        if (!StringUtils.isEmpty(like) && !StringUtils.isEmpty(xuefen) && !StringUtils.isEmpty(kechengleixing)) {
            return curriDAO.findCurriAll(xuehao, like, kechengleixing, Integer.valueOf(xuefen));
        }
        return null;
    }

    /**
     * 学生自主选课,将选课信息添加到 选课信息表
     * **/
    /**
     * 添加学生用户信息
     **/
    @CrossOrigin
    @ResponseBody
    @PostMapping("/api/student/addsutclass")
    public SelectionModel addSelection(@RequestBody Map<String, Object> json) {
        String xuehao = String.valueOf(json.get("xuehao"));
        String kechengid = String.valueOf(json.get("kechengid"));
        SelectionModel selectionModel = new SelectionModel();
        selectionModel.setXuehao(Integer.valueOf(xuehao));

/**
 * @Classname TeacherListController
 * @Description 教师端所有接口数据
 * @Created by SHTL
 */
@RestController
public class TeacherController {

    /**
     * 对所有学生信息进行动态分页查询
     **/
    @Autowired
    StudentUserDAO studentUserDAO;
    @Autowired
    UserService userService;
        }
        // 情况二: like
        if (!StringUtils.isEmpty(like) && StringUtils.isEmpty(collegename) && StringUtils.isEmpty(majorname)) {
            return banjiDAO.findBJLike(like);
        }
        // 情况三: 学院
        if (!StringUtils.isEmpty(collegename) && StringUtils.isEmpty(majorname) && StringUtils.isEmpty(like)) {
            return banjiDAO.findBJCollege(collegename);
        }
        // 情况四: 专业
        if (!StringUtils.isEmpty(majorname) && StringUtils.isEmpty(like) && StringUtils.isEmpty(collegename)) {
            return banjiDAO.findBJMajor(majorname);
        }
        // 情况五: like 和 学院
        if (!StringUtils.isEmpty(collegename) && !StringUtils.isEmpty(like) && StringUtils.isEmpty(majorname)) {
            return banjiDAO.findBJLikeAndCollege(like, collegename);
        }
        // 情况六:like 和 专业
        if (!StringUtils.isEmpty(majorname) && !StringUtils.isEmpty(like) && StringUtils.isEmpty(collegename)) {
            return banjiDAO.findBJLikeAndMajor(like, majorname);
        }
        // 情况七: 学院 和 专业
        if (!StringUtils.isEmpty(collegename) && !StringUtils.isEmpty(majorname) && StringUtils.isEmpty(like)) {
            return banjiDAO.findBJCollegeAndMajor(collegename, majorname);
        }
        // 情况八: like 学院 专业 全都有
        if (!StringUtils.isEmpty(like) && !StringUtils.isEmpty(majorname) && !StringUtils.isEmpty(collegename)) {
            return banjiDAO.findBJLAll(like, collegename, majorname);
        }
        return null;
    }

    /**
     * 根据班级 ID删除班级 信息
     **/
    @CrossOrigin
    @DeleteMapping("/api/admin/deletebanji/{banjiid}")
    public Integer deleteBanji(@PathVariable("banjiid") Integer banjiid) {
        return banjiDAO.deleteByBanjiid(banjiid);
    }

        return curriService.getCurriList(kechengteacher, like, kechengleibie, pageable);
    }

    /**
     * 根据课程ID进行查询
     **/
    @CrossOrigin
    @GetMapping("/api/teacher/getcurri/{kechengid}")
    public CurriModel getCurriInfo(@PathVariable("kechengid") Integer kechengid) {
        Optional<CurriModel> optional = Optional.ofNullable(curriDAO.findByKechengid(kechengid));
        return optional.orElseGet(CurriModel::new);
    }

    /**
     * 获取所有上课教室信息
     **/
    @Autowired
    ClassDAO classDAO;

    @CrossOrigin
    @GetMapping("/api/teacher/getclassroomall")
    public List<Object> getClassroomAll() {
        return classDAO.getByClassroom();
    }

    /***
     * 根据课程ID (kechengid) 进行更新
     * **/
    @CrossOrigin
    @PutMapping("/api/teacher/updatecurri/{kechengid}")
    public CurriModel updateCurri(@PathVariable("kechengid") Integer kechengid, @RequestBody CurriModel curriModel) {
        curriModel.setKechengid(kechengid);
        // 修改当前课程类型为必修,添加对应班级的选择该课程
        String leixing = curriModel.getKechengleibie();
        if (leixing.equals("必修")) {
            String[] list = curriModel.getOptionalclass().split(" ");
            String sqltext = "";
            for (int i = 0; i < list.length; i++) {
                Integer[] list1 = studentUserDAO.findByXhinBJ(list[i]);
                for (int j = 0; j < list1.length; j++) {
                    SelectionModel selectionModel = new SelectionModel();
                    selectionModel.setKechengid(kechengid);
                    selectionModel.setXuehao(list1[j]);
                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    selectionModel.setCtime(df.format(new Date()));
                    selectionDAO.save(selectionModel);
                }
            }
            // 删除表中的重复数据
            selectionDAO.deleteRepeat();
        }
        // 情况三:筛选课程类型为选修,模糊查询没有
        if (StringUtils.isEmpty(kechengname) && kechengleibie.equals("选修")) {
            return selectionDAO.SelectionClassXuanxiu(kechengteacher);
        }
        // 情况四:有模糊查询条件,无课程类别筛选
        if (!StringUtils.isEmpty(kechengname) && StringUtils.isEmpty(kechengleibie)) {
            return selectionDAO.SelectionClassLike(kechengteacher, kechengname);
        }
        // 情况五:有模糊查询条件,课程类别筛选为 必修
        if (!StringUtils.isEmpty(kechengname) && kechengleibie.equals("必修")) {
            return selectionDAO.SelectionClassLikeBiXiu(kechengteacher, kechengname);
        }
        // 情况五:有模糊查询条件,课程类别筛选为 选修
        if (!StringUtils.isEmpty(kechengname) && kechengleibie.equals("选修")) {
            return selectionDAO.SelectionClassLikeXuanXiu(kechengteacher, kechengname);
        }
        return null;
    }

    /***
     *获取当前课程的所有选课学生
     * **/
    @CrossOrigin
    @GetMapping("/api/teacher/getallselection/{kechengid}")
    public List<Map<String, Object>> getAllSelection(@PathVariable("kechengid") Integer kechengid) {
        return studentUserDAO.getAllSelection(kechengid);
    }

    /**
     * 根据教师账户获取该教师所有信息
     **/
    @Autowired
    TeacherUserDAO teacherUserDAO;

    @CrossOrigin
    @GetMapping("/api/teacher/getteacherself/{zhanghu}")
    public TeacherUser getSelfTeacher(@PathVariable("zhanghu") Integer zhanghu) {
        return teacherUserDAO.findByZhanghu(zhanghu);
    }

    /**
     * 根据账户信息进行基本信息更新
     **/
    @CrossOrigin
    @PutMapping("/api/teacher/updateself/{zhanghu}")
    public TeacherUser updateTeacherSelf(@PathVariable("zhanghu") Integer zhanghu, @RequestBody TeacherUser teacherUser) {
        teacherUser.setZhanghu(zhanghu);
        return teacherUserDAO.saveAndFlush(teacherUser);
            jsonObject.put("code", "255");
            return jsonObject.toString();
        } else {
            teacherUser.setPassword(MD5.md5(password));
            TeacherUser teacherUser1 = teacherUserDAO.saveAndFlush(teacherUser);
            if (teacherUser1 == null) {
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("msg", "重置密码失败!");
                jsonObject.put("code", "255");
                return jsonObject.toString();
            } else {
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("msg", "重置密码成功!");
                jsonObject.put("code", "200");
                return jsonObject.toString();
            }
        }
    }

}

    public StudentUser updateStuSelf(@PathVariable("xuehao") Integer xuehao, @RequestBody StudentUser studentUser) {
        studentUser.setXuehao(Integer.valueOf(xuehao));
        return studentUserDAO.saveAndFlush(studentUser);
    }

    /**
     * 根据学号对密码进行重置,用于忘记密码之后找回的时候充值密码
     **/
    @CrossOrigin
    @PostMapping("/api/student/resetpwd")
    public Object ResetPassword(@RequestBody Map<String, Object> json) throws Exception {
        String zhanghu = String.valueOf(json.get("zhanghu"));
        String password = String.valueOf(json.get("password"));
        StudentUser studentUser = studentUserDAO.findByXuehao(Integer.valueOf(zhanghu));
        if (studentUser == null) {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("msg", "数据有误 !请检查后重试!");
            jsonObject.put("code", "255");
            return jsonObject.toString();
        } else {
            studentUser.setPassword(MD5.md5(password));
            StudentUser studentUser1 = studentUserDAO.saveAndFlush(studentUser);
            if (studentUser1 == null) {
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("msg", "重置密码失败!");
                jsonObject.put("code", "255");
                return jsonObject.toString();
            } else {
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("msg", "重置密码成功!");
                jsonObject.put("code", "200");
                return jsonObject.toString();
            }
        }
    }

    /**
     * 根据账户信息对密码进行更新
     **/
    @CrossOrigin

    /**
     * 获取专业信息
     **/
    @CrossOrigin
    @GetMapping("/api/teacher/getmajorgroup")
    public List<Object> findByMajorGroup() {
        return studentUserDAO.getByMajorgroup();
    }

    /**
     * 获取班级信息
     **/
    @CrossOrigin
    @GetMapping("/api/teacher/getbanjigroup")
    public List<Object> findByBanjiGroup() {
        return studentUserDAO.getByBanjigroup();
    }

    /**
     * 对课程信息进行分动态查询
     **/
    //分页查询
    @Autowired
    CurriDAO curriDAO;
    @Autowired
    CurriService curriService;

    @CrossOrigin
    @ResponseBody
    @PostMapping("/api/teacher/currilist")
    public Page<CurriModel> pageQuery2(@RequestBody Map<String, Object> json) {
        Integer pageNum = Integer.valueOf((Integer) json.get("pageNum"));
        Integer pageSize = Integer.valueOf((Integer) json.get("pageSize"));
        Integer kechengteacher = Integer.valueOf((String) json.get("kechengteacher"));
        String kechengleibie = String.valueOf((String) json.get("kechengleibie"));
        String like = String.valueOf((String) json.get("query"));

        Pageable pageable = PageRequest.of(pageNum - 1, pageSize);
        return curriService.getCurriList(kechengteacher, like, kechengleibie, pageable);
    }

    /**
     * 根据课程ID进行查询
     **/
    @CrossOrigin
    @GetMapping("/api/teacher/getcurri/{kechengid}")
    public CurriModel getCurriInfo(@PathVariable("kechengid") Integer kechengid) {
        Optional<CurriModel> optional = Optional.ofNullable(curriDAO.findByKechengid(kechengid));
        return optional.orElseGet(CurriModel::new);
    }
@RestController
public class TeacherController {

    /**
     * 对所有学生信息进行动态分页查询
     **/
    @Autowired
    StudentUserDAO studentUserDAO;
    @Autowired
    UserService userService;

    @CrossOrigin
    @ResponseBody
    @PostMapping("/api/teacher/studentlist")
    public Page<StudentUser> pageQuery1(@RequestBody Map<String, Object> json) {
        Integer pageNum = Integer.valueOf((Integer) json.get("pageNum"));
        Integer pageSize = Integer.valueOf((Integer) json.get("pageSize"));
        String college = String.valueOf((String) json.get("college"));
        String major = String.valueOf(json.get("major"));
        String banji = String.valueOf(json.get("banji"));
        String like = String.valueOf(json.get("query"));
        String sex = String.valueOf(json.get("sex"));
        Pageable pageable = PageRequest.of(pageNum - 1, pageSize);
        return userService.getStuList(like, college, major, banji, sex, pageable);
    }

    /***
     * 根据学号进行查询
     * **/
    @CrossOrigin
    @GetMapping("/api/teacher/getstu/{xuehao}")
    public StudentUser getUserInfo(@PathVariable("xuehao") Integer xuehao) {
        Optional<StudentUser> optional = Optional.ofNullable(studentUserDAO.findByXuehao(xuehao));
        return optional.orElseGet(StudentUser::new);
    }

    /**
     * 根据学号进行更新
     ***/
    @CrossOrigin
    @PutMapping("/api/teacher/updatestu/{xuehao}")
    public StudentUser updateStuUser(@PathVariable("xuehao") Integer xuehao, @RequestBody StudentUser studentUser) throws Exception {
        studentUser.setXuehao(xuehao);
        if (studentUser.getPassword().length() != 64) {
            studentUser.setPassword(MD5.md5(studentUser.getPassword()));
        }
     **/
    @CrossOrigin
    @PutMapping("/api/teacher/updateself/{zhanghu}")
    public TeacherUser updateTeacherSelf(@PathVariable("zhanghu") Integer zhanghu, @RequestBody TeacherUser teacherUser) {
        teacherUser.setZhanghu(zhanghu);
        return teacherUserDAO.saveAndFlush(teacherUser);
    }

    /**
     * 根据账户信息对密码进行更新
     **/
    @CrossOrigin
    @PutMapping("/api/teacher/updateselfpwd/{zhanghu}")
    public TeacherUser updateTeacherPwd(@PathVariable("zhanghu") Integer zhanghu, @RequestBody TeacherUser teacherUser) throws Exception {
        teacherUser.setZhanghu(zhanghu);
        teacherUser.setPassword(MD5.md5(teacherUser.getPassword()));
        return teacherUserDAO.saveAndFlush(teacherUser);
    }

    /**
     * 获取所有学院信息
     **/
    @Autowired
    CollegeDAO collegeDAO;

    @CrossOrigin
    @GetMapping("/api/teacher/getcollege")
    public List<CollegeModel> getCollege() {
        return collegeDAO.findAll();
    }

    /**
     * 根据学院名称获取所有该学院下的专业信息
     **/
    @Autowired
    MajorDAO majorDAO;

    @CrossOrigin
    @PostMapping("/api/teacher/getmajor/{collegename}")
    public List<Map<String, Object>> getMajorByCollegeName(@PathVariable("collegename") String collegename) {
        return majorDAO.getMajorByCollegename(collegename);
    }

    /**

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

(1)系统的外部角色有:学生用户、教师用户和管理员。 (2)系统主要用例的文档描述: ①学生管理用例:学生用户可见的功能,包含了选课、退课和查看选课三个用例功能。 ②教师管理用例:教师用户可见的功能,包含了查看学生选课和提交成绩两个用例功能。 ③信息管理用例:管理员可见的功能,这个用例进一步分为三个用例:学生信息管理用例、教师信息管理用例和课程信息管理用例。 ④学生信息管理用例:信息管理用例可见的功能,实现学生信息的管理功能,包含了添加学生、修改学生信息和删除学生三个用例。 ⑤教师信息管理用例:信息管理用例可见的功能,实现教师信息的管理功能,包含了添加教师、修改教师信息和删除教师三个用例。 ⑥课程信息管理用例:信息管理用例可见的功能,实现课程信息的管理功能,包含了添加课程、修改课程信息和删除课程三个用例。 ⑦修改密码用例:所有用户都可见的功能,用于修改用户的密码信息。 (3)系统用例之间的关系: ①学生管理用例与选课、查看选课、退课三用例之间是包含关系。 ②教师管理用例与查看学生选课、提交成绩两用例之间是包含关系。 ③信息管理用例与学生信息管理用例、教师信息管理用例和课程信息管理用例之间是包含关系。 ④学生信息管理用例与添加学生、修改学生信息和删除学生三个用例之间是包含关系。 ⑤教师信息管理用例与添加教师、修改教师信息和删除教师三个用例之间是包含关系。 ⑥课程信息管理用例与添加课程、修改课程信息和删除课程三个用例之间是包含关系。 3.2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值