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";
    }

    }
      本程序是教师页面功能的实现,包括显示教师本人的课程、显示成绩、对课程进行打分和修改(教师的)密码。
  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/vision-xixi/p/10941313.html
Copyright © 2011-2022 走看看