package com.hotent.uc.mock; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import com.fasterxml.jackson.databind.JsonNode; import com.github.pagehelper.Page; import com.hotent.base.query.PageList; import com.hotent.base.query.QueryFilter; import com.hotent.base.util.JsonUtil; import com.hotent.base.util.StringUtil; import com.hotent.uc.api.model.Group; import com.hotent.uc.model.Org; import com.hotent.uc.model.OrgPost; import com.hotent.uc.model.Role; import com.hotent.uc.model.User; import com.hotent.uc.model.UserRole; import com.hotent.uc.params.user.UserVo; /** * 模拟用户数据 * UCFeignService 接口对应的都要实现 * @author liyanggui * */ public class MockUCDataUtil { public static Map userMap = new HashMap(); public static List userList = new ArrayList(); public static List roleList = new ArrayList(); public static Map> userRoleMap = new HashMap>(); static{ // 密码是 123456 User user = new User("admin", "系统管理员", "jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=", null); user.setId("1"); user.setEmail("1192668375@qq.com"); user.setMobile("18316986707"); user.setStatus(1); userMap.put("admin", user); userMap.put("1", user); userList.add(user); user = new User("demo", "演示用户", "jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=", null); user.setId("2"); user.setEmail("1192668375@qq.com"); user.setMobile("18316986707"); user.setStatus(1); userMap.put("demo", user); userMap.put("2", user); userList.add(user); Role role = new Role(); role.setId("1"); role.setCode("testRoleCode"); role.setName("演示角色"); roleList.add(role); List userRoleList = new ArrayList(); UserRole userRole = new UserRole(); userRole.setAccount("demo"); userRole.setAlias(role.getCode()); userRole.setUserId("2"); // demo 演示用户的id userRole.setRoleId(role.getId()); userRoleList.add(userRole); userRoleMap.put("2", userRoleList); userRoleMap.put("demo", userRoleList); } /** * 根据账号获取用户信息 * @param username * @return */ public static User getUserByAccount(String username) { return userMap.get(username); } /** * 根据用户id, 获取用户具有的所有的角色关系 * @param userId * @return */ public static List getUserRoleListByUserId(String userId) { if(!userRoleMap.containsKey(userId)){ return new ArrayList(); } return userRoleMap.get(userId); } /** * 根据账号获取多个用户 * @param accounts 逗号分隔 * @return */ public static List getUserByAccounts(String accounts) { List resultUserVo = new ArrayList(); String[] split = accounts.split(","); for (String account : split) { User user = userMap.get(account); resultUserVo.add(new UserVo(user)); } return resultUserVo; } /** * 获取系统角色 角色列表使用 用户菜单权限授权处理 * @return */ public static PageList getRoleList() { PageList pageList = new PageList(roleList); return pageList; } /** * 根据用户userId 获取用户信息 * @param userId * @return */ public static User getUserByUserId(String userId) { return userMap.get(userId); } /** * 根据账号或者工号获取用户信息 * @param jsonString * @return * @throws IOException */ public static UserVo getUserByAccountOrUserNumber(String jsonString) throws IOException { JsonNode jsonNode = JsonUtil.toJsonNode(jsonString); if(jsonNode.has("account")){ User user = userMap.get(jsonNode.get("account").asText()); return new UserVo(user); } if(jsonNode.has("userNumber")){ User user = userMap.get(jsonNode.get("userNumber").asText()); return new UserVo(user); } return null; } /** * 根据组织id获取组织相关的用户 流程表单权限会使用到 * @param queryFilter * @return */ public static Page getUserByOrgId(QueryFilter queryFilter) { List resultUserList = new ArrayList(); Map params = queryFilter.getParams(); // 根据组织id获取组织相关的用户 , 此处直接模拟返回用户数据 if(params.containsKey("orgId")){ resultUserList = userList; } Page resultPageUser = (Page)resultUserList; return resultPageUser; } /** * 获取角色对应的用户数据 * * @param codes 角色别名 逗号分隔 * @return */ public static List getUsersByRoleCode(String codes) { List userVoList = new ArrayList(); for (User user : userList) { userVoList.add(new UserVo(user)); } return userVoList; } /** * 通过岗位获取用户 * @param postCode 岗位别名 逗号分隔 * @return */ public static List getUserByPost(String postCode) { List userVoList = new ArrayList(); for (User user : userList) { userVoList.add(new UserVo(user)); } return userVoList; } /** * 获取职务(多个)下的所有人员 * @param codes 职务别名 逗号分隔 * @return */ public static List getUsersByJob(String codes) { List userVoList = new ArrayList(); for (User user : userList) { userVoList.add(new UserVo(user)); } return userVoList; } /** * 根据邮件查询所有用户 * @param email * @return */ public static List getByUserEmail(String email) { return userList; } /** * 根据组织ID获取组织的负责人组织关系 * @ApiParam(name = "orgId", value = "组织id", required = true) @RequestParam String orgId, * @ApiParam(name = "isMain", value = "是否主组织", required = false) @RequestParam(required=false) Boolean isMain, * @ApiParam(name = "demCode", value = "维度编码(不传则为默认维度)", required = false) @RequestParam(required=false) Boolean demCode * @param orgId * @param isMain * @param demCode * @return */ public static List getChargesByOrdId(String orgId, Boolean isMain, Boolean demCode) { return userList; } /** * 获取用户的所有组织信息 * @param userId * @return */ public static List getOrgListByUserId(String userId) { return new ArrayList(); } /** * 根据传入的用户id集合,获取用户的权限集合 * 此处只返回候选人类型为用户的 * 用户组的根据情况自行扩张 * @param ids * @return */ public static Map> getUserRightMapByIds( Set ids) { Map> resultMap = new HashMap>(); for (String userId : ids) { Map temp = new HashMap(); temp.put("user", StringUtil.convertListToSingleQuotesString(ids)); resultMap.put(userId, temp); } return resultMap; } public static List getUserByUserIds(String ids) { String[] userIds = ids.split(","); List userVo = new ArrayList(); for (String id : userIds) { userVo.add(new UserVo(userMap.get(id))); } return userVo; } /** * 用户选择器对话框 * @param queryFilter * @return */ public static PageList queryByType(QueryFilter queryFilter) { PageList pageUser = new PageList(userList); return pageUser; } /** * 获取用户信息前端显示 * @param account * @return */ public static Map getUserDetailByAccountOrId(String account) { return new HashMap(); } /** * 获取用户的角色 * @param account * @return */ public static List getRolesByAccount(String account) { if(userRoleMap.containsKey(account)){ List list = userRoleMap.get(account); Set roleAlias = new HashSet(); for (UserRole userRole : list) { roleAlias.add(userRole.getAlias()); } List result = new ArrayList(); for (Role role : roleList) { if(roleAlias.contains(role.getCode())){ result.add(role); } } return result; } return new ArrayList(); } /** * 根据用户账号获取所属岗位列表 * @param account * @return */ public static List getOrgPostByUserAccount(String account) { return new ArrayList(); } /** * 获取用户主组织 * @param userId * @param orElse * @return */ public static Org getMainGroup(String userId, String orElse) { return null; } /** * 根据用户id组获取组织全路径 * @param userIds * @return */ public static List> getPathNames(List userIds) { return new ArrayList>(); } /** * 根据用户id和用户组类型获取其相关用户组(角色,组织,岗位,职务) * @param userId * @param type * @return */ public static List getGroupsByUserId(String userId, String type) { return new ArrayList(); } }