package com.fgkj.services; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.ResourceBundle; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import org.apache.commons.io.FileUtils; import com.fgkj.actions.ActionUtil; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.BaseDAOFactory; import com.fgkj.dao.impl.UserDAOImpl; import com.fgkj.dto.Roles; import com.fgkj.dto.ServiceModel; import com.fgkj.dto.User; import com.fgkj.dto.UserClient; import com.fgkj.dto.UserRole; import com.fgkj.report.FileUtil; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.LocaleProvider; import com.opensymphony.xwork2.TextProvider; import com.opensymphony.xwork2.util.ValueStack; public class UserService extends ActionUtil{ private BaseDAO dao; private ServiceModel model; public UserService(){ dao = BaseDAOFactory.getBaseDAO(BaseDAO.USER); model = new ServiceModel(); } // 添加员工 public ServiceModel addUser(User user) { if (dao.add(user)) { user = (User) dao.serchByCondition(user).get(0); dao = BaseDAOFactory.getBaseDAO(BaseDAO.USERROLE); UserRole userrole = new UserRole(user, new Roles(user.getPid())); if (dao.add(userrole)) { model.setCode(1); model.setMsg("添加成功"); } } else { model.setMsg("添加失败"); } return model; } public ServiceModel delUser(User user) { if (dao.del(user)) { model.setCode(1); model.setMsg("删除成功"); } else { model.setMsg("删除失败"); } return model; } public ServiceModel updateUser(User user) { if (dao.update(user)) { dao = BaseDAOFactory.getBaseDAO(BaseDAO.USERROLE); boolean flag = dao.update(new UserRole(user, new Roles(user.getPid()))); if (flag) { model.setCode(1); model.setMsg("修改成功"); } } else { model.setMsg("修改成功"); } return model; } public ServiceModel findUser(User user) { List list = dao.serchByCondition(user); if (list != null && list.size() > 0) { model.setData(list); model.setCode(1); } else { model.setMsg("查询失败"); } return model; } public ServiceModel findUserAll() { List list = dao.searchAll(); if (list != null && list.size() > 0) { FileUtil.WriterFile(list); model.setCode(1); model.setData(list); } return model; } public ServiceModel findByInfo(Object obj) { User user = (User) obj; List list = dao.serchByInfo(user); if (list == null || list.size() < 1) { model.setMsg("没有匹配的员工"); } else { model.setData(list); model.setCode(1); } return model; } public ServiceModel updatePass(Object obj) { boolean flag = new UserDAOImpl().updatePass(obj); if (!flag) { model.setMsg("修改失败"); } else { model.setCode(1); List list = dao.serchByCondition(obj); if (list != null && list.size() > 0) { User u = (User) list.get(0); ActionUtil.getSession().setAttribute("user", u); } } return model; } public ServiceModel findByAge(int currentPage, int PageSize) { List list = new UserDAOImpl().serchByPage(currentPage, PageSize); if (list != null && list.size() > 0) { model.setCode(1); model.setData(list); } else { model.setMsg("查询失败"); } return model; } // public ServiceModel login(Object obj) { // User user = (User) obj; // List list = dao.serchByCondition(user); // if (list == null || list.size() < 1) { // model.setMsg(this.getText("Username_error")); // // System.out.println("用户名不存在"); // } else { // User u = (User) list.get(0); // // if (!user.getUpass().equals(u.getUpass())) { // model.setMsg(getText("Password_error")); // } else { // model.setCode(1); // // 将登陆成功的用户存入session // ActionUtil.getSession().setAttribute("user", u); // ActionUtil.getSession().setAttribute("ip", // ActionUtil.getRequest().getRemoteAddr()); // // 将新登录的用户存入application // setApplication(u); // } // } // return model; // } // public void setApplication(User user) { // ServletContext application = ActionUtil.getApplication(); // Map map = (Map) application.getAttribute("users"); // if (map == null) { // map = new HashMap(); // } else { // UserClient client = map.get(user.getUname()); // if (client != null) { // map.remove(user.getUname()); // } // } // //map.put(user.getUname(), new UserClient(ActionUtil.getRequest().getRemoteAddr(), user)); // application.setAttribute("users", map); // } /** * 开始查看application中是否有另一用使用该账号登陆 * * @return */ public ServiceModel checkUser() { Map map = (Map) ActionUtil.getApplication() .getAttribute("users"); //System.out.println(map); if (map != null && map.size()>0) { User user = (User) ActionUtil.getSession().getAttribute("user"); if(user!=null){ UserClient client = map.get(user.getUname()); if(client!=null){ if (!ActionUtil.getRequest().getRemoteAddr().equals(client.getIp())) { model.setCode(1); model.setMsg(getText("The landing on the account in another host, please log in again")); } } }else{ model.setCode(1); model.setMsg(getText("You are not logged in, please log in")); } } else { model.setCode(1); model.setMsg(getText("You are not logged in, please log in")); } return model; } }