/** * Ajax 验证用户是否存在,页面右侧通讯录的查询用户 * * @throws Exception */ @Action( value = "queryUserExist", results = { @Result( type = "json", params = {"root", "entityMap", "contentType", "text/html"}) }) public String queryUserExist() { try { logger.info("queryUserExist: flag->" + flag); if ("add".equals(flag)) { /*PAN-Z-G 添加当前登录的商户pin码,用于唯一性用户验证*/ long merchantPin = users.getMerchantPin(); // 新增页面验证用户 // 设定是否为托管mas处理方式 if (WebUtils.isHostMas()) { portalUser.setMerchantPin(merchantPin); } Users users = userService.validateUser(portalUser); // cnt >0表示此用户已经存在,否则不存在 if (users != null) { entityMap.put("flag", 1); } else { entityMap.put("flag", 0); } // 新增页面验证用户是否存在 logger.info("queryUser: "******"query".equals(flag)) { // 新增页面右侧搜索框 portalUser.setMerchantPin(users.getMerchantPin()); List<UserVO> uList = userService.queryUserLikeAccount(portalUser); List<UserVO> tList = new ArrayList<UserVO>(); for (int i = 0, len = uList.size(); i < len; i++) { UserVO userVO = uList.get(i); userVO.setPassword( new MasPasswordTool().getDesString(userVO.getPassword(), userVO.getAccount())); tList.add(userVO); } entityMap.put("users", tList); logger.info("query from add right address: " + entityMap); } } catch (Exception e) { logger.error("validate user erorr: " + e); } return SUCCESS; }
/** * 查询用户信息<未完成的,分页列表> * * @return * @throws Exception */ @Action( value = "query", results = { @Result( type = "json", params = {"root", "entityMap", "contentType", "text/html"}) }) public String query() { try { PageUtil pageUtil = new PageUtil(); pageUtil.setStart(page); pageUtil.setPageSize(rows); pageUtil.setMerchantPin(users.getMerchantPin()); if (portalUser != null) { pageUtil.setAccount(portalUser.getAccount()); pageUtil.setMobile(portalUser.getMobile()); pageUtil.setEmail(portalUser.getEmail()); // Integer activeFlag = // portalUser.getActiveFlag()== -99 ? null : portalUser.getActiveFlag(); pageUtil.setActiveFlag(portalUser.getActiveFlag()); String roleId = request.getParameter("roleId"); if (roleId != null && !"-99".equals(roleId)) pageUtil.setRoleId(Long.parseLong(roleId)); } logger.info("role query portalUser:"******"role query pageUtil:" + pageUtil); // REX@20130112 判断登陆用户类型 if (users.getUserType() == ApSmsConstants.USER_TYPE_SUPER_ADMIN) { // 在省、地市 管理员的时候,不需要pin码 pageUtil.setMerchantPin(null); String[] provArray = null; List<Region> regionList = regionService.findProvinces(); if (regionList != null) { provArray = new String[regionList.size()]; for (int i = 0; i < regionList.size(); i++) { provArray[i] = String.valueOf(regionList.get(i).getId()); } } // 增加全省列表 pageUtil.setAreaRange(provArray); // 设置用户类型为省管理员 pageUtil.setUserType(users.getUserType()); } else if (users.getUserType() == ApSmsConstants.USER_TYPE_PROVINCE_ADMIN) { // 在省、地市 管理员的时候,不需要pin码 pageUtil.setMerchantPin(null); Long provinceId = 0L; provinceId = Long.parseLong(users.getProvince()); String[] cityArray = null; List<Region> regionList = regionService.findCityByProvinceId(provinceId); if (regionList != null) { cityArray = new String[regionList.size()]; for (int i = 0; i < regionList.size(); i++) { cityArray[i] = String.valueOf(regionList.get(i).getId()); } } // 增加地区列表 pageUtil.setAreaRange(cityArray); // 设置用户类型为地市管理员 pageUtil.setUserType(users.getUserType()); } else if (users.getUserType() == ApSmsConstants.USER_TYPE_CITY_ADMIN) { pageUtil.setMerchantPin(null); // 增加地区列表 pageUtil.setAreaRange(new String[] {users.getCity()}); // 设置用户类型为企业管理员 pageUtil.setUserType(users.getUserType()); } else if (users.getUserType() == ApSmsConstants.USER_TYPE_ENTERPRISE_ADMIN) { // 设置用户类型为企业管理员 pageUtil.setUserType(users.getUserType()); } else { pageUtil.setUserType(users.getUserType()); } Page page = userService.page(pageUtil); if (page != null) { @SuppressWarnings("unchecked") List<UserVO> datas = (List<UserVO>) page.getData(); entityMap = new HashMap<String, Object>(); entityMap.put("total", page.getRecords()); if (datas == null) { datas = new ArrayList<UserVO>(); } entityMap.put("rows", datas); entityMap.put("totalrecords", page.getTotal()); entityMap.put("currpage", page.getStart()); } logger.info("query user page: " + entityMap); } catch (Exception e) { e.printStackTrace(); return ERROR; } return SUCCESS; }
/** * 初始化新增页面 * * @return */ @Action( value = "forward", results = { @Result(name = "forward", location = "/ap/user/useradd.jsp"), @Result(name = ERROR, location = "/error.jsp"), @Result(name = INPUT, location = "/ap/user/useradd.jsp") }) public String forward() { try { List<Role> roleList = userService.getRolesByMerchantPin(users.getMerchantPin()); // 初次进入新增页面,得初始化角色 request.setAttribute("rolesList", roleList); // REX@20130111 判断管理员类型 0:超级管理员 1:省系统管理员;2:地市管理员3、企业超级管理员4、企业用户 // 0返回省列表 // 1返回省代码,地市列表 // 2,3,4 返回省代码、地市代码 int userType = users.getUserType(); if (userType == ApSmsConstants.USER_TYPE_SUPER_ADMIN) { List<Region> list = regionService.findProvinces(); request.setAttribute("regionList", list); } else if (userType == ApSmsConstants.USER_TYPE_PROVINCE_ADMIN) { Long prov = Long.parseLong(users.getProvince()); List<Region> list = regionService.findCityByProvinceId(prov); request.setAttribute("regionList", list); request.setAttribute("province", users.getProvince()); } else if (userType == ApSmsConstants.USER_TYPE_CITY_ADMIN) { // 地市管理员。列出企业。 Long prov = Long.parseLong(users.getProvince()); List<MbnMerchantVip> list = MbnMerchantVipIService.loadByProvinceAndCity(users.getProvince(), users.getCity()); request.setAttribute("merchantList", list); request.setAttribute("province", users.getProvince()); request.setAttribute("city", users.getCity()); // }else if(userType == ApSmsConstants.USER_TYPE_ENTERPRISE_ADMIN){ // request.setAttribute("entAdmin", true); // request.setAttribute("province", users.getProvince()); // request.setAttribute("city", users.getCity()); } else { MbnConfigMerchant mbnConfigMerchant = mbnConfigMerchantIService.loadByMerchantPin(users.getMerchantPin(), "corp_login_port"); if (mbnConfigMerchant != null) { request.setAttribute("corpLoginPort", mbnConfigMerchant.getItemValue()); } request.setAttribute("province", users.getProvince()); request.setAttribute("city", users.getCity()); } logger.debug(" inser into useradd.jsp before -->flag: " + flag); if ("addForward".equals(flag)) { return "forward"; } else if ("updateForward".equals(flag)) { request.setAttribute("allList", userService.getAllRoles()); // 修改用户之前的初始化新增页面角色,查询要修改的用户信息 List<UserVO> uList = userService.queryUserLikeAccount(portalUser); logger.info("query updateForward user: "******"corp_login_port"); if (mbnConfigMerchant != null) { request.setAttribute("corpLoginPort", mbnConfigMerchant.getItemValue()); } } userVO.setPassword( new MasPasswordTool().getDesString(userVO.getPassword(), userVO.getAccount())); // 从全部角色里去掉此用户已经有的角色 List<Role> delList = new ArrayList<Role>(); // List<Long> longs = userVO.getRoles(); Set<Role> userRoles = userVO.getRole(); // logger.info("------userRoles-"+ userRoles); // 从所有的用户里删除此角色拥有的用户,待选 用户里显示 for (Iterator<Role> uIterator = userRoles.iterator(); uIterator.hasNext(); ) { Role _roleUser = uIterator.next(); // logger.debug("; roleUsers: "+ _roleUser.getId()+";"); for (Role _role : roleList) { if (_roleUser.getId().equals(_role.getId())) { // logger.debug("into le."); delList.add(_role); } } } roleList.removeAll(delList); // 增加扩展信息 PortalUserExtBean bean = portalUserExtService.getByPk(userVO.getId()); Users temp = userService.queryByUserId(userVO.getId()); userVO.setWebService(temp.getWebService()); request.setAttribute("portalUserExt", bean); // 初次进入新增页面,得初始化角色 request.setAttribute("rolesList", roleList); request.setAttribute("userVO", userVO); return "forward"; } } catch (Exception e) { logger.error("", e); return ERROR; } return SUCCESS; }
/** * 新增用户 * * @return * @throws Exception */ @Action( value = "adduser", results = { @Result( type = "json", params = {"root", "entityMap", "contentType", "text/html"}) }) public String adduser() { try { logger.info("add user: "******"V_P_" + portalUser.getProvince()); merchant.setGroupCode(String.valueOf(merchantPin)); merchant.setPlatform(ApSmsConstants.MERCHANT_PROVINCE_VIRTUAL_TYPE); merchant.setCreateTime(new Date()); boolean result = MbnMerchantVipIService.insertMerchant(merchant); logger.info( "Province [" + portalUser.getProvince() + "] add virtual merchant [" + merchantPin + "] result:" + result); } else { merchantPin = vProvinceMerchant.getMerchantPin(); } } else if (userType == ApSmsConstants.USER_TYPE_PROVINCE_ADMIN) { // 省管理员创建市管理员 portalUser.setUserType(ApSmsConstants.USER_TYPE_CITY_ADMIN); MbnMerchantVip vCityMerchant = MbnMerchantVipIService.loadVirtualProvinceMerchant( portalUser.getCity(), ApSmsConstants.MERCHANT_CITY_VIRTUAL_TYPE); // 判断地市虚拟企业是否存在,不存在增加 if (vCityMerchant == null) { MbnMerchantVip merchant = new MbnMerchantVip(); merchantPin = PinGen.getMerchantPin(); merchant.setProvince(portalUser.getProvince()); merchant.setCity(portalUser.getCity()); merchant.setMerchantPin(merchantPin); merchant.setName("V_C_" + portalUser.getCity()); merchant.setGroupCode(String.valueOf(merchantPin)); merchant.setPlatform(ApSmsConstants.MERCHANT_CITY_VIRTUAL_TYPE); merchant.setCreateTime(new Date()); boolean result = MbnMerchantVipIService.insertMerchant(merchant); logger.info( "Province [" + portalUser.getProvince() + "] City [" + portalUser.getCity() + "] " + "add virtual merchant [" + merchantPin + "] result:" + result); } else { merchantPin = vCityMerchant.getMerchantPin(); } } else if (userType == ApSmsConstants.USER_TYPE_CITY_ADMIN) { // 市管理员创建企业管理员 portalUser.setUserType(ApSmsConstants.USER_TYPE_ENTERPRISE_ADMIN); merchantPin = portalUser.getMerchantPin(); } else if (userType == ApSmsConstants.USER_TYPE_ENTERPRISE_ADMIN) { // 企业管理员创建企业用户 portalUser.setUserType(ApSmsConstants.USER_TYPE_ENTERPRISE_NORMAL); } else { // 默认企业用户 portalUser.setUserType(ApSmsConstants.USER_TYPE_ENTERPRISE_NORMAL); } portalUser.setCreateBy(users.getId()); // 设定是否为托管mas处理方式 if (WebUtils.isHostMas()) { // 20130427 为用户随机生成zxtUserId String zxtUserId = getZxtUserId(); portalUser.setZxtUserId(zxtUserId); portalUser.setMerchantPin(merchantPin); } Users existUser = userService.validateUser(portalUser); if (existUser != null) { entityMap.put("flag", "用户账号已存在,请重新填写"); return SUCCESS; } // add wangyu portalUser.setMerchantPin(merchantPin); // 地市管理员创建用户分配角色硬编码 Set<RoleVO> rSet = new HashSet<RoleVO>(); if (userType == ApSmsConstants.USER_TYPE_CITY_ADMIN) { RoleVO roleVO = new RoleVO(); roleVO.setId(ApSmsConstants.UNION_CORP_ADMIN_ROLEID); roleVO.setCreateBy(users.getId()); rSet.add(roleVO); } else { String[] roles = multiUserRoles.split(", "); RoleVO roleVO = null; for (String _role : roles) { roleVO = new RoleVO(); roleVO.setId(Long.parseLong(_role)); roleVO.setCreateBy(users.getId()); rSet.add(roleVO); } } portalUser.setRoles(rSet); // 添加解锁~加锁 isLockFlag(portalUser); portalUser.setFirstLoginFlag(0); if (!org.apache.commons.lang3.StringUtils.isBlank( WebUtils.getPropertyByName(com.leadtone.mas.admin.common.ApSmsConstants.TUNNELALL))) { String tunnelAll = WebUtils.getPropertyByName(com.leadtone.mas.admin.common.ApSmsConstants.TUNNELALL); if ("true".equalsIgnoreCase(tunnelAll)) { Integer corpId = MbnMerchantVipIService.getCorpZXTId(merchantPin); int userId = ZXTUserTool.addUser( portalUser.getAccount(), portalUser.getPassword(), corpId.toString(), portalUser.getZxtUserId()); portalUser.setZxtId(userId); portalUser.setZxtLoginAcount(portalUser.getAccount()); portalUser.setZxtPwd(portalUser.getPassword()); } } portalUser.setId(PinGen.getSerialPin()); if (StringUtil.isEmpty(portalUser.getZxtUserId())) { // TODO portalUser.setZxtUserId(portalUser.getId().toString()); } userService.addUser(portalUser); // 增加扩展信息 portalUserExt.setId(portalUser.getId()); portalUserExtService.save(portalUserExt); // 地市管理员创建企业管理员,需要同步至业务节点 20130926 if (userType == ApSmsConstants.USER_TYPE_CITY_ADMIN) { try { addUserToNode(portalUser, portalUserExt); } catch (Exception e) { logger.error("Add user to node faile", e); } } entityMap.put("flag", SUCCESS); logger.info("add user success"); } catch (Exception exception) { entityMap = new HashMap<String, Object>(); entityMap.put("flag", ERROR); logger.error("add user error: ", exception); return ERROR; } return SUCCESS; }
/** * 先根据用户输入的用户名获取用户信息,然后再决定是否允许用户登录 * * @return */ @Override @Action( value = "login", results = { @Result(name = SUCCESS, location = "/smsmain.jsp"), @Result(name = ERROR, location = "/smslogin.jsp") }) public String execute() { UserVO users = userService.getUserByAccount(this.account); /* * if (!StringUtils.endsWithIgnoreCase(this.getVerifyCode(), (String) * ActionContext.getContext().getSession().get("verifyCode"))) { * this.getRequest().setAttribute("message", "验证码错误!"); return ERROR; } */ // 登录次数限制及验证 if (users == null) { this.getRequest().setAttribute("message", "用户名或密码错误!"); return ERROR; } else if (!MasPasswordTool.getDesString(users.getPassword(), users.getAccount()) .equals(this.getLoginPwd())) { String message = "用户名或密码错误!"; if (LoginCheckUtil.isAccountlock(getSession(), users)) { UserVO uvo = users; uvo.setLockFlag(1); uvo.setActiveFlag(0); uvo.setPassword(MasPasswordTool.getDesString(users.getPassword(), users.getAccount())); userService.updateUser(uvo); message = "用户已被锁定,请联系管理员!"; } this.getRequest().setAttribute("message", message); return ERROR; } else if (users.getLockFlag() == 1) { this.getRequest().setAttribute("message", "用户已被锁定,请联系管理员!"); return ERROR; } // 当此用户的鉴权方式为用户名或密码时,将不在验证手机号、/ if (users.getLoginType() != 1) // 手机验证码 if (!StringUtils.endsWithIgnoreCase( getMobileChecking(), (String) ActionContext.getContext() .getSession() .get(ApSmsConstants.SESSION_SMS_CHECKING_NUMBER))) { this.getRequest().setAttribute("message", "手机验证码错误!"); return ERROR; } else { // 清空手机验证码 ActionContext.getContext().getSession().remove(ApSmsConstants.SESSION_SMS_CHECKING_NUMBER); } // 获取用户菜单 super.getSession().setAttribute(ApSmsConstants.SESSION_USER_INFO, users); Set<RoleVO> roleVOs = users.getRoles(); Set<Resources> tempResources = null; for (RoleVO roleVO : roleVOs) { Set<Resources> parentResources = roleVO.getResources(); if (tempResources == null) { tempResources = parentResources; } else { tempResources.addAll(parentResources); for (Resources resource : tempResources) { for (Resources undoResource : parentResources) { if (resource.getId() == undoResource.getId()) { resource.getSubResources().addAll(undoResource.getSubResources()); } } } } } if (tempResources == null || tempResources.isEmpty()) { this.getRequest().setAttribute("message", "对不起,用户未被赋予访问系统权限!"); return ERROR; } List<Resources> resList = new ArrayList<Resources>(); ResourcesComparator comparator = new ResourcesComparator(); // 排序二级菜单 List<Resources> tempList = new ArrayList<Resources>(tempResources); for (Resources res : tempList) { // 只保留一级菜单 非管理功能菜单 if (res.getParentId() > 0 || res.getIsManagementFun() == 1) { continue; } if (res.getSubResources() != null) { List<Resources> subList = new ArrayList<Resources>(res.getSubResources()); Collections.sort(subList, comparator); res.setSortedSubRes(subList); resList.add(res); } } // 排序主菜单 Collections.sort(resList, comparator); ActionContext.getContext().getSession().put("resources", resList); return "success"; }