Springboot based on javaweb+mysql is based on genetic algorithm school scheduling system (java+springboot+maven+mybatis+vue+mysql)

Springboot based on javaweb + mysql is based on genetic algorithm school scheduling system (java + springboot + maven + mybatis + vue + mysql)

operating environment

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

development tools

Backend: eclipse/idea/myeclipse/sts can be configured to run

Front end: WebStorm/VSCode/HBuilderX, etc. are all available

Be applicable

Course design, major assignments, graduation design, project exercises, learning presentations, etc.

Function Description

SpringBoot based on javaweb + mysql based on genetic algorithm school scheduling system (java + springboot + maven + mybatis + vue + mysql)

1. Brief description of the project The functions of this system include: class management, course management, lecturer management, class management, student management, teaching materials, learning documents, online testing, teaching material list, teaching design, help center and other functions.

2. Project running environment configuration:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX (Webstorm also works) + Eclispe (IntelliJ IDEA, Eclipse, MyEclispe, Sts are all supported).

Project technology:

Springboot + Maven + mybatis + Vue, etc., B/S mode + Maven management, etc.

 }

    /**
     * Query all documents in pagination
     * @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);
    }

    /**
     * Query documents according to class, used for student side
     * @param page
     * @param toClassNo
     * @param limit
     * @return
     */
    @GetMapping("/docs-class/{page}/{toClassNo}")
    public ServerResponse getDocsByClass(@PathVariable("page") Integer page, @PathVariable("toClassNo") String toClassNo,
                                         @RequestParam(defaultValue = "10") Integer limit) {<!-- -->
        Page<Doc> pages = new Page<>(page, limit);
        QueryWrapper<Doc> wrapper = new QueryWrapper<Doc>().orderByDesc("create_time").eq("to_class_no", toClassNo);

        IPage<Doc> iPage = docService. page(pages, wrapper);
        System.out.println(iPage);
        return ServerResponse.ofSuccess(iPage);
    }

    /**
     * delete document by id
     * @param id
     * @return
     */
    @DeleteMapping("/deletedoc")
    public ServerResponse delete(@RequestParam Integer id) {<!-- -->
        boolean b = docService. removeById(id);
        if (b) {<!-- -->
            return ServerResponse.ofSuccess("delete successfully");
        }
        return ServerResponse.ofError("Delete failed");
    }

package com.lyk.coursearrange.controller;

/**
 */
@RestController
public class LocationInfoController {<!-- -->

    @Autowired
    private LocationInfoService lis;
    @Autowired
    private LocationInfoDao lid;

