@Override public String execute(HttpServletRequest request, HttpServletResponse response) { String login = request.getParameter("name"); String password = request.getParameter("password"); Authorization au = new Authorization(); au.setLogin(login); au.setPassword(password); DaoFactory factory = DaoFactory.getDaoFactory(); AuthorizationDao udao = factory.getAuthorizationDao(); StaffDao sdao = factory.getStaffDao(); DepartmentDao ddao = factory.getDepartmentDao(); PatientDao pdao = factory.getPatientDao(); if (udao.isAuthorization(au)) { HttpSession session = request.getSession(true); Authorization forSession = udao.readByLogin(login); Staff forAccess = sdao.readById(forSession.getStaff()); String fa = forAccess.getSpecialization(); session.setAttribute("access", fa); if (session.getAttribute("access").equals("admin")) { List<Department> departments = ddao.getAllDepartments(); request.setAttribute("departments", departments); return "/views/adminUserInformation.jsp"; } else if (session.getAttribute("access").equals("doctor")) { return "/views/doctorStartPage.html"; } else if (session.getAttribute("access").equals("nurse")) { List<Patient> patients = pdao.getAllPatients(); request.setAttribute("patients", patients); return "/views/nurseStart.jsp"; } else { return "/views/test.html"; } } else { return "../index.html"; } }
private String newStaffId(String position) { if (position.equals("管理员")) { List<Staff> list = staffDao.findByPosition(position); int num = list.size() + 1; String id = ""; if (num < 10) { id = "S" + "000" + num; } else if (100 > num && num >= 10) { id = "S" + "00" + num; } else if (1000 > num && num >= 100) { id = "S" + "0" + num; } else { id = "S" + num; } return id; } else if (position.equals("经理")) { List<Staff> list = staffDao.findByPosition(position); int num = list.size() + 1; String id = ""; if (num < 10) { id = "A" + "000" + num; } else if (100 > num && num >= 10) { id = "A" + "00" + num; } else if (1000 > num && num >= 100) { id = "A" + "0" + num; } else { id = "A" + num; } return id; } else { List<Staff> list = staffDao.findByPosition(position); int num = list.size() + 1; String id = ""; if (num < 10) { id = "C" + "000" + num; } else if (100 > num && num >= 10) { id = "C" + "00" + num; } else if (1000 > num && num >= 100) { id = "C" + "0" + num; } else { id = "C" + num; } return id; } }
@Override public boolean login(String staffid, String password) { Staff staff = staffDao.findByStaffId(staffid); if (staff == null) { return false; } if (password.equals(staff.getPassword())) return true; else return false; }
@Override public StaffInfo searchStaffByStaffid(String staffid) { StaffInfo staff = new StaffInfo(); Staff staffentity = staffDao.findByStaffId(staffid); if (staffentity != null) { staff = convertEntity(staffentity); } return staff; }
@Override public List<StaffInfo> searchStaffByProposition(String position) { List<StaffInfo> stafflist = new ArrayList<StaffInfo>(); List<Staff> entitylist = staffDao.findByPosition(position); if (entitylist != null) { for (int i = 0; i < entitylist.size(); i++) { StaffInfo temp = convertEntity(entitylist.get(i)); stafflist.add(temp); } } return stafflist; }
@Override public List<StaffInfo> getStaffList() { List<StaffInfo> stafflist = new ArrayList<StaffInfo>(); List<Staff> entitylist = staffDao.findAll(); if (entitylist != null) { for (int i = 0; i < entitylist.size(); i++) { StaffInfo temp = convertEntity(entitylist.get(i)); stafflist.add(temp); } } return stafflist; }
@Override public void deleteStaff(StaffInfo staffinfo) { Staff staff = convertInfo(staffinfo); staffDao.delete(staff); }
@Override public void modifyStaffInfo(StaffInfo staffinfo) { Staff staff = convertInfo(staffinfo); staffDao.modify(staff); }
@Override public void addNewStaff(StaffInfo staffinfo) { Staff staff = convertInfo(staffinfo); staff.setStaffid(newStaffId(staffinfo.getPosition())); staffDao.create(staff); }