随着互联网的不断发展与微信及微信小程序的普遍应用,教育行业发生了重大变化,有关IT方面的线下培训机构也随之增加。如果线下IT培训机构可以利用线上管理取代传统的人工管理,那么将可以大大地降低工作量,提高整个机构的工作效率,还可以更好地对人员信息进行管理,同时也扩充了招生范围,有利于线下IT培训机构的工作更好地开展,因此开发一个培训机构管理系统是很有必要的。
首先对当前线下培训机构所使用的的管理系统进行调研和分析,然后对软件的开发平台和技术、数据库等技术方面进行了研究,提出了基于Idea与微信小程序平台,采用了SSM(Spring+SpringMVC+Mybatis)框架与Shrio框架开发系统后端,采用Bootstrap框架和微信小程序开发前端,并采用MySQL5.6数据库管理数据的开发方案;再次,采用UML建模技术对系统进行需求分析、功能设计以及类的设计;最后,实现了一个具有学员管理、课程管理、讲师管理、成绩管理、考试管理、订单管理、数据统计的基于微信小程序的线下IT培训机构管理系统。
关键词: 线下 IT培训 SSM 微信小程序
package com.system.controller;import com.system.exception.CustomException;import com.system.po.*;import com.system.service.*;import org.apache.shiro.SecurityUtils;import org.apache.shiro.subject.Subject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;import java.util.List;import java.util.Map;@Controller@RequestMapping("/admin")public class AdminController { @Resource(name = "studentServiceImpl") private StudentService studentService; @Resource(name = "teacherServiceImpl") private TeacherService teacherService; @Resource(name = "courseServiceImpl") private CourseService courseService; @Resource(name = "collegeServiceImpl") private CollegeService collegeService; @Resource(name = "userloginServiceImpl") private UserloginService userloginService; @Resource(name = "selectedCourseServiceImpl") private SelectedCourseService selectedCourseService; @RequestMapping("/showStudent") public String showStudent(Model model, Integer page) throws Exception { List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(this.studentService.getCountStudent()); if (page == null || page == 0) { pagingVO.setToPageNo(1); list = studentService.findByPaging(1); } else { pagingVO.setToPageNo(page); list = studentService.findByPaging(page); } model.addAttribute("studentList", list); model.addAttribute("pagingVO", pagingVO); Object principal = SecurityUtils.getSubject().getPrincipal(); Subject subject = SecurityUtils.getSubject(); if (subject.hasRole("admin")) { return "/admin/showStudent"; } else{ return "/teacher/showStudent"; } } // 添加学生信息页面显示 @RequestMapping(value = "/addStudent", method = {RequestMethod.GET}) public String addStudentUI(Model model) throws Exception { List list = collegeService.finAll(); model.addAttribute("collegeList", list); Object principal = SecurityUtils.getSubject().getPrincipal(); Subject subject = SecurityUtils.getSubject(); if (subject.hasRole("admin")) { return "/admin/addStudent"; } else{ return "/teacher/addStudent"; } } // 添加学生信息 @RequestMapping(value = "/addStudent", method = {RequestMethod.POST}) public String addStudent(StudentCustom studentCustom, Model model) throws Exception { studentCustom.setCollegeid(1); Boolean result = studentService.save(studentCustom); if (!result) { model.addAttribute("message", "学号重复"); return "error"; } //添加成功后,也添加到登录表 Userlogin userlogin = new Userlogin(); userlogin.setUsername(studentCustom.getUserid().toString()); userlogin.setPassword("123"); userlogin.setRole(2); userloginService.save(userlogin); //重定向 return "redirect:/admin/showStudent"; } // 修改学生信息页面显示 @RequestMapping(value = "/editStudent", method = {RequestMethod.GET}) public String editStudentUI(Integer id, Model model) throws Exception { if (id == null) { //加入没有带学生id就进来的话就返回学生显示页面 return "redirect:/admin/showStudent"; } StudentCustom studentCustom = studentService.findById(id); if (studentCustom == null) { throw new CustomException("未找到该名学生"); } List list = collegeService.finAll(); model.addAttribute("collegeList", list); model.addAttribute("student", studentCustom); return "/admin/editStudent"; } // 修改学生信息 @RequestMapping(value = "/editStudent", method = {RequestMethod.POST}) public String editStudent(StudentCustom studentCustom) throws Exception { studentService.updataById(studentCustom.getUserid(), studentCustom); return "redirect:/admin/showStudent"; } // 删除学生 @RequestMapping(value = "/removeStudent", method = {RequestMethod.GET} ) private String removeStudent(Integer id) throws Exception { if (id == null) { return "/admin/showStudent"; } studentService.removeById(id); userloginService.removeByName(id.toString()); return "redirect:/admin/showStudent"; } // 搜索学生 @RequestMapping(value = "selectStudent", method = {RequestMethod.POST}) private String selectStudent(String findByName, Model model) throws Exception { List list = studentService.findByName(findByName); model.addAttribute("studentList", list); return "/admin/showStudent"; } // 教师页面显示 @RequestMapping({"/showTeacher"}) public String showTeacher(Model model, Integer page) throws Exception { List list = null; PagingVO pagingVO = new PagingVO(); pagingVO.setTotalCount(this.teacherService.getCountTeacher()); if (page != null && page.intValue() != 0) { pagingVO.setToPageNo(page); list = this.teacherService.findByPaging(page); } else { pagingVO.setToPageNo(Integer.valueOf(1)); list = this.teacherService.findByPaging(Integer.valueOf(1)); } model.addAttribute("teacherList", list); model.addAttribute("pagingVO", pagingVO); return "/admin/showTeacher"; } // 添加教师信息 @RequestMapping(value = "/addTeacher", method = {RequestMethod.GET}) public String addTeacherUI(Model model) throws Exception { List list = collegeService.finAll(); model.addAttribute("collegeList", list); return "/admin/addTeacher"; } // 添加教师信息处理 @RequestMapping(value = "/addTeacher", method = {RequestMethod.POST}) public String addTeacher(TeacherCustom teacherCustom, Model model) throws Exception { Boolean result = teacherService.save(teacherCustom); if (!result) { model.addAttribute("message", "工号重复"); return "/error"; } //添加成功后,也添加到登录表 Userlogin userlogin = new Userlogin(); userlogin.setUsername(teacherCustom.getUserid().toString()); userlogin.setPassword("123"); userlogin.setRole(1); userloginService.save(userlogin); //重定向 return "redirect:/admin/showTeacher"; } // 修改教师信息页面显示 @RequestMapping(value = "/editTeacher", method = {RequestMethod.GET}) public String editTeacherUI(Integer id, Model model) throws Exception { if (id == null) { return "redirect:/admin/showTeacher"; } TeacherCustom teacherCustom = teacherService.findById(id); if (teacherCustom == null) { throw new CustomException("未找到该名学生"); } List list = collegeService.finAll(); model.addAttribute("collegeList", list); model.addAttribute("teacher", teacherCustom); return "/admin/editTeacher"; } // 修改教师信息页面处理 @RequestMapping(value = "/editTeacher", method = {RequestMethod.POST}) public String editTeacher(TeacherCustom teacherCustom) throws Exception { teacherService.updateById(teacherCustom.getUserid(), teacherCustom); //重定向 return "redirect:/admin/showTeacher"; } //删除教师 @RequestMapping("/removeTeacher") public String removeTeacher(Integer id) throws Exception { if (id == null) { //加入没有带教师id就进来的话就返回教师显示页面 return "/admin/showTeacher"; } teacherService.removeById(id); userloginService.removeByName(id.toString()); return "redirect:/admin/showTeacher"; } //搜索教师 @RequestMapping(value = "selectTeacher", method = {RequestMethod.POST}) private String selectTeacher(String findByName, Model model) throws Exception { List list = teacherService.findByName(findByName); model.addAttribute("teacherList", list); return "/admin/showTeacher"; } // 课程信息显示 @RequestMapping("/showCourse") public String showCourse(Model model, Integer page) throws Exception { List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(courseService.getCountCourse()); if (page == null || page == 0) { pagingVO.setToPageNo(1); list = courseService.findByPaging(1); } else { pagingVO.setToPageNo(page); list = courseService.findByPaging(page); } model.addAttribute("courseList", list); model.addAttribute("pagingVO", pagingVO); return "/admin/showCourse"; } //添加课程 @RequestMapping(value = "/addCourse", method = {RequestMethod.GET}) public String addCourseUI(Model model) throws Exception { List list = teacherService.findAll(); List collegeList = collegeService.finAll(); model.addAttribute("collegeList", collegeList); model.addAttribute("teacherList", list); return "/admin/addCourse"; } // 添加课程信息处理 @RequestMapping(value = "/addCourse", method = {RequestMethod.POST}) public String addCourse(CourseCustom courseCustom, Model model) throws Exception { Boolean result = courseService.save(courseCustom); if (!result) { model.addAttribute("message", "课程号重复"); return "/error"; } //重定向 return "redirect:/admin/showCourse"; } // 修改课程 @RequestMapping(value = "/editCourse", method = {RequestMethod.GET}) public String editCourseUI(Integer id, Model model) throws Exception { if (id == null) { return "redirect:/admin/showCourse"; } CourseCustom courseCustom = courseService.findById(id); if (courseCustom == null) { throw new CustomException("未找到该课程"); } List list = teacherService.findAll(); List collegeList = collegeService.finAll(); model.addAttribute("teacherList", list); model.addAttribute("collegeList", collegeList); model.addAttribute("course", courseCustom); return "/admin/editCourse"; } // 修改教师信息页面处理 @RequestMapping(value = "/editCourse", method = {RequestMethod.POST}) public String editCourse(CourseCustom courseCustom) throws Exception { courseService.updateById(courseCustom.getCourseid(), courseCustom); //重定向 return "redirect:/admin/showCourse"; } // 删除课程 @RequestMapping("/removeCourse") public String removeCourse(Integer id) throws Exception { if (id == null) { //加入没有带教师id就进来的话就返回教师显示页面 throw new CustomException("查询该课程失败"); } courseService.removeById(id); return "redirect:/admin/showCourse"; } //查询课程 @RequestMapping(value = "selectCourse", method = {RequestMethod.POST}) private String selectCourse(String findByName, Model model) throws Exception { Object principal = SecurityUtils.getSubject().getPrincipal(); List list = courseService.findByName(findByName); Subject subject = SecurityUtils.getSubject(); model.addAttribute("courseList", list); if (subject.hasRole("admin")) { return "/admin/showCourse"; } else if (subject.hasRole("teacher")) { return "/teacher/showCourse"; } else if (subject.hasRole("student")) { return "/student/showCourse"; } return "/admin/showCourse"; } // 普通用户账号密码重置 @RequestMapping("/userPasswordRest") public String userPasswordRestUI() throws Exception { return "/admin/userPasswordRest"; } // 普通用户账号密码重置处理 @RequestMapping(value = "/userPasswordRest", method = {RequestMethod.POST}) public String userPasswordRest(Userlogin userlogin) throws Exception { Userlogin u = userloginService.findByName(userlogin.getUsername()); if (u != null) { if (u.getRole() == 0) { throw new CustomException("该账户为管理员账户,没法修改"); } u.setPassword(userlogin.getPassword()); userloginService.updateByName(userlogin.getUsername(), u); } else { throw new CustomException("没找到该用户"); } return "/admin/userPasswordRest"; } // 本账户密码重置 @RequestMapping("/passwordRest") public String passwordRestUI() throws Exception { return "/admin/passwordRest"; } //添加考试 @RequestMapping("/addExam") public String addExam(Model model) throws Exception { List byPaging = courseService.findAll(); model.addAttribute("courseList",byPaging); Object principal = SecurityUtils.getSubject().getPrincipal(); Subject subject = SecurityUtils.getSubject(); if (subject.hasRole("admin")) { return "/admin/addExam"; } else{ return "/teacher/addExam"; } } @RequestMapping("/datacount") public String datacount() throws Exception { return "/admin/datacount"; } @Autowired JdbcTemplate jdbcTemplate;//统计图 @RequestMapping("/datacountList") @ResponseBody public List