    /**
     * New teaching area
     * @return
     */
    @PostMapping("/setteacharea")
    public ServerResponse setTeachArea(@RequestBody() LocationSetVO l) {<!-- -->
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("teachbuild_no", l.getTeachBuildNo());
        wrapper.eq("grade_no", l.getGradeNo());
        LocationInfo locationInfo = new LocationInfo();
        if (lis. getOne(wrapper) != null) {<!-- -->
            return ServerResponse.ofError("The teaching area has already been set!");
        }
        locationInfo.setTeachbuildNo(l.getTeachBuildNo());
 // number of students
        int students = studentService. count();
        // Number of textbooks
        int courses = courseInfoService. count();
        // number of classes
        int classes = classInfoService. count();
        // Number of teaching buildings
        int teachbuilds = teachbuildInfoService. count();
        // number of classrooms
        int classrooms = classroomService. count();
        // current number of course tasks
        int classtasks = classTaskService. count();
        // Number of learning documents
        int docs = docService. count();
        // Number of question banks
        int exercises = exerciseService. count();
        // Number of online courses
        int onlineCourse = onlineCourseService. count();

        Calendar cal = Calendar. getInstance();
        cal.add(Calendar.DATE,-1);
        Date d = cal. getTime();
        SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
        //Get yesterday's date
        String yesday = sp. format(d);

        // yesterday's student registration number
        int studentReg = studentDao. studentReg(yesday);
        // registered lecturer yesterday
        int teacherReg = teacherDao. teacherReg(yesday);

        map. put("teachers", teachers);
        map. put("students", students);
        map. put("courses", courses);
        map. put("classes", classes);
        map.put("teachbuilds", teachbuilds);
        map.put("classtasks", classtasks);
        map. put("docs", docs);
        map. put("exercises", exercises);
        map. put("classrooms", classrooms);
        map. put("studentReg", studentReg);
        map. put("onlineCourse", onlineCourse);
        map.put("teacherReg", teacherReg);

        return ServerResponse.ofSuccess(map);
    }

}
package com.lyk.courserange.controller;

    /**
     * Add teaching building
     * @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("Added successfully");
        }
        return ServerResponse.ofError("Add failed");
    }

    /**
     * Query by id
     * @param id
     * @return
     */
    @GetMapping("/select/{id}")
    public ServerResponse queryTeachBuildingById(@PathVariable("id") Integer id) {<!-- -->

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

    /**
     * Update the teaching building
     * @param t
     * @return
     */
    @PostMapping("/modify/{id}")
    public ServerResponse modifyTeacher(@PathVariable("id") Integer id, @RequestBody TeachbuildInfo t) {<!-- -->

        boolean b = teachBuildInfoService.update(t, new QueryWrapper<TeachbuildInfo>().eq("id", id));

        if (b) {<!-- -->
            return ServerResponse.ofSuccess("updated successfully");
        }
        return ServerResponse.ofError("Update failed");
    }

}

package com.lyk.coursearrange.common;

 * Query classrooms by id
     * @param id
     * @return
     */
    @GetMapping("/query/{id}")
    public ServerResponse queryClassroomByID(@PathVariable("id") Integer id) {<!-- -->

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

    /**
     * Update the classroom
     * @param classroom
     * @return
     */
    @PostMapping("/modify")
    public ServerResponse modifyClassroom(@RequestBody Classroom classroom) {<!-- -->

        return classroomService.updateById(classroom) ? ServerResponse.ofSuccess("update successful") : ServerResponse.ofError("update failed");
    }

}

package com.lyk.courserange.controller;

/**
 * The name of the online class, there are 1 or more videos under each online class
 */
@RestController
@RequestMapping("/onlinecourse")
public class OnlineCourseController {<!-- -->

/**
 * class information
 */
@RestController
public class ClassInfoController {<!-- -->

    @Autowired
    private ClassInfoService classInfoService;
    @Autowired
    private StudentService studentService;
    @Autowired
    private ClassInfoDao classInfoDao;

    /**
     * Query all classes in pages
     * @param page
     * @param limit
     * @return
     */
// @GetMapping("/queryclassinfobypage/{page}")
// public ServerResponse queryClassInfo(@PathVariable(value = "page") Integer page,
// @RequestParam(defaultValue = "10") Integer limit) {<!-- -->
// System.out.println("****************************************** **");
// Page<ClassInfo> pages = new Page<>(page, limit);
// QueryWrapper<ClassInfo> wrapper = new QueryWrapper<ClassInfo>().orderByDesc("remark");
// IPage<ClassInfo> iPage = classInfoService. page(pages, wrapper);
// return ServerResponse.ofSuccess(iPage);
// }

    /**
     * Query all classes according to grade
     * @param grade
     * @return
 public ServerResponse modifyTeacher(@RequestBody Teacher teacher) {<!-- -->

        boolean b = teacherService. updateById(teacher);

        if (b) {<!-- -->
            return ServerResponse.ofSuccess("updated successfully");
        }
        return ServerResponse.ofError("Update failed");
    }

    /**
     * Paging query lecturer
     * @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);
    }

    /**
     * Search for lecturers based on name keywords
     * @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("Query failed!");
    }

    /**
/**
 */
@RestController
public class ExerciseController {<!-- -->

    @Autowired
    private ExerciseService es;

