package com.oa.action; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.oa.model.Module; import com.oa.model.Person; import com.oa.model.Role; import com.oa.model.UserPrivilege; import com.oa.model.Users; import com.oa.model.UsersRoles; import com.oa.service.ModuleService; import com.oa.service.PersonService; import com.oa.service.UserService; import com.opensymphony.xwork2.ActionSupport; import java.io.*; import java.net.URLDecoder; /** * @author Big mac * */ public class UserAction extends ActionSupport { private UserService userService; private PersonService personService; private ModuleService moduleService; private Users user; private String returns; private int index; private Person person; private Role role; private UsersRoles usersRoles; private int userid; private Integer moduleId; private Integer userId; private Integer boxValue; private Integer boxValues; private File uploadFile; //用来封装上传的图片(头像) private String uploadFileContentTypeString; //用来封装上传图片的类型 private String uploadFileFileName; //用来封装上传图片的图片名 private String currentPw; private String newPd; private String rePd; public UserService getUserService() { return userService; } @Resource public void setUserService(UserService userService) { this.userService = userService; } public Users getUser() { return user; } public void setUser(Users user) { this.user = user; } public PersonService getPersonService() { return personService; } public void setPersonService(PersonService personService) { this.personService = personService; } public String getReturns() { return returns; } public void setReturns(String returns) { this.returns = returns; } public ModuleService getModuleService() { return moduleService; } public void setModuleService(ModuleService moduleService) { this.moduleService = moduleService; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } public Role getRole() { return role; } public void setRole(Role role) { this.role = role; } public UsersRoles getUsersRoles() { return usersRoles; } public void setUsersRoles(UsersRoles usersRoles) { this.usersRoles = usersRoles; } public int getUserid() { return userid; } public void setUserid(int userid) { this.userid = userid; } public String login(){ System.out.println("this is login"); personService.getSeletsValue(); Users admin = (Users) ServletActionContext.getRequest().getSession().getAttribute("admin"); Users login=null; System.out.println("阿斯蒂芬"); if(admin == null){ if(user != null) { login = userService.login("from Users u where u.account = ? and u.password= ?", new Object[]{user.getAccount(),user.getPassword()}); if(login == null){ return "login_failure"; } Users thisUser = (Users)userService.getThisUser(Users.class, login.getId()); ServletActionContext.getRequest().getSession().setAttribute("photoPath", login.getPersonid().getPhotoPath()); ServletActionContext.getRequest().getSession().setAttribute("admin", login); ServletActionContext.getRequest().getSession().setAttribute("modules", moduleService.getCategory(login)); ServletActionContext.getRequest().setAttribute("personName",thisUser.getPersonid().getName()); System.out.println("we have send login"); } } return "login_success"; } public String chat() { Users login = (Users)ServletActionContext.getRequest().getSession().getAttribute("admin"); System.out.println("login.getpersonId is "+login.getPersonid()); ServletActionContext.getRequest().getSession().setAttribute("adminName",login.getPersonid().getName()); return "chat"; } public String inputChat() { String msg = ServletActionContext.getRequest().getParameter("msg"); Users login = (Users)ServletActionContext.getRequest().getSession().getAttribute("admin"); ArrayList msgs = (ArrayList)ServletActionContext.getRequest().getSession().getServletContext().getAttribute("msgs"); if(msg!=null && !msg.equals("")) { msgs.add(login.getPersonid().getName()+"说:"+msg); } return "chat"; } public String exits(){ Users exits=userService.exits(user.getAccount()); return null; } public String modifyPassword() throws IOException{ Users users=(Users) ServletActionContext.getRequest().getSession().getAttribute("admin"); PrintWriter writer=ServletActionContext.getResponse().getWriter(); System.out.println("========="); if( users.getPassword().equals(currentPw)){ if(newPd.equals(rePd)){ System.out.println("==----------"); users.setPassword(newPd); userService.update(users); writer.println(2); return null; } writer.println(1); return null; } writer.println(0); return null; } public String addAccount(){ user.setPersonid(person); Serializable flag=userService.addUser(user); return flag!=null ?"operator_success" :"operator_failure"; } public String accountModify(){ returns="JSP/gerenxinxi.jsp"; System.out.println(user.toString()); Users thisUser = (Users)userService.getThisUser(Users.class, user.getId()); // thisUser.setAccount(user.getAccount()); // thisUser.setPassword(user.getPassword()); /* userService.update(thisUser);*/ System.out.println("person id i s "+thisUser.getPersonid()); // Users newUser = (Users)userService.getThisUser(Users.class, thisUser.getId()); try { InputStream is = new FileInputStream(uploadFile); //文件输出流 String uploadPath = ServletActionContext .getServletContext().getRealPath("/photo");//设置图片上传目录 Users loginUser = (Users)ServletActionContext.getRequest().getSession().getAttribute("admin"); String photoName = loginUser.getAccount()+this.getUploadFileFileName().substring(this.getUploadFileFileName().lastIndexOf(".")); System.out.println("photo name is "+photoName); File toFile = new File(uploadPath, photoName); //设置目标图片 if(!toFile.getParentFile().exists()){ toFile.getParentFile().mkdirs(); } OutputStream os = new FileOutputStream(toFile); if(!toFile.getParentFile().exists()){ toFile.getParentFile().mkdirs(); } byte[] buffer = new byte[1024]; int length = 0; while((length= is.read(buffer))>0) { os.write(buffer,0,length); } is.close(); os.close(); String path = ServletActionContext.getRequest().getContextPath(); String basePath = ServletActionContext.getRequest().getScheme() + "://" + ServletActionContext.getRequest().getServerName() + ":" + ServletActionContext.getRequest().getServerPort() + path + "/photo/"+photoName; Person person = thisUser.getPersonid(); System.out.println("person is "+person); person.setPhotoPath(basePath); userService.update(person); //user.getPersonid().setPhotoPath(basePath); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } ServletActionContext.getRequest().getSession().setAttribute("photoPath", thisUser.getPersonid().getPhotoPath()); ServletActionContext.getRequest().getSession().setAttribute("admin", thisUser); return "operator_success"; } public String userList() { String hql = ""; List<Person> listPersons = userService.getPageUsers((index==0 ? 1 : index), Person.class, hql); int total = userService.getAllUsers(Person.class, hql).size(); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("currentIndex", (index==0 ? 1 : index )); request.setAttribute("totalSize",total); request.setAttribute("url", "UserAction!userList"); request.setAttribute("listObject", listPersons); return "userList"; } public String add() { user.setCreateTime(new java.util.Date()); Person personid = userService.getPersonId(Person.class, person.getId()); user.setPersonid(personid); userService.addUser(user); returns = "UserAction!userList"; return "operator_success"; } public String deleteAccount() { userService.dealDeleteAccount(user.getPersonid().getId()); returns = "UserAction!userList"; return "operator_success"; } public String distributeRole() { Person personid = userService.getPersonId(Person.class, user.getPersonid().getId()); user = userService.getsUser(personid); List<UsersRoles> usersRolesList = userService.getUsersRoles(user); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("userId", user.getId()); request.setAttribute("usersRoles", usersRolesList); return "distributeRole"; } public String listRole() { List<Role> roles = userService.listRole(); //System.out.println("roles size is "+roles.size()); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("roles", roles); request.setAttribute("userid", userid); return "listRole"; } public String distributeRoleToUser() throws IOException { System.out.println("role name is "+role.getName()); //System.out.println("usersRoles priority is "+usersRoles.getPriority()); System.out.println("user is "+user.toString()); System.out.println("useid is "+user.getId()); user = userService.getThisUser(Users.class, user.getId()); role = userService.getThisRole(role.getName()); UsersRoles usersRoles = new UsersRoles(); usersRoles.setRoleId(role); usersRoles.setUserId(user); userService.addUsersRoles(usersRoles); ServletActionContext.getResponse().getWriter().print("UserAction!distributeRole?user.personid.id="+user.getPersonid().getId()); returns = "UserAction!userList"; return null; } public String updateDistributeRole() { //System.out.println("usersRoles id is "+usersRoles.getId()); usersRoles = userService.getThisUsersRoles(usersRoles.getId()); //System.out.println("is usersRoles is null "+usersRoles==null? "yes":"no"); List<Role> roles = userService.listRole(); //System.out.println("usersRoles priority is "+usersRoles.getPriority()); //System.out.println("sersRolesId is "+usersRoles.getRoleId().getId()); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("roles", roles); request.setAttribute("usersRolesId", usersRoles.getRoleId().getId()); return "updateDistributeRole"; } public String updateRoleToUser() { //System.out.println("usersrles id "+usersRoles.getId()); //System.out.println("usersroles priority is "+usersRoles.getPriority()); //System.out.println("usersroles roles name is "+role.getName()); usersRoles = userService.getUsersRolesById(UsersRoles.class, usersRoles.getId()); userService.updateUsersRoles(usersRoles, role.getName()); returns = "UserAction!userList"; return "operator_success"; } public String deleteDistributeRole() { usersRoles = userService.getUsersRolesById(UsersRoles.class, usersRoles.getId()); userService.deleteUsersRoles(usersRoles); returns = "UserAction!userList"; return "operator_success"; } public String back() { ServletActionContext.getRequest().getSession().removeAttribute("admin"); // Map<String, String> loginUsers = (Map<String, String>)ServletActionContext.getRequest().getSession().getServletContext().getAttribute("loginUsers"); /* Users user = (Users)ServletActionContext.getRequest().getSession().getAttribute("admin"); System.out.println("user is "+user.getAccount());*/ // String IP = ServletActionContext.getRequest().getRemoteAddr(); /* String index = null; if(loginUsers.size() != 0) { Iterator it=loginUsers.entrySet().iterator(); System.out.println(loginUsers.entrySet().size()); String key; String value; while(it.hasNext()){ Map.Entry entry = (Map.Entry)it.next(); key=entry.getKey().toString(); value=entry.getValue().toString(); if(key.equals(user.getAccount().toString()) && value.equals(IP)) { // index = key; // loginUsers.remove(index); loginUsers.remove(key); } } }*/ // System.out.println("index is "+index); // System.out.println("list size is "+loginUsers.size()); // HttpServletRequest request = ServletActionContext.getRequest(); // HttpSession session = request.getSession(); // session.invalidate(); return "logout"; } public String distributeUser() { ///////////// /////////// /////// Person personid = userService.getPersonId(Person.class, user.getPersonid().getId()); user = userService.getsUser(personid); ServletActionContext.getRequest().setAttribute("userPrivileges", moduleService.getUserPrivilege(user)); ServletActionContext.getRequest().setAttribute("username", personid.getName()); ServletActionContext.getRequest().setAttribute("personId", user.getPersonid().getId()); ServletActionContext.getRequest().setAttribute("userId", user.getId()); return "distributePrivilegeToUser"; } public String privilegeToUser() { System.out.println("module id is "+moduleId); System.out.println("boxValue is "+boxValue); System.out.println("boxValues is "+boxValues); System.out.println("userId is "+userId); UserPrivilege up = new UserPrivilege(); Module module = userService.getThisModule(Module.class, moduleId); Users user = userService.getThisUser(Users.class, userId); if(boxValues != null) { //不继承 up = userService.getUserPrivilege("from UserPrivilege up where up.userId = ? and up.moduleId = ?", new Object[]{user,module}); if(up != null) { int oldBoxValue = up.getUserValue(); up.setModuleId(module); up.setUserId(user); up.setInheritance(-1); userService.updateUserPrivilege(up); } } else { //继承 up = userService.getUserPrivilege("from UserPrivilege up where up.userId = ? and up.moduleId = ?", new Object[]{user,module}); if(up != null) { System.out.println("module id is "+up.getModuleId().getId()); System.out.println("userId is is "+up.getUserId().getId()); up.setModuleId(module); up.setUserId(user); up.setInheritance(0); userService.updateUserPrivilege(up); } } ServletActionContext.getRequest().setAttribute("userPrivileges", moduleService.getUserPrivilege(user)); return "distributePrivilegeToUser"; } public String privilegeToUserPart() { System.out.println("module id is "+moduleId); System.out.println("boxValue is "+boxValue); System.out.println("userId is "+userId); UserPrivilege up = new UserPrivilege(); Module module = userService.getThisModule(Module.class, moduleId); Users user = userService.getThisUser(Users.class, userId); up = userService.getUserPrivilege("from UserPrivilege up where up.userId = ? and up.moduleId = ?", new Object[]{user,module}); if(up != null) { int oldBoxValue = up.getUserValue(); up.setModuleId(module); up.setUserId(user); up.setInheritance(-1); up.setUserValue(boxValue.intValue()+oldBoxValue); userService.updateUserPrivilege(up); } else { UserPrivilege up2 = new UserPrivilege(); up2.setModuleId(module); up2.setUserId(user); up2.setInheritance(-1); up2.setUserValue(boxValue); userService.addUserPrivilege(up2); } ServletActionContext.getRequest().setAttribute("userPrivileges", moduleService.getUserPrivilege(user)); return "distributePrivilegeToUser"; } public String privilegeToUserAllChose() { System.out.println("module id is "+moduleId); System.out.println("userId is "+userId); UserPrivilege up = new UserPrivilege(); Module module = userService.getThisModule(Module.class, moduleId); Users user = userService.getThisUser(Users.class, userId); up = userService.getUserPrivilege("from UserPrivilege up where up.userId = ? and up.moduleId = ?", new Object[]{user,module}); if(up != null) { System.out.println("module id is "+up.getModuleId().getId()); System.out.println("userId is is "+up.getUserId().getId()); up.setModuleId(module); up.setUserId(user); up.setUserValue(15); userService.updateUserPrivilege(up); } else { UserPrivilege up2 = new UserPrivilege(); up2.setModuleId(module); up2.setUserId(user); up2.setUserValue(15); up2.setInheritance(-1); userService.addUserPrivilege(up2); } ServletActionContext.getRequest().setAttribute("userPrivileges", moduleService.getUserPrivilege(user)); return "distributePrivilegeToUser"; } public Integer getModuleId() { return moduleId; } public void setModuleId(Integer moduleId) { this.moduleId = moduleId; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public Integer getBoxValue() { return boxValue; } public void setBoxValue(Integer boxValue) { this.boxValue = boxValue; } public Integer getBoxValues() { return boxValues; } public void setBoxValues(Integer boxValues) { this.boxValues = boxValues; } public File getUploadFile() { return uploadFile; } public void setUploadFile(File uploadFile) { this.uploadFile = uploadFile; } public String getUploadFileContentTypeString() { return uploadFileContentTypeString; } public void setUploadFileContentTypeString(String uploadFileContentTypeString) { this.uploadFileContentTypeString = uploadFileContentTypeString; } public String getUploadFileFileName() { return uploadFileFileName; } public void setUploadFileFileName(String uploadFileFileName) { this.uploadFileFileName = uploadFileFileName; } public String getCurrentPw() { return currentPw; } public void setCurrentPw(String currentPw) { this.currentPw = currentPw; } public String getNewPd() { return newPd; } public void setNewPd(String newPd) { this.newPd = newPd; } public String getRePd() { return rePd; } public void setRePd(String rePd) { this.rePd = rePd; } }