| 
					
				 | 
			
			
				@ -1,9 +1,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.iot.service.common; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.agModel.user.RoleOrgModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.agModel.user.UserDetailModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.constants.ServiceApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.constants.SessionAttributeKeys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.iot.yanshi.dao.UserDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.iot.yanshi.model.User; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.model.geography.MGeographyDict; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.model.org.MOrganization; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.model.resource.MRsRolesResource; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -16,15 +18,10 @@ import com.yihu.iot.model.ObjectResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.iot.model.Result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.util.log.LogService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.util.rest.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.core.Authentication; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.core.GrantedAuthority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.core.authority.SimpleGrantedAuthority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.core.context.SecurityContextHolder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.security.MD5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.ui.Model; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.util.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.RequestParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.servlet.http.HttpSession; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -32,6 +29,7 @@ import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Service - 登陆 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @author Progr1mmer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Service 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -64,26 +62,26 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ip = request.getRemoteAddr(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(ip != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if("0:0:0:0:0:0:0:1".equals(ip)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (ip != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if ("0:0:0:0:0:0:0:1".equals(ip)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                request.getSession().setAttribute("isInnerIp", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if("127.0.0.1".equals(ip) || isInnerIP(ip)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if ("127.0.0.1".equals(ip) || isInnerIP(ip)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    request.getSession().setAttribute("isInnerIp", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    request.getSession().setAttribute("isInnerIp", false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean isInnerIP(String ip){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean isInnerIP(String ip) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long n = getIpNum(ip); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return (n >= a1 && n <= a2) || (n >= b1 && n <= b2) || (n >= c1 && n <= c2) || (n >= d1 && n <= d2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public long getIpNum(String ipAddress) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String [] ip = ipAddress.split("\\."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String[] ip = ipAddress.split("\\."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long a = Integer.parseInt(ip[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long b = Integer.parseInt(ip[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long c = Integer.parseInt(ip[2]); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -93,8 +91,74 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //------------------------ 初始化内外网IP end ------------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //==============================演示用 以后删除 start============================ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private UserDao userDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Result loginyanshi(HttpServletRequest request, String userName, String password) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ObjectResult result = new ObjectResult(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Map<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            params.put("userName", userName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            params.put("password", password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            params.put("clientId", clientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            HttpResponse response = HttpHelper.get(portalInnerUrl + "/oauth/login", params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            User user = userDao.findByMobile(userName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (user == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Result.error("用户名不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String dbPassword = MD5.GetMD5Code(password + user.getSalt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!dbPassword.equals(user.getPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Result.error("密码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map userMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.put("id", user.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.put("username", user.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.put("realname", user.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userMap.put("user", jsonObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.setData(userMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String userId = user.getCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //获取token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            initUrlInfo(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            AccessToken token = new AccessToken(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            token.setAccessToken(UUID.randomUUID().toString().replace("-", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            token.setExpiresIn(999999999); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            token.setRefreshToken(UUID.randomUUID().toString().replace("-", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject obj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("id", user.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("token",token.getAccessToken()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.setObj(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            request.getSession().setAttribute("isLogin", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            request.getSession().setAttribute("token", token); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            request.getSession().setAttribute("loginName", userName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            request.getSession().setAttribute("userId", userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.setSuccessFlg(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.setMessage("登录成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.setCode(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return Result.error(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //==============================演示用 以后删除 end============================ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 用户名密码登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param password 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -110,9 +174,9 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpResponse response = HttpHelper.get(portalInnerUrl + "/oauth/login", params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (response != null && response.getStatusCode() == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                ObjectResult re = toModel(response.getBody(), ObjectResult.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (re.isSuccessFlg()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (re.isSuccessFlg()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Map userMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    userMap.put("user",re.getData()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    userMap.put("user", re.getData()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    result.setData(userMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String userId = ((LinkedHashMap) re.getData()).get("id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //获取token 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -120,7 +184,7 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (tokenResponse.isSuccessFlg()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        initUrlInfo(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String data = objectMapper.writeValueAsString(((ObjectResult) tokenResponse).getData()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        AccessToken token = objectMapper.readValue(data,AccessToken.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        AccessToken token = objectMapper.readValue(data, AccessToken.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        request.getSession().setAttribute("isLogin", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        request.getSession().setAttribute("token", token); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        request.getSession().setAttribute("loginName", userName); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -129,12 +193,10 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        result.setMessage("登录成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        result.setCode(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        return tokenResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -146,72 +208,74 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 自动登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param model 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop autoLogin(HttpServletRequest request, Model model, @RequestParam String token) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String clientId = request.getParameter("clientId").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("clientId", clientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("accessToken", token); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpResponse response = HttpHelper.post(oauth2InnerUrl + "/oauth/validToken", params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> map = objectMapper.readValue(response.getBody(), Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if ((Boolean) map.get("successFlg")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                AccessToken accessToken = objectMapper.readValue(objectMapper.writeValueAsString(map.get("data")), AccessToken.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String loginName = accessToken.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //验证通过。赋值session中的用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                response = HttpHelper.get(profileInnerUrl + "/users/" + loginName, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Envelop envelop = (Envelop) this.objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String ex = this.objectMapper.writeValueAsString(envelop.getObj()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                UserDetailModel userDetailModel = this.objectMapper.readValue(ex, UserDetailModel.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //获取用户的角色,机构,视图 等权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                getUserRolePermissions(userDetailModel, loginName, request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 注:SessionAttributeKeys.CurrentUser 是用 @SessionAttributes 来最终赋值,换成用 session.setAttribute() 赋值后将会被覆盖。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                model.addAttribute(SessionAttributeKeys.CurrentUser, userDetailModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                HttpSession session = request.getSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //增加超级管理员信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(loginName.equals(permissionsInfo)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    session.setAttribute(AuthorityKey.IsAccessAll, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    session.setAttribute(AuthorityKey.IsAccessAll, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                session.setAttribute("isLogin", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                session.setAttribute("token", accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                session.setAttribute("loginName", loginName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                session.setAttribute("userId", userDetailModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                session.setAttribute("clientId", clientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //获取用户角色信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<Map<String, Object>> features = getUserFeatures(userDetailModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Collection<GrantedAuthority> grantedAuthorities = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (features != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (Map<String, Object> temp : features) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (temp.get("url") != null && !StringUtils.isEmpty(temp.get("url").toString())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            grantedAuthorities.add(new SimpleGrantedAuthority(temp.get("url").toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //生成认证token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Authentication AuthenticationToken = new UsernamePasswordAuthenticationToken(loginName, "", grantedAuthorities); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //将信息存放到SecurityContext 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                SecurityContextHolder.getContext().setAuthentication(AuthenticationToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return success(userDetailModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String msg = String.valueOf(map.get("message")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return failed(msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 自动登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @param request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @param model 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @param token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public Envelop autoLogin(HttpServletRequest request, Model model, @RequestParam String token) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String clientId = request.getParameter("clientId").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Map<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            params.put("clientId", clientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            params.put("accessToken", token); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            HttpResponse response = HttpHelper.post(oauth2InnerUrl + "/oauth/validToken", params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Map<String, Object> map = objectMapper.readValue(response.getBody(), Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if ((Boolean) map.get("successFlg")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                AccessToken accessToken = objectMapper.readValue(objectMapper.writeValueAsString(map.get("data")), AccessToken.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String loginName = accessToken.getUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //验证通过。赋值session中的用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                response = HttpHelper.get(profileInnerUrl + "/users/" + loginName, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                Envelop envelop = (Envelop) this.objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String ex = this.objectMapper.writeValueAsString(envelop.getObj()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                UserDetailModel userDetailModel = this.objectMapper.readValue(ex, UserDetailModel.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //获取用户的角色,机构,视图 等权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                getUserRolePermissions(userDetailModel, loginName, request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                // 注:SessionAttributeKeys.CurrentUser 是用 @SessionAttributes 来最终赋值,换成用 session.setAttribute() 赋值后将会被覆盖。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                model.addAttribute(SessionAttributeKeys.CurrentUser, userDetailModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                HttpSession session = request.getSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //增加超级管理员信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if (loginName.equals(permissionsInfo)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    session.setAttribute(AuthorityKey.IsAccessAll, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    session.setAttribute(AuthorityKey.IsAccessAll, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                session.setAttribute("isLogin", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                session.setAttribute("token", accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                session.setAttribute("loginName", loginName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                session.setAttribute("userId", userDetailModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                session.setAttribute("clientId", clientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //获取用户角色信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                List<Map<String, Object>> features = getUserFeatures(userDetailModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                Collection<GrantedAuthority> grantedAuthorities = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if (features != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    for (Map<String, Object> temp : features) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        if (temp.get("url") != null && !StringUtils.isEmpty(temp.get("url").toString())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            grantedAuthorities.add(new SimpleGrantedAuthority(temp.get("url").toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //生成认证token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                Authentication AuthenticationToken = new UsernamePasswordAuthenticationToken(loginName, "", grantedAuthorities); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //将信息存放到SecurityContext 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                SecurityContextHolder.getContext().setAuthentication(AuthenticationToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return success(userDetailModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String msg = String.valueOf(map.get("message")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return failed(msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return failed(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 通过用户名密码获取token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param password 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param clientId 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -225,10 +289,9 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("clientId", clientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpResponse response = HttpHelper.post(oauth2InnerUrl + "oauth/accessToken", params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (response != null && response.getStatusCode() == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return toModel(response.getBody(),ObjectResult.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Result.error(response.getStatusCode(),response.getBody()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return toModel(response.getBody(), ObjectResult.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Result.error(response.getStatusCode(), response.getBody()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -238,6 +301,7 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 刷新token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param refreshToken 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param clientId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -248,11 +312,10 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("refreshToken", refreshToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("clientId", clientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpResponse response = HttpHelper.post(oauth2InnerUrl + "oauth/refreshToken", params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (response!=null && response.getStatusCode() == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return toModel(response.getBody(),ObjectResult.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Result.error(response.getStatusCode(),response.getBody()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (response != null && response.getStatusCode() == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return toModel(response.getBody(), ObjectResult.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Result.error(response.getStatusCode(), response.getBody()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -262,6 +325,7 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 校验token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param clientId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param accessToken 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -273,10 +337,9 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("accessToken", accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpResponse response = HttpHelper.post(oauth2InnerUrl + "oauth/validToken", params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (response != null && response.getStatusCode() == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return toModel(response.getBody(),ObjectResult.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Result.error(response.getStatusCode(),response.getBody()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return toModel(response.getBody(), ObjectResult.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Result.error(response.getStatusCode(), response.getBody()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -287,53 +350,54 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取用户的角色,机构,视图 等权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userDetailModel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void getUserRolePermissions(UserDetailModel userDetailModel, String loginCode, HttpServletRequest request) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        HttpSession session = request.getSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(loginCode.equals(permissionsInfo)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (loginCode.equals(permissionsInfo)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            session.setAttribute(AuthorityKey.UserRoles, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            session.setAttribute(AuthorityKey.UserResource, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            session.setAttribute(AuthorityKey.UserAreaSaas, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            session.setAttribute(AuthorityKey.UserOrgSaas, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //获取用户角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String roleStr = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<String> roleList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            roleStr =  gerUserRoles(userDetailModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if( !StringUtils.isEmpty(roleStr)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                roleList =  Arrays.asList(roleStr.split(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            roleStr = gerUserRoles(userDetailModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(roleStr)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                roleList = Arrays.asList(roleStr.split(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                session.setAttribute(AuthorityKey.UserRoles, roleList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //获取角色机构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<RoleOrgModel> roleOrgModels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                gerRolesOrgs(roleList,roleOrgModels); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(roleOrgModels !=null && roleOrgModels.size() >0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                gerRolesOrgs(roleList, roleOrgModels); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (roleOrgModels != null && roleOrgModels.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<String> roleOrgCodes = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for(RoleOrgModel roleOrgModel : roleOrgModels){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (RoleOrgModel roleOrgModel : roleOrgModels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        roleOrgCodes.add(roleOrgModel.getOrgCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    getUserSaasOrgAndArea(roleOrgCodes, request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<String> userOrgList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    userOrgList.add("-NoneOrg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    session.setAttribute(AuthorityKey.UserOrgSaas, userOrgList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //获取角色视图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<String> rolesResourceIdList =  new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<String> rolesResourceIdList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<MRsRolesResource> rolesResourceList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                gerRolesResource(roleList, rolesResourceList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(rolesResourceList !=null && rolesResourceList.size() >0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for(MRsRolesResource rsRolesResource : rolesResourceList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (rolesResourceList != null && rolesResourceList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (MRsRolesResource rsRolesResource : rolesResourceList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        rolesResourceIdList.add(rsRolesResource.getResourceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    session.setAttribute(AuthorityKey.UserResource, rolesResourceIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    rolesResourceIdList.add("-NoneResource"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    session.setAttribute(AuthorityKey.UserResource, rolesResourceIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                roleList.add("-NoneRole"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                session.setAttribute(AuthorityKey.UserRoles, roleList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -342,43 +406,45 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取用户角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String gerUserRoles(String userId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String gerUserRoles(String userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //获取用户所属角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String roleStr = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String url = "/roles/role_user/userRolesIds"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String,Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("user_id",userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpResponse response = HttpHelper.get(profileInnerUrl + url,params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Envelop envelop = objectMapper.readValue(response.getBody(),Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("user_id", userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpResponse response = HttpHelper.get(profileInnerUrl + url, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Envelop envelop = objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (envelop.isSuccessFlg() && null != envelop.getObj() && !"".equals(envelop.getObj())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                roleStr = envelop.getObj().toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception ex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            LogService.getLogger(LoginService.class).error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return  roleStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return roleStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取角色机构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param roleList 角色组列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<RoleOrgModel> gerRolesOrgs(List<String> roleList,List<RoleOrgModel> roleOrgs){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(String roleId : roleList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<RoleOrgModel> gerRolesOrgs(List<String> roleList, List<RoleOrgModel> roleOrgs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (String roleId : roleList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String,Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String roleUrl = "/roles/role/"+roleId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.put("id",Long.valueOf(roleId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                HttpResponse response = HttpHelper.get(profileInnerUrl + roleUrl,params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Envelop envelopRole = objectMapper.readValue(response.getBody(),Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(envelopRole.getObj() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String roleUrl = "/roles/role/" + roleId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.put("id", Long.valueOf(roleId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                HttpResponse response = HttpHelper.get(profileInnerUrl + roleUrl, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Envelop envelopRole = objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (envelopRole.getObj() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    MRoles mRoles = objectMapper.convertValue(envelopRole.getObj(), MRoles.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if ( ! StringUtils.isEmpty( mRoles.getOrgCode() )){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (!StringUtils.isEmpty(mRoles.getOrgCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        RoleOrgModel roleOrgModel = new RoleOrgModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        roleOrgModel.setOrgCode(mRoles.getOrgCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        roleOrgModel.setRoleId(mRoles.getId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -387,14 +453,14 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String url = ServiceApi.Roles.RoleOrgsNoPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.put("filters","roleId=" + roleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                response = HttpHelper.get(profileInnerUrl + url,params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Envelop envelop = objectMapper.readValue(response.getBody(),Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (envelop.isSuccessFlg() && null != envelop.getDetailModelList() &&  envelop.getDetailModelList().size()>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.put("filters", "roleId=" + roleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                response = HttpHelper.get(profileInnerUrl + url, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Envelop envelop = objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (envelop.isSuccessFlg() && null != envelop.getDetailModelList() && envelop.getDetailModelList().size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<RoleOrgModel> roleOrgModels = envelop.getDetailModelList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(roleOrgModels != null && roleOrgModels.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for(int i = 0; i < roleOrgModels.size() ;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            RoleOrgModel orgModel = objectMapper.convertValue(roleOrgModels.get(i), RoleOrgModel.class) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (roleOrgModels != null && roleOrgModels.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for (int i = 0; i < roleOrgModels.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            RoleOrgModel orgModel = objectMapper.convertValue(roleOrgModels.get(i), RoleOrgModel.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            roleOrgs.add(orgModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -403,7 +469,7 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                LogService.getLogger(LoginService.class).error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return  roleOrgs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return roleOrgs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -412,53 +478,53 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void getUserSaasOrgAndArea(List<String> roleOrgCodes, HttpServletRequest request) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Envelop envelop = new Envelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> userOrgList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(String code : roleOrgCodes){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (String code : roleOrgCodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userOrgList.add(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //使用orgCode获取saas化的机构或者区域。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String urlUOrg = "/org/getUserOrgSaasByUserOrgCode/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> uParams = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        uParams.put("orgCodeStr",org.apache.commons.lang.StringUtils.join(roleOrgCodes,',') ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        uParams.put("orgCodeStr", org.apache.commons.lang.StringUtils.join(roleOrgCodes, ',')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        HttpResponse response = HttpHelper.get(profileInnerUrl + urlUOrg, uParams); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop = objectMapper.readValue(response.getBody(),Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop = objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        HttpSession session = request.getSession(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        session.setAttribute("userAreaSaas", envelop.getObj()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        session.setAttribute("userOrgSaas", envelop.getDetailModelList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userOrgList = envelop.getDetailModelList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> districtList = (List<String>) envelop.getObj(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String geographyUrl = "/geography_entries/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(districtList != null && districtList.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(String code : districtList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (districtList != null && districtList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (String code : districtList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                uParams.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                response = HttpHelper.get(profileInnerUrl + geographyUrl + code, uParams); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                envelop = objectMapper.readValue(response.getBody(),Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                envelop = objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                MGeographyDict mGeographyDict = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String objJsonData = objectMapper.writeValueAsString(envelop.getObj()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                mGeographyDict = objectMapper.readValue(objJsonData, MGeographyDict.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(mGeographyDict != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (mGeographyDict != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String province = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String city = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String district = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(mGeographyDict.getLevel() == 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        province =  mGeographyDict.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }else if(mGeographyDict.getLevel() == 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        city =  mGeographyDict.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }else if(mGeographyDict.getLevel() == 3){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        district =  mGeographyDict.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (mGeographyDict.getLevel() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        province = mGeographyDict.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else if (mGeographyDict.getLevel() == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        city = mGeographyDict.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else if (mGeographyDict.getLevel() == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        district = mGeographyDict.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String  orgGeographyStr = "/organizations/geography"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String orgGeographyStr = "/organizations/geography"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    uParams.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    uParams.put("province",province); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    uParams.put("city",city); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    uParams.put("district",district); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    response = HttpHelper.get(profileInnerUrl + orgGeographyStr , uParams); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    envelop = objectMapper.readValue(response.getBody(),Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(envelop !=null && envelop.getDetailModelList() != null ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        List<MOrganization> organizations = (List<MOrganization>)getEnvelopList(envelop.getDetailModelList(),new ArrayList<MOrganization>(),MOrganization.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(organizations !=null ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    uParams.put("province", province); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    uParams.put("city", city); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    uParams.put("district", district); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    response = HttpHelper.get(profileInnerUrl + orgGeographyStr, uParams); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    envelop = objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (envelop != null && envelop.getDetailModelList() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        List<MOrganization> organizations = (List<MOrganization>) getEnvelopList(envelop.getDetailModelList(), new ArrayList<MOrganization>(), MOrganization.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (organizations != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            java.util.Iterator it = organizations.iterator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            while(it.hasNext()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                MOrganization mOrganization = (MOrganization)it.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            while (it.hasNext()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                MOrganization mOrganization = (MOrganization) it.next(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                userOrgList.add(mOrganization.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -473,23 +539,24 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取角色视图列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param roleList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param rolesResourceList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<MRsRolesResource> gerRolesResource(List<String> roleList,List<MRsRolesResource> rolesResourceList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(String roleId : roleList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<MRsRolesResource> gerRolesResource(List<String> roleList, List<MRsRolesResource> rolesResourceList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (String roleId : roleList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String url = ServiceApi.Resources.GetRolesGrantResources; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String,Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.put("rolesId",roleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                HttpResponse response = HttpHelper.get(profileInnerUrl + url,params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Envelop envelop = objectMapper.readValue(response.getBody(),Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (envelop.isSuccessFlg() && null != envelop.getDetailModelList() && envelop.getDetailModelList().size() > 0 ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                params.put("rolesId", roleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                HttpResponse response = HttpHelper.get(profileInnerUrl + url, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Envelop envelop = objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (envelop.isSuccessFlg() && null != envelop.getDetailModelList() && envelop.getDetailModelList().size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<MRsRolesResource> roleResourceModels = envelop.getDetailModelList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(roleResourceModels != null && roleResourceModels.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for(int i = 0; i < roleResourceModels.size() ;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            MRsRolesResource rolesResource = objectMapper.convertValue(roleResourceModels.get(i),MRsRolesResource.class) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (roleResourceModels != null && roleResourceModels.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for (int i = 0; i < roleResourceModels.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            MRsRolesResource rolesResource = objectMapper.convertValue(roleResourceModels.get(i), MRsRolesResource.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            rolesResourceList.add(rolesResource); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -498,14 +565,14 @@ public class LoginService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                LogService.getLogger(LoginService.class).error(ex.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return  rolesResourceList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return rolesResourceList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private List<Map<String, Object>> getUserFeatures(String userId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map params = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.put("user_id", userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        HttpResponse response = HttpHelper.get(profileInnerUrl + "/roles/user/features", params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Envelop envelop =  objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Envelop envelop = objectMapper.readValue(response.getBody(), Envelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (envelop.isSuccessFlg()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return envelop.getDetailModelList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 |