package com.org.serviceImpl;
import com.google.gson.Gson;
import com.org.entity.Student;
import com.org.mapper.StudentMapper;
import com.org.message.Msg;
import com.org.utils.ExcelUtil;
import com.org.utils.RedisUtil;
import com.org.utils.TokenUtil;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
@Service
public class StudentServiceImpl {
@Resource
StudentMapper studentMapper;
@Resource
StringRedisTemplate stringRedisTemplate;
@Resource
RedisTemplate redisTemplate;
@Resource
RedisUtil redisUtil;
Gson gson = new Gson();
//根据学号修改身份证号
public Msg changeSidBySno(String sid,String sno, HttpServletRequest request, HttpServletResponse response){
TokenUtil.addToken(request, response);
studentMapper.changeSidBySno(sid,sno);
return Msg.success().add("detailMessage", "修改身份证成功");
}
//找回密码
public Msg findPassword(String sno, String sid, HttpServletRequest request, HttpServletResponse response) {
int result = studentMapper.findPassword(sno, sid);
TokenUtil.addToken(request, response);
if (result > 0) {
//修改成功
return Msg.success().add("detailMessage", "修改成功,初始密码为12345!!");
} else {
//修改失败
return Msg.fail().add("detailMessage", "学号或身份证不正确");
}
}
//根据学号查看个人详细信息
public Msg selectStudentInfoBySno(String sno, HttpServletRequest request, HttpServletResponse response) {
TokenUtil.addToken(request, response);
return Msg.success().add("data", studentMapper.selectStudentInfoBySno(sno));
}
//根据旧密码修改新密码
public Msg updatePasswordByPreviewPassword(String newPassword, String previewPassword, String sno, HttpServletRequest request, HttpServletResponse response) {
TokenUtil.addToken(request, response);
int result = studentMapper.updatePasswordByPreviewPassword(newPassword, previewPassword, sno);
if (result > 0) {
return Msg.success().add("detailMessage", "修改成功");
} else {
return Msg.fail().add("detailMessage", "旧密码不存在,请重新输入!!");
}
}
//统计学生信息
public Msg studentStatistic(HttpServletRequest request, HttpServletResponse response) {
TokenUtil.addToken(request, response);
//return Msg.success().add("data", redisUtil.getStringValue("studentStatistic",studentMapper.studentStatistic(),60));
return Msg.success().add("data", redisUtil.getStringValue("studentStatistic",gson.toJson(studentMapper.studentStatistic())));
}
//修改学生信息
public Msg updateInfo(String sno, String spassword, String sname, String ssex, int sage, String sdept, String sid, String power, String studentSno, HttpServletRequest request, HttpServletResponse response) {
//登录状态下
TokenUtil.addToken(request, response);
try {
//修改成功
studentMapper.updateInfo(sno, spassword, sname, ssex, sage, sdept, sid, power, studentSno);
return Msg.success().add("detailMessage", "修改成功");
} catch (Exception e) {
//修改失败
return Msg.fail().add("detailMessage", "学号已被注册过了,请更换学号");
}
}
//根据学号查看学生信息
public Msg selectStudentByNo(String sno, HttpServletRequest request, HttpServletResponse response) {
TokenUtil.addToken(request, response);
return Msg.success().add("data", studentMapper.selectStudentByNo(sno));
}
//查看所有信息
public Msg selectAllStudents(HttpServletRequest request, HttpServletResponse response) {
TokenUtil.addToken(request, response);
String keys="students";
ListOperations<String,Student> listOperations=redisTemplate.opsForList();
if(!redisTemplate.hasKey(keys)){
//0 -1查询所有数据
//无此key则向redis存储
List<Student> students=studentMapper.selectAllStudents();
listOperations.leftPushAll(keys,students);
//设置缓存时间
redisTemplate.expire(keys,60,TimeUnit.SECONDS);
}
return Msg.success().add("detailMessage","查询成功").add("data",listOperations.range(keys,0,-1));
//return Msg.success().add("detailMessage","查询成功").add("data",redisUtil.getListValue("students",studentMapper.selectAllStudents()));
//return Msg.success().add("detailMessage", "查询成功").add("data", studentMapper.selectAllStudents());
}
//批量添加学生
public Msg addMultipleStudent(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
TokenUtil.addToken(request, response);
try {
List<Student> students = ExcelUtil.getMultipleStudent(file.getInputStream(), file.getOriginalFilename());
for (int i = 0; i < students.size(); i++) {
if (studentMapper.JudgeStudentIsExistBySno(students.get(i).getSno()) != null) {
return Msg.fail().add("detailMessage", "某个学号已注册");
} else if (studentMapper.JudgeStudentIsExistBySid(students.get(i).getSid()) != null) {
return Msg.fail().add("detailMessage", "某个身份证已注册");
} else if (!Pattern.compile("^\\d{12}$").matcher(students.get(i).getSno()).matches()) {
return Msg.fail().add("detailMessage", "学号格式不正确");
} else if (!Pattern.compile("\\d{15}|\\d{18}").matcher(students.get(i).getSid()).matches()) {
return Msg.fail().add("detailMessage", "身份证格式不正确");
} else if (!Pattern.compile("^[\\u4e00-\\u9fa5]{0,}$").matcher(students.get(i).getSname()).matches()) {
return Msg.fail().add("detailMessage", "姓名只能是中文字符");
} else if (!Pattern.compile("^\\d{2}$").matcher("" + students.get(i).getSage()).matches()) {
return Msg.fail().add("detailMessage", "年龄应该为2位数字");
}
int result=studentMapper.addMultipleStudent(students);
if(result>0){
//添加成功
return Msg.success().add("detailMessage", "添加成功");
}
}
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
return Msg.fail().add("detailMessage", "数据类型不正确,请重新上传数据");
}
//登录
public Msg login(String sno, String spassword, HttpServletRequest request, HttpServletResponse response) {
Student student = studentMapper.login(sno, spassword);
if (student != null) {
//账号密码正确
String token = UUID.randomUUID().toString().replaceAll("-", "");
stringRedisTemplate.opsForValue().set(token, sno,3600*24*3,TimeUnit.SECONDS);
response.setHeader("Access-Control-Expose-Headers",
"Cache-Control,Content-Type,Expires,Pragma,Content-Language,L
没有合适的资源?快使用搜索试试~ 我知道了~
springboot+vue实现学生选课管理系统.zip
共252个文件
xml:124个
class:30个
java:30个
需积分: 38 63 下载量 143 浏览量
2021-05-05
14:59:41
上传
评论 14
收藏 4.29MB ZIP 举报
温馨提示
springboot+vue+vue-cli+token实现学生选课管理系统.zip
资源详情
资源评论
资源推荐
收起资源包目录
springboot+vue实现学生选课管理系统.zip (252个子文件)
StudentServiceImpl.class 11KB
SctMapper.class 7KB
SctServiceImpl.class 6KB
StudentController.class 6KB
TeacherServiceImpl.class 6KB
SctController.class 6KB
StudentMapper.class 5KB
Student.class 5KB
Teacher.class 5KB
TeacherController.class 5KB
DepartmentServiceImpl.class 5KB
CourseServiceImpl.class 5KB
CourseController.class 4KB
TeacherMapper.class 4KB
ExcelUtil.class 4KB
DepartmentController.class 4KB
CourseMapper.class 4KB
Msg.class 3KB
RedisUtil.class 3KB
SwaggerConfig.class 3KB
DepartmentMapper.class 3KB
Interceptor.class 3KB
Course.class 3KB
Sct.class 3KB
Department.class 2KB
InterceptorConfig.class 2KB
RedisConfig.class 2KB
ScdbApplication.class 1KB
TokenUtil.class 983B
JiangnanManageApplicationTests.class 543B
.gitignore 24B
index.html 2KB
favicon.ico 4KB
scdb.iml 14KB
StudentServiceImpl.java 10KB
SctMapper.java 8KB
SctServiceImpl.java 6KB
StudentController.java 5KB
SctController.java 5KB
TeacherServiceImpl.java 5KB
ExcelUtil.java 5KB
StudentMapper.java 5KB
TeacherController.java 5KB
CourseServiceImpl.java 5KB
DepartmentServiceImpl.java 5KB
TeacherMapper.java 4KB
CourseController.java 4KB
DepartmentController.java 4KB
CourseMapper.java 4KB
DepartmentMapper.java 3KB
Interceptor.java 2KB
SwaggerConfig.java 2KB
RedisUtil.java 2KB
InterceptorConfig.java 2KB
RedisConfig.java 1KB
TokenUtil.java 1KB
Msg.java 990B
ScdbApplication.java 675B
Student.java 415B
Teacher.java 406B
Course.java 324B
Sct.java 316B
Department.java 310B
JiangnanManageApplicationTests.java 220B
5.jpg 489KB
4.jpg 479KB
music.jpg 448KB
2.jpg 444KB
1.jpg 415KB
threeClass.jpg 405KB
gym.jpg 353KB
firstClass.jpg 296KB
3.jpg 285KB
library.jpg 268KB
art.jpg 126KB
squre.jpg 96KB
logo.jpg 19KB
commonJs.js 9KB
Blod.js 6KB
apiUrl.js 5KB
Export2Excel.js 5KB
index.js 4KB
index.js 3KB
vue.config.js 2KB
main-dev.js 842B
main-prod.js 647B
http.js 559B
package-lock.json 558KB
package.json 822B
.name 4B
photo.png 71KB
logo_school.png 18KB
girl.png 8KB
boy.png 8KB
girlTeacher.png 8KB
boyTeacher.png 7KB
people.png 7KB
gold.png 6KB
copper.png 6KB
me.png 6KB
共 252 条
- 1
- 2
- 3
Summer524!
- 粉丝: 16
- 资源: 110
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0