Commit c17e06dd by guojuxing

运营平台单点登录

parent 8f6f543e
package com.gic.auth.web.controller; package com.gic.auth.web.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.gic.enterprise.ano.IgnoreLogin;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.auth.dto.MenuDTO; import com.gic.auth.dto.MenuDTO;
import com.gic.auth.dto.OperationUserDTO;
import com.gic.auth.dto.UserDTO; import com.gic.auth.dto.UserDTO;
import com.gic.auth.service.MenuApiService; import com.gic.auth.service.MenuApiService;
import com.gic.auth.service.OperationUserApiService;
import com.gic.auth.service.UserApiService; import com.gic.auth.service.UserApiService;
import com.gic.commons.util.EntityUtil; import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.Md5Util; import com.gic.commons.util.Md5Util;
...@@ -11,24 +30,13 @@ import com.gic.commons.webapi.reponse.RestResponse; ...@@ -11,24 +30,13 @@ import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.base.EnterpriseInfo; import com.gic.enterprise.base.EnterpriseInfo;
import com.gic.enterprise.base.MenuInfo; import com.gic.enterprise.base.MenuInfo;
import com.gic.enterprise.base.UserInfo; import com.gic.enterprise.base.UserInfo;
import com.gic.enterprise.context.UserContext;
import com.gic.enterprise.dto.EnterpriseDTO; import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.error.ErrorCode; import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.response.EnterpriseRestResponse; import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.service.EnterpriseApiService; import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.utils.UserDetail; import com.gic.enterprise.utils.UserDetail;
import com.gic.enterprise.utils.UserDetailUtils; import com.gic.enterprise.utils.UserDetailUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController @RestController
public class LoginController { public class LoginController {
...@@ -40,6 +48,8 @@ public class LoginController { ...@@ -40,6 +48,8 @@ public class LoginController {
private UserApiService userApiService; private UserApiService userApiService;
@Autowired @Autowired
private MenuApiService menuApiService; private MenuApiService menuApiService;
@Autowired
private OperationUserApiService operationUserApiService;
@RequestMapping("list-enterprise-by-phone") @RequestMapping("list-enterprise-by-phone")
public RestResponse listUserEnterprise(String phoneNumber){ public RestResponse listUserEnterprise(String phoneNumber){
...@@ -131,4 +141,99 @@ public class LoginController { ...@@ -131,4 +141,99 @@ public class LoginController {
UserDetailUtils.destory(); UserDetailUtils.destory();
return RestResponse.success(); return RestResponse.success();
} }
/**
* 运营平台单点登录
* @Title: login

* @Description:

 * @author guojuxing
* @param enterpriseId
* @param phone
* @param realName
* @param redirectUrl
* @param response

* @return com.gic.commons.webapi.reponse.RestResponse


 */
@IgnoreLogin
@RequestMapping("login-for-operation")
public RestResponse login(Integer enterpriseId, String phone, String realName, String redirectUrl, HttpServletResponse response) throws IOException {
if (UserContext.getContext().get().getEnterpriseId() != null) {
//已有登录信息
//跳转到页面
//暂时写死跳转到计费中心首页
if (StringUtils.isBlank(redirectUrl)) {
//默认跳转到首页
response.sendRedirect("https://four.gicdev.com/cost-center/billing-center/overview");
} else {
response.sendRedirect(redirectUrl);
}
return RestResponse.success();
}
ServiceResponse<OperationUserDTO> userResult = operationUserApiService.getByPhone(phone, enterpriseId);
if (userResult.isSuccess()) {
//获取运营实施信息
OperationUserDTO user = userResult.getResult();
if (user == null) {
//新建运营实施账号
OperationUserDTO temp = new OperationUserDTO();
temp.setEnterpriseId(enterpriseId);
temp.setPhoneNumber(phone);
temp.setOperationUserName(realName);
ServiceResponse<Integer> saveResult = operationUserApiService.save(temp);
user = temp;
user.setOperationUserId(saveResult.getResult());
}
//gic用户信息塞入
UserDetail userDetail = new UserDetail();
//设置登录用户信息
userDetail.setUserId(user.getOperationUserId());
UserInfo userInfo = new UserInfo();
userInfo.setPhoneNumber(phone);
userInfo.setEnterpriseId(enterpriseId);
userInfo.setSuperAdmin(1);
userInfo.setUserName(user.getOperationUserName());
userInfo.setUserId(user.getOperationUserId());
userDetail.setUserInfo(userInfo);
//设置企业资料
ServiceResponse<EnterpriseDTO> enterprise = this.enterpriseApiService.getEnterpriseById(enterpriseId);
if(enterprise.isSuccess()) {
EnterpriseDTO enterpriseDTO = enterprise.getResult();
if (enterpriseDTO != null) {
userDetail.setEnterpriseInfo(EntityUtil.changeEntityNew(EnterpriseInfo.class, enterpriseDTO));
}
}
//设置权限
//获取超管的用户ID,用来获取超管权限
ServiceResponse<UserDTO> adminResult = userApiService.getUserByEnterpriseId(enterpriseId);
Integer adminUserId = adminResult.getResult().getUserId();
ServiceResponse<List<MenuDTO>> menuResult = menuApiService.listUserMenu(adminUserId);
if (menuResult.isSuccess()) {
List<MenuDTO> menuList = menuResult.getResult();
List<MenuInfo> menuInfoList = EntityUtil.changeEntityListNew(MenuInfo.class, menuList);
Map<String, Object> map = new HashMap<>(16);
Map<String, MenuInfo> moduleMap = new HashMap<>(16);
for (MenuInfo menuDTO : menuInfoList) {
if (StringUtils.isBlank(menuDTO.getMenuUrl())) {
continue;
}
moduleMap.put(menuDTO.getProjectUrlForWeb() + menuDTO.getMenuUrl(), menuDTO);
map.put(menuDTO.getMenuUrl(), menuDTO);
}
userDetail.setMenuInfoList(menuInfoList);
userDetail.setMenuUrlMap(map);
userDetail.setModuleUrlMap(moduleMap);
}
//塞缓存
UserDetailUtils.setUserDetail(userDetail);
//跳转到页面
//暂时写死跳转到计费中心首页
if (StringUtils.isBlank(redirectUrl)) {
response.sendRedirect("https://four.gicdev.com/cost-center/billing-center/overview");
} else {
response.sendRedirect(redirectUrl);
}
}
return RestResponse.success();
}
} }
...@@ -66,4 +66,6 @@ ...@@ -66,4 +66,6 @@
<!--应用--> <!--应用-->
<dubbo:reference interface="com.gic.open.api.service.ApplicationSubApiService" id="applicationSubApiService" timeout="6000"/> <dubbo:reference interface="com.gic.open.api.service.ApplicationSubApiService" id="applicationSubApiService" timeout="6000"/>
<dubbo:reference interface="com.gic.open.api.service.AppTokenApiService" id="appTokenApiService" timeout="6000"/> <dubbo:reference interface="com.gic.open.api.service.AppTokenApiService" id="appTokenApiService" timeout="6000"/>
<!--运营管理员-->
<dubbo:reference interface="com.gic.auth.service.OperationUserApiService" id="operationUserApiService" timeout="6000" />
</beans> </beans>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment