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;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于JavaScript的校园学生信息管理平台设计源码
共930个文件
js:266个
jpg:150个
png:94个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 120 浏览量
2024-04-17
00:09:28
上传
评论
收藏 44.98MB ZIP 举报
温馨提示
本项目是基于JavaScript开发的校园学生信息管理平台设计源码,共包含952个文件。其中JavaScript文件266个,JPG图片150个,PNG图片94个,CSS样式文件62个,HTML页面文件54个,SVG矢量图文件40个,Java源代码文件35个,编译后的Class文件35个,JSON配置文件34个,Markdown文档23个。该项目旨在实现学生信息管理工作系统化,为教师的日常管理和学生的学习提供便利。项目结构清晰,代码注释详尽,适合用于学习和研究JavaScript和前端开发。
资源推荐
资源详情
资源评论
收起资源包目录
基于JavaScript的校园学生信息管理平台设计源码 (930个子文件)
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
共 930 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
沐知全栈开发
- 粉丝: 5816
- 资源: 5227
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MongoDB部署、操作及应用案例详解:涵盖单实例、副本集、分片集群
- comsol电力变压器有限元仿真,二维,三维,主要做损耗,短路力,阻抗,温升,电场
- 星巴克门店数据.zip
- 历年美国总统数据(1789-2025年).zip
- 照片和视频编辑器 Darkroom for Mac v6.0.6
- 开源课程期末作业Python实现基于图神经网络的信任评估项目源代码+详细使用说明
- .arch电商购物平台.docx
- 照片和视频编辑器 Darkroom for Mac v6.0.7
- 3次B样条优化,适用于所有matlab程序,单独的独立子程序,可以直接在自己的程序上进行优化使用~提供自己写的算法原理文档~
- 永磁同步电机双闭环矢量控制simulink模型 (内含报告) PMSM矢量控制主要包括3个部分:转速环PI调节器、电流环PI调节器和SVPWM算法 详细给出电流环和转速环PI调节器的参数设计方法
- 基于wpf开发的俄罗斯方块小游戏源代码
- Architecting on AWS 培训材料4.mp3
- Architecting on AWS 培训材料2.mp3
- c++ libONVIF库,保含debug与release
- Architecting on AWS 培训材料3.mp3
- unity水面Shader支持Web、PC、安卓端,自己可以调试shader效果
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功