    /**
     * Query topics by category
     * @param id
     * @param page
     * @param limit
     * @return
     */
    @GetMapping("/exercise/{categoryid}/{page}")
    public ServerResponse queryExercise(@PathVariable("categoryid") Integer id,
                                        @PathVariable("page") Integer page,
                                        @RequestParam(defaultValue = "10") Integer limit) {<!-- -->
        QueryWrapper wrapper = new QueryWrapper();
        Page pages = new Page(page, limit);
        wrapper.orderByDesc("update_time");
        wrapper.eq("category_id", id);
        IPage<Exercise> iPage = es.page(pages, wrapper);
        return ServerResponse.ofSuccess(iPage);
    }

    /**
     * Search all topics
     * @param page
     * @param limit
     * @return
     */
    @GetMapping("/exercise/{page}")
    public ServerResponse queryAllExercise(@PathVariable("page") Integer page,
                                        @RequestParam(defaultValue = "10") Integer limit) {<!-- -->
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.orderByDesc("update_time");
        Page pages = new Page(page, limit);
        IPage<Exercise> iPage = es.page(pages, wrapper);
        return ServerResponse.ofSuccess(iPage);
    }

    /**
     * Add topic
     * @param exerciseVO
     * @return
     */
    @PostMapping("/addexercise")
public class ClassroomController {<!-- -->

    @Autowired
    private ClassroomService classroomService;
    @Autowired
    private TeachbuildInfoService t;
    @Autowired
    private CoursePlanService coursePlanService;

    // Query the empty classroom according to the teaching building number
    @GetMapping("/empty/{teachbuildno}")
    public ServerResponse getEmptyClassroom(@PathVariable("teachbuildno") String teachbuildNo) {<!-- -->
        // First query all the classrooms under the teaching building
        QueryWrapper<Classroom> wrapper1 = new QueryWrapper();
        wrapper1.eq("teachbuild_no", teachbuildNo);
        // specify all classrooms downstairs
        List<Classroom> allClassroom = classroomService. list(wrapper1);

        List<CoursePlan> coursePlanList = coursePlanService. list();
        // Get the classroom number that has been used
        Set<String> usedClassroom = new HashSet<>();
        for (int i = 0; i < coursePlanList. size(); i ++ ) {<!-- -->
            // Intercept the first two digits of the number of the occupied classroom, that is, the number of the teaching building
            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);
        // take the difference
        Set<Classroom> newList = getSub(allClassroom, used);

        return ServerResponse.ofSuccess(newList);
    }

    /**
     * set difference
     * @param list1
     * @param list2
     * @return
     */
    private Set<Classroom> getSub(List<Classroom> list1, List<Classroom> list2) {<!-- -->
        Set<Classroom> newList = new HashSet<>();
 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("Query failed!");
    }

    /**
     * The administrator deletes the lecturer according to the ID
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteTeacher(@PathVariable Integer id) {<!-- -->
        boolean b = teacherService. removeById(id);
        if(b) {<!-- -->
            return ServerResponse.ofSuccess("Delete successfully!");
        }
        return ServerResponse.ofError("Delete failed!");
    }

    /**
     * Used to generate a lecturer number for a lecturer and return a lecturer number
     * @return
     */
    @GetMapping("/no")
    public ServerResponse getTeacherNo() {<!-- -->

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

        // Return the lecturer number with the largest number and then + 1 for the newly added lecturer
        return ServerResponse.ofSuccess(teacherList.get(0).getTeacherNo());
    }

    /**
     * The administrator adds a lecturer, the default password is 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());
        // The default password for each new lecturer is 123456
        teacher. setPassword("123456");
        teacher.setRealname(t.getRealname());
        teacher. setJobtitle(t. getJobtitle());
        teacher. setTeach(t. getTeach());
        teacher.setTelephone(t.getTelephone());
}

package com.lyk.courserange.controller;

/**
 * The name of the online class, there are 1 or more videos under each online class
 */
@RestController
@RequestMapping("/onlinecourse")
public class OnlineCourseController {<!-- -->

    @Autowired
    private OnlineCourseService ocs;

    /**
     * Popular courses displayed on the homepage
     * @param limit the number of query data
     * @return
     */
    @GetMapping("/hot/{page}/{limit}")
    public ServerResponse hotCourse(@PathVariable("page") Integer page, @PathVariable("limit") Integer limit) {<!-- -->
        QueryWrapper wrapper = new QueryWrapper();
        wrapper. orderByDesc("clicks");
        Page<OnlineCourse> pages = new Page<>(page, limit);
        IPage<OnlineCourse> iPage = ocs.page(pages, wrapper);
        return ServerResponse.ofSuccess(iPage);
    }

    /**
     * Query online courses according to the secondary classification id
     * @param id secondary classification id
     * @return
/**
 */
@RestController
@RequestMapping("/category")
public class OnlineCategoryController {<!-- -->

    @Autowired
    private OnlineCategoryService ocs;

    /**
     * add category
     * @param categoryNo
     * @param categoryName
     * @return
     */
    @PostMapping("/add")
    public ServerResponse addCategory(@RequestParam(name = "categoryNo") String categoryNo,
                                      @RequestParam(name = "categoryName") String categoryName,
                                      @RequestParam(name = "parentId") Integer parentId) {<!-- -->
        OnlineCategory onlineCategory = new OnlineCategory();
        onlineCategory.setCategoryNo(categoryNo);
        onlineCategory.setCategoryName(categoryName);
        onlineCategory.setParentId(parentId);
        boolean b = ocs. save(onlineCategory);
        if (b) {<!-- -->
            return ServerResponse.ofSuccess("Added successfully");
        }
        return ServerResponse.ofError("Add failed");
    }

    /**
     * delete category
     * @param id
     * @return
     */
    @DeleteMapping("/delete/{id}")
 */
    @PostMapping("/password")
    public ServerResponse updatePass(@RequestBody PasswordVO passwordVO) {<!-- -->
        System.out.println(passwordVO + "======");
        QueryWrapper<Admin> wrapper = new QueryWrapper();
        wrapper.eq("id", passwordVO.getId());
        wrapper.eq("password", passwordVO.getOldPass());
        Admin admin = adminService. getOne(wrapper);
        if (admin == null) {<!-- -->
            return ServerResponse.ofError("The old password is wrong");
        }
        // Otherwise, enter the process of changing the password
        admin.setPassword(passwordVO.getNewPass());
        boolean b = adminService. updateById(admin);
        if (b) {<!-- -->
            return ServerResponse.ofSuccess("Password changed successfully");
        }
        return ServerResponse.ofError("Password update failed");
    }

}

package com.lyk.courserange.controller;

/**
 log.info("File upload was called...");
        return uploadService.upload(file);
    }

    /**
     * Download the Excel import template provided by the system
     * @return
     */
    @GetMapping(value = "/download", consumes = MediaType. ALL_VALUE)
    public void downloadTemplate(final HttpServletResponse response) {<!-- -->
        // get the file
        File file = new File("D:/arrange/excel/course task import template.xls");
        if (!file.exists()) {<!-- -->
            // If there is no template file, call the create template file method
            log.info("Create template file");
            createTemplate();
        }
        // get the file name
        String fileName = file. getName();
        response. reset();
        // Set ContentType, the response content is a binary data stream, encoded as utf-8, the encoding set here is the encoding of the file content
        response.setContentType("application/octet-stream;charset=utf-8");
        // Set the default file name in the format of (Content-Disposition: attachment; filename="filename.jpg"), and set the utf encoding. The encoding here is the encoding of the file name, so that the Chinese file name can be displayed correctly
        try {<!-- -->
            response.setHeader("Content-Disposition", "attachment;fileName=" + fileName + ";filename*=utf-8''" + URLEncoder.encode(fileName,"utf-8"));
        } catch (UnsupportedEncodingException e) {<!-- -->
            e.printStackTrace();
        }
        // Implement file download
        byte[] buffer = new byte[1024];
        FileInputStream fis = null;
        BufferedInputStream bis = null;
        try {<!-- -->
            fis = new FileInputStream(file);
            bis = new BufferedInputStream(fis);
            // get byte stream
            OutputStream os = response. getOutputStream();
            int i = bis. read(buffer);
            while (i != -1) {<!-- -->
                os.write(buffer, 0, i);
                i = bis. read(buffer);
    /**
     * Query all classes in pages
     * @param page
     * @param limit
     * @return
     */
// @GetMapping("/queryclassinfobypage/{page}")
// public ServerResponse queryClassInfo(@PathVariable(value = "page") Integer page,
// @RequestParam(defaultValue = "10") Integer limit) {<!-- -->
// System.out.println("****************************************** **");
// Page<ClassInfo> pages = new Page<>(page, limit);
// QueryWrapper<ClassInfo> wrapper = new QueryWrapper<ClassInfo>().orderByDesc("remark");
// IPage<ClassInfo> iPage = classInfoService. page(pages, wrapper);
// return ServerResponse.ofSuccess(iPage);
// }

    /**
     * Query all classes according to grade
     * @param grade
     * @return
     */
    @GetMapping("/class-grade/{grade}")
    public ServerResponse queryClass(@PathVariable("grade") String grade) {<!-- -->
        QueryWrapper<ClassInfo> wrapper = new QueryWrapper<ClassInfo>().eq("remark", grade);
        List<ClassInfo> classInfoList = classInfoService. list(wrapper);

        return ServerResponse.ofSuccess(classInfoList);
    }

    /**
     * Query students by class
     * @param page
     * @param classNo
     * @param limit
     * @return
     */
    @GetMapping("/student-class/{page}/{classNo}")
    public ServerResponse queryStudentByClass(@PathVariable("page") Integer page,
                                              @PathVariable("classNo") String classNo,
                                              @RequestParam(defaultValue = "10") Integer limit) {<!-- -->
        QueryWrapper<Student> wrapper = new QueryWrapper<>();
        wrapper. orderByDesc("student_no");
        wrapper.like(!StringUtils.isEmpty(classNo), "class_no", classNo);
        Page<Student> pages = new Page<>(page, limit);
 QueryWrapper<Student> wrapper = new QueryWrapper<Student>().eq("student_no", str3);
            Student student = studentService. getOne(wrapper);
            System.out.println("666666");
            // If the student number cannot be found, the student number is available and jump out of the loop
            if (student == null) {<!-- -->
                return ServerResponse.ofSuccess(str3);
            }
        } while(true);
    }

    /**
     * Get all students, with pagination
     * @param page
     * @param limit
     * @return
     */
    @GetMapping("/students/{page}")
    public ServerResponse queryStudent(@PathVariable("page") Integer page,
                                       @RequestParam(defaultValue = "10") Integer limit) {<!-- -->
        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);

    }

    /**
     * Search for students based on name keywords
     * @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("No data found!");
    }

    /**
     * Admin deletes students by ID
     * @return
     */
    @DeleteMapping("/delete/{id}")
    public ServerResponse deleteTeacher(@PathVariable Integer id) {<!-- -->
 @DeleteMapping("/location/delete/{id}")
    public ServerResponse delete(@PathVariable("id") Integer id) {<!-- -->
        boolean b = lis. removeById(id);
        if (b) {<!-- -->
            return ServerResponse.ofSuccess("delete successfully");
        }
        return ServerResponse.ofError("Delete failed");
    }
}

package com.lyk.courserange.controller;

/**
 */
@RestController
public class CoursePlanController {<!-- -->

    @Autowired
    private CourseInfoService courseInfoService;
    @Autowired
    private CoursePlanService coursePlanService;

    @Autowired
    private TeacherService teacherService;

    /**
     * Query the curriculum according to the class
     * @param classNo
     * @return

Please add picture description

Please add picture description
Please add picture description
Please add picture description
Please add picture description
Please add picture description