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