1、系统技术栈
-
后端:Springboot、MyBatis、SpringMVC
-
前端:html、css、JavaScript、bootstrap、Vue.js
-
JDK版本:1.8
-
数据库:MySQL 5.7
-
前后端:不分离
-
编辑器:IDEA 2022
2、数据表的设计(只展示管理员、学生、教师、学期的表设计)
管理员信息表
列名 | 数据类型 | 是否为空 | 主键 | 自增 | 备注 |
admin_id | varchar(50) | 否 | 是 | 否 | 登录账号 |
admin_name | varchar(50) | 否 | 否 | 否 | 姓名 |
admin_pass | varchar(255) | 否 | 否 | 否 | 密码 |
学生信息表
列名 | 数据类型 | 是否为空 | 主键 | 自增 | 备注 |
stu_id | varchar(255) | 否 | 是 | 否 | 登录账号 |
stu_name | varchar(50) | 否 | 否 | 否 | 学生姓名 |
stu_pass | varchar(255) | 否 | 否 | 否 | 学生登录密码 |
stu_class | varchar(100) | 否 | 否 | 否 | 学生班级 |
stu_sex | int(11) | 否 | 否 | 否 | 学生性别 |
stu_tele | varchar(255) | 是 | 否 | 否 | 手机号 |
教师信息表
列名 | 数据类型 | 是否为空 | 主键 | 自增 | 备注 |
tea_id | varchar(255) | 否 | 是 | 否 | 登录账号 |
tea_name | varchar(50) | 否 | 否 | 否 | 教师姓名 |
tea_pass | varchar(255) | 否 | 否 | 否 | 教师登录密码 |
tea_sex | varchar(50) | 否 | 否 | 否 | 教师性别 |
tea_tele | varchar(255) | 是 | 否 | 否 | 手机号 |
学期信息表
列名 | 数据类型 | 是否为空 | 主键 | 自增 | 备注 |
res_id | int(50) | 否 | 是 | 是 | 学期id |
stu_id | varchar(255) | 否 | 否 | 否 | 学生id |
sub_name | varchar(255) | 否 | 否 | 否 | 学科名称 |
res_num | int(11) | 否 | 否 | 否 | 数量 |
res_term | varchar(255) | 否 | 否 | 否 | 学期 |
3、 系统界面实现以及部分后台代码实现
登录模块
✥界面
✥部分代码
package com.zzx.demo.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zzx.demo.service.AdminService;
import com.zzx.demo.service.ClassService;
import com.zzx.demo.service.StudentService;
import com.zzx.demo.service.TeacherService;
import com.zzx.demo.bean.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;
@Controller
public class AdminController {
@Autowired
private AdminService adminService;
@Autowired
private ClassService classService;
@Autowired
private StudentService studentService;
@Autowired
private TeacherService teacherService;
@PostMapping(value = "/adm/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password, Map<String,Object> map, HttpSession session)
{
Admin adm=adminService.adminLogin(username,password);
if(adm!=null)
{
List<Classes> classes=classService.getAllClass();
session.setAttribute("loginUser",username);
return "redirect:/admmain.html";
}
else
{
map.put("msg","用户名或密码错误");
return "login";
}
}
管理员模块
✥界面
✥部分代码
package com.zzx.demo.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zzx.demo.service.AdminService;
import com.zzx.demo.service.ClassService;
import com.zzx.demo.service.StudentService;
import com.zzx.demo.service.TeacherService;
import com.zzx.demo.bean.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;
@Controller
public class AdminController {
@Autowired
private AdminService adminService;
@Autowired
private ClassService classService;
@Autowired
private StudentService studentService;
@Autowired
private TeacherService teacherService;
//返回首页
@GetMapping(value = "/adm/toindex")
public String toindex(){
return "redirect:/admmain.html";
}
//返回学生管理首页
@GetMapping(value = "/adm/tostudmin/{pn}")
public String tostudmin(@PathVariable("pn") Integer pn,Model model)
{
PageHelper.startPage(pn, 6);
List<Student> students=studentService.getAllStudent();
List<Classes> classes = classService.getAllClass();
PageInfo<Student> page = new PageInfo<Student>(students, 5);
model.addAttribute("classes",classes);
model.addAttribute("pageInfo",page);
return "forward:/stuadmin.html";
}
//返回学生添加页面
@GetMapping(value = "/adm/stuadd")
public String stutoaddpage(Model model)
{
List<Classes> classes = classService.getAllClass();
model.addAttribute("classes",classes);
return "adm/addstu";
}
//处理学生添加事务
@PostMapping(value = "/adm/stuAdd")
public String stuAdd(@Valid Student student, BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
List<Classes> classes = classService.getAllClass();
if(allErrors.size()==0)
{
Student studentVail=studentService.selectById(student.getStuId());
if(studentVail==null)
{
studentService.addStudent(student);
return "redirect:/adm/tostudmin/1";
}
else{
errmsg.add(new MyError("已存在该学号的学生"));
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "adm/addstu";
}
}
else {
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "adm/addstu";
}
}
//处理删除学生事务
@DeleteMapping(value = "/adm/stu/{stuId}")
public String delestu(@PathVariable("stuId") String stuId)
{
studentService.deleStu(stuId);
return "redirect:/adm/tostudmin/1";
}
//返回学生修改页面
@GetMapping(value = "/adm/stu/{stuId}")
public String updateStuPage(@PathVariable("stuId") String stuId,Model model)
{
Student stu=studentService.selectById(stuId);
List<Classes> classes=classService.getAllClass();
model.addAttribute("stu",stu);
model.addAttribute("classes",classes);
return "adm/updatestu";
}
//更新学生信息操作
@PutMapping(value = "/adm/stu")
public String updateStu(@Valid Student student,BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
List<Classes> classes = classService.getAllClass();
if(allErrors.size()==0)
{
System.out.println(student);
studentService.deleStu(student.getStuId());
studentService.addStudentHavePass(student);
return "redirect:/adm/tostudmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "adm/updatestu";
}
}
//根据ID查询学生
@GetMapping(value = "/adm/selectById")
public String selectById(@Param("stuId") String stuId, Model model)
{
Student student=studentService.selectById(stuId);
List<Classes> classes=classService.getAllClass();
model.addAttribute("classes",classes);
model.addAttribute("stus",student);
return "adm/stubyid";
}
//根据班级查询学生
@GetMapping(value = "/adm/selectByClass/{pn}")
public String selectStuByClass(@PathVariable("pn") Integer pn,@Param("className") String className,Model model)
{
PageHelper.startPage(pn, 6);
List<Student> stus=studentService.seleStuByClassName(className);
List<Classes> classes=classService.getAllClass();
PageInfo<Student> page = new PageInfo<Student>(stus, 5);
model.addAttribute("pageInfo",page);
model.addAttribute("classes",classes);
model.addAttribute("className",className);
return "adm/stubyclass";
}
//返回教师管理首页
@GetMapping(value = "/adm/toteadmin/{pn}")
public String toteadmin(@PathVariable("pn") Integer pn,Model model)
{
PageHelper.startPage(pn, 6);
List<Teacher> teachers=teacherService.getAllTeacher();
PageInfo<Teacher> page = new PageInfo<Teacher>(teachers, 5);
model.addAttribute("pageInfo",page);
return "adm/tealist";
}
//返回教师添加页面
@GetMapping(value = "/adm/teaadd")
public String teatoaddpage()
{
return "adm/addtea";
}
//处理教师添加事务
@PostMapping(value = "/adm/teaAdd")
public String teaAdd(@Valid Teacher teacher, BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
Teacher teacherVail=teacherService.selectById(teacher.getTeaId());
if(teacherVail==null)
{
teacherService.addTeacher(teacher);
return "redirect:/adm/toteadmin/1";
}
else{
errmsg.add(new MyError("已存在该工号的教师"));
model.addAttribute("errors",errmsg);
model.addAttribute("tea",teacher);
return "adm/addtea";
}
}
else {
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("tea",teacher);
return "adm/addtea";
}
}
//返回教师修改页面
@GetMapping(value = "/adm/tea/{teaId}")
public String updateTeaPage(@PathVariable("teaId") String teaId,Model model)
{
Teacher tea=teacherService.selectById(teaId);
model.addAttribute("tea",tea);
return "adm/upadtetea";
}
//更新教师信息操作
@PutMapping(value = "/adm/tea")
public String updateTea(@Valid Teacher teacher,BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
System.out.println(teacher);
teacherService.deleTea(teacher.getTeaId());
teacherService.addTeacherHavePass(teacher);
return "redirect:/adm/toteadmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("tea",teacher);
return "adm/upadtetea";
}
}
//根据ID查询教师
@GetMapping(value = "/adm/selectTeaById")
public String selectTeaById(@Param("teaId") String teaId, Model model)
{
Teacher teacher=teacherService.selectById(teaId);
model.addAttribute("tea",teacher);
return "adm/teabyid";
}
//处理删除教师事务
@DeleteMapping(value = "/adm/tea/{teaId}")
public String deletea(@PathVariable("teaId") String teaId)
{
teacherService.deleTea(teaId);
return "redirect:/adm/toteadmin/1";
}
//返回班级管理首页
@GetMapping(value = "/adm/toclassdmin/{pn}")
public String toclassdmin(@PathVariable("pn") Integer pn,Model model)
{
PageHelper.startPage(pn, 6);
List<Classes> classes=classService.getAllClass();
PageInfo<Classes> page = new PageInfo<Classes>(classes, 5);
model.addAttribute("pageInfo",page);
return "adm/classlist";
}
//返回班级添加页面
@GetMapping(value = "/adm/classadd")
public String classToAddPage()
{
return "adm/addclass";
}
//处理班级添加事务
@PostMapping(value = "/adm/classAdd")
public String classAdd(@Valid Classes classes, BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
if(classService.selectByName(classes.getClassName())==null) {
Classes classVail = classService.selectById(classes.getClassId());
if (classVail == null) {
classService.addClass(classes);
return "redirect:/adm/toclassdmin/1";
} else {
errmsg.add(new MyError("已存在该班级号的班级"));
model.addAttribute("errors", errmsg);
model.addAttribute("class", classes);
return "adm/addclass";
}
}
else
{
errmsg.add(new MyError("已存在该班级名字的班级"));
model.addAttribute("errors", errmsg);
model.addAttribute("class", classes);
return "adm/addclass";
}
}
else {
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("class",classes);
return "adm/addclass";
}
}
//返回班级修改页面
@GetMapping(value = "/adm/class/{classId}")
public String updateClassPage(@PathVariable("classId") String classId,Model model)
{
Classes classes=classService.selectById(classId);
model.addAttribute("class",classes);
return "adm/upadteclass";
}
//更新班级信息操作
@PutMapping(value = "/adm/class")
public String updateClass(@Valid Classes classes,BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
System.out.println(classes);
classService.deleteById(classes.getClassId());
classService.addClass(classes);
return "redirect:/adm/toclassdmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("class",classes);
return "adm/upadteclass";
}
}
//根据Name查询班级
@GetMapping(value = "/adm/selectClassByName")
public String selectClassById(@Param("className") String className, Model model)
{
Classes classes=classService.selectByName(className);
model.addAttribute("class",classes);
return "adm/classbyid";
}
//处理删除班级事务
@DeleteMapping(value = "/adm/class/{classId}")
public String deleClass(@PathVariable("classId") String classId)
{
classService.deleteById(classId);
return "redirect:/adm/toclassdmin/1";
}
// @GetMapping(value = "/adm/selectByClass/{pn}")
//处理删除学生事务从根据班级查找页面发送来的
@DeleteMapping(value = "/adm/stubyclass/{stuId}")
public String delestubyclass(@PathVariable("stuId") String stuId)
{
Student student = studentService.selectById(stuId);
studentService.deleStu(stuId);
try {
return "redirect:/adm/selectByClass/1?className="+ URLEncoder.encode(student.getStuClass(),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "redirect:/adm/toclassdmin/1";
}
//返回学生修改页面从根据班级查找页面发送来的
@GetMapping(value = "/adm/stubyclass/{stuId}")
public String updateStuPagebyclass(@PathVariable("stuId") String stuId,Model model)
{
Student stu=studentService.selectById(stuId);
List<Classes> classes=classService.getAllClass();
model.addAttribute("stu",stu);
model.addAttribute("classes",classes);
model.addAttribute("ininclass",stu.getStuClass());
return "adm/updatestubyclass";
}
//更新学生信息操作从根据班级查找页面发送来的
@PutMapping(value = "/adm/stubyclass")
public String updateStubyclass(@Valid Student student,BindingResult bindingResult,Model model,@Param("ininclass") String ininclass)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
List<Classes> classes = classService.getAllClass();
if(allErrors.size()==0)
{
System.out.println(student);
studentService.deleStu(student.getStuId());
studentService.addStudentHavePass(student);
try {
return "redirect:/adm/selectByClass/1?className="+URLEncoder.encode(ininclass,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "redirect:/adm/toclassdmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "adm/updatestubyclass";
}
}
}
学生模块
✥界面
✥部分代码
package com.zzx.demo.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zzx.demo.bean.*;
import com.zzx.demo.service.ClassService;
import com.zzx.demo.service.ResultssService;
import com.zzx.demo.service.StudentService;
import com.zzx.demo.bean.Classes;
import com.zzx.demo.bean.MyError;
import com.zzx.demo.bean.Resultss;
import com.zzx.demo.bean.Student;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Controller
public class StudentController {
@Autowired
private StudentService studentService;
@Autowired
private ClassService classService;
@Autowired
private ResultssService resultssService;
@PostMapping(value = "/stu/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password, Map<String,Object> map, HttpSession session)
{
Student stu=studentService.login(username,password);
if(stu!=null)
{
session.setAttribute("loginUser",username);
return "redirect:/stumain.html";
}
else
{
map.put("msg","用户名或密码错误");
return "login";
}
}
//返回首页
@GetMapping(value = "/stu/toindex")
public String toindex(){
return "redirect:/stumain.html";
}
//返回学生信息修改页面
@GetMapping(value = "/stu/toUpdateMsgPage")
public String toUpdateMsgPage(HttpSession httpSession, Model model)
{
Student stu= studentService.selectById((String) httpSession.getAttribute("loginUser"));
List<Classes> classes=classService.getAllClass();
model.addAttribute("stu",stu);
model.addAttribute("classes",classes);
return "stu/updateStu";
}
//更新学生信息操作
@PutMapping(value = "/stu/updateStuMsg")
public String updateStuMsg(@Valid Student student, BindingResult bindingResult, Model model,HttpSession httpSession)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
List<Classes> classes = classService.getAllClass();
if(allErrors.size()==0)
{
Student studentInit=studentService.selectById((String) httpSession.getAttribute("loginUser"));
student.setStuId(studentInit.getStuId());
student.setStuName(studentInit.getStuName());
student.setStuClass(studentInit.getStuClass());
student.setStuSex(studentInit.getStuSex());
studentService.deleStu(studentInit.getStuId());
studentService.addStudentHavePass(student);
return "redirect:/updateSucc.html";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("stu",student);
model.addAttribute("classes",classes);
return "stu/updateStu";
}
}
//返回学生成绩首页
@GetMapping(value = "/stu/toresdmin/{pn}")
public String toresdmin(@PathVariable("pn") Integer pn,Model model,HttpSession httpSession)
{
PageHelper.startPage(pn, 9);
List<Resultss> resultsses = resultssService.selectByStuId((String) httpSession.getAttribute("loginUser"));
PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
model.addAttribute("pageInfo",page);
return "stu/resultlist";
}
//根据学期查询成绩
@GetMapping(value = "/stu/selectResByTerm/{pn}")
public String selectResByTerm(@PathVariable("pn") Integer pn,@Param("resTerm") String resTerm, Model model,HttpSession httpSession)
{
PageHelper.startPage(pn, 9);
List<Resultss> resultsses=resultssService.selectByStuIdAndResTerm((String) httpSession.getAttribute("loginUser"),resTerm);
PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
model.addAttribute("pageInfo",page);
model.addAttribute("resTerm",resTerm);
return "stu/reslistbyterm";
}
}
教师模块
✥界面
✥部分代码
package com.zzx.demo.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zzx.demo.bean.*;
import com.zzx.demo.service.ClassService;
import com.zzx.demo.service.ResultssService;
import com.zzx.demo.service.StudentService;
import com.zzx.demo.service.TeacherService;
import com.zzx.demo.bean.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import java.util.*;
@Controller
public class TeacherController {
@Autowired
private TeacherService teacherService;
@Autowired
private ResultssService resultssService;
@Autowired
private ClassService classService;
@Autowired
private StudentService studentService;
@PostMapping(value = "/tea/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password, Map<String,Object> map, HttpSession session)
{
Teacher tea=teacherService.login(username,password);
if(tea!=null)
{
session.setAttribute("loginUser",username);
return "redirect:/teamain.html";
}
else
{
map.put("msg","用户名或密码错误");
return "login";
}
}
//返回首页
@GetMapping(value = "/tea/toindex")
public String teaToIndex(){
return "redirect:/teamain.html";
}
//返回教师信息修改页面
@GetMapping(value = "/tea/toUpdateMsgPage")
public String teaToUpdateMsgPage(HttpSession httpSession, Model model)
{
Teacher tea= teacherService.selectById((String) httpSession.getAttribute("loginUser"));
model.addAttribute("tea",tea);
return "tea/updatetea";
}
//更新教师信息操作
@PutMapping(value = "/tea/updateTeaMsg")
public String updateTeaMsg(@Valid Teacher teacher, BindingResult bindingResult, Model model, HttpSession httpSession)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
Teacher teacherInit=teacherService.selectById((String) httpSession.getAttribute("loginUser"));
teacher.setTeaId(teacherInit.getTeaId());
teacher.setTeaName(teacherInit.getTeaName());
teacher.setTeaSex(teacherInit.getTeaSex());
teacherService.deleTea(teacherInit.getTeaId());
teacherService.addTeacherHavePass(teacher);
return "redirect:/updateTeaSucc.html";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("tea",teacher);
return "tea/updatetea";
}
}
//返回成绩管理首页
@GetMapping(value = "/tea/toteadmin/{pn}")
public String toteadmin(@PathVariable("pn") Integer pn, Model model)
{
PageHelper.startPage(pn, 6);
List<Resultss> resultsses=resultssService.getAllResult();
PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
List<Classes> classes = classService.getAllClass();
model.addAttribute("classes",classes);
model.addAttribute("pageInfo",page);
return "tea/tearesultlist";
}
//返回成绩添加页面
@GetMapping(value = "/tea/resadd")
public String toResAddPage()
{
return "tea/addResult";
}
//处理成绩添加事务
@PostMapping(value = "/tea/resAdd")
public String resAdd(@Valid Resultss resultss,BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
Resultss resultssVail=null;
if(allErrors.size()==0)
{
if(studentService.selectById(resultss.getStuId())!=null) {
resultssVail = resultssService.selectResultByStuIdAndSubName(resultss.getStuId(), resultss.getSubName());
if (resultssVail == null) {
resultssService.addResult(resultss);
return "redirect:/tea/toteadmin/1";
} else {
errmsg.add(new MyError("已存在该学生的此成绩信息"));
model.addAttribute("errors", errmsg);
model.addAttribute("res", resultss);
return "tea/addResult";
}
}
else{
errmsg.add(new MyError("不存在该学号的学生"));
model.addAttribute("errors", errmsg);
model.addAttribute("res", resultss);
return "tea/addResult";
}
}
else {
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("res",resultss);
return "tea/addResult";
}
}
//返回成绩修改页面
@GetMapping(value = "/tea/res/{resId}")
public String updateResPage(@PathVariable("resId") int resId,Model model)
{
Resultss resultss=resultssService.selectResultByResId(resId);
model.addAttribute("res",resultss);
model.addAttribute("resId",resId);
return "tea/updateResult";
}
//更新成绩信息操作
@PutMapping(value = "/tea/res")
public String updateRes(@Valid Resultss resultss,BindingResult bindingResult,Model model)
{
List<ObjectError> allErrors = bindingResult.getAllErrors();
List<MyError> errmsg = new ArrayList<>();
if(allErrors.size()==0)
{
System.out.println(resultss);
resultssService.deleteResultById(resultss.getResId());
resultssService.addResult(resultss);
return "redirect:/tea/toteadmin/1";
}
else
{
for (ObjectError error:allErrors)
{
errmsg.add(new MyError(error.getDefaultMessage()));
}
model.addAttribute("errors",errmsg);
model.addAttribute("res",resultss);
return "tea/updateResult";
}
}
//处理删除成绩信息事务
@DeleteMapping(value = "/tea/res/{resId}")
public String deleres(@PathVariable("resId") int stuId)
{
resultssService.deleteResultById(stuId);
return "redirect:/tea/toteadmin/1";
}
//根据ID查询学生的成绩
@GetMapping(value = "/tea/selectById/{pn}")
public String selectResultByStuId(@PathVariable("pn") Integer pn,@Param("stuId") String stuId, Model model)
{
PageHelper.startPage(pn, 6);
List<Resultss> resultsses=resultssService.selectByStuId(stuId);
PageInfo<Resultss> page = new PageInfo<Resultss>(resultsses, 5);
List<Classes> classes=classService.getAllClass();
model.addAttribute("classes",classes);
model.addAttribute("pageInfo",page);
model.addAttribute("stuId",stuId);
return "tea/tearesultlistbystuid";
}
4、总结
-
管理员:管理员可以管理学生、教师、班级模块信息
-
学生:学生可以看到自己信息,可以修改密码和手机号,可以查询分数
-
教师:教师可以管理个人信息、可以给学生打分、可以添加新同学、可以管理全年级的分数
-
项目所有展示的功能已经实现,大家也可以根据实际情况添加几个自己喜欢的模块
-
需要源码的请私信我获取,这里发不了压缩包,希望对你有所帮助
我是猪猪侠,一个爱写代码的码农,期待我们下篇再会!!!