package com.example.springweb.service;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.springweb.dao.loginMapper;
import com.example.springweb.pojo.Login;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.w3c.dom.ls.LSOutput;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.servlet.http.HttpSession;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("loginService")
public class loginService {
@Value("${severUrl}")
String severUrl;
@Resource(name ="loginMapper")
private loginMapper loginMapper;
@Resource
private EmailService emailService;
/*用户登录*/
public Map<String,Object> loginIn(Login viewLogin,HttpSession session){
Map<String, Object> map = new HashMap<>();
List<Login> loginList =loginMapper.queryByEmail(viewLogin.getEmail());
if(loginList.isEmpty()) {
map.put("message","邮箱未注册");
return map;
}
else if(loginList.size()>1) {
map.put("message","账号信息异常,请联系管理员");
return map;
}
else if(loginList.get(0).getIs_valid()==0) {
map.put("message","账号未激活");
return map;
}
else{
String viewPassword=SecureUtil.md5(viewLogin.getPassword()+loginList.get(0).getSalt());
if(!viewPassword.equals(loginList.get(0).getPassword())) map.put("message","密码错误");
else {
map.put("message","登录成功");
session.setAttribute("USER",viewLogin);
}
return map;
}
}
/*注册用户*/
public Map<String,Object> addUser(Login viewLogin) {
Map<String, Object> map = new HashMap<>();
if(viewLogin.getEmail().equals("")){
map.put("message","邮件不能为空");
return map;
}else if(viewLogin.getPassword().equals("")){
map.put("message","密码不能为空");
return map;
}else if(!loginMapper.queryByEmail(viewLogin.getEmail()).isEmpty()){
map.put("message","该邮件已注册");
return map;
}else {
//生成数据
String confirmCode = IdUtil.getSnowflake(1, 1).nextIdStr();
String salt = RandomUtil.randomString(9);
String password = SecureUtil.md5(viewLogin.getPassword() + salt); //密码加密
LocalDateTime ldf = LocalDateTime.now().plusDays(1);
//构造login对象
viewLogin.setConfirm_code(confirmCode);
viewLogin.setPassword(password);
viewLogin.setSalt(salt);
viewLogin.setValidation_time(ldf);
int result = loginMapper.addUser(viewLogin);
if (result > 0) {
emailService.sendEmail(severUrl+confirmCode, viewLogin.getEmail());
map.put("message", "注册成功,请前往邮件验证");
map.put("login", viewLogin);
} else {
map.put("message", "注册失败");
}
return map;
}
}
public Map<String,Object> validMail(String confirmCode){
Map<String,Object> resultMap=new HashMap<>();
LocalDateTime time=loginMapper.queryTime(confirmCode).getValidation_time();
if(time.isBefore(LocalDateTime.now())){
resultMap.put("code",500);
resultMap.put("message","该邮件的激活时间已失效,请重新接受邮件激活");
}else {
if(loginMapper.updateValid(confirmCode)==1){
resultMap.put("code",200);
resultMap.put("message","恭喜你,激活成功");
}else{
resultMap.put("code",500);
resultMap.put("message","激活失败");
}
}
return resultMap;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于springboot的学生信息管理系统源码+数据库(期末大作业).zip 该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。 基于springboot的学生信息管理系统源码+数据库(期末大作业).zip 该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。基于springboot的学生信息管理系统源码+数据库(期末大作业).zip 该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。基于springboot的学生信息管理系统源码+数据库(期末大作业).zip 该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。基于springboot的学生信息管理系统源码+数据库(期末大作业).zip 该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。基于springboot的学生信息管理系统源码+数据库(期末大作业).zip 该项目是个人大作业项目源码,评审分达到95
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot的学生信息管理系统源码+数据库(期末大作业).zip (1061个子文件)
Student.class 6KB
loginService.class 5KB
student.class 5KB
StudentService.class 4KB
dorm.class 4KB
Login.class 4KB
grade.class 4KB
Grade.class 3KB
course.class 3KB
index.class 3KB
Personal.class 3KB
AllPoint.class 3KB
Dorm.class 3KB
Course.class 3KB
MvcConfig.class 3KB
GradeService.class 2KB
DruidConfig.class 2KB
dormService.class 2KB
score.class 2KB
EmailService.class 2KB
ScoreService.class 2KB
CourseService.class 2KB
User.class 2KB
Subject.class 2KB
MyInterceptor.class 2KB
DateConvert.class 1KB
SpringwebApplicationTests.class 1KB
Utils.class 1KB
gradeMapper.class 1KB
dormMapper.class 762B
scoreMapper.class 761B
SpringwebApplication.class 758B
loginMapper.class 750B
courseMapper.class 715B
studentMapper.class 700B
bootstrap.min.css 180KB
bootstrap.min.css 180KB
style_dark.css 119KB
style_dark.css 119KB
style.css 109KB
style.css 109KB
line-awesome.min.css 88KB
line-awesome.min.css 88KB
remixicon.css 81KB
remixicon.css 81KB
animate.css 76KB
animate.css 76KB
ionicons.min.css 50KB
ionicons.min.css 50KB
typography.css 45KB
typography.css 45KB
fontawesome.css 37KB
fontawesome.css 37KB
responsive.css 29KB
responsive.css 29KB
main.css 27KB
main.css 27KB
select2.min.css 15KB
select2.min.css 15KB
main.min.css 14KB
main.min.css 14KB
dripicons.css 11KB
dripicons.css 11KB
main.css 7KB
main.css 7KB
magnific-popup.css 7KB
magnific-popup.css 7KB
developer.css 4KB
developer.css 4KB
main.min.css 3KB
main.min.css 3KB
owl.carousel.min.css 3KB
owl.carousel.min.css 3KB
slick-theme.css 3KB
slick-theme.css 3KB
Ecommerce.css 2KB
Ecommerce.css 2KB
main.css 2KB
main.css 2KB
main.css 2KB
main.css 2KB
variable.css 1KB
variable.css 1KB
slick.css 1KB
slick.css 1KB
main.min.css 1KB
main.min.css 1KB
EcommerceResponsive.css 1018B
EcommerceResponsive.css 1018B
main.min.css 1004B
main.min.css 1004B
main.css 813B
main.css 813B
Chart.min.css 521B
Chart.min.css 521B
main.min.css 416B
main.min.css 416B
remixicon.eot 290KB
remixicon.eot 290KB
la-solid-900.eot 221KB
共 1061 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
- 2301_774132262023-11-09资源简直太好了,完美解决了当下遇到的难题,这样的资源很难不支持~
盈梓的博客
- 粉丝: 9573
- 资源: 2310
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功