|  | @ -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 {
 |