Commit 4722ad4d by guojuxing

权限集列表查询

parent 9fba1ce6
......@@ -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());
......
......@@ -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.enterprise.exception.CommonException;
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());
}
@ResponseBody
@ExceptionHandler(CommonException.class)
public RestResponse customException(CommonException 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(), "密码不能为空");
}
}
}
......
......@@ -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