Compare commits

..

7 Commits

@ -0,0 +1,62 @@
package com.zsz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zsz.pojo.Admin;
import com.zsz.service.AdminService;
import com.zsz.util.MD5;
import com.zsz.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("管理员管理器")
@RestController
@RequestMapping("/sms/adminController")
public class AdminController {
@Autowired
AdminService adminService;
// http://localhost:8080/sms/adminController/getAllAdmin/1/3?adminName=
@ApiOperation("根据分页条件查询管理员信息")
@GetMapping("/getAllAdmin/{pageNo}/{pageSize}")
public Result getAllAdmin(
@ApiParam("分页查询的页码数") @PathVariable("pageNo") Integer pageNo,
@ApiParam("分页查询的页大小") @PathVariable("pageSize") Integer pageSize,
@ApiParam("要查询的管理员姓名") String adminName
){
Page<Admin> adminPage = new Page<>(pageNo, pageSize);
Page<Admin> adminPage1 = adminService.getAllAdminData(adminPage,adminName);
return Result.ok(adminPage1);
}
// http://localhost:8080/sms/adminController/saveOrUpdateAdmin
@ApiOperation("新增或者修改管理员信息")
@PostMapping("/saveOrUpdateAdmin")
public Result saveOrUpdateAdmin(
@ApiParam("提交的管理员信息") @RequestBody Admin admin
){
Integer id = admin.getId();
if (null == id || 0 == id){
String password = admin.getPassword();
String encrypt = MD5.encrypt(password);
admin.setPassword(encrypt);
}
adminService.saveOrUpdate(admin);
return Result.ok();
}
// http://localhost:8080/sms/adminController/deleteAdmin
@ApiOperation("删除单个或多个管理员信息")
@DeleteMapping("/deleteAdmin")
public Result deleteAdmin(
@ApiParam("要删除的管理员的id列表") @RequestBody List<Integer> ids
){
adminService.removeByIds(ids);
return Result.ok();
}
}

@ -1,9 +0,0 @@
package com.zsz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zsz.pojo.Admin;
import org.springframework.stereotype.Repository;
@Repository
public interface AdminMapper extends BaseMapper<Admin> {
}

@ -0,0 +1,62 @@
package com.zsz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zsz.pojo.Clazz;
import com.zsz.service.ClazzService;
import com.zsz.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("班级控制器")
@RestController
@RequestMapping("/sms/clazzController")
public class ClazzController {
@Autowired
ClazzService clazzService;
@ApiOperation("获取所有班级信息")
@GetMapping("/getClazzs")
public Result getClazzs(){
List<Clazz> clazzs = clazzService.getClazzs();
return Result.ok(clazzs);
}
// http://localhost:8080/sms/clazzController/getClazzsByOpr/1/3?gradeName=&name=
@ApiOperation("根据年级名称和班级名称获取班级信息,带分页")
@GetMapping("/getClazzsByOpr/{pageNo}/{pageSize}")
public Result getClazzsByOpr(
@ApiParam("分页查询的页码数") @PathVariable("pageNo") Integer pageNo,
@ApiParam("分页查询的页大小") @PathVariable("pageSize") Integer pageSize,
@ApiParam("班级信息") Clazz clazz
){
Page<Clazz> clazzPage = new Page<>(pageNo, pageSize);
Page<Clazz> page = clazzService.getClazzData(clazzPage,clazz);
return Result.ok(page);
}
@ApiOperation("增加或修改班级信息")
@PostMapping("/saveOrUpdateClazz")
public Result saveOrUpdateClazz(
@ApiParam("Json格式的班级信息") @RequestBody Clazz clazz
){
clazzService.saveOrUpdate(clazz);
return Result.ok();
}
@ApiOperation("删除班级信息")
@DeleteMapping("/deleteClazz")
public Result deleteClazz(
@ApiParam("数组格式的班级ID") @RequestBody List<Integer> ids
){
clazzService.removeByIds(ids);
return Result.ok();
}
}

