zoukankan      html  css  js  c++  java
  • 学生课程表管理系统——stage 2

    核心代码

    AdminController

    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.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    import javax.annotation.Resource;
    import java.util.List;


    @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;

    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<学生操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/

    // 学生信息显示
    @RequestMapping("/showStudent")
    public String showStudent(Model model, Integer page) throws Exception {

    List<StudentCustom> list = null;
    //页码对象
    PagingVO pagingVO = new PagingVO();
    //设置总页数
    pagingVO.setTotalCount(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);

    return "admin/showStudent";

    }

    // 添加学生信息页面显示
    @RequestMapping(value = "/addStudent", method = {RequestMethod.GET})
    public String addStudentUI(Model model) throws Exception {

    List<College> list = collegeService.finAll();

    model.addAttribute("collegeList", list);

    return "admin/addStudent";
    }

    // 添加学生信息操作
    @RequestMapping(value = "/addStudent", method = {RequestMethod.POST})
    public String addStudent(StudentCustom studentCustom, Model model) throws Exception {

    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) {
    //加入没有带学生id就进来的话就返回学生显示页面
    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(teacherService.getCountTeacher());
    if (page == null || page == 0) {
    pagingVO.setToPageNo(1);
    list = teacherService.findByPaging(1);
    } else {
    pagingVO.setToPageNo(page);
    list = teacherService.findByPaging(page);
    }

    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.getCountCouse());
    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.upadteById(courseCustom.getCourseid(), courseCustom);

    //重定向
    return "redirect:/admin/showCourse";
    }

    // 删除课程信息
    @RequestMapping("/removeCourse")
    public String removeCourse(Integer id) throws Exception {
    if (id == null) {
    //加入没有带教师id就进来的话就返回教师显示页面
    return "admin/showCourse";
    }
    courseService.removeById(id);

    return "redirect:/admin/showCourse";
    }

    //搜索课程
    @RequestMapping(value = "selectCourse", method = {RequestMethod.POST})
    private String selectCourse(String findByName, Model model) throws Exception {

    List<CourseCustom> list = courseService.findByName(findByName);

    model.addAttribute("courseList", list);
    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";
    }


    }
      该代码实现的是管理员界面能够实现的所有功能,包括学生、课程和老师页面的显示、添加、修改、删除、搜索功能,还提供了用户密码的重置功能

                                                                 LoginController
    package com.system.controller;

    import com.system.po.Userlogin;
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.authc.UsernamePasswordToken;
    import org.apache.shiro.subject.Subject;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    @Controller
    public class LoginController {

    //登录跳转
    @RequestMapping(value = "/login", method = {RequestMethod.GET})
    public String loginUI() throws Exception {
    return "../../login";
    }

    //登录表单处理
    @RequestMapping(value = "/login", method = {RequestMethod.POST})
    public String login(Userlogin userlogin) throws Exception {

    //Shiro实现登录
    UsernamePasswordToken token = new UsernamePasswordToken(userlogin.getUsername(),
    userlogin.getPassword());
    Subject subject = SecurityUtils.getSubject();

    //如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常
    subject.login(token);

    if (subject.hasRole("admin")) {
    return "redirect:/admin/showStudent";
    } else if (subject.hasRole("teacher")) {
    return "redirect:/teacher/showCourse";
    } else if (subject.hasRole("student")) {
    return "redirect:/student/showCourse";
    }

    return "/login";
    }

    }
      本段代码实现了利用Shiro技术来实现登陆,包括登陆表单的处理、登陆的跳转和异常的处理

                                          ResetPasswordController
    package com.system.controller;

    import com.system.exception.CustomException;
    import com.system.po.Userlogin;
    import com.system.service.UserloginService;
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.subject.Subject;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    import javax.annotation.Resource;

    @Controller
    public class RestPasswordController {

    @Resource(name = "userloginServiceImpl")
    private UserloginService userloginService;

    // 本账户密码重置
    @RequestMapping(value = "/passwordRest", method = {RequestMethod.POST})
    public String passwordRest(String oldPassword, String password1) throws Exception {
    Subject subject = SecurityUtils.getSubject();
    String username = (String) subject.getPrincipal();

    Userlogin userlogin = userloginService.findByName(username);

    if (!oldPassword.equals(userlogin.getPassword())) {
    throw new CustomException("旧密码不正确");
    } else {
    userlogin.setPassword(password1);
    userloginService.updateByName(username, userlogin);
    }

    return "redirect:/logout";
    }

    }
      本段代码是密码重置过程的实现


                                          StudentController
    package com.system.controller;

    import com.system.exception.CustomException;
    import com.system.po.*;
    import com.system.service.CourseService;
    import com.system.service.SelectedCourseService;
    import com.system.service.StudentService;
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.subject.Subject;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;

    import javax.annotation.Resource;
    import java.util.List;


    @Controller
    @RequestMapping(value = "/student")
    public class StudentController {

    @Resource(name = "courseServiceImpl")
    private CourseService courseService;

    @Resource(name = "studentServiceImpl")
    private StudentService studentService;

    @Resource(name = "selectedCourseServiceImpl")
    private SelectedCourseService selectedCourseService;

    @RequestMapping(value = "/showCourse")
    public String stuCourseShow(Model model, Integer page) throws Exception {

    List<CourseCustom> list = null;
    //页码对象
    PagingVO pagingVO = new PagingVO();
    //设置总页数
    pagingVO.setTotalCount(courseService.getCountCouse());
    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 "student/showCourse";
    }

    // 选课操作
    @RequestMapping(value = "/stuSelectedCourse")
    public String stuSelectedCourse(int id) throws Exception {
    //获取当前用户名
    Subject subject = SecurityUtils.getSubject();
    String username = (String) subject.getPrincipal();

    SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom();
    selectedCourseCustom.setCourseid(id);
    selectedCourseCustom.setStudentid(Integer.parseInt(username));

    SelectedCourseCustom s = selectedCourseService.findOne(selectedCourseCustom);

    if (s == null) {
    selectedCourseService.save(selectedCourseCustom);
    } else {
    throw new CustomException("该门课程你已经选了,不能再选");
    }

    return "redirect:/student/selectedCourse";
    }

    // 退课操作
    @RequestMapping(value = "/outCourse")
    public String outCourse(int id) throws Exception {
    Subject subject = SecurityUtils.getSubject();
    String username = (String) subject.getPrincipal();

    SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom();
    selectedCourseCustom.setCourseid(id);
    selectedCourseCustom.setStudentid(Integer.parseInt(username));

    selectedCourseService.remove(selectedCourseCustom);

    return "redirect:/student/selectedCourse";
    }

    // 已选课程
    @RequestMapping(value = "/selectedCourse")
    public String selectedCourse(Model model) throws Exception {
    //获取当前用户名
    Subject subject = SecurityUtils.getSubject();
    StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());

    List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();

    model.addAttribute("selectedCourseList", list);

    return "student/selectCourse";
    }

    // 已修课程
    @RequestMapping(value = "/overCourse")
    public String overCourse(Model model) throws Exception {

    //获取当前用户名
    Subject subject = SecurityUtils.getSubject();
    StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());

    List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();

    model.addAttribute("selectedCourseList", list);

    return "student/overCourse";
    }

    //修改密码
    @RequestMapping(value = "/passwordRest")
    public String passwordRest() throws Exception {
    return "student/passwordRest";
    }



    }
      本段代码是学生页面功能的实现,其中包括选课、退课、查询已选课程、查询已修课程和修改密码。


                                          TeacherComtroller
    package com.system.controller;

    import com.system.exception.CustomException;
    import com.system.po.*;
    import com.system.service.CourseService;
    import com.system.service.SelectedCourseService;
    import com.system.service.StudentService;
    import com.system.service.TeacherService;
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.subject.Subject;
    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 javax.annotation.Resource;
    import java.util.List;

    @Controller
    @RequestMapping(value = "/teacher")
    public class TeacherController {

    @Resource(name = "teacherServiceImpl")
    private TeacherService teacherService;

    @Resource(name = "courseServiceImpl")
    private CourseService courseService;

    @Resource(name = "selectedCourseServiceImpl")
    private SelectedCourseService selectedCourseService;

    // 显示我的课程
    @RequestMapping(value = "/showCourse")
    public String stuCourseShow(Model model) throws Exception {

    Subject subject = SecurityUtils.getSubject();
    String username = (String) subject.getPrincipal();

    List<CourseCustom> list = courseService.findByTeacherID(Integer.parseInt(username));
    model.addAttribute("courseList", list);

    return "teacher/showCourse";
    }

    // 显示成绩
    @RequestMapping(value = "/gradeCourse")
    public String gradeCourse(Integer id, Model model) throws Exception {
    if (id == null) {
    return "";
    }
    List<SelectedCourseCustom> list = selectedCourseService.findByCourseID(id);
    model.addAttribute("selectedCourseList", list);
    return "teacher/showGrade";
    }

    // 打分
    @RequestMapping(value = "/mark", method = {RequestMethod.GET})
    public String markUI(SelectedCourseCustom scc, Model model) throws Exception {

    SelectedCourseCustom selectedCourseCustom = selectedCourseService.findOne(scc);

    model.addAttribute("selectedCourse", selectedCourseCustom);

    return "teacher/mark";
    }

    // 打分
    @RequestMapping(value = "/mark", method = {RequestMethod.POST})
    public String mark(SelectedCourseCustom scc) throws Exception {

    selectedCourseService.updataOne(scc);

    return "redirect:/teacher/gradeCourse?id="+scc.getCourseid();
    }

    //修改密码
    @RequestMapping(value = "/passwordRest")
    public String passwordRest() throws Exception {
    return "teacher/passwordRest";
    }

    }
      本程序是教师页面功能的实现,包括显示教师本人的课程、显示成绩、对课程进行打分和修改(教师的)密码。
  • 相关阅读:
    博客美化
    hello world
    mysql数据库索引
    Golang:线程 和 协程 的区别
    计算机网络详解
    Redis持久化机制
    nginx 详解
    多级缓存的分层架构
    svn忽略文件不提交至服务器的方法
    Mysql 事务及其原理
  • 原文地址:https://www.cnblogs.com/vision-xixi/p/10941313.html
Copyright © 2011-2022 走看看