public OnlineMap online(User user, String company, Integer roleId) { OnlineMap online = new OnlineMap(); online.setUsercode(user.getUser_Code()); online.setUsername(user.getUser_Realname()); online.setRole(roleService.getRole(roleId).getRole_Name()); online.setCompany(companyService.getCompanyInforByNo(company).getOrganization_Name()); Department department = departmentService.getDepartmentByCondition(user.getUser_Code(), company); online.setDepartment(department.getDepartName()); online.setState("Y"); return online; }
/** * 登录 * * @param currentUser当前登录用户 * @param map * @param req * @param company 当前公司 * @param loginMap 当前在线集合 * @return */ @SuppressWarnings({}) @RequestMapping("/login.do") public String login( User currentUser, ModelMap map, HttpServletRequest req, String company, String time) { // System.out.println(req.getSession().getServletContext() // .getRealPath("/")); // System.out.println(FileUtil.getUploadRoot()); // 定义时,分 字符串 List<String> hours = new ArrayList<String>(); List<String> minutes = new ArrayList<String>(); for (int i = 0; i < 24; i++) { if (i < 10) { hours.add("0" + i); } else { hours.add("" + i); } } for (int i = 0; i < 60; i++) { if (i < 10) { minutes.add("0" + i); } else { minutes.add("" + i); } } req.getSession().setAttribute("hours", hours); req.getSession().setAttribute("minutes", minutes); // map.put("hours", hours); // map.put("minutes", minutes); String errorMsg = ""; // List<Role> roles = roleService.getAllRole(company);// 用户拥有的所有角色 List<Role> roles = roleService.getAllRole(); String page = "login/login"; // 定义跳转页面 Integer roleId = 0; // 定义用户角色id // && ((company != null) && (!"0".equals(company))) if (currentUser != null) { // 判断提交信息是否为空 User mesUser = userService.findByUser_Code(currentUser.getUser_Code()); // 根据工号拿到用户信息(资讯平台) ModelUser agentflowUser = userService.getMemGeninf(currentUser.getUser_Code()); // 根据工号从agentflow中查询用户 System.out.println("登錄賬號:" + currentUser.getUser_Code()); // 查询出所有公司 List<Company> allCompany = companyService.getAllCompany(); // List<Department> departments = departmentService // .getDepartmentsByCom(company);// 根据公司编号查询部门 // map.put("departments", departments); // req.getSession().setAttribute("departments", departments); req.getSession().setAttribute("company", allCompany); // map.put("company", company); if (mesUser == null) { // 资讯系统中不存在该用户 if (agentflowUser == null) { // agentflow中不存在该用户 errorMsg = "此工号不存在"; } else { // agentflow中存在该用户 String password = MD5Utils.encrypt(currentUser.getUser_Password()); // 加密 // password = "******";(谁改了数据库) if (!agentflowUser.getPassword().equals(password)) { errorMsg = "账号或密码错误"; } else if ("true".equals(agentflowUser.getResign())) { errorMsg = "当前工号已离职"; } else if (("true".equals(agentflowUser.getInvisible())) || ("true".equals(agentflowUser.getDeniedLogin()))) { errorMsg = "当前工号不可以登陆"; } else { // 第一次登录请先完善信息吧! String comStr = ""; if (agentflowUser.getId().startsWith("kgo")) comStr = "昆山和霖光电科技有限公司"; if (agentflowUser.getId().startsWith("kgp")) comStr = "昆山凌达光电科技有限公司"; if (agentflowUser.getId().startsWith("sgo")) comStr = "深圳旭茂光电技术有限公司"; if (agentflowUser.getId().startsWith("gp")) comStr = "凌巨科技股份有限公司"; agentflowUser.setCompany(comStr); // map.put("agentflowUser", agentflowUser); req.getSession().setAttribute("agentflowUser", agentflowUser); // map.put("mark", "2");// 定义标志,确定添加之后跳转到那个页面 page = "redirect:../user/initAdd.do?mark=2"; } } } else { // 资讯系统中存在该用户 Company com = null; List<Role> user_roles = roleService.getRolesByUsercode(currentUser.getUser_Code()); // 查询用户的所有的角色信息 List<Company> user_companys = companyService.getCompanyByUsercode(currentUser.getUser_Code()); // 查询用户任职的公司信息 // if (company != null && !"".equals(company)) { for (Company c : user_companys) { // if (c.getSeg_Segment_No().equals(company)) { // com = c;// 当前登陆的公司 // } com = c; } for (Role r : user_roles) { // if (r.getCompany().getSeg_Segment_No().equals(company)) { // roleId = r.getId();// 当前用户角色id // } roleId = r.getId(); } // } boolean check = userService.checkUser(currentUser.getUser_Code()); // 查询咨讯平台与agentflow中用户信息是否一致 if (!check) { // 不一致 mesUser = synchronizedUser(mesUser, agentflowUser); // 同步用户信息 userService.updateUser(mesUser); // 更新用户信息 errorMsg = "差异信息已更新,请重新登陆"; } else if (!mesUser .getUser_Password() .equals(MD5Utils.encrypt(currentUser.getUser_Password()))) { errorMsg = "密码错误"; } else if (com == null) { errorMsg = "对不起,公司选择有误!请重新选择"; } else if (!"账号启用".equals(mesUser.getRegStatus())) { errorMsg = mesUser.getRegStatus() + ",请等待系统管理员处理!"; } else if ("true".equals(mesUser.getResign())) { errorMsg = "当前工号已离职"; } else if (("true".equals(mesUser.getInvisible())) || ("true".equals(mesUser.getDeniedLogin()))) { errorMsg = "当前工号不可以登陆"; } else { // 登陆成功 map.put("currentUser", mesUser); List<String> modelnameList = permissonService.getModelname(); Collections.sort(modelnameList); List<MenuLv1> lv1s = new ArrayList<MenuLv1>(); for (String s : modelnameList) { MenuLv1 menuLv1 = new MenuLv1(); menuLv1.setName(s); List<Permisson> pers = permissonService.getPermissionIdByCondition(roleId, s); List<MenuLv2> lv2s = new ArrayList<MenuLv2>(); for (Permisson p : pers) { MenuLv2 lv2 = new MenuLv2(); lv2.setId(p.getPermissionId()); lv2.setName(p.getPermissionName()); lv2.setUrl(p.getUrl()); lv2s.add(lv2); } menuLv1.setLv2s(lv2s); lv1s.add(menuLv1); } map.put("menu", lv1s); // 封装侧边栏菜单 System.out.println(getIpAddr(req)); String ip = getIpAddr(req); // 获取用户客户端ip地址 OnlineMap online = onlineService.queryOnline(currentUser.getUser_Code()); if (online != null) { if (!StringUtils.isBlank(ip)) online.setIp(ip); online.setState("Y"); onlineService.updateOnline(online); } else { online = online(mesUser, com.getSeg_Segment_No(), roleId); onlineService.saveOnline(online); } Long count = onlineService.getOnlineCount(); map.put("time", time); map.put("count", count); map.put("roleId", roleId); // 用户当前角色Id map.put("loginCompany", com); // 用户当前所属的公司 map.put("user_companys", user_companys); // 用户当前所属的公司号 map.put("companyCount", user_companys.size()); // 用户任职的公司的个数 map.put("roles", roles); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); LoginLog loginLog = new LoginLog(); loginLog.setLoginName(mesUser.getUser_Realname()); loginLog.setLoginID(mesUser.getUser_Code()); loginLog.setLoginTime(df.format(new Date())); loginLog.setCompany(com.getSeg_Segment_No()); Department department = departmentService.getDepartmentByCondition( mesUser.getUser_Code(), com.getSeg_Segment_No()); loginLog.setDepart(department.getDepartName()); loginLog.setState("Y"); loginLogService.saveHistory(loginLog); page = "main/main"; } } } else { errorMsg = "请完善 用户名/密码"; // 登录信息不完整 } map.put("errorMsg", errorMsg); return page; }