Commit 38795ead by 陶光胜

Merge branch 'developer' of…

Merge branch 'developer' of http://115.159.76.241/base_platform_enterprise/gic-platform-auth into developer
parents 74649f3f 4722ad4d
......@@ -7,13 +7,11 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import com.gic.enterprise.base.UserInfo;
/**
* @author guojx
* @date 2019/7/16 6:49 PM
*/
public class UserDTO implements UserInfo,Serializable{
public class UserDTO implements Serializable{
private static final long serialVersionUID = 7296135586565827660L;
public interface SaveUserValid {
......
package com.gic.auth.dto;
import com.gic.enterprise.base.UserResourceInfo;
import java.io.Serializable;
import java.util.Date;
......@@ -14,7 +12,7 @@ import javax.validation.constraints.NotNull;
* @author guojuxing

* @date 2019/9/2 10:54 AM

*/
public class UserResourceDTO implements Serializable, UserResourceInfo {
public class UserResourceDTO implements Serializable{
private static final long serialVersionUID = 5635155351382206941L;
public interface SaveUserResourceValid {
......
package com.gic.auth.exception;
import com.gic.api.base.commons.ServiceResponse;
/**
* @author guojx
* @date 2019/6/26 2:03 PM
*/
public class AuthException extends RuntimeException{
private String errorCode;
public AuthException(String errorCode, String message) {
super(message);
this.errorCode = errorCode;
}
public AuthException(ServiceResponse serviceResponse) {
super(serviceResponse.getMessage());
this.errorCode = serviceResponse.getCode();
}
public String getErrorCode() {
return errorCode;
}
}
......@@ -92,6 +92,16 @@ public interface MenuApiService {

 */
ServiceResponse<Void> saveGICPage(MenuDTO menuDTO);
/**
* 查询已经购买的应用
* @Title: listAppPageOfHasBuy

* @Description:

 * @author guojuxing
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>


 */
ServiceResponse<List<MenuDTO>> listAppPageOfHasBuy();
/**
* 编辑gic页面
* @Title: updateGICPage

......
......@@ -2,6 +2,8 @@ package com.gic.auth.service.outer.impl;
import java.util.*;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.open.api.service.AppTokenApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -48,6 +50,8 @@ public class MenuApiServiceImpl implements MenuApiService {
private UserService userService;
@Autowired
private MenuRoleService menuRoleService;
@Autowired
private AppTokenApiService appTokenApiService;
@Override
public ServiceResponse<List<MenuDTO>> listUserMenu(Integer userId) {
......@@ -131,6 +135,29 @@ public class MenuApiServiceImpl implements MenuApiService {
}
@Override
public ServiceResponse<List<MenuDTO>> listAppPageOfHasBuy() {
Integer enterpriseId = UserDetailUtils.getUserDetail().getEnterpriseId();
ServiceResponse<List<ApplicationDTO>> appResult = appTokenApiService
.listApplicationByEnterpriseId(Long.valueOf(enterpriseId), null);
if (appResult.isSuccess()) {
List<ApplicationDTO> appList = appResult.getResult();
if (CollectionUtils.isNotEmpty(appList)) {
saveHasBuyAppMenu(appList);
List<Integer> menuIdList = new ArrayList<>(appList.size());
for (ApplicationDTO app : appList) {
menuIdList.add(app.getApplicationId().intValue());
}
List<MenuDTO> menuList = EntityUtil.changeEntityListNew(MenuDTO.class,
menuService.selectByIds(menuIdList));
return ServiceResponse.success(menuList);
} else {
return ServiceResponse.success(new ArrayList<>());
}
}
return ServiceResponse.failure(appResult.getCode(), appResult.getMessage());
}
@Override
public ServiceResponse<Void> updateGICPage(MenuDTO menuDTO) {
return updatePage(menuDTO, MenuTypeEnum.PAGE, MenuDTO.SavePageValid.class);
}
......@@ -473,6 +500,26 @@ public class MenuApiServiceImpl implements MenuApiService {
}
}
private void saveHasBuyAppMenu(List<ApplicationDTO> hasBuyAppList) {
Map<String, TabSysMenu> appMenu = getFirstLevelAppMenu();
for (ApplicationDTO app : hasBuyAppList) {
if (appMenu.containsKey(app.getApplicationId())) {
//如果已存在,则更新版本信息
MenuDTO menuDTO = new MenuDTO();
menuDTO.setMenuName(app.getName());
menuDTO.setProject(app.getApplicationId().toString());
menuDTO.setMenuId(appMenu.get(app.getApplicationId()).getMenuId());
menuService.updatePage(menuDTO);
} else {
MenuDTO menuDTO = new MenuDTO();
menuDTO.setMenuName(app.getName());
menuDTO.setProject(app.getApplicationId().toString());
setNormalFieldValue(menuDTO);
menuService.savePage(menuDTO);
}
}
}
/**
* 第一级页面通用字段值设置
* @param menuDTO
......
......@@ -30,6 +30,8 @@
<!--应用市场应用列表-->
<dubbo:reference interface="com.gic.open.api.service.ApplicationApiService" id="applicationApiService" timeout="6000" />
<!--应用市场应用列表-->
<dubbo:reference interface="com.gic.open.api.service.AppTokenApiService" id="appTokenApiService" timeout="6000" />
<!--审核员-->
<dubbo:service interface="com.gic.auth.service.AuditorApiService" ref="auditorApiService" timeout="6000" />
<dubbo:reference interface="com.gic.enterprise.service.ProjectItemApiService" id="projectItemApiService" timeout="6000" />
......
......@@ -132,11 +132,6 @@
<artifactId>gic-platform-enterprise-api</artifactId>
<version>${gic-platform-enterprise-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-open-platform-api</artifactId>
<version>4.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
......
package com.gic.auth.web.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.gic.enterprise.base.UserInfo;
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.auth.dto.MenuDTO;
import com.gic.auth.dto.UserDTO;
import com.gic.auth.service.MenuApiService;
import com.gic.auth.service.UserApiService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.Md5Util;
import com.gic.commons.util.ToolUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.base.EnterpriseInfo;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.utils.UserDetail;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.redis.data.util.RedisUtil;
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;
import java.util.concurrent.TimeUnit;
@RestController
public class LoginController {
......@@ -87,13 +88,13 @@ public class LoginController {
}
UserDetail userDetail = new UserDetail();
userDetail.setUserId(userDTO.getUserId());
userDetail.setUserInfo(userDTO);
userDetail.setUserInfo(EntityUtil.changeEntityNew(UserInfo.class, userDTO));
ServiceResponse<EnterpriseDTO> enterprise = this.enterpriseApiService.getEnterpriseById(enterpriseId);
if(enterprise.isSuccess()){
EnterpriseDTO enterpriseDTO = enterprise.getResult();
if(enterpriseDTO != null){
userDetail.setEnterpriseId(enterpriseDTO.getEnterpriseId());
userDetail.setEnterpriseInfo(enterpriseDTO);
userDetail.setEnterpriseInfo(EntityUtil.changeEntityNew(EnterpriseInfo.class, enterpriseDTO));
UserDetailUtils.setUserDetail(userDetail);
ServiceResponse<List<MenuDTO>> menuResult = menuApiService.listUserMenu(userDetail.getUserId());
......
......@@ -2,6 +2,8 @@ package com.gic.auth.web.controller;
import java.util.List;
import com.gic.auth.web.vo.UserOperationItemAuthVO;
import com.gic.enterprise.utils.ResultControllerUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -38,10 +40,7 @@ public class MenuController {
@RequestMapping("login-user-operation-item")
public RestResponse loginUserOperationItem() {
Integer userId = UserDetailUtils.getUserDetail().getUserId();
ServiceResponse<List<MenuDTO>> userMenu = this.menuApiService.getUserOperationItemOfGic(userId);
if (userMenu.isSuccess()) {
return RestResponse.success(userMenu.getResult());
}
return EnterpriseRestResponse.failure(userMenu);
return ResultControllerUtils.commonResult(this.menuApiService.getUserOperationItemOfGic(userId),
UserOperationItemAuthVO.class);
}
}
......@@ -5,17 +5,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.gic.auth.constant.MenuLevelConstants;
import com.gic.auth.constant.MenuProjectConstants;
import com.gic.auth.qo.MenuListQO;
import com.gic.open.api.dto.ApplicationDTO;
import com.gic.open.api.service.AppTokenApiService;
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.auth.constant.MenuLevelConstants;
import com.gic.auth.constant.MenuProjectConstants;
import com.gic.auth.dto.MenuDTO;
import com.gic.auth.dto.RoleDTO;
import com.gic.auth.dto.UserDTO;
......@@ -40,8 +36,6 @@ public class RoleController {
private MenuApiService menuApiService;
@Autowired
private UserApiService userApiService;
@Autowired
private AppTokenApiService appTokenApiService;
@RequestMapping("/get-detail")
public RestResponse getDetail(Integer id) {
......@@ -113,9 +107,7 @@ public class RoleController {
@RequestMapping("/list-app-menu-tree")
public RestResponse listAppMenuTree() {
Integer enterpriseId = UserDetailUtils.getUserDetail().getEnterpriseId();
ServiceResponse<List<ApplicationDTO>> appResult = appTokenApiService.listApplicationByEnterpriseId(Long.valueOf(enterpriseId), null);
return EnterpriseRestResponse.failure(appResult);
return EnterpriseRestResponse.failure(menuApiService.listAppPageOfHasBuy());
}
public static List<Map<String, Object>> changeListToTree(int storeGroupId, List<MenuDTO> list) {
......
package com.gic.auth.web.exception;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.util.List;
import java.util.Set;
import javax.servlet.http.HttpServletResponse;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import com.gic.auth.exception.AuthException;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.error.ErrorCode;
import com.gic.store.exception.StoreException;
/**
* 全局异常处理类
*
* @author hua
*/
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
@ExceptionHandler(Exception.class)
public RestResponse controllerException(HttpServletResponse response, Exception ex) {
logger.error("err", ex);
RestResponse failureResponse = getRestResponse(ErrorCode.SYSTEM_ERROR.getCode(), ErrorCode.SYSTEM_ERROR.getMsg());
StringBuilder sb = new StringBuilder();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (PrintWriter printWriter = new PrintWriter(baos)) {
ex.printStackTrace(printWriter);
}
try {
sb.append(baos.toString());
} catch (Exception ignored) {
}
if (sb.length() == 0) {
sb.append(ex.getMessage());
}
// 输出详细错误信息,便于调试
failureResponse.setDetailError(sb.toString());
return failureResponse;
}
/**
* 参数校验异常统一处理
* @param e
* @return
*/
@ExceptionHandler(BindException.class)
public RestResponse customException(BindException e) {
List<FieldError> fieldErrors = e.getFieldErrors();
StringBuilder errorMessage = new StringBuilder();
fieldErrors.forEach(fieldError -> {
errorMessage
.append(fieldError.getDefaultMessage())
.append(",");
});
String error = errorMessage.toString();
return getRestResponse(ErrorCode.PARAMETER_ERROR.getCode(), error.substring(0, error.length() - 1));
}
@ExceptionHandler(ConstraintViolationException.class)
public RestResponse constraintViolationException(ConstraintViolationException e) {
Set<ConstraintViolation<?>> constraintViolations = e.getConstraintViolations();
String paramName = constraintViolations.iterator().next().getPropertyPath().toString();
String paramError = constraintViolations.iterator().next().getMessage();
return getRestResponse(ErrorCode.PARAMETER_ERROR.getCode(), getFailFastMsg(paramName, paramError));
}
/**
* 自定义异常统一处理
* @param e
* @return
*/
@ExceptionHandler(StoreException.class)
public RestResponse customException(StoreException e) {
return getRestResponse(e.getErrorCode(), e.getMessage());
}
@ExceptionHandler(AuthException.class)
public RestResponse customException(AuthException e) {
return getRestResponse(e.getErrorCode(), e.getMessage());
}
private RestResponse getRestResponse(String errorCode, String message) {
return RestResponse.failure(errorCode, message);
}
private static String getFailFastMsg(String paramName, String paramError) {
return String.format("%s:%s", paramName, paramError);
}
}
......@@ -3,9 +3,9 @@ package com.gic.auth.web.utils;
import org.apache.commons.lang3.StringUtils;
import com.gic.auth.constant.UserConstants;
import com.gic.auth.exception.AuthException;
import com.gic.commons.util.Md5Util;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.exception.CommonException;
import com.gic.enterprise.utils.CreateRandomUtils;
/**
* 用户密码生成
......@@ -54,7 +54,7 @@ public class UserPasswordUtils {
if (StringUtils.isNotBlank(password)) {
return password;
} else {
throw new AuthException(ErrorCode.PARAMETER_ERROR.getCode(), "密码不能为空");
throw new CommonException(ErrorCode.PARAMETER_ERROR.getCode(), "密码不能为空");
}
}
}
......
package com.gic.auth.web.vo;
import java.io.Serializable;
/**
* 登陆用户拥有的所有操作项
* @ClassName: UserOperationItemAuthVO

* @Description: 

* @author guojuxing

* @date 2019/9/26 11:05 AM

*/
public class UserOperationItemAuthVO implements Serializable{
private static final long serialVersionUID = -4102202683416381220L;
/**
*
*/
private Integer menuId;
private String menuName;
private String project;
private String menuUrl;
private Integer parentId;
private String menuCode;
private String parentCode;
public Integer getMenuId() {
return menuId;
}
public void setMenuId(Integer menuId) {
this.menuId = menuId;
}
public String getMenuName() {
return menuName;
}
public void setMenuName(String menuName) {
this.menuName = menuName;
}
public String getProject() {
return project;
}
public void setProject(String project) {
this.project = project;
}
public String getMenuUrl() {
return menuUrl;
}
public void setMenuUrl(String menuUrl) {
this.menuUrl = menuUrl;
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public String getMenuCode() {
return menuCode;
}
public void setMenuCode(String menuCode) {
this.menuCode = menuCode;
}
public String getParentCode() {
return parentCode;
}
public void setParentCode(String parentCode) {
this.parentCode = parentCode;
}
}
......@@ -55,7 +55,4 @@
<!--受审项目-->
<dubbo:reference interface= "com.gic.enterprise.service.ProjectApiService" id="projectApiService" timeout="6000" />
<!--应用市场应用列表-->
<dubbo:reference interface="com.gic.open.api.service.AppTokenApiService" id="appTokenApiService" timeout="6000" />
</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