167 lines
5.2 KiB
Java
167 lines
5.2 KiB
Java
|
|
/**
|
|||
|
|
* Copyright © 2025 eSunny Info. Tech Ltd. All rights reserved.
|
|||
|
|
*
|
|||
|
|
* 功能描述:
|
|||
|
|
* @Package: com.chinasofti.servlet
|
|||
|
|
* @author: 李洪涛
|
|||
|
|
* @date: 2025年3月27日 上午9:21:53
|
|||
|
|
*/
|
|||
|
|
package com.chinasofti.servlet;
|
|||
|
|
|
|||
|
|
import java.io.IOException;
|
|||
|
|
import java.util.ArrayList;
|
|||
|
|
import java.util.List;
|
|||
|
|
|
|||
|
|
import javax.servlet.ServletException;
|
|||
|
|
import javax.servlet.annotation.WebServlet;
|
|||
|
|
import javax.servlet.http.HttpServlet;
|
|||
|
|
import javax.servlet.http.HttpServletRequest;
|
|||
|
|
import javax.servlet.http.HttpServletResponse;
|
|||
|
|
import javax.servlet.http.HttpSession;
|
|||
|
|
|
|||
|
|
import com.chinasofti.enums.IsCounselor;
|
|||
|
|
import com.chinasofti.enums.RoleId;
|
|||
|
|
import com.chinasofti.model.Clazz;
|
|||
|
|
import com.chinasofti.model.Role;
|
|||
|
|
import com.chinasofti.model.Teacher;
|
|||
|
|
import com.chinasofti.model.User;
|
|||
|
|
import com.chinasofti.service.ClazzService;
|
|||
|
|
import com.chinasofti.service.LoginService;
|
|||
|
|
import com.chinasofti.service.RoleService;
|
|||
|
|
import com.chinasofti.service.TeacherService;
|
|||
|
|
import com.chinasofti.service.impl.ClazzServiceImpl;
|
|||
|
|
import com.chinasofti.service.impl.LoginServiceImpl;
|
|||
|
|
import com.chinasofti.service.impl.RoleServiceImpl;
|
|||
|
|
import com.chinasofti.service.impl.TeacherServiceImpl;
|
|||
|
|
import com.chinasofti.utils.SM3PasswordEncoder;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
*
|
|||
|
|
* Copyright: Copyright (c) 2025 chiansofti
|
|||
|
|
*
|
|||
|
|
* @ClassName: LoginServlet.java
|
|||
|
|
* @Description: 登录校验
|
|||
|
|
*
|
|||
|
|
* @version: v1.0.0
|
|||
|
|
* @author: 李洪涛
|
|||
|
|
* @date: 2025年3月27日 上午9:09:40
|
|||
|
|
*
|
|||
|
|
* Modification History:
|
|||
|
|
* Date Author Version Description
|
|||
|
|
*---------------------------------------------------------*
|
|||
|
|
* 2025年3月27日 李洪涛 v1.0.0 新建文件
|
|||
|
|
*/
|
|||
|
|
@WebServlet("/LoginServlet")
|
|||
|
|
public class LoginServlet extends HttpServlet {
|
|||
|
|
|
|||
|
|
private static final long serialVersionUID = 1L;
|
|||
|
|
|
|||
|
|
private LoginService loginService = new LoginServiceImpl();
|
|||
|
|
private RoleService roleService = new RoleServiceImpl();
|
|||
|
|
private ClazzService clazzService = new ClazzServiceImpl();
|
|||
|
|
private TeacherService teacherService = new TeacherServiceImpl();
|
|||
|
|
|
|||
|
|
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{
|
|||
|
|
doPost(request, response);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
*
|
|||
|
|
* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
|
|||
|
|
* @Function: doPost
|
|||
|
|
* @Description: 登录校验,跳转页面
|
|||
|
|
*
|
|||
|
|
* @param: request
|
|||
|
|
* @param: response
|
|||
|
|
* @return: void
|
|||
|
|
* @throws:无
|
|||
|
|
*
|
|||
|
|
* @version: v1.0.0
|
|||
|
|
* @author: 李洪涛
|
|||
|
|
* @date: 2025年3月27日 上午9:12:20
|
|||
|
|
*
|
|||
|
|
* Modification History:
|
|||
|
|
* Date Author Version Description
|
|||
|
|
*---------------------------------------------------------*
|
|||
|
|
* 2025年3月27日 李洪涛 v1.0.0 新建方法
|
|||
|
|
*/
|
|||
|
|
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|||
|
|
|
|||
|
|
String method = request.getParameter("method");
|
|||
|
|
if("logout".equals(method)){
|
|||
|
|
logout(request, response);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
String username = request.getParameter("username");
|
|||
|
|
String password = request.getParameter("password");
|
|||
|
|
|
|||
|
|
User user = new User();
|
|||
|
|
user.setUserName(username);
|
|||
|
|
|
|||
|
|
User res = loginService.loginCheck(user);
|
|||
|
|
|
|||
|
|
String loginStatus = "loginSuccess";
|
|||
|
|
if (null != res && SM3PasswordEncoder.matches(password, res.getPassWord())) {
|
|||
|
|
HttpSession session=request.getSession();
|
|||
|
|
Role role = roleService.findRoleById(res.getRoleId());
|
|||
|
|
session.setAttribute("user", res);
|
|||
|
|
session.setAttribute("roleCode", role.getRoleCode());
|
|||
|
|
if (RoleId.TEACHER.getId() == role.getId()) {
|
|||
|
|
long userId = res.getId();
|
|||
|
|
Teacher teacher = new Teacher();
|
|||
|
|
teacher.setUserId(userId);
|
|||
|
|
teacher = teacherService.findTeacher(teacher);
|
|||
|
|
List<Clazz> clazzs = new ArrayList<Clazz>();
|
|||
|
|
long teacherId = teacher.getId();
|
|||
|
|
clazzs.addAll(clazzService.findClazzsByTeacherId(teacherId));
|
|||
|
|
if (IsCounselor.YES.getIs().equals(teacher.getIsCounselor())) {
|
|||
|
|
session.setAttribute("isCounselor", IsCounselor.YES.getIs());
|
|||
|
|
clazzs.addAll(clazzService.findClazzsByUserIds(userId+""));
|
|||
|
|
} else {
|
|||
|
|
session.setAttribute("isCounselor", IsCounselor.NO.getIs());
|
|||
|
|
}
|
|||
|
|
String clazzIdStr = "";
|
|||
|
|
if (clazzs.size() > 0) {
|
|||
|
|
for (Clazz clazz : clazzs) {
|
|||
|
|
clazzIdStr += clazz.getId() + ",";
|
|||
|
|
}
|
|||
|
|
clazzIdStr = clazzIdStr.substring(0, clazzIdStr.length()-1);
|
|||
|
|
}
|
|||
|
|
session.setAttribute("clazzIdStr", clazzIdStr);
|
|||
|
|
session.setAttribute("teacherId", teacherId);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
loginStatus = "loginError";
|
|||
|
|
}
|
|||
|
|
response.getWriter().write(loginStatus);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
*
|
|||
|
|
* @Function: logout
|
|||
|
|
* @Description: 退出登录
|
|||
|
|
*
|
|||
|
|
* @param: request
|
|||
|
|
* @param: response
|
|||
|
|
* @return: void
|
|||
|
|
* @throws:无
|
|||
|
|
*
|
|||
|
|
* @version: v1.0.0
|
|||
|
|
* @author: 李洪涛
|
|||
|
|
* @date: 2025年3月27日 上午9:12:20
|
|||
|
|
*
|
|||
|
|
* Modification History:
|
|||
|
|
* Date Author Version Description
|
|||
|
|
*---------------------------------------------------------*
|
|||
|
|
* 2025年3月27日 李洪涛 v1.0.0 新建方法
|
|||
|
|
*/
|
|||
|
|
private void logout(HttpServletRequest request,HttpServletResponse response) throws IOException{
|
|||
|
|
request.getSession().removeAttribute("user");
|
|||
|
|
request.getSession().removeAttribute("userType");
|
|||
|
|
response.sendRedirect("index.jsp");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|