Files
HRS/SMMS/src/com/chinasofti/servlet/LoginServlet.java
2026-04-01 07:43:05 +08:00

167 lines
5.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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");
}
}