|
@ -1,11 +1,9 @@
|
|
|
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.iot.yanshi.dao.UserDao;
|
|
|
import com.yihu.ehr.iot.yanshi.model.User;
|
|
|
import com.yihu.ehr.constants.SessionAttributeKeys;
|
|
|
import com.yihu.ehr.model.geography.MGeographyDict;
|
|
|
import com.yihu.ehr.model.org.MOrganization;
|
|
|
import com.yihu.ehr.model.resource.MRsRolesResource;
|
|
@ -18,10 +16,15 @@ 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 com.yihu.jw.util.security.MD5;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
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 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;
|
|
@ -29,7 +32,6 @@ import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* Service - 登陆
|
|
|
*
|
|
|
* @author Progr1mmer
|
|
|
*/
|
|
|
@Service
|
|
@ -62,26 +64,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]);
|
|
@ -91,74 +93,8 @@ 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
|
|
@ -174,9 +110,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
|
|
@ -184,7 +120,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);
|
|
@ -193,10 +129,12 @@ public class LoginService extends BaseService {
|
|
|
result.setMessage("登录成功");
|
|
|
result.setCode(200);
|
|
|
return result;
|
|
|
} else {
|
|
|
}
|
|
|
else{
|
|
|
return tokenResponse;
|
|
|
}
|
|
|
} else {
|
|
|
}
|
|
|
else {
|
|
|
return re;
|
|
|
}
|
|
|
} else {
|
|
@ -208,74 +146,72 @@ 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
|
|
@ -289,9 +225,10 @@ 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();
|
|
@ -301,7 +238,6 @@ public class LoginService extends BaseService {
|
|
|
|
|
|
/**
|
|
|
* 刷新token
|
|
|
*
|
|
|
* @param refreshToken
|
|
|
* @param clientId
|
|
|
* @return
|
|
@ -312,10 +248,11 @@ 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();
|
|
@ -325,7 +262,6 @@ public class LoginService extends BaseService {
|
|
|
|
|
|
/**
|
|
|
* 校验token
|
|
|
*
|
|
|
* @param clientId
|
|
|
* @param accessToken
|
|
|
* @return
|
|
@ -337,9 +273,10 @@ 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();
|
|
@ -350,54 +287,53 @@ 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);
|
|
|
}
|
|
@ -406,45 +342,43 @@ 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());
|
|
@ -453,14 +387,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);
|
|
|
}
|
|
|
}
|
|
@ -469,7 +403,7 @@ public class LoginService extends BaseService {
|
|
|
LogService.getLogger(LoginService.class).error(ex.getMessage());
|
|
|
}
|
|
|
}
|
|
|
return roleOrgs;
|
|
|
return roleOrgs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -478,53 +412,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());
|
|
|
}
|
|
|
}
|
|
@ -539,24 +473,23 @@ 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);
|
|
|
}
|
|
|
}
|
|
@ -565,14 +498,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 {
|