Commit 97e48c16 by guojuxing

权限管理接口:应用列表权限

parent fd14ce15
......@@ -49,6 +49,7 @@ public class MenuServiceImpl implements MenuService {
return tabSysMenuMapper.getMaxSortByParentId(parentId, project);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updatePage(MenuDTO menuDTO) {
TabSysMenu record = EntityUtil.changeEntityNew(TabSysMenu.class, menuDTO);
......
......@@ -88,7 +88,7 @@ public class MenuApiServiceImpl implements MenuApiService {
@Override
public ServiceResponse<Void> updateGICPage(MenuDTO menuDTO) {
return updatePage(menuDTO, MenuDTO.SavePageValid.class);
return updatePage(menuDTO, MenuTypeEnum.PAGE, MenuDTO.SavePageValid.class);
}
@Override
......@@ -112,12 +112,12 @@ public class MenuApiServiceImpl implements MenuApiService {
@Override
public ServiceResponse<Void> updateGICChildPage(MenuDTO menuDTO) {
return updateChildPage(menuDTO, MenuDTO.UpdateGICChildPageValid.class);
return updateChildPage(menuDTO, MenuTypeEnum.PAGE, MenuDTO.UpdateGICChildPageValid.class);
}
@Override
public ServiceResponse<Void> updateAppPage(MenuDTO menuDTO) {
return updatePage(menuDTO, MenuDTO.UpdateAppPageValid.class);
return updatePage(menuDTO, MenuTypeEnum.PAGE, MenuDTO.UpdateAppPageValid.class);
}
@Override
......@@ -128,7 +128,7 @@ public class MenuApiServiceImpl implements MenuApiService {
@Override
public ServiceResponse<Void> updateAppChildPage(MenuDTO menuDTO) {
return updateChildPage(menuDTO, MenuDTO.EditAppChildPageValid.class);
return updateChildPage(menuDTO, MenuTypeEnum.PAGE, MenuDTO.EditAppChildPageValid.class);
}
@Override
......@@ -152,7 +152,7 @@ public class MenuApiServiceImpl implements MenuApiService {
@Override
public ServiceResponse<Void> updateOperationItem(MenuDTO menuDTO) {
return updateChildPage(menuDTO, MenuDTO.UpdateOperationItemValid.class);
return updateChildPage(menuDTO, MenuTypeEnum.OPERATION, MenuDTO.UpdateOperationItemValid.class);
}
@Override
......@@ -221,6 +221,59 @@ public class MenuApiServiceImpl implements MenuApiService {
return ServiceResponse.success();
}
@Transactional(rollbackFor = Exception.class)
@Override
public ServiceResponse<Void> updateAuthItem(AuthItemSaveQO params) {
TabSysMenu record = menuService.getMenuById(params.getMenuId());
if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "主键参数有误,查无数据");
}
if (record.getMenuType().intValue() != MenuTypeEnum.ROLE.getCode()) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "主键参数有误,非权限项");
}
ServiceResponse paramsValid = ValidParamsUtils.allCheckValidate(params, AuthItemSaveQO.SaveAuthItemValid.class);
if (!paramsValid.isSuccess()) {
return paramsValid;
}
//新增权限项
MenuDTO menuDTO = new MenuDTO();
menuDTO.setMenuName(params.getMenuName());
menuDTO.setMenuId(params.getMenuId());
setNormalFieldValue(menuDTO, record);
menuService.updatePage(menuDTO);
String operationItemIds = params.getOperationItemIds();
String[] operationItemArr = operationItemIds.split(SignConstants.COMMA);
//校验操作项是否存在
List<Integer> menuIdList = new ArrayList<>(operationItemArr.length);
for (String str : operationItemArr) {
menuIdList.add(Integer.parseInt(str));
}
List<TabSysMenu> menuList = menuService.selectByIds(menuIdList);
if (menuList == null || menuList.size() < operationItemArr.length) {
//回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "操作项数据有误,其中有不存在的操作项");
}
//新增权限项、操作项关联表数据
List<MenuItemDTO> itemDTOList = new ArrayList<>();
Date now = new Date();
for (String operationItem : operationItemArr) {
MenuItemDTO menuItemDTO = new MenuItemDTO();
menuItemDTO.setItemId(Integer.parseInt(operationItem));
menuItemDTO.setMenuId(params.getMenuId());
menuItemDTO.setStatus(1);
menuItemDTO.setCreateTime(now);
menuItemDTO.setUpdateTime(now);
itemDTOList.add(menuItemDTO);
}
//delete
menuItemService.deleteByMenuId(params.getMenuId());
//save
menuItemService.saveFetch(itemDTOList);
return ServiceResponse.success();
}
private ServiceResponse<Void> savePage(MenuDTO menuDTO, Class clazz) {
ServiceResponse paramsValid = ValidParamsUtils.allCheckValidate(menuDTO, clazz);
if (!paramsValid.isSuccess()) {
......@@ -248,15 +301,15 @@ public class MenuApiServiceImpl implements MenuApiService {
return ServiceResponse.success();
}
private ServiceResponse<Void> updatePage(MenuDTO menuDTO, Class clazz) {
return updateNormalPage(menuDTO, clazz, true);
private ServiceResponse<Void> updatePage(MenuDTO menuDTO, MenuTypeEnum menuTypeEnum, Class clazz) {
return updateNormalPage(menuDTO, menuTypeEnum, clazz, true);
}
private ServiceResponse<Void> updateChildPage(MenuDTO menuDTO, Class clazz) {
return updateNormalPage(menuDTO, clazz, false);
private ServiceResponse<Void> updateChildPage(MenuDTO menuDTO, MenuTypeEnum menuTypeEnum, Class clazz) {
return updateNormalPage(menuDTO, menuTypeEnum, clazz, false);
}
private ServiceResponse<Void> updateNormalPage(MenuDTO menuDTO, Class clazz, boolean isFirstLevelPage) {
private ServiceResponse<Void> updateNormalPage(MenuDTO menuDTO, MenuTypeEnum menuTypeEnum, Class clazz, boolean isFirstLevelPage) {
TabSysMenu record = menuService.getMenuById(menuDTO.getMenuId());
if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "主键参数有误,查无数据");
......@@ -270,6 +323,9 @@ public class MenuApiServiceImpl implements MenuApiService {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "主键参数有误,非子页面");
}
}
if (record.getMenuType().intValue() != menuTypeEnum.getCode()) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "主键参数有误,非" + menuTypeEnum.getMessage());
}
ServiceResponse paramsValid = ValidParamsUtils.allCheckValidate(menuDTO, clazz);
if (!paramsValid.isSuccess()) {
return paramsValid;
......
......@@ -5,6 +5,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.gic.auth.constant.SignConstants;
import com.gic.auth.qo.AuthItemSaveQO;
import org.apache.dubbo.rpc.RpcContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -159,6 +161,16 @@ public class MenuController {
return ResultControllerUtils.commonResult(menuApiService.updateOperationItem(menuDTO));
}
@RequestMapping("/save-auth-item")
public RestResponse saveAuthItem(AuthItemSaveQO params) {
return ResultControllerUtils.commonResult(menuApiService.saveAuthItem(params));
}
@RequestMapping("/update-auth-item")
public RestResponse updateAuthItem(AuthItemSaveQO params) {
return ResultControllerUtils.commonResult(menuApiService.updateAuthItem(params));
}
private static Map<String, String> getMenuVersionMap(MenuDTO dto) {
Map<String, String> map = new HashMap<>(16);
if (dto.getProject().equals(MenuProjectConstants.DEFAULT_PROJECT) && dto.getLevel() == 1) {
......@@ -168,8 +180,8 @@ public class MenuController {
} else {
String menuVersion = dto.getMenuVersion();
String menuVersionName = dto.getMenuVersionName();
String[] menuVersionArr = menuVersion.substring(1, menuVersion.length() - 1).split("_");
String[] menuVersionNameArr = menuVersionName.split("/");
String[] menuVersionArr = menuVersion.substring(1, menuVersion.length() - 1).split(SignConstants.UNDERLINE);
String[] menuVersionNameArr = menuVersionName.split(SignConstants.SLASH);
for (int i = 0, len = menuVersionArr.length; i < len; i++) {
map.put(menuVersionArr[i], menuVersionNameArr[i]);
}
......
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