package com.fgkj.services; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.http.Cookie; import com.fgkj.actions.ActionUtil; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.BaseDAOFactory; import com.fgkj.dao.impl.User_infImpl; import com.fgkj.dto.Batt_User_Permit; import com.fgkj.dto.Page; import com.fgkj.dto.ServiceModel; import com.fgkj.dto.UserClient; import com.fgkj.dto.User_battgroup_baojigroup; import com.fgkj.dto.User_battgroup_baojigroup_battgroup; import com.fgkj.dto.User_inf; import com.fgkj.dto.User_permitgroup; public class User_infService extends ActionUtil { private ServiceModel model; private User_permitgroupService upservice; private BaseDAO dao; public User_infService() { model = new ServiceModel(); dao = BaseDAOFactory.getBaseDAO(BaseDAO.USER_INF); upservice = new User_permitgroupService(); } //web版登录直接访问(只验证账号不验证密码) public ServiceModel login_direct(Object obj) { User_inf uinf = (User_inf) obj; List list = dao.serchByCondition(uinf); if (list == null || list.size() < 1) { model.setMsg(this.getText("Username_error")); } else { User_inf u = (User_inf) list.get(0); uinf.setUSnId(u.getUSnId()); model.setCode(1); //model.setMsg("index.jsp"); model.setMsg("index-outline.jsp"); // 将登陆成功的用户存入session ActionUtil.getSession().setAttribute("user", u); //设置session不活动时间为30分 ActionUtil.getSession().setMaxInactiveInterval(60*30); ActionUtil.getSession().setAttribute("ip",ActionUtil.getRequest().getRemoteAddr()); User_permitgroupService upgs=new User_permitgroupService(); ServiceModel model1=upgs.serchItem(u); //System.out.println(model.getData()); if(model1.getCode()==1){ ActionUtil.getSession().setAttribute("permits", ActionUtil.tojson(model1.getData())); }else{ model.setCode(0); model.setMsg("还未分配权限"); } //将新登录的用户存入application setApplication(u); } return model; } //5.1用户管理(添加) public ServiceModel add(Object obj) { int flag=((User_infImpl)dao).addJudge(obj); //System.out.println(flag); if(flag!=0){ Boolean bl=dao.add(obj); if(bl){ model.setCode(1); model.setMsg("添加成功!"); } else{ model.setCode(0); model.setMsg("添加失败!"); } }else{ model.setCode(0); model.setMsg("用户名存在,请重新输入!"); } return model; } // 5.1用户管理(编辑) public ServiceModel update(Object obj) { Boolean bl = false; bl=dao.update(obj); if(bl){ model.setCode(1); model.setMsg("修改成功"); }else{ model.setCode(0); model.setMsg("修改失败"); } return model; } // 5.1用户管理(删除) public ServiceModel delete(Object obj) { Boolean bl = dao.del(obj); //System.out.println(obj); if (bl) { model.setCode(1); model.setMsg("删除成功!"); } else { model.setMsg("删除失败!"); } return model; } public ServiceModel serchByCondition(Object obj) { List list = dao.serchByCondition(obj); /* * for (Object object : list) { System.out.println(object); } */ if (list != null && list.size() > 0) { model.setCode(1); model.setData(list); } // System.out.println(model); return model; } //5.1查询所有员工信息 public ServiceModel searchAll() { List list = dao.searchAll(); if (list != null && list.size() > 0) { model.setCode(1); model.setData(list); } return model; } // 根据battgroupid查对应的包机人 public ServiceModel searchByBattGroupId(Object obj) { model = new ServiceModel(); List list = ((User_infImpl) dao).searchByBattGroupId(obj); // System.out.println(list.size()); /* * for(User_inf u:list){ System.out.println(u); } */ if (list != null && list.size() > 0) { model.setCode(1); model.setData(list); // battgroupid对应的所有包机人姓名和id String uStrN = ""; String uStrI = ""; for (int i = 0; i < list.size(); i++) { uStrN += ","; uStrI += ","; uStrN += list.get(i).getUName().toString(); uStrI += list.get(i).getUId().toString(); } uStrN = uStrN.substring(1, uStrN.length()); uStrI = uStrI.substring(1, uStrI.length()); model.setMsg(uStrN); model.setMsgO(uStrI); } else { model.setCode(0); } // System.out.println(model.getMsg()); // System.out.println(model); return model; } // 3.1根据uid查用户信息(uname) public ServiceModel serchuName(Object obj) { model = new ServiceModel(); List list = ((User_infImpl) dao).serchUname(obj); if (list != null && list.size() > 0) { model.setCode(1); model.setData(list); } else { model.setCode(0); } // System.out.println(model); return model; } // 5.1查询员工的所有信息 public ServiceModel searchAll(Object obj) { // System.out.println((Batt_User_Permit)obj); model = new ServiceModel(); Batt_User_Permit bup = new Batt_User_Permit(); User_permitgroup usergroup = new User_permitgroup(); List list = ((User_infImpl) dao).searchAll(obj);// 存放的是员工信息 if (list != null && list.size() > 0) { model.setCode(1); for (int i = 0; i < list.size(); i++) { ServiceModel model1 = upservice.serchByCondition(list.get(i).getUinf());// 存放权限 // System.out.println(model1.getMsgN()); if (model1.getCode() > 0) { list.get(i).getUinf().setPermitgroupName(model1.getMsgN()); } else { list.get(i).getUinf().setPermitgroupName(""); } } model.setData(list); } // System.out.println(model); return model; } // 5.3根据uid查所在的包机组 public ServiceModel serchByInfo(Object obj) { model = new ServiceModel(); List list = dao.serchByInfo(obj); // System.out.println(list.size()); // for(User_battgroup_baojigroup u:list){ // System.out.println(u); // } if (list != null && list.size() > 0) { model.setCode(1); model.setData(list); } else { model.setCode(0); } // System.out.println(model); return model; } // 用户登录 public ServiceModel login(Object obj) { User_inf uinf = (User_inf) obj; //String usnId64 = (String) ActionUtil.DecryptionBase64(uinf.getUpassword()); //String usnIdMd5 = (String) ActionUtil.EncryptionMD5(usnId64); // System.out.println(uinf.getUSnId()+" "+usnId64+" "+usnIdMd5+" :service"); //uinf.setUpassword(usnIdMd5); List list = dao.serchByCondition(uinf); if (list == null || list.size() < 1) { model.setMsg(this.getText("Username_error")); // System.out.println("用户名不存在"); } else { User_inf u = (User_inf) list.get(0); //System.out.println(uinf.getUpassword()); // System.out.println(uinf.getUSnId()+"=="+u.getUNote()); if (!uinf.getUpassword().equals(u.getUpassword())) { //System.out.println("密码错误"+uinf.getUpassword()+"=="+u.getUpassword()); model.setMsg(getText("Password_error")); } else { //uinf.setUSnId(u.getUSnId()); model.setCode(1); model.setMsg("index.jsp"); //model.setMsg("index-outline.jsp"); setMyCookie("user",u,30,uinf.getUId() == 1); //用户记住密码功能 // 将登陆成功的用户存入session u.setUSnId(""); u.setUpassword(""); ActionUtil.getSession().setAttribute("user", u); //设置session不活动时间为30分 ActionUtil.getSession().setMaxInactiveInterval(60*30); ActionUtil.getSession().setAttribute("ip",ActionUtil.getRequest().getRemoteAddr()); User_permitgroupService upgs=new User_permitgroupService(); ServiceModel model1=upgs.serchItem(u); //System.out.println(model.getData()); if(model1.getCode()==1){ ActionUtil.getSession().setAttribute("permits", ActionUtil.tojson(model1.getData())); }else{ model.setCode(0); model.setMsg("还未分配权限"); } //将新登录的用户存入application setApplication(u); } } return model; } // 将所有登陆的用户的信息存到application中 public void setApplication(User_inf 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()); } } Long login_time = new Date().getTime(); ActionUtil.getSession().setAttribute("login_time", login_time); map.put(user.getUName(), new UserClient(ActionUtil.getRequest().getRemoteAddr(),user,login_time)); application.setAttribute("users", map); } /** * 保存指定的cookie值 * @param key cookie 键 * @param obj 值 * @param timelong 保存时长(秒) * @param flag 是否保存 */ public void setMyCookie(String key,Object obj,long timelong,boolean flag){ Cookie c = null; if(flag){ //记住密码 c = new Cookie(key, ActionUtil.EncryptionBase64(ActionUtil.getGson().toJson(obj)).toString()); }else{ c = new Cookie(key, ""); } //让Cookie保留30天 c.setMaxAge(30*24*60*60); ActionUtil.getResponse().addCookie(c); } /** * 开始查看application中是否有另一用使用该账号登陆 * * @return */ public ServiceModel checkUser() { Map map = (Map) ActionUtil.getApplication().getAttribute("users"); // System.out.println(map); if (map != null && map.size() > 0) { User_inf user = (User_inf) ActionUtil.getSession().getAttribute("user"); Long login_time = (Long) ActionUtil.getSession().getAttribute("login_time"); if (user != null && login_time != null) { UserClient client = map.get(user.getUName()); if (client != null) { if (login_time == client.getLogin_times()) { model.setCode(0); }else { 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")); } } else { model.setCode(1); model.setMsg(getText("You are not logged in, please log in")); } return model; } //修改用户密码 public ServiceModel updatePassword(Object obj){ User_inf uinf=(User_inf) obj; uinf.setUpassword((String)ActionUtil.EncryptionMD5(uinf.getUSnId())); //System.out.println(uinf); Boolean bl=((User_infImpl)dao).updatePassword(uinf); if(bl){ model.setCode(1); model.setMsg("修改成功!"); } else{ model.setMsg("修改失败!"); } return model; } //根据员工信息和员工编号去匹配合适的员工 public ServiceModel searchByNameOrId(Object obj){ List list=((User_infImpl)dao).searchByNameOrId(obj); if(list!=null&&list.size()>0){ model.setCode(1); model.setData(list); model.setMsg("查询成功!"); } else{ model.setCode(0); model.setMsg("查询失败!"); } return model; } //重置用户密码 public ServiceModel resetPassword(Object obj){ Boolean bl=((User_infImpl)dao).resetPassword(obj); if(bl){ model.setCode(1); model.setMsg("修改成功!"); } else{ model.setMsg("修改失败!"); } return model; } public static void main(String[] args) { User_infService us = new User_infService(); User_inf u = new User_inf(); u.setUName("a"); u.setUEmployeeId("a"); u.setUId(1003); Batt_User_Permit bup = new Batt_User_Permit(); Page page = new Page(); page.setPageSize(10); page.setPageCurr(1); bup.setPage(page); bup.setUinf(u); //User_battgroup_baojigroup_battgroup ub = new User_battgroup_baojigroup_battgroup(); // ub.setBattGroupId(1000012); // us.searchByBattGroupId(ub); // us.serchByInfo(u); // System.out.println(us.searchAll(bup).getData()); us.searchByNameOrId(bup); } }