首页>代码>spring+spring mvc+mybatis开发java医院HR人事管理系统(加强版本+ shiro)>/HR/src/main/java/edu/hebeu/controller/EmployeeController.java
package edu.hebeu.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.ExcessiveAttemptsException;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import edu.hebeu.entity.Department;
import edu.hebeu.entity.Employee;
import edu.hebeu.entity.History;
import edu.hebeu.entity.Position;
import edu.hebeu.security.RoleSign;
import edu.hebeu.service.DepartmentService;
import edu.hebeu.service.EmployeeService;
import edu.hebeu.service.HistoryService;
import edu.hebeu.service.PositionService;
import edu.hebeu.util.CaptchaUtil;
import edu.hebeu.util.MTimeUtil;
@Controller
@RequestMapping("/employee")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@Autowired
private DepartmentService departmentService;
@Autowired
private PositionService positionService;
@Autowired
private HistoryService historyService;
@RequestMapping("/login.do")
public String toLogin(){
return "login";
}
@RequestMapping("/checkLogin.do")
public String checkLogin(HttpSession session,HttpServletRequest request, String username,
String password,String captcha, @RequestParam(value="isRememberMe", defaultValue="0") Integer isRememberMe) throws Exception{
String error = null;
System.out.println("username:" + username + "----" + "password:"
+ password+"captcha:"+captcha);
if (username == null || username.isEmpty() || password==null || password.isEmpty())
{
return "login";
}
if (captcha==null ||captcha.isEmpty()){
error = "验证码必须填写";
request.setAttribute("error", error);
return "login";
}
if (!session.getAttribute("randomString").equals(captcha.toUpperCase()))
{
error = "验证码错误";
request.setAttribute("error", error);
return "login";
}
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username,
password);
//记住我
if (isRememberMe == 1) {
token.setRememberMe(true);
}
try {
subject.login(token);
} catch (UnknownAccountException e) {
error = "用户名/密码错误";
} catch (IncorrectCredentialsException e) {
error = "用户名/密码错误";
} catch (ExcessiveAttemptsException e) {
// TODO: handle exception
error = "登录失败多次,账户锁定10分钟";
}
if (error != null) {// 出错了,返回登录页面
request.setAttribute("error", error);
return "login";
} else {// 登录成功
Md5Hash md5Hash = new Md5Hash(password);
Employee employee = employeeService.checkLogin(Integer.parseInt(username),md5Hash.toString());
session.setAttribute("loged", employee);
String level = employee.getPosition().getLevel();
if (level.equals("人事部主任")) {
return "admin/index1";
}else if (level.equals("人事部员工")) {
return "admin/index2";
}else if (level.equals("部门主任")) {
return "admin/index3";
}else {
return "admin/index4";
}
}
}
/*
@RequestMapping("/checkLogin1.do")
public String checkLogin1(HttpSession session, Employee employee){
Employee employee2 = employeeService.checkLogin(employee.getEmployeeNumber(),
employee.getPassword());
if (employee2 != null) {
session.setAttribute("loged", employee2);
String level = employee2.getPosition().getLevel();
if (level.equals("人事部主任")) {
return "admin/index1";
}else if (level.equals("人事部员工")) {
return "admin/index2";
}else if (level.equals("部门主任")) {
return "admin/index3";
}else {
return "admin/index4";
}
}else{
return "login";
}
}
*/
@RequestMapping("/welcome.do")
public String toWelcome(){
return "welcome";
}
/*
* 无权限时返回的页面
* */
@RequestMapping("/unauthorized.do")
public String toUnauthorized(){
return "unauthorized";
}
@RequestMapping("/listPage.do")
@RequiresRoles(value = RoleSign.ADMIN)
public String selectList(Model model, int pageNo){
Page<Employee> page = employeeService.selectListByPage(pageNo);
model.addAttribute("page", page);
return "admin/employee_list";
}
@RequestMapping("/{id}/detial.do")
public String selectEmployee(@PathVariable Integer id, Model model){
Employee employee = employeeService.selectEmployee(id);
model.addAttribute("employee", employee);
return "admin/employee_detail";
}
@RequestMapping("/toAdd.do")
@RequiresRoles(value = RoleSign.ADMIN)
public String toAdd(Model model){
List<History> eList = historyService.selectList(new EntityWrapper<History>()
.orderBy("employee_number", false));
model.addAttribute("employeeNumber",eList.get(0).getEmployeeNumber()+1);
List<Department> dList = departmentService.selectList(new EntityWrapper<Department>());
model.addAttribute("dList", dList);
List<Position> pList = positionService.selectList(new EntityWrapper<Position>());
model.addAttribute("pList", pList);
return "admin/employee_add";
}
@RequestMapping("/add.do")
@RequiresRoles(value = RoleSign.ADMIN)
public String add(Employee employee, String date) {
employee.setBirthday(MTimeUtil.stringParse(date));
employeeService.addEmployee(employee);
return "forward:/employee/listPage.do?pageNo=1";
}
@RequestMapping("/{id}/toUpdate.do")
@RequiresRoles(value = RoleSign.ADMIN)
public String toUpdate(Model model, @PathVariable Integer id){
Employee employee = employeeService.selectById(id);
model.addAttribute("employee", employee);
List<Department> dList = departmentService.selectList(new EntityWrapper<Department>());
model.addAttribute("dList", dList);
List<Position> pList = positionService.selectList(new EntityWrapper<Position>());
model.addAttribute("pList", pList);
return "admin/employee_update";
}
@RequestMapping("/{id}/update.do")
@RequiresRoles(value = RoleSign.ADMIN)
public String updateById(@PathVariable Integer id, Employee employee, String date, String status,
HttpSession session){
employee.setId(id);
employee.setBirthday(MTimeUtil.stringParse(date));
//得到操作人员的名字
Employee employee2 = (Employee) session.getAttribute("loged");
employeeService.updateEmployee(employee, status, employee2.getName());
return "forward:/employee/listPage.do?pageNo=1";
}
@RequestMapping("/{id}/delete.do")
@RequiresRoles(value = RoleSign.ADMIN)
public String deleteById(@PathVariable Integer id){
employeeService.deleteEmployee(id);
return "forward:/employee/listPage.do?pageNo=1";
}
@RequestMapping("/oneself/{id}/detial.do")
public String selectEmployee2(@PathVariable Integer id, Model model){
Employee employee = employeeService.selectEmployee(id);
model.addAttribute("employee", employee);
return "admin/oneself_detail";
}
@RequestMapping("/oneself/{id}/toUpdate.do")
public String toUpdate2(Model model, @PathVariable Integer id){
Employee employee = employeeService.selectById(id);
model.addAttribute("employee", employee);
return "admin/oneself_update";
}
@RequestMapping("/search")
public String search(Model model, String input, int pageNo){
Page<Employee> page = employeeService.search(input, pageNo);
model.addAttribute("page", page);
return "admin/search_result";
}
@RequestMapping("/logout.do")
public String logout(HttpSession session){
session.removeAttribute("loged");
// 登出操作
Subject subject = SecurityUtils.getSubject();
subject.logout();
return "login";
}
/*
@RequestMapping("/logout1.do")
public String logout1(HttpSession session){
session.removeAttribute("loged");
return "login";
}
*/
@RequestMapping(value = "/captcha.do", method = RequestMethod.GET)
@ResponseBody
public void captcha (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
CaptchaUtil.outputCaptcha(request, response);
}
}
最近下载更多
zolscy LV24
2024年11月29日
TY0165 LV20
2024年6月25日
嘲讽脸 LV5
2024年5月15日
minjing123 LV8
2024年1月4日
小安同学 LV7
2023年12月7日
微信网友_6372890284232704 LV8
2023年8月30日
dowell_liu LV1
2023年8月2日
哇塞塞哈哈哈 LV8
2023年5月4日
bibibi234 LV1
2023年4月4日
a562571298 LV8
2023年3月23日

最近浏览