@ -0,0 +1,76 @@
package com.zsz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zsz.pojo.Grade;
import com.zsz.service.GradeService;
import com.zsz.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("年级控制器")
@RestController
@RequestMapping("/sms/gradeController")
public class GradeController {
@Autowired
GradeService gradeService;
@GetMapping("/getGrades")
public Result getGrades(){
List<Grade> grades = gradeService.getGrades();
return Result.ok(grades);
}
//请求路径 /sms/gradeController/getGrades/1/3?gradeName=
/**
*
* @param pageNo
* @param pageSize
* @param gradeName
* @return
*/
@ApiOperation("根据年级名称模糊查询,带分页")
@GetMapping("/getGrades/{pageNo}/{pageSize}")
public Result getGrades(@ApiParam("分页查询的页码数") @PathVariable("pageNo") Integer pageNo,
@ApiParam("分页查询的页大小") @PathVariable("pageSize") Integer pageSize,
@ApiParam("分页查询模糊匹配的名称") String gradeName){
//设置分页信息
Page<Grade> gradePage = new Page<>(pageNo, pageSize);
//执行服务层方法,查询出数据
Page<Grade> page = gradeService.getGradesData(gradePage,gradeName);
return Result.ok(page);
}
/**
*
* @param grade
* @return
*/
@ApiOperation("新增或修改grade,有id属性是修改没有则是增加")
@PostMapping("/saveOrUpdateGrade")
public Result saveOrUpdateGrade(@ApiParam("Json格式的Grade对象") @RequestBody Grade grade){
gradeService.saveOrUpdate(grade);
return Result.ok();
}
@ApiOperation("删除Grade信息")
@DeleteMapping("/deleteGrade")
public Result deleteGrade(@ApiParam("要删除的所有的grade的id的Json集合") @RequestBody List<Integer> id){
gradeService.removeByIds(id);
return Result.ok();
}
}

@ -0,0 +1,63 @@
package com.zsz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zsz.pojo.Student;
import com.zsz.service.StudentService;
import com.zsz.util.MD5;
import com.zsz.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("学生控制器")
@RestController
@RequestMapping("/sms/studentController")
public class StudentController {
@Autowired
StudentService studentService;
// http://localhost:8080/sms/studentController/getStudentByOpr/1/3?clazzName=&name=
@ApiOperation("根据分页条件获取学生分页数据")
@GetMapping("/getStudentByOpr/{pageNo}/{pageSize}")
public Result getStudentByOpr(
@ApiParam("分页查询的页码数") @PathVariable("pageNo") Integer pageNo,
@ApiParam("分页查询的页大小") @PathVariable("pageSize") Integer pageSize,
@ApiParam("学生信息") Student student
){
Page<Student> studentPage = new Page<>(pageNo,pageSize);
Page<Student> studentPage1 = studentService.getStudentData(studentPage,student);
return Result.ok(studentPage1);
}
// http://localhost:8080/sms/studentController/addOrUpdateStudent
@ApiOperation("新增或更改学生信息")
@PostMapping("/addOrUpdateStudent")
public Result addOrUpdateStudent(
@ApiParam("请求中携带的要修改信息的学生对象") @RequestBody Student student
){
Integer id = student.getId();
if (null == id || 0 == id){
String password = student.getPassword();
String encrypt = MD5.encrypt(password);
student.setPassword(encrypt);
}
studentService.saveOrUpdate(student);
return Result.ok();
}
// http://localhost:8080/sms/studentController/delStudentById
@ApiOperation("删除单个或多个学生信息")
@DeleteMapping("/delStudentById")
public Result delStudentById(
@ApiParam("要删除的学生id的集合") @RequestBody List<Integer> ids
){
studentService.removeByIds(ids);
return Result.ok();
}
}

@ -0,0 +1,255 @@
package com.zsz.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zsz.config.SystemUtil;
import com.zsz.pojo.Admin;
import com.zsz.pojo.LoginForm;
import com.zsz.pojo.Student;
import com.zsz.pojo.Teacher;
import com.zsz.service.AdminService;
import com.zsz.service.StudentService;
import com.zsz.service.TeacherService;
import com.zsz.util.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
import static com.zsz.config.ConfigurerAdapter.PATH_PREFIX;
@Api("系统控制器")
@RestController
@RequestMapping("/sms/system")
public class SystemController {
@Autowired
AdminService adminService;
@Autowired
StudentService studentService;
@Autowired
TeacherService teacherService;
@Resource
private SystemUtil systemUtil;
@Resource
private LocalUploadUtil localUploadUtil;
// http://localhost:8080/sms/system/headerImgUpload
@ApiOperation("头像上传")
@PostMapping("/headerImgUpload")
public Result headerImgUpload(
@RequestPart("multipartFile") MultipartFile multipartFile
) {
//保存图片
String upload = localUploadUtil.upload(multipartFile);
return Result.ok(upload);
}
//从请求头中的token信息获取用户类型并响应用户信息
@ApiOperation("从请求头中的token信息中获取用户类型并响应用户信息")
@GetMapping("/getInfo")
public Result getInfoByToken(
@ApiParam("请求头中的token信息") @RequestHeader("token") String token) {
//验证token是否已经失效
boolean expiration = JwtHelper.isExpiration(token);
if (expiration) {
return Result.build(null, ResultCodeEnum.TOKEN_ERROR);
}
Long userId = JwtHelper.getUserId(token);
Integer userType = JwtHelper.getUserType(token);
Map<String, Object> stringObjectLinkedHashMap = new LinkedHashMap<>();
switch (userType) {
case 1:
Admin admin = adminService.getAdminById(userId);
stringObjectLinkedHashMap.put("userType", 1);
stringObjectLinkedHashMap.put("user", admin);
break;
case 2:
Student student = studentService.getStudentById(userId);
stringObjectLinkedHashMap.put("userType", 2);
stringObjectLinkedHashMap.put("user", student);
break;
case 3:
Teacher teacher = teacherService.getTeacherById(userId);
stringObjectLinkedHashMap.put("userType", 3);
stringObjectLinkedHashMap.put("user", teacher);
break;
}
return Result.ok(stringObjectLinkedHashMap);
}
//将前端提交POST请求的信息封装起来使用@RequestBody注解
@ApiOperation("登录功能实现,首先校验验证码是否失效和正确,然后从提交的表单中判断用户类型,获取不同的响应信息")
@PostMapping("/login")
public Result login(
@ApiParam("用户登录提交的表单") @RequestBody LoginForm loginForm,
@ApiParam("请求") HttpServletRequest request) {
//校验用户输入的验证码和session中的验证码
HttpSession session = request.getSession();
String sessionVerifiCode = (String) session.getAttribute("verifiCode");
String loginVerifiCode = loginForm.getVerifiCode();
//1.session中验证码失效了
if ("".equals(sessionVerifiCode)) {
return Result.fail().message("验证码失效,请刷新页面重试");
}
if (!loginVerifiCode.equalsIgnoreCase(sessionVerifiCode)) {
return Result.fail().message("验证码输入有误!");
}
//验证码使用完毕,移除当前请求域中的验证码
session.removeAttribute("verifiCode");
//准备一个map集合存放用户响应的信息
Map<String, Object> map = new LinkedHashMap<>();
//2.根据选择的用户类型去不同角色的用户表中查询用户,判断用户名和密码是否正确
switch (loginForm.getUserType()) {
case 1:
try {
//调用服务层登录方法,根据用户提交的LoginInfo信息,查询对应的Admin对象,找不到返回Null
Admin admin = adminService.login(loginForm);
if (admin != null) {
//登录成功将用户ID和用户类型转换为token口令作为信息响应给前端
map.put("token", JwtHelper.createToken(admin.getId().longValue(), 1));
} else {
throw new RuntimeException("用户名或者密码有误!");
}
return Result.ok(map);
} catch (RuntimeException e) {
e.printStackTrace();
//捕获异常,向用户响应错误信息
return Result.fail().message(e.getMessage());
}
case 2:
try {
//调用服务层登录方法,根据用户提交的LoginInfo信息,查询对应的Admin对象,找不到返回Null
Student student = studentService.login(loginForm);
if (student != null) {
//登录成功将用户ID和用户类型转换为token口令作为信息响应给前端
map.put("token", JwtHelper.createToken(student.getId().longValue(), 2));
} else {
throw new RuntimeException("用户名或者密码有误!");
}
return Result.ok(map);
} catch (RuntimeException e) {
e.printStackTrace();
//捕获异常,向用户响应错误信息
return Result.fail().message(e.getMessage());
}
case 3:
try {
//调用服务层登录方法,根据用户提交的LoginInfo信息,查询对应的Admin对象,找不到返回Null
Teacher teacher = teacherService.login(loginForm);
if (teacher != null) {
//登录成功将用户ID和用户类型转换为token口令作为信息响应给前端
map.put("token", JwtHelper.createToken(teacher.getId().longValue(), 3));
} else {
throw new RuntimeException("用户名或者密码有误!");
}
return Result.ok(map);
} catch (RuntimeException e) {
e.printStackTrace();
//捕获异常,向用户响应错误信息
return Result.fail().message(e.getMessage());
}
}
return Result.fail().message("查无此人!");
}
@ApiOperation("获取验证码图片")
@GetMapping("/getVerifiCodeImage")
public void getVerifiCodeImage(HttpServletRequest request, HttpServletResponse response) {
//获取验证码图片
BufferedImage verifiCodeImage = CreateVerifiCodeImage.getVerifiCodeImage();
//获取图片上的验证码
String verifiCode = new String(CreateVerifiCodeImage.getVerifiCode());
//将验证码文本放入Session域为下一次验证做准备
HttpSession session = request.getSession();
session.setAttribute("verifiCode", verifiCode);
//将验证码图片响应给浏览器
try {
ImageIO.write(verifiCodeImage, "JPEG", response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
// POST http://localhost:8080/sms/system/updatePwd/admin/admin123
@ApiOperation("修改密码")
@PostMapping("/updatePwd/{oldPwd}/{newPwd}")
public Result updatePwd(
@ApiParam("原密码") @PathVariable("oldPwd") String oldPwd,
@ApiParam("新密码") @PathVariable("newPwd") String newPwd,
@ApiParam("token信息用来判断当前登录的用户类型") @RequestHeader String token
) {
//判断token是否失效
boolean expiration = JwtHelper.isExpiration(token);
if (expiration) {
return Result.fail().message("token失效请重新登录。");
}
//从token中获取用户id用户类型判断从哪个表中查询
Long userId = JwtHelper.getUserId(token);
Integer userType = JwtHelper.getUserType(token);
//请求链接中原密码和新密码都是以明文方式传输的,数据库中的密码是以密文存储的,所以要将原密码和新密码转换成密文
String encryptOldPwd = MD5.encrypt(oldPwd);
String encryptNewPwd = MD5.encrypt(newPwd);
switch (userType) {
case 1:
QueryWrapper<Admin> adminQueryWrapper = new QueryWrapper<>();
adminQueryWrapper.eq("id", userId);
adminQueryWrapper.eq("password", encryptOldPwd);
Admin one = adminService.getOne(adminQueryWrapper);
if (one != null) {
one.setPassword(encryptNewPwd);
adminService.saveOrUpdate(one);
} else {
return Result.fail().message("原密码错误!");
}
break;
case 2:
QueryWrapper<Student> studentQueryWrapper = new QueryWrapper<>();
studentQueryWrapper.eq("id", userId);
studentQueryWrapper.eq("password", encryptOldPwd);
Student studentServiceOne = studentService.getOne(studentQueryWrapper);
if (studentServiceOne != null) {
studentServiceOne.setPassword(encryptNewPwd);
studentService.saveOrUpdate(studentServiceOne);
} else {
return Result.fail().message("原密码错误!");
}
break;
case 3:
QueryWrapper<Teacher> teacherQueryWrapper = new QueryWrapper<>();
teacherQueryWrapper.eq("id", userId);
teacherQueryWrapper.eq("password", encryptOldPwd);
Teacher teacherServiceOne = teacherService.getOne(teacherQueryWrapper);
if (teacherServiceOne != null) {
teacherServiceOne.setPassword(encryptNewPwd);
teacherService.saveOrUpdate(teacherServiceOne);
} else {
return Result.fail().message("原密码错误!");
}
break;
}
return Result.ok();
}
}

@ -0,0 +1,63 @@
package com.zsz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zsz.pojo.Teacher;
import com.zsz.service.TeacherService;
import com.zsz.util.MD5;
import com.zsz.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("教师管理器")
@RestController
@RequestMapping("/sms/teacherController")
public class TeacherController {
@Autowired
TeacherService teacherService;
// http://localhost:8080/sms/teacherController/getTeachers/1/3?clazzName=&name=
@ApiOperation("根据分页条件获取教师信息")
@GetMapping("/getTeachers/{pageNo}/{pageSize}")
public Result getTeachers(
@ApiParam("分页查询的页码数") @PathVariable("pageNo") Integer pageNo,
@ApiParam("分页查询的页大小") @PathVariable("pageSize") Integer pageSize,
@ApiParam("分页查询的班级名称和教师名称") Teacher teacher
){
Page<Teacher> teacherPage = new Page<>(pageNo, pageSize);
Page<Teacher> teacherPage1 = teacherService.getTeacherData(teacherPage,teacher);
return Result.ok(teacherPage1);
}
// http://localhost:8080/sms/teacherController/saveOrUpdateTeacher
@ApiOperation("新增或者更改教师信息")
@PostMapping("/saveOrUpdateTeacher")
public Result saveOrUpdateTeacher(
@ApiParam("要提交的教师信息") @RequestBody Teacher teacher
){
Integer id = teacher.getId();
if (null == id || 0 == id){
String password = teacher.getPassword();
String encrypt = MD5.encrypt(password);
teacher.setPassword(encrypt);
}
teacherService.saveOrUpdate(teacher);
return Result.ok();
}
// http://localhost:8080/sms/teacherController/deleteTeacher
@ApiOperation("删除单个或多个老师信息")
@DeleteMapping("/deleteTeacher")
public Result deleteTeacher(
@ApiParam("要删除的教师id列表") @RequestBody List<Integer> ids
){
teacherService.removeByIds(ids);
return Result.ok();
}
}
Loading…
Cancel
Save