基于javaweb+mysql的springboot基于遗传算法学校排课系统(java+springboot+maven+mybatis+vue+mysql)

基于javaweb+mysql的springboot基于遗传算法学校排课系统(java+springboot+maven+mybatis+vue+mysql)

运行环境

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

开发工具

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

前端:WebStorm/VSCode/HBuilderX等均可

适用

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

功能说明

基于javaweb+mysql的SpringBoot基于遗传算法学校排课系统(java+springboot+maven+mybatis+vue+mysql)

一、项目简述本系统功能包括: 排课管理,课程管理,讲师管理,班级管理,学生管理,教学资料,学习文档,在线测试,教材列表,教学设计,帮助中心等等功能。

二、项目运行 环境配置:

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

项目技术:

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

        System.out.println("gradeNo = " + gradeNo);
        Map<String, Object> map = new HashMap();
        List<ClassInfoVO> classInfoVOS = null;
        if (gradeNo.equals("")) {
            classInfoVOS = classInfoDao.queryClassInfos((page - 1) * limit, limit);
            int total = classInfoDao.count2();
            map.put("records", classInfoVOS);
            map.put("total", total);
        } else {
            classInfoVOS = classInfoDao.queryClassInfo((page - 1) * limit, limit, gradeNo);
            int total = classInfoDao.count1(gradeNo);
            map.put("records", classInfoVOS);
            map.put("total", total);
        }
        return ServerResponse.ofSuccess(map);
    }

    // TODO 编辑班级

    // TODO 删除班级

    /**
     * 添加班级
     * @param classAddVO
     * @return
     */
    @PostMapping("/addclassinfo")
    public ServerResponse addClass(@RequestBody ClassAddVO classAddVO) {
        System.out.println(classAddVO);
        ClassInfo c = new ClassInfo();
        c.setRemark(classAddVO.getGradeNo());
        c.setClassNo(classAddVO.getClassNo());
        c.setClassName(classAddVO.getClassName());
        c.setTeacher(classAddVO.getId());
        c.setNum(classAddVO.getNum());
        boolean b = classInfoService.save(c);
        if (b) {
            return ServerResponse.ofSuccess("添加班级成功");
        }
        return ServerResponse.ofError("添加班级失败");
    }

    /**
     * 上传讲师证件
     * @param id
     * @param file
     * @return
     */
    @PostMapping("/upload/{id}")
    public ServerResponse uploadLicense(@PathVariable("id") Integer id, MultipartFile file) {
        Map<String, Object> map = AliyunUtil.upload(file, "license");
        String license = (String) map.get("url");
        Teacher t = teacherService.getById(id);
        t.setLicense(license);
        boolean b = teacherService.updateById(t);
        if (b) {
            return ServerResponse.ofSuccess("上传证件成功");
        }
        return ServerResponse.ofError("上传证件失败");
    }

    /**
     * 讲师登录
     * @param userLoginRequest
     * @return
     */
    @PostMapping("/login")
    public ServerResponse teacherLogin(@RequestBody UserLoginRequest userLoginRequest) {
        Map<String, Object> map = new HashMap<>();
        QueryWrapper<Teacher> wrapper = new QueryWrapper<>();
        wrapper.eq("teacher_no", userLoginRequest.getUsername());
        // 先查询是否有该账号
        Teacher teacher2 = teacherService.getOne(wrapper);
        if (teacher2 == null) {
            return ServerResponse.ofError("账号不存在");
        } else if (teacher2.getStatus() != 0) {
            return ServerResponse.ofError("账号状态异常,请联系管理员");
        }
        // 登录,使用编号登录
        Teacher teacher = teacherService.teacherLogin(userLoginRequest.getUsername(), userLoginRequest.getPassword());

     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteClassroomById(@PathVariable("id") Integer id) {
        boolean b = classroomService.removeById(id);
        if (b) {
            return ServerResponse.ofSuccess("删除成功");
        }
        return ServerResponse.ofError("删除失败");
    }

    /**
     * 根据id查询教室
     * @param id
     * @return
     */
    @GetMapping("/query/{id}")
    public ServerResponse queryClassroomByID(@PathVariable("id") Integer id) {

        return ServerResponse.ofSuccess(classroomService.getById(id));
    }

    /**
     * 更新教室
     * @param classroom
     * @return
     */
    @PostMapping("/modify")
    public ServerResponse modifyClassroom(@RequestBody Classroom classroom) {

        return classroomService.updateById(classroom) ? ServerResponse.ofSuccess("更新成功") : ServerResponse.ofError("更新失败");
    }

}

package com.lyk.coursearrange.controller;

/**
 * 网课名称,每一个网课下面有1到多个视频
    }

    /**
     * 根据姓名关键字搜索讲师
     * @return
     */
    @GetMapping("/search/{page}/{keyword}")
    public ServerResponse searchTeacher(@PathVariable("keyword") String keyword, @PathVariable("page") Integer page,
                                        @RequestParam(defaultValue = "10") Integer limit) {
        QueryWrapper<Teacher> wrapper = new QueryWrapper<>();
        wrapper.orderByDesc("update_time");
        wrapper.like(!StringUtils.isEmpty(keyword), "realname", keyword);
        Page<Teacher> pages = new Page<>(page, limit);
        IPage<Teacher> iPage = teacherService.page(pages, wrapper);
        if (page != null) {
            return ServerResponse.ofSuccess(iPage);
        }
        return ServerResponse.ofError("查询失败!");
    }

    /**
     * 管理员根据ID删除讲师
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteTeacher(@PathVariable Integer id) {
        boolean b = teacherService.removeById(id);
        if(b) {
            return ServerResponse.ofSuccess("删除成功!");
        }
        return ServerResponse.ofError("删除失败!");
    }

    /**
     * 用于给讲师生成讲师编号,返回一个讲师编号
     * @return
     */
    @GetMapping("/no")
    public ServerResponse getTeacherNo() {

        List<Teacher> teacherList = teacherService.list(new QueryWrapper<Teacher>().select().orderByDesc("teacher_no"));

        // 返回最大编号的讲师编号再+1给新添加的讲师
        return ServerResponse.ofSuccess(teacherList.get(0).getTeacherNo());
    }

    /**
     * 管理员添加讲师,默认密码是123456
     * @param t
     * @return
     */
    @PostMapping("/add")
    public ServerResponse addTeacher(@RequestBody TeacherAddRequest t) {

}
package com.lyk.coursearrange.controller;

/**
 */
@RestController
public class ClassTaskController {

    Logger log = LoggerFactory.getLogger(ClassTaskController.class);

    @Autowired
    private ClassTaskService classTaskService;

    /**
     * 查询开课任务
     */
    @GetMapping("/classtask/{page}/{semester}")
    public ServerResponse queryClassTask(@PathVariable("page") Integer page,
                                         @PathVariable("semester") String semester,
                                         @RequestParam(defaultValue = "10") Integer limit) {
        Page<ClassTask> pages = new Page<>(page, limit);
        QueryWrapper<ClassTask> wrapper = new QueryWrapper<ClassTask>().eq("semester", semester);
        IPage<ClassTask> ipage = classTaskService.page(pages, wrapper);

        if (ipage != null) {
            return ServerResponse.ofSuccess(ipage);
        }
        return ServerResponse.ofError("查询开课任务失败!");
    }

    @Autowired
    private StudentService studentService;

    @Autowired
    private TokenService tokenService;

    /**
     *  学生加入班级,只有加入班级后才可以看到本班的课表,文档
     * @param id 学生id
     * @param classNo 班级编号
     * @return
     */
    @PostMapping("/join/{id}/{classNo}")
    public ServerResponse joinClass(@PathVariable("id") Integer id, @PathVariable("classNo") String classNo) {
        // TODO 学生加入年级,学生查看本班的文档(文档控制器中),查看自己所在的班级课表
        Student student = studentService.getById(id);
        student.setClassNo(classNo);
        boolean b = studentService.saveOrUpdate(student);
        if (b) {
            return ServerResponse.ofSuccess("加入班级成功");
        }
        return ServerResponse.ofError("加入班级失败");
    }

    /**
     * 学生登录
     * @param studentLoginRequest
     * @return
     */
    @PostMapping("/login")
    public ServerResponse studentLogin(@RequestBody StudentLoginRequest studentLoginRequest) {
        Map<String, Object> map = new HashMap<>();
        // 先判断是否有该学号,该学生
        QueryWrapper<Student> wrapper = new QueryWrapper<Student>().eq("student_no", studentLoginRequest.getUsername());
        // 查询是否有该学生
        Student student2 = studentService.getOne(wrapper);

        if (student2 == null) {
            return ServerResponse.ofError("学生账号不存在!");

            OutputStream os = response.getOutputStream();
            int i = bis.read(buffer);
            while (i != -1) {
                os.write(buffer, 0, i);
                i = bis.read(buffer);
            }
            log.info("文件下载成功");
        }
        catch (Exception e) {
            e.printStackTrace();
            log.info("文件下载失败: " + e.getMessage());
        } finally {
            if (bis != null) {
                try {
                    bis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * 如果没有模板文件就创建模板文件
     */
    private void createTemplate() {
        ExportParams params = new ExportParams();
        params.setTitle("课程任务导入模板(请严格对照数据库信息填写)");
        params.setSheetName("课程任务模板");
        List<ClassTask> list = new ArrayList();
        Workbook workbook = ExcelExportUtil.exportExcel(params, ClassTask.class, list);
        try {
            // 输出模板到本地
            FileOutputStream fos = new FileOutputStream("D:/arrange/excel/课程任务导入模板.xls");
            workbook.write(fos);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

/**
 * description: 教材信息
 */
@RestController
@RequestMapping("/courseinfo")
public class CourseInfoController {

    @Autowired
    private CourseInfoService cis;

    /**
     * 分页查询所有的教材信息
     * @param page
     * @param limit
     * @return
     */
    @GetMapping("/{page}")
    public ServerResponse queryCourseInfo(@PathVariable("page") Integer page,
                                          @RequestParam(defaultValue = "10") Integer limit) {

        Page<CourseInfo> pages = new Page<>(page, limit);
        QueryWrapper<CourseInfo> wrapper = new QueryWrapper<CourseInfo>().orderByAsc("course_no");
        IPage<CourseInfo> ipage = cis.page(pages, wrapper);
        return ServerResponse.ofSuccess(ipage);
    }

    /**
     * 添加教材信息
     * @param cinfo
     * @return
     */
    @PostMapping("/add")
    public ServerResponse addCourseInfo(@RequestBody CourseInfo cinfo) {
        boolean b = cis.saveOrUpdate(cinfo);
        if (b) {
            return ServerResponse.ofSuccess("添加成功");
        }
        return ServerResponse.ofError("添加失败");
    }

    }

}
package com.lyk.coursearrange.controller;

/**
 */
@RestController
@RequestMapping("/admin")
public class AdminController {

    @Autowired
    private AdminService adminService;
    @Autowired
    private TeacherService teacherService;
    @Autowired
    private TokenService tokenService;

    /**
     * 管理员登录
    }

    /**
     * 分页查询讲师
     * @param page
     * @param limit
     * @return
     */
    @GetMapping("/query/{page}")
    public ServerResponse queryTeacher(@PathVariable(value = "page") Integer page,
                                       @RequestParam(defaultValue = "10") Integer limit) {
        Page<Teacher> pages = new Page<>(page, limit);
        QueryWrapper<Teacher> wrapper = new QueryWrapper<Teacher>().orderByDesc("teacher_no");
        IPage<Teacher> iPage = teacherService.page(pages, wrapper);
        return ServerResponse.ofSuccess(iPage);
    }

    /**
     * 根据姓名关键字搜索讲师
     * @return
     */
    @GetMapping("/search/{page}/{keyword}")
    public ServerResponse searchTeacher(@PathVariable("keyword") String keyword, @PathVariable("page") Integer page,
                                        @RequestParam(defaultValue = "10") Integer limit) {
        QueryWrapper<Teacher> wrapper = new QueryWrapper<>();
        wrapper.orderByDesc("update_time");
        wrapper.like(!StringUtils.isEmpty(keyword), "realname", keyword);
        Page<Teacher> pages = new Page<>(page, limit);
        IPage<Teacher> iPage = teacherService.page(pages, wrapper);
        if (page != null) {
            return ServerResponse.ofSuccess(iPage);
        }
        return ServerResponse.ofError("查询失败!");
    }

    /**
     * 管理员根据ID删除讲师
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteTeacher(@PathVariable Integer id) {
        boolean b = teacherService.removeById(id);
        if(b) {
            return ServerResponse.ofSuccess("删除成功!");
        }
        return ServerResponse.ofError("删除失败!");
    }

                                        @RequestParam(defaultValue = "10") Integer limit) {
        QueryWrapper<Teacher> wrapper = new QueryWrapper<>();
        wrapper.orderByDesc("update_time");
        wrapper.like(!StringUtils.isEmpty(keyword), "realname", keyword);
        Page<Teacher> pages = new Page<>(page, limit);
        IPage<Teacher> iPage = teacherService.page(pages, wrapper);
        if (page != null) {
            return ServerResponse.ofSuccess(iPage);
        }
        return ServerResponse.ofError("查询失败!");
    }

    /**
     * 管理员根据ID删除讲师
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteTeacher(@PathVariable Integer id) {
        boolean b = teacherService.removeById(id);
        if(b) {
            return ServerResponse.ofSuccess("删除成功!");
        }
        return ServerResponse.ofError("删除失败!");
    }

    /**
     * 用于给讲师生成讲师编号,返回一个讲师编号
     * @return
     */
    @GetMapping("/no")
    public ServerResponse getTeacherNo() {

        List<Teacher> teacherList = teacherService.list(new QueryWrapper<Teacher>().select().orderByDesc("teacher_no"));

        // 返回最大编号的讲师编号再+1给新添加的讲师
        return ServerResponse.ofSuccess(teacherList.get(0).getTeacherNo());
    }

    /**
     * 管理员添加讲师,默认密码是123456
     * @param t
        c.setCapacity(car.getCapacity());
        c.setClassroomNo(car.getClassroomNo());
        c.setTeachbuildNo(car.getTeachbuildNo());
        c.setClassroomName(car.getClassroomName());
        c.setRemark(car.getRemark());
        boolean b = classroomService.save(c);
        if (b) {
            return ServerResponse.ofSuccess("添加成功");
        }
        return ServerResponse.ofError("添加失败");
    }

    /**
     * 删除教室
     * @param id
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteClassroomById(@PathVariable("id") Integer id) {
        boolean b = classroomService.removeById(id);
        if (b) {
            return ServerResponse.ofSuccess("删除成功");
        }
        return ServerResponse.ofError("删除失败");
    }

    /**
     * 根据id查询教室
     * @param id
     * @return
     */
    @GetMapping("/query/{id}")
    public ServerResponse queryClassroomByID(@PathVariable("id") Integer id) {

        return ServerResponse.ofSuccess(classroomService.getById(id));
    }

    /**
     * 更新教室
     * @param classroom
     * @return
     */
    @PostMapping("/modify")
    public ServerResponse modifyClassroom(@RequestBody Classroom classroom) {

        return classroomService.updateById(classroom) ? ServerResponse.ofSuccess("更新成功") : ServerResponse.ofError("更新失败");
    }

}
        // 得到已经使用了的教室编号
        Set<String> usedClaassroom = new HashSet<>();
        for (int i = 0; i < coursePlanList.size(); i++) {
            // 截取占用的教室所属编号前两位,即教学楼编号
            if (teachbuildNo.equals(coursePlanList.get(i).getClassroomNo().substring(0, 2))) {
                usedClaassroom.add(coursePlanList.get(i).getClassroomNo());
            }
        }

        QueryWrapper<Classroom> wrapper2 = new QueryWrapper();
        wrapper2.in("classroom_no", usedClaassroom);
        wrapper2.orderByAsc("classroom_no");

        List<Classroom> used = classroomService.list(wrapper2);
        // 取差
        Set<Classroom> newList = getSub(allClassroom, used);

        return ServerResponse.ofSuccess(newList);
    }

    /**
     * 集合取差
     * @param list1
     * @param list2
     * @return
     */
    private Set<Classroom> getSub(List<Classroom> list1, List<Classroom> list2) {
        Set<Classroom> newList = new HashSet<>();
        for (int i = 0; i <list1.size(); i++) {
            //遍历集合2,判断集合1中是否包含集合2中元素,若包含,则把这个共同元素加入新集合中
            for (int j = 0; j <list2.size(); j++) {
                if (!(list1.get(i).equals(list2.get(j)) || list1.get(i) == list2.get(j))) {
                    newList.add(list1.get(i));
                }
            }
        }
        return newList;
    }

    /**
     * 带分页显示教室列表
     * @return
     */
    @GetMapping("/{page}")
    public ServerResponse queryClassroom(@PathVariable("page")Integer page,
                                         @RequestParam(defaultValue = "10")Integer limit) {
        Page<Classroom> pages = new Page<>(page, limit);
        QueryWrapper<Classroom> wrapper = new QueryWrapper<Classroom>().orderByAsc("classroom_no");

        IPage<Classroom> ipage = classroomService.page(pages, wrapper);

    @GetMapping("/get/{id}")
    public ServerResponse getAllVideo(@PathVariable("id") Integer id) {
        return ServerResponse.ofSuccess(ovs.list( new QueryWrapper<OnlineVideo>().eq("online_course_id", id)));
    }

    /**
     * 上传视频并返回url和文件名到前端
     * @return
     */
    @PostMapping("/upload")
    public ServerResponse upload(MultipartFile file) {
        Map<String, Object> map = AliyunUtil.upload(file, null);
        if (map != null) {
            return ServerResponse.ofSuccess(map);
        }
        return ServerResponse.ofError("视频上传失败");
    }

    /**
     * 上传新视频
     * @param
     * @return
     */
    @PostMapping("/add")
    public ServerResponse addVideo(MultipartFile file, @RequestBody UserInfoVO u) {
        Map<String, Object> map = new HashMap();
//        map = AliyunUtil.upload(file, null);
        OnlineVideo onlineVideo = new OnlineVideo();
        // 所属课程的id
        onlineVideo.setOnlineCourseId(u.getCourseId());
        onlineVideo.setVideoName(u.getVideoName());
        onlineVideo.setVideoUrl(u.getVideoUrl());
        onlineVideo.setCover(u.getCover());

//        onlineVideo.setVideoUrl(map.get("url").toString());
//        onlineVideo.setVideoName(map.get("name").toString());
        onlineVideo.setVideoNo(u.getVideoNo()); // 视频编号
        onlineVideo.setFromUserType(u.getUserType());
        onlineVideo.setFromUserId(u.getId());
        onlineVideo.setFromUserName(u.getRealname());

        boolean b = ovs.save(onlineVideo);
        if (b) {
            return ServerResponse.ofSuccess("添加视频成功");
        }
        return ServerResponse.ofError("添加视频失败");
    }

    /**
     * 根据id删除视频
     * @param id
     * @return
     */
     */
    @PostMapping("/password")
    public ServerResponse updatePass(@RequestBody PasswordVO passwordVO) {
        QueryWrapper<Teacher> wrapper = new QueryWrapper();
        wrapper.eq("id", passwordVO.getId());
        wrapper.eq("password", passwordVO.getOldPass());
        Teacher teacher = teacherService.getOne(wrapper);
        if (teacher == null) {
            return ServerResponse.ofError("旧密码错误");
        }
        // 否则进入修改密码流程
        teacher.setPassword(passwordVO.getNewPass());
        boolean b = teacherService.updateById(teacher);
        if (b) {
            return ServerResponse.ofSuccess("密码修改成功");
        }
        return ServerResponse.ofError("密码更新失败");
    }

    /**
     * 查询所有讲师
     * @return
     */
    @GetMapping("/all")
    public ServerResponse getAllTeacher() {

        return ServerResponse.ofSuccess(teacherService.list());
    }

}

package com.lyk.coursearrange.controller;

    public ServerResponse getTeacherNo() {

        List<Teacher> teacherList = teacherService.list(new QueryWrapper<Teacher>().select().orderByDesc("teacher_no"));

        // 返回最大编号的讲师编号再+1给新添加的讲师
        return ServerResponse.ofSuccess(teacherList.get(0).getTeacherNo());
    }

    /**
     * 管理员添加讲师,默认密码是123456
     * @param t
     * @return
     */
    @PostMapping("/add")
    public ServerResponse addTeacher(@RequestBody TeacherAddRequest t) {
        Teacher teacher = new Teacher();
        teacher.setTeacherNo(t.getTeacherNo());
        teacher.setUsername(t.getUsername());
        teacher.setEmail(t.getEmail());
        // 每一个新增的讲师密码默认是123456
        teacher.setPassword("123456");
        teacher.setRealname(t.getRealname());
        teacher.setJobtitle(t.getJobtitle());
        teacher.setTeach(t.getTeach());
        teacher.setTelephone(t.getTelephone());
        teacher.setAddress(t.getAddress());
        teacher.setAge(t.getAge());
        boolean b = teacherService.save(teacher);
        if (b) {
            return ServerResponse.ofSuccess("添加讲师成功!");
        }
        return ServerResponse.ofError("添加讲师失败!");
    }

    /**
     * 根据ID封禁、解封讲师账号,状态为0时正常,1时封禁
     * @param id
     * @return
     */
    @GetMapping("/lock/{id}")
    public ServerResponse lockTeacher(@PathVariable("id") Integer id) {

        // 先查出来再修改,
        Teacher teacher = teacherService.getById(id);
        // 修改
        if (teacher.getStatus() == 0) {
        QueryWrapper wrapper = new QueryWrapper();
        // 查询父id为0的类别,即一级分类
        wrapper.eq("parent_id", 0);
        List<OnlineCategory> list = ocs.list(wrapper);
        return ServerResponse.ofSuccess(list);
    }

    /**
     * 查询每个类别下面的二级类别
     * @param id 一级分类id
     * @return
     */
    @GetMapping("/two/{id}")
    public ServerResponse queryTwo(@PathVariable("id") Integer id) {
        QueryWrapper wrapper = new QueryWrapper();
        // 该id下面的二级分类
        wrapper.eq("parent_id", id);
        List<OnlineCategory> list = ocs.list(wrapper);
        return ServerResponse.ofSuccess(list);
    }

    /**
     * 点击添加类别的时候请求这个接口给前端返回一个编号
     * @return
     */
    @GetMapping("/get-no")
    public ServerResponse getNo() {
        QueryWrapper<OnlineCategory> wrapper = new QueryWrapper<OnlineCategory>().select("category_no").orderByDesc();
        List<OnlineCategory> list = ocs.list(wrapper);
        String no = String.valueOf(Integer.parseInt(list.get(0).getCategoryNo()) + 1);
        System.out.println("no = " + no);
        // 返回自动生成的编号,从res.data.message中获取
        return ServerResponse.ofSuccess(no);
    }

}

package com.lyk.coursearrange.controller;


        boolean b = teachBuildInfoService.removeById(id);
        if (b) {
            return ServerResponse.ofSuccess("删除成功");
        }
        return ServerResponse.ofError("删除失败");
    }

    /**
     * 添加教学楼
     * @param t
     * @return
     */
    @PostMapping("/add")
    public ServerResponse addTeachbuilding(@RequestBody TeachbuildAddRequest t) {
        System.out.println(t);
        TeachbuildInfo t1 = new TeachbuildInfo();
        t1.setTeachBuildNo(t.getTeachBuildNo());
        t1.setTeachBuildName(t.getTeachBuildName());
        t1.setTeachBuildLocation(t.getTeachBuildLocation());
        boolean b = teachBuildInfoService.save(t1);
        if (b) {
            return ServerResponse.ofSuccess("添加成功");
        }
        return ServerResponse.ofError("添加失败");
    }

    /**
     * 根据id查询
     * @param id
     * @return
     */
    @GetMapping("/select/{id}")
    public ServerResponse queryTeachBuildingById(@PathVariable("id") Integer id) {

        return ServerResponse.ofSuccess(teachBuildInfoService.getById(id));
    }

    /**
     * 更新教学楼
     * @param t
     * @return
     */
    @PostMapping("/modify/{id}")

/**
 * @Descripe: 拦截器
 */
public class AuthenticationInterceptor implements HandlerInterceptor {

    @Autowired
    private AdminService adminService;

    @Autowired
    private StudentService studentService;

    @Autowired
    private TeacherService teacherService;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 从 http 请求头中取出 token
        String token = request.getHeader("token");

        // 如果不是映射到方法直接通过
        if(!(handler instanceof HandlerMethod)){
            return true;
        }
        HandlerMethod handlerMethod = (HandlerMethod)handler;
        Method method = handlerMethod.getMethod();
        //检查是否有passtoken注释,有则跳过认证
        if (method.isAnnotationPresent(PassToken.class)) {
            PassToken passToken = method.getAnnotation(PassToken.class);
            if (passToken.required()) {
                return true;
            }
        }

        //检查有没有需要用户权限的注解

/**
 */
@RestController
@RequestMapping("/onlinevideo")
public class OnlineVideoController {

    @Autowired
    private OnlineVideoService ovs;

    /**
     * 根据课程id获取课程包含的视频
     * @param id
     * @return
     */
    @GetMapping("/get/{id}")
    public ServerResponse getAllVideo(@PathVariable("id") Integer id) {
        return ServerResponse.ofSuccess(ovs.list( new QueryWrapper<OnlineVideo>().eq("online_course_id", id)));
    }

    /**
     * 上传视频并返回url和文件名到前端
     * @return
     */
    @PostMapping("/upload")
    public ServerResponse upload(MultipartFile file) {
        Map<String, Object> map = AliyunUtil.upload(file, null);
        if (map != null) {
            return ServerResponse.ofSuccess(map);
        }
        return ServerResponse.ofError("视频上传失败");
    }

    /**
            int total = classInfoDao.count1(gradeNo);
            map.put("records", classInfoVOS);
            map.put("total", total);
        }
        return ServerResponse.ofSuccess(map);
    }

    // TODO 编辑班级

    // TODO 删除班级

    /**
     * 添加班级
     * @param classAddVO
     * @return
     */
    @PostMapping("/addclassinfo")
    public ServerResponse addClass(@RequestBody ClassAddVO classAddVO) {
        System.out.println(classAddVO);
        ClassInfo c = new ClassInfo();
        c.setRemark(classAddVO.getGradeNo());
        c.setClassNo(classAddVO.getClassNo());
        c.setClassName(classAddVO.getClassName());
        c.setTeacher(classAddVO.getId());
        c.setNum(classAddVO.getNum());
        boolean b = classInfoService.save(c);
        if (b) {
            return ServerResponse.ofSuccess("添加班级成功");
        }
        return ServerResponse.ofError("添加班级失败");
    }

    /**
     * 查询每个班级的学生人数000000000000000000000000000000000000000000000000000000000000000000000000000000出大问题
     * @return
     */
//    @GetMapping("/studentnums")
//    public ServerResponse queryStudentNumByClass() {
//        // 先获得所有的班级编号
//        QueryWrapper<ClassInfo> wrapper = new QueryWrapper();
//        QueryWrapper wrapper2 = new QueryWrapper();
//
//        int nums = 0;
//        List<ClassInfo> classList = classInfoService.list();
//        // 循环查每个班级的人数
//        for (ClassInfo classInfo : classList) {
//            wrapper2.eq("class_no", classInfo.getClassNo());
//            // 得到该班学生人数
//            nums = studentService.count(wrapper2);
//            classInfo.setNum(nums);
//            // 更新回去
//            classInfoService.update(classInfo, null);
//        }
        Page<Student> pages = new Page<>(page, limit);
        IPage<Student> iPage = studentService.page(pages, wrapper);
        return ServerResponse.ofSuccess(iPage);
    }

    /**
     * 查询班级信息带详细信息
     * @return
     */
    @GetMapping("/queryclassinfo/{page}")
    public ServerResponse queryClassInfos(@PathVariable("page") Integer page, @RequestParam(defaultValue = "10") Integer limit, @RequestParam(defaultValue = "") String gradeNo) {
        System.out.println("gradeNo = " + gradeNo);
        Map<String, Object> map = new HashMap();
        List<ClassInfoVO> classInfoVOS = null;
        if (gradeNo.equals("")) {
            classInfoVOS = classInfoDao.queryClassInfos((page - 1) * limit, limit);
            int total = classInfoDao.count2();
            map.put("records", classInfoVOS);
            map.put("total", total);
        } else {
            classInfoVOS = classInfoDao.queryClassInfo((page - 1) * limit, limit, gradeNo);
            int total = classInfoDao.count1(gradeNo);
            map.put("records", classInfoVOS);
            map.put("total", total);
        }
        return ServerResponse.ofSuccess(map);
    }

    // TODO 编辑班级

    // TODO 删除班级

    /**
     * 添加班级
     * @param classAddVO
     * @return
     */
    @PostMapping("/addclassinfo")
    public ServerResponse addClass(@RequestBody ClassAddVO classAddVO) {
        System.out.println(classAddVO);
        ClassInfo c = new ClassInfo();
        c.setRemark(classAddVO.getGradeNo());
        c.setClassNo(classAddVO.getClassNo());
        c.setClassName(classAddVO.getClassName());
        c.setTeacher(classAddVO.getId());
        c.setNum(classAddVO.getNum());
        boolean b = classInfoService.save(c);
        if (b) {
            return ServerResponse.ofSuccess("添加班级成功");
        }
        return ServerResponse.ofError("添加班级失败");
    }

    /**
        onlineVideo.setVideoUrl(u.getVideoUrl());
        onlineVideo.setCover(u.getCover());

//        onlineVideo.setVideoUrl(map.get("url").toString());
//        onlineVideo.setVideoName(map.get("name").toString());
        onlineVideo.setVideoNo(u.getVideoNo()); // 视频编号
        onlineVideo.setFromUserType(u.getUserType());
        onlineVideo.setFromUserId(u.getId());
        onlineVideo.setFromUserName(u.getRealname());

        boolean b = ovs.save(onlineVideo);
        if (b) {
            return ServerResponse.ofSuccess("添加视频成功");
        }
        return ServerResponse.ofError("添加视频失败");
    }

    /**
     * 根据id删除视频
     * @param id
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteVideo(@PathVariable("id") Integer id) {

        boolean b = ovs.removeById(id);

        if (b) {
            return ServerResponse.ofSuccess("删除视频成功");
        }
        return ServerResponse.ofError("删除视频失败");
    }

}

package com.lyk.coursearrange.controller;

/**
 */
     * @return
     */
    @PostMapping("/uploaddocs")
    public ServerResponse uploadDocs(MultipartFile file) {
        return docService.uploadDocs(file);
    }

    /**
     * 添加文档的相关描述信息
     * @param docsVO
     * @return
     */
    @PostMapping("/adddocs")
    public ServerResponse addDocs(@RequestBody DocsVO docsVO) {
        return docService.addDcos(docsVO);
    }

    /**
     * 下载文档
     * @param id
     * @return
     */
    @GetMapping(value = "/downloaddocs", consumes = MediaType.ALL_VALUE)
    public ServerResponse downloadDocs(Integer id) {
        return docService.downloadDocs(id);
    }

    /**
     * 分页查询所有的文档
     * @param page
     * @param limit
     * @return
     */
    @GetMapping("/docs/{page}")
    public ServerResponse allDocs(@PathVariable("page") Integer page, @RequestParam(defaultValue = "10") Integer limit) {
        Page<Doc> pages = new Page<>(page, limit);
        QueryWrapper<Doc> wrapper = new QueryWrapper<Doc>().orderByDesc("create_time");
        IPage<Doc> iPage = docService.page(pages, wrapper);
        return ServerResponse.ofSuccess(iPage);
    }

    /**
     * 根据班级查询文档,用于学生端
     * @param page
     * @param toClassNo
     * @param limit
     * @return
     */
    @GetMapping("/docs-class/{page}/{toClassNo}")

    /**
     * 管理员登录
     * @param adminLoginRequest
     * @return
     */
    @PostMapping("/login")
    public ServerResponse adminLogin(@RequestBody UserLoginRequest adminLoginRequest) {
        Map<String, Object> map = new HashMap();
        Admin admin = adminService.adminLogin(adminLoginRequest.getUsername(), adminLoginRequest.getPassword());
        if (admin != null){
            String token = tokenService.getToken(admin);
            map.put("admin", admin);
            map.put("token", token);
            return ServerResponse.ofSuccess(map);
        }
        return ServerResponse.ofError("用户名或密码错误!");
    }

    /**
     * 管理员更新个人资料
     * @return
     */
    @PostMapping("/modify")
    public ServerResponse modifyAdmin(@RequestBody Admin admin) {

        return adminService.updateById(admin) ? ServerResponse.ofSuccess("更新成功!") : ServerResponse.ofError("更新失败!");
    }

    /**
     * 根据ID查询管理员信息
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    public ServerResponse queryAdmin(@PathVariable("id") Integer id) {
        return ServerResponse.ofSuccess(adminService.getById(id));
    }

        Page<Student> pages = new Page<>(page, limit);
        QueryWrapper<Student> wrapper = new QueryWrapper<Student>().orderByDesc("student_no");
        IPage<Student> iPage = studentService.page(pages, wrapper);

        return ServerResponse.ofSuccess(iPage);

    }

    /**
     * 根据姓名关键字搜学生
     * @return
     */
    @GetMapping("/search/{keyword}")
    public ServerResponse searchTeacher(@PathVariable("keyword") String keyword, @RequestParam(defaultValue = "1") Integer page,
                                        @RequestParam(defaultValue = "10") Integer limit) {
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        wrapper.orderByDesc("update_time");
        wrapper.like(!StringUtils.isEmpty(keyword), "realname", keyword);
        Page<Student> pages = new Page<>(page, limit);
        IPage<Student> iPage = studentService.page(pages, wrapper);
        if (page != null) {
            return ServerResponse.ofSuccess(iPage);
        }
        return ServerResponse.ofError("查询不到数据!");
    }

    /**
     * 管理员根据ID删除学生
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteTeacher(@PathVariable Integer id) {
        boolean b = studentService.removeById(id);
        if(b) {
            return ServerResponse.ofSuccess("删除成功!");
        }
        return ServerResponse.ofError("删除失败!");
    }

    /**
     * 学生修改密码
     * @param passwordVO
     * @return
     */
    @PostMapping("/password")

请添加图片描述

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值