随着互联网的不断发展与微信及微信小程序的普遍应用,教育行业发生了重大变化,有关IT方面的线下培训机构也随之增加。如果线下IT培训机构可以利用线上管理取代传统的人工管理,那么将可以大大地降低工作量,提高整个机构的工作效率,还可以更好地对人员信息进行管理,同时也扩充了招生范围,有利于线下IT培训机构的工作更好地开展,因此开发一个培训机构管理系统是很有必要的。

首先对当前线下培训机构所使用的的管理系统进行调研和分析,然后对软件的开发平台和技术、数据库等技术方面进行了研究,提出了基于Idea与微信小程序平台,采用了SSM(Spring+SpringMVC+Mybatis)框架与Shrio框架开发系统后端,采用Bootstrap框架和微信小程序开发前端,并采用MySQL5.6数据库管理数据的开发方案;再次,采用UML建模技术对系统进行需求分析、功能设计以及类的设计;最后,实现了一个具有学员管理、课程管理、讲师管理、成绩管理、考试管理、订单管理、数据统计的基于微信小程序的线下IT培训机构管理系统。

关键词: 线下  IT培训  SSM  微信小程序

【java毕业设计】java线下IT培训机构平台ssm培训课程成绩管理系统微信小程序

系统部署说明:

打开IntelliJ IDEA,导入Examination_System项目,找到jdbc.properties配置文件,将实际mysql地址,mysql账号密码以及端口号配置上去,修改完成之后再次重启tomcat即可。
打开微信开发者工具,导入wxapp-training-master项目后运行即可。
打开MySQL,导入examination_system.sql文件即可。
访问后台:http://localhost:8080/login,输入系统管理员账号admin和密码123即可。

 

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<StudentCustom> 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);}/*  if (page != null && page.intValue() != 0){pagingVO.setToPageNo(page);list = this.studentService.findByPaging(1);}else{pagingVO.setToPageNo(Integer.valueOf(1));list = this.studentService.findByPaging(Integer.valueOf(1));}*/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<College> 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<College> 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<StudentCustom> list = studentService.findByName(findByName);model.addAttribute("studentList", list);return "/admin/showStudent";}/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<教师操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 教师页面显示@RequestMapping({"/showTeacher"})public String showTeacher(Model model, Integer page) throws Exception {List<TeacherCustom> 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<College> 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<College> 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<TeacherCustom> list = teacherService.findByName(findByName);model.addAttribute("teacherList", list);return "/admin/showTeacher";}/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<课程操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 课程信息显示@RequestMapping("/showCourse")public String showCourse(Model model, Integer page) throws Exception {List<CourseCustom> 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<TeacherCustom> list = teacherService.findAll();List<College> 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<TeacherCustom> list = teacherService.findAll();List<College> 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<CourseCustom> 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<CourseCustom> 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";}@AutowiredJdbcTemplate jdbcTemplate;
//统计图@RequestMapping("/datacountList")@ResponseBodypublic List<Map<String, Object>> datacountList() throws Exception {String sql = "select c.courseName as name ,count(c.courseName) as value from `order` o left join course c on c.courseID = o.courseId group by c.courseName";return jdbcTemplate.queryForList(sql);}
//查询成绩@RequestMapping("/queryScode")public String queryScode(Model model,String name,Integer page ) {Object principal = SecurityUtils.getSubject().getPrincipal();Subject subject = SecurityUtils.getSubject();try{if(!subject.hasRole("admin")&&!subject.hasRole("teacher")){page = -1;}List<SelectedCourseCustom> courseCustoms = selectedCourseService.selectInner(null,name,page);model.addAttribute("selectedCourseList" , courseCustoms);PagingVO pagingVO = new PagingVO();if(page!=null&&page!=0){pagingVO.setToPageNo(page);}pagingVO.setTotalCount(selectedCourseService.getCount());model.addAttribute("pagingVO" , pagingVO);}catch (Exception e){e.printStackTrace();}if (subject.hasRole("admin")) {return "/admin/overCourse";} else{return "/teacher/overCourse";}}@Resource(name = "examServiceImpl")private ExamService examService;//添加成绩@RequestMapping("/luruScode")public String luruScode(Model model,Integer id) throws Exception {List<Exam> exams = examService.selectByExample(new ExamExample());model.addAttribute("examList" ,exams);model.addAttribute("studentId" ,id);Object principal = SecurityUtils.getSubject().getPrincipal();Subject subject = SecurityUtils.getSubject();if (subject.hasRole("admin")) {return "/admin/addScode";} else{return "/teacher/addScode";}}//保存成绩@RequestMapping("/saveScode")public String saveScode(Model model,Selectedcourse selectedcourse) throws Exception {selectedCourseService.save(selectedcourse);Object principal = SecurityUtils.getSubject().getPrincipal();Subject subject = SecurityUtils.getSubject();return "redirect:/admin/showStudent";}//更新成绩@RequestMapping("/updateScode")public String updateScode(Model model,Selectedcourse selectedcourse) throws Exception {try {selectedCourseService.updataOne(selectedcourse);}catch (Exception e){e.printStackTrace();}return "redirect:/admin/queryScode";}//删除成绩@RequestMapping("/removeScode")public String removeScode(Model model,Integer id) throws Exception {try {selectedCourseService.removeById(id);return "redirect:/admin/queryScode";}catch (Exception e){e.printStackTrace();}return "redirect:/admin/queryScode";}//修改成绩@RequestMapping("/editScodeAction")public String updateScode(Model model,SelectedCourseCustom selectedcourse) throws Exception {model.addAttribute("socde",selectedcourse);List<Exam> exams = examService.selectByExample(new ExamExample());model.addAttribute("examList" ,exams);Object principal = SecurityUtils.getSubject().getPrincipal();Subject subject = SecurityUtils.getSubject();if (subject.hasRole("admin")) {return "/admin/editScode";} else{return "/teacher/editScode";}}}

基于SSM培训机构课程成绩管理系统微信小程序源码相关推荐

  1. java线下IT培训机构平台ssm培训课程成绩管理系统微信小程序源码和论文

    随着互联网的不断发展与微信及微信小程序的普遍应用,教育行业发生了重大变化,有关IT方面的线下培训机构也随之增加.如果线下IT培训机构可以利用线上管理取代传统的人工管理,那么将可以大大地降低工作量,提高 ...

  2. 基于springboot的健身管理系统微信小程序源码和论文

    健身房现在已经不是一个陌生的词汇了,对于广大的人民来说它是一种必然和必要的存在.而计算机的技术也在飞速的发展,在双重推力的促进之下,健身房不能只是单纯的传统企业闭门造车,而是要结合现今的技术和科技.无 ...

  3. 基于springboot健身管理系统微信小程序源码

    摘 要 现如今人们在努力工作和改善生活的同时,也开始关心起自己是否拥有一个健康的体魄,因此去健身房锻炼的人越来越多.面对不断激增的用户数量,飞羽健身房还是以传统人工操作的方式管理用户,执行效率很低.故 ...

  4. 计算机毕业设计ssm基于网络的景区旅游服务管理系统q57ng系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于网络的景区旅游服务管理系统q57ng系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于网络的景区旅游服务管理系统q57ng系统+程序+源码+lw+远程部署 本源码技术栈 ...

  5. Java+SSM二手交易商城微信小程序源码【包调试运行】

    目录 一.程序介绍: 三.文档目录: 四.运行截图: 五.数据库表: 六.代码展示: 七.更多学习目录: 八.互动留言 一.程序介绍: 文档:开发技术文档.参考LW.答辩PPT,部分项目另有其他文档 ...

  6. 计算机毕业设计ssm家猪智能饲养管理系统wt2ah系统+程序+源码+lw+远程部署

    计算机毕业设计ssm家猪智能饲养管理系统wt2ah系统+程序+源码+lw+远程部署 计算机毕业设计ssm家猪智能饲养管理系统wt2ah系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S ...

  7. 计算机毕业设计ssm基于SSM的美妆分享网站vf952系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于SSM的美妆分享网站vf952系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于SSM的美妆分享网站vf952系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构 ...

  8. 计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署 本源码技术栈: ...

  9. 计算机毕业设计ssm成都驰聘健身俱乐部管理系统so4b3系统+程序+源码+lw+远程部署

    计算机毕业设计ssm成都驰聘健身俱乐部管理系统so4b3系统+程序+源码+lw+远程部署 计算机毕业设计ssm成都驰聘健身俱乐部管理系统so4b3系统+程序+源码+lw+远程部署 本源码技术栈: 项目 ...

最新文章

  1. Java方法,调用,static关键字
  2. Linux 网络编程(TCP)
  3. Delphi 2010 新增功能之: 软键盘、触摸键盘(TTouchKeyboard)
  4. 前端获取后端传来的session_java后台如何获取,前台传来的表单数据
  5. Java安全 – JCE (Blowfish算法报错)
  6. 指针08:指针配合数组和函数
  7. 打印快递面单pdf_如何开通使用拼多多电子面单?
  8. 让博客园博客自动生成章节目录索引
  9. 403保护网站服务器,HTML5服务器禁止访问403错误动画
  10. javascript滚动条响应鼠标滑轮的实现上下滚动事件
  11. robot---百度百科
  12. 视频加密能做到完全防止外传播吗?
  13. 【机器学习】简单关联分析算法-Apriori algorithm
  14. 微信趣味地区一键设置,安排
  15. 【蓝桥杯2019Java】平方和、最大降雨量
  16. [Distributed]拜占庭将军问题
  17. 《PYTHON编程初学者指南》pdf
  18. 大数据标准化白皮书(2020版) 附下载地址
  19. 1028: 安全路径(2014年中南大学研究生复试机试题 )
  20. 区块链学习(6)-EVM有6种方式可以存储数据

热门文章

  1. 【信息安全】信息安全风险评估
  2. 在MS CRM中使用Excel导入/导出的功能对数据进行批量处理
  3. 抖音短视频编辑工具EffectCreator 6.4.0中文版
  4. 广州数控(广数GSK)系列数据采集
  5. 快手 KSCAD 矢量绘图软件
  6. 网络流-最大流问题 ISAP 算法
  7. 客观认识植物乳杆菌 (L. plantarum) 及其健康益处
  8. 2021年建筑电工(建筑特殊工种)考试技巧及建筑电工(建筑特殊工种)复审考试
  9. 《学做智能车——卓晴》学习笔记(1)——智能汽车智能控制器方案设计
  10. MTK平台 Android11 支持exFat格式T卡