6 changed files with 554 additions and 23 deletions
-
100system/src/main/java/com/storeroom/modules/system/controller/DeptController.java
-
81system/src/main/java/com/storeroom/modules/system/controller/DictController.java
-
83system/src/main/java/com/storeroom/modules/system/controller/DictDetailController.java
-
129system/src/main/java/com/storeroom/modules/system/controller/MenuController.java
-
138system/src/main/java/com/storeroom/modules/system/controller/RoleController.java
-
46system/src/main/java/com/storeroom/modules/system/controller/UserController.java
@ -0,0 +1,100 @@ |
|||
package com.storeroom.modules.system.controller; |
|||
|
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import com.storeroom.exception.BaseException; |
|||
import com.storeroom.exception.constant.ResponseStatus; |
|||
import com.storeroom.modules.system.domain.Dept; |
|||
import com.storeroom.modules.system.service.DeptService; |
|||
import com.storeroom.modules.system.service.dto.DeptDto; |
|||
import com.storeroom.modules.system.service.dto.DeptQueryCriteria; |
|||
import com.storeroom.utils.ApiResponse; |
|||
import com.storeroom.utils.PageUtil; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.http.HttpStatus; |
|||
import org.springframework.security.access.prepost.PreAuthorize; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.*; |
|||
|
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@Api(tags = "系统:部门管理") |
|||
@RequestMapping("/api/dept") |
|||
public class DeptController { |
|||
|
|||
private final DeptService deptService; |
|||
private static final String ENTITY_NAME = "dept"; |
|||
|
|||
@ApiOperation("导出部门数据") |
|||
@GetMapping(value = "/download") |
|||
//@PreAuthorize("@el.check('dept:list')") |
|||
public void exportDept(HttpServletResponse response, DeptQueryCriteria criteria) throws Exception { |
|||
deptService.download(deptService.queryAll(criteria, false), response); |
|||
} |
|||
|
|||
@ApiOperation("查询部门") |
|||
@GetMapping |
|||
//@PreAuthorize("@el.check('user:list','dept:list')") |
|||
public ApiResponse<Object> queryDept(DeptQueryCriteria criteria) throws Exception { |
|||
List<DeptDto> deptDtos = deptService.queryAll(criteria, true); |
|||
return ApiResponse.success(PageUtil.toPage(deptDtos, deptDtos.size())); |
|||
} |
|||
|
|||
@ApiOperation("查询部门:根据ID获取同级与上级数据") |
|||
@PostMapping("/superior") |
|||
//@PreAuthorize("@el.check('user:list','dept:list')") |
|||
public ApiResponse<Object> getDeptSuperior(@RequestBody List<Long> ids) { |
|||
Set<DeptDto> deptDtos = new LinkedHashSet<>(); |
|||
for (Long id : ids) { |
|||
DeptDto deptDto = deptService.findById(id); |
|||
List<DeptDto> depts = deptService.getSuperior(deptDto, new ArrayList<>()); |
|||
deptDtos.addAll(depts); |
|||
} |
|||
return ApiResponse.success(deptService.buildTree(new ArrayList<>(deptDtos))); |
|||
} |
|||
|
|||
//@Log("新增部门") |
|||
@ApiOperation("新增部门") |
|||
@PostMapping |
|||
//@PreAuthorize("@el.check('dept:add')") |
|||
public ApiResponse<Object> createDept(@Validated @RequestBody Dept resources){ |
|||
if (resources.getId() != null) { |
|||
throw new BaseException("A new "+ ENTITY_NAME +" cannot already have an ID"); |
|||
} |
|||
deptService.create(resources); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
|
|||
//@Log("修改部门") |
|||
@ApiOperation("修改部门") |
|||
@PutMapping |
|||
//@PreAuthorize("@el.check('dept:edit')") |
|||
public ApiResponse<Object> updateDept(@Validated(Dept.Update.class) @RequestBody Dept resources){ |
|||
deptService.update(resources); |
|||
return ApiResponse.success(HttpStatus.NO_CONTENT); |
|||
} |
|||
|
|||
//@Log("删除部门") |
|||
@ApiOperation("删除部门") |
|||
@DeleteMapping |
|||
//@PreAuthorize("@el.check('dept:del')") |
|||
public ApiResponse<Object> deleteDept(@RequestBody Set<Long> ids){ |
|||
Set<DeptDto> deptDtos = new HashSet<>(); |
|||
for (Long id : ids) { |
|||
List<Dept> deptList = deptService.findByPid(id); |
|||
deptDtos.add(deptService.findById(id)); |
|||
if(CollectionUtil.isNotEmpty(deptList)){ |
|||
deptDtos = deptService.getDeleteDepts(deptList, deptDtos); |
|||
} |
|||
} |
|||
// 验证是否被角色或用户关联 |
|||
deptService.verification(deptDtos); |
|||
deptService.delete(deptDtos); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
} |
@ -0,0 +1,81 @@ |
|||
package com.storeroom.modules.system.controller; |
|||
|
|||
|
|||
import com.storeroom.exception.BaseException; |
|||
import com.storeroom.exception.constant.ResponseStatus; |
|||
import com.storeroom.modules.system.domain.Dict; |
|||
import com.storeroom.modules.system.service.DictService; |
|||
import com.storeroom.modules.system.service.dto.DictQueryCriteria; |
|||
import com.storeroom.utils.ApiResponse; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.data.domain.Pageable; |
|||
import org.springframework.security.access.prepost.PreAuthorize; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.io.IOException; |
|||
import java.util.Set; |
|||
|
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@Api(tags = "系统:字典管理") |
|||
@RequestMapping("/api/dict") |
|||
public class DictController { |
|||
|
|||
private final DictService dictService; |
|||
private static final String ENTITY_NAME = "dict"; |
|||
|
|||
@ApiOperation("导出字典数据") |
|||
@GetMapping(value = "/download") |
|||
//@PreAuthorize("@el.check('dict:list')") |
|||
public void exportDict(HttpServletResponse response, DictQueryCriteria criteria) throws IOException { |
|||
dictService.download(dictService.queryAll(criteria), response); |
|||
} |
|||
|
|||
@ApiOperation("查询字典") |
|||
@GetMapping(value = "/all") |
|||
//@PreAuthorize("@el.check('dict:list')") |
|||
public ApiResponse<Object> queryAllDict(){ |
|||
return ApiResponse.success(dictService.queryAll(new DictQueryCriteria())); |
|||
} |
|||
|
|||
@ApiOperation("查询字典") |
|||
@GetMapping |
|||
//@PreAuthorize("@el.check('dict:list')") |
|||
public ApiResponse<Object> queryDict(DictQueryCriteria resources, Pageable pageable){ |
|||
return ApiResponse.success(dictService.queryAll(resources,pageable)); |
|||
} |
|||
|
|||
//@Log("新增字典") |
|||
@ApiOperation("新增字典") |
|||
@PostMapping |
|||
//@PreAuthorize("@el.check('dict:add')") |
|||
public ApiResponse<Object> createDict(@Validated @RequestBody Dict resources){ |
|||
if (resources.getId() != null) { |
|||
throw new BaseException("A new "+ ENTITY_NAME +" cannot already have an ID"); |
|||
} |
|||
dictService.create(resources); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
|
|||
//@Log("修改字典") |
|||
@ApiOperation("修改字典") |
|||
@PutMapping |
|||
//@PreAuthorize("@el.check('dict:edit')") |
|||
public ApiResponse<Object> updateDict(@Validated(Dict.Update.class) @RequestBody Dict resources){ |
|||
dictService.update(resources); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
|
|||
//@Log("删除字典") |
|||
@ApiOperation("删除字典") |
|||
@DeleteMapping |
|||
//@PreAuthorize("@el.check('dict:del')") |
|||
public ApiResponse<Object> deleteDict(@RequestBody Set<Long> ids){ |
|||
dictService.delete(ids); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
} |
@ -0,0 +1,83 @@ |
|||
package com.storeroom.modules.system.controller; |
|||
|
|||
|
|||
import com.storeroom.exception.BaseException; |
|||
import com.storeroom.exception.constant.ResponseStatus; |
|||
import com.storeroom.modules.system.domain.DictDetail; |
|||
import com.storeroom.modules.system.service.DictDetailService; |
|||
import com.storeroom.modules.system.service.dto.DictDetailDto; |
|||
import com.storeroom.modules.system.service.dto.DictDetailQueryCriteria; |
|||
import com.storeroom.utils.ApiResponse; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.data.domain.Pageable; |
|||
import org.springframework.data.domain.Sort; |
|||
import org.springframework.data.web.PageableDefault; |
|||
import org.springframework.http.HttpStatus; |
|||
import org.springframework.http.ResponseEntity; |
|||
import org.springframework.security.access.prepost.PreAuthorize; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@Api(tags = "系统:字典详情管理") |
|||
@RequestMapping("/api/dictDetail") |
|||
public class DictDetailController { |
|||
|
|||
private final DictDetailService dictDetailService; |
|||
private static final String ENTITY_NAME = "dictDetail"; |
|||
|
|||
@ApiOperation("查询字典详情") |
|||
@GetMapping |
|||
public ResponseEntity<Object> queryDictDetail(DictDetailQueryCriteria criteria, |
|||
@PageableDefault(sort = {"dictSort"}, direction = Sort.Direction.ASC) Pageable pageable){ |
|||
return new ResponseEntity<>(dictDetailService.queryAll(criteria,pageable), HttpStatus.OK); |
|||
} |
|||
|
|||
@ApiOperation("查询多个字典详情") |
|||
@GetMapping(value = "/map") |
|||
public ResponseEntity<Object> getDictDetailMaps(@RequestParam String dictName){ |
|||
String[] names = dictName.split("[,,]"); |
|||
Map<String, List<DictDetailDto>> dictMap = new HashMap<>(16); |
|||
for (String name : names) { |
|||
dictMap.put(name, dictDetailService.getDictByName(name)); |
|||
} |
|||
return new ResponseEntity<>(dictMap, HttpStatus.OK); |
|||
} |
|||
|
|||
// @Log("新增字典详情") |
|||
@ApiOperation("新增字典详情") |
|||
@PostMapping |
|||
//@PreAuthorize("@el.check('dict:add')") |
|||
public ApiResponse<Object> createDictDetail(@Validated @RequestBody DictDetail resources){ |
|||
if (resources.getId() != null) { |
|||
throw new BaseException("A new "+ ENTITY_NAME +" cannot already have an ID"); |
|||
} |
|||
dictDetailService.create(resources); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
|
|||
//@Log("修改字典详情") |
|||
@ApiOperation("修改字典详情") |
|||
@PutMapping |
|||
//@PreAuthorize("@el.check('dict:edit')") |
|||
public ApiResponse<Object> updateDictDetail(@Validated(DictDetail.Update.class) @RequestBody DictDetail resources){ |
|||
dictDetailService.update(resources); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
|
|||
// @Log("删除字典详情") |
|||
@ApiOperation("删除字典详情") |
|||
@DeleteMapping(value = "/{id}") |
|||
// @PreAuthorize("@el.check('dict:del')") |
|||
public ApiResponse<Object> deleteDictDetail(@PathVariable Long id){ |
|||
dictDetailService.delete(id); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
} |
@ -0,0 +1,129 @@ |
|||
package com.storeroom.modules.system.controller; |
|||
|
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import com.storeroom.exception.BaseException; |
|||
import com.storeroom.exception.constant.ResponseStatus; |
|||
import com.storeroom.modules.system.domain.Menu; |
|||
import com.storeroom.modules.system.service.MenuService; |
|||
import com.storeroom.modules.system.service.dto.MenuDto; |
|||
import com.storeroom.modules.system.service.dto.MenuQueryCriteria; |
|||
import com.storeroom.modules.system.service.mapstruct.MenuMapper; |
|||
import com.storeroom.utils.ApiResponse; |
|||
import com.storeroom.utils.PageUtil; |
|||
import com.storeroom.utils.SecurityUtils; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.http.HttpStatus; |
|||
import org.springframework.security.access.prepost.PreAuthorize; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.*; |
|||
import java.util.stream.Collectors; |
|||
|
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@Api(tags = "系统:菜单管理") |
|||
@RequestMapping("/api/menus") |
|||
public class MenuController { |
|||
|
|||
private final MenuService menuService; |
|||
private final MenuMapper menuMapper; |
|||
private static final String ENTITY_NAME = "menu"; |
|||
|
|||
@ApiOperation("导出菜单数据") |
|||
@GetMapping(value = "/download") |
|||
//@PreAuthorize("@el.check('menu:list')") |
|||
public void exportMenu(HttpServletResponse response, MenuQueryCriteria criteria) throws Exception { |
|||
menuService.download(menuService.queryAll(criteria, false), response); |
|||
} |
|||
|
|||
@GetMapping(value = "/build") |
|||
@ApiOperation("获取前端所需菜单") |
|||
public ApiResponse<Object> buildMenus(){ |
|||
List<MenuDto> menuDtoList = menuService.findByUser(SecurityUtils.getCurrentUserId()); |
|||
List<MenuDto> menuDtos = menuService.buildTree(menuDtoList); |
|||
return ApiResponse.success(menuService.buildMenus(menuDtos)); |
|||
} |
|||
|
|||
@ApiOperation("返回全部的菜单") |
|||
@GetMapping(value = "/lazy") |
|||
//@PreAuthorize("@el.check('menu:list','roles:list')") |
|||
public ApiResponse<Object> queryAllMenu(@RequestParam Long pid){ |
|||
return ApiResponse.success(menuService.getMenus(pid)); |
|||
} |
|||
|
|||
@ApiOperation("根据菜单ID返回所有子节点ID,包含自身ID") |
|||
@GetMapping(value = "/child") |
|||
// @PreAuthorize("@el.check('menu:list','roles:list')") |
|||
public ApiResponse<Object> childMenu(@RequestParam Long id){ |
|||
Set<Menu> menuSet = new HashSet<>(); |
|||
List<MenuDto> menuList = menuService.getMenus(id); |
|||
menuSet.add(menuService.findOne(id)); |
|||
menuSet = menuService.getChildMenus(menuMapper.toEntity(menuList), menuSet); |
|||
Set<Long> ids = menuSet.stream().map(Menu::getId).collect(Collectors.toSet()); |
|||
return ApiResponse.success(ids); |
|||
} |
|||
|
|||
@GetMapping |
|||
@ApiOperation("查询菜单") |
|||
//@PreAuthorize("@el.check('menu:list')") |
|||
public ApiResponse<Object> queryMenu(MenuQueryCriteria criteria) throws Exception { |
|||
List<MenuDto> menuDtoList = menuService.queryAll(criteria, true); |
|||
return ApiResponse.success(PageUtil.toPage(menuDtoList, menuDtoList.size())); |
|||
} |
|||
|
|||
@ApiOperation("查询菜单:根据ID获取同级与上级数据") |
|||
@PostMapping("/superior") |
|||
// @PreAuthorize("@el.check('menu:list')") |
|||
public ApiResponse<Object> getMenuSuperior(@RequestBody List<Long> ids) { |
|||
Set<MenuDto> menuDtos = new LinkedHashSet<>(); |
|||
if(CollectionUtil.isNotEmpty(ids)){ |
|||
for (Long id : ids) { |
|||
MenuDto menuDto = menuService.findById(id); |
|||
menuDtos.addAll(menuService.getSuperior(menuDto, new ArrayList<>())); |
|||
} |
|||
return ApiResponse.success(menuService.buildTree(new ArrayList<>(menuDtos))); |
|||
} |
|||
return ApiResponse.success(menuService.getMenus(null)); |
|||
} |
|||
|
|||
//@Log("新增菜单") |
|||
@ApiOperation("新增菜单") |
|||
@PostMapping |
|||
// @PreAuthorize("@el.check('menu:add')") |
|||
public ApiResponse<Object> createMenu(@Validated @RequestBody Menu resources){ |
|||
if (resources.getId() != null) { |
|||
throw new BaseException("A new "+ ENTITY_NAME +" cannot already have an ID"); |
|||
} |
|||
menuService.create(resources); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
|
|||
//@Log("修改菜单") |
|||
@ApiOperation("修改菜单") |
|||
@PutMapping |
|||
//@PreAuthorize("@el.check('menu:edit')") |
|||
public ApiResponse<Object> updateMenu(@Validated(Menu.Update.class) @RequestBody Menu resources){ |
|||
menuService.update(resources); |
|||
return ApiResponse.success(ResponseStatus.SUCCESS); |
|||
} |
|||
|
|||
// @Log("删除菜单") |
|||
@ApiOperation("删除菜单") |
|||
@DeleteMapping |
|||
//@PreAuthorize("@el.check('menu:del')") |
|||
public ApiResponse<Object> deleteMenu(@RequestBody Set<Long> ids){ |
|||
Set<Menu> menuSet = new HashSet<>(); |
|||
for (Long id : ids) { |
|||
List<MenuDto> menuList = menuService.getMenus(id); |
|||
menuSet.add(menuService.findOne(id)); |
|||
menuSet = menuService.getChildMenus(menuMapper.toEntity(menuList), menuSet); |
|||
} |
|||
menuService.delete(menuSet); |
|||
return ApiResponse.success(HttpStatus.OK); |
|||
} |
|||
} |
@ -0,0 +1,138 @@ |
|||
package com.storeroom.modules.system.controller; |
|||
|
|||
|
|||
import cn.hutool.core.lang.Dict; |
|||
import com.storeroom.exception.BaseException; |
|||
import com.storeroom.modules.system.domain.Role; |
|||
import com.storeroom.modules.system.service.RoleService; |
|||
import com.storeroom.modules.system.service.dto.RoleDto; |
|||
import com.storeroom.modules.system.service.dto.RoleQueryCriteria; |
|||
import com.storeroom.modules.system.service.dto.RoleSmallDto; |
|||
import com.storeroom.utils.ApiResponse; |
|||
import com.storeroom.utils.SecurityUtils; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.data.domain.Pageable; |
|||
import org.springframework.http.HttpStatus; |
|||
import org.springframework.http.ResponseEntity; |
|||
import org.springframework.security.access.prepost.PreAuthorize; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.io.IOException; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
import java.util.Set; |
|||
import java.util.stream.Collectors; |
|||
|
|||
|
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@Api(tags = "系统:角色管理") |
|||
@RequestMapping("/api/roles") |
|||
public class RoleController { |
|||
|
|||
private final RoleService roleService; |
|||
|
|||
private static final String ENTITY_NAME="role"; |
|||
|
|||
@ApiOperation("获取单个role") |
|||
@GetMapping(value = "/{id}") |
|||
@PreAuthorize("@el.check('roles:list')") |
|||
public ApiResponse<Object> findRoleById(@PathVariable Long id){ |
|||
return ApiResponse.success(roleService.findById(id)); |
|||
} |
|||
|
|||
@ApiOperation("导出角色数据") |
|||
@GetMapping(value = "/download") |
|||
//@PreAuthorize("@el.check('role:list')") |
|||
public void exportRole(HttpServletResponse response, RoleQueryCriteria criteria) throws IOException { |
|||
roleService.download(roleService.queryAll(criteria), response); |
|||
} |
|||
|
|||
@ApiOperation("返回全部的角色") |
|||
@GetMapping(value = "/all") |
|||
//@PreAuthorize("@el.check('roles:list','user:add','user:edit')") |
|||
public ApiResponse<Object> queryAllRole(){ |
|||
return ApiResponse.success(roleService.queryAll()); |
|||
} |
|||
|
|||
@ApiOperation("查询角色") |
|||
@GetMapping |
|||
//@PreAuthorize("@el.check('roles:list')") |
|||
public ApiResponse<Object> queryRole(RoleQueryCriteria criteria, Pageable pageable){ |
|||
return ApiResponse.success(roleService.queryAll(criteria,pageable)); |
|||
} |
|||
|
|||
@ApiOperation("获取用户级别") |
|||
@GetMapping(value = "/level") |
|||
public ApiResponse<Object> getRoleLevel(){ |
|||
return ApiResponse.success(Dict.create().set("level", getLevels(null))); |
|||
} |
|||
|
|||
// @Log("新增角色") |
|||
@ApiOperation("新增角色") |
|||
@PostMapping |
|||
// @PreAuthorize("@el.check('roles:add')") |
|||
public ResponseEntity<Object> createRole(@Validated @RequestBody Role resources){ |
|||
if (resources.getId() != null) { |
|||
throw new BaseException("A new "+ ENTITY_NAME +" cannot already have an ID"); |
|||
} |
|||
getLevels(resources.getLevel()); |
|||
roleService.create(resources); |
|||
return new ResponseEntity<>(HttpStatus.CREATED); |
|||
} |
|||
|
|||
//@Log("修改角色") |
|||
@ApiOperation("修改角色") |
|||
@PutMapping |
|||
//@PreAuthorize("@el.check('roles:edit')") |
|||
public ApiResponse<Object> updateRole(@Validated(Role.Update.class) @RequestBody Role resources){ |
|||
getLevels(resources.getLevel()); |
|||
roleService.update(resources); |
|||
return ApiResponse.success(HttpStatus.NO_CONTENT); |
|||
} |
|||
|
|||
//@Log("修改角色菜单") |
|||
@ApiOperation("修改角色菜单") |
|||
@PutMapping(value = "/menu") |
|||
//@PreAuthorize("@el.check('roles:edit')") |
|||
public ApiResponse<Object> updateRoleMenu(@RequestBody Role resources){ |
|||
RoleDto role = roleService.findById(resources.getId()); |
|||
getLevels(role.getLevel()); |
|||
roleService.updateMenu(resources,role); |
|||
return ApiResponse.success(HttpStatus.NO_CONTENT); |
|||
} |
|||
|
|||
//@Log("删除角色") |
|||
@ApiOperation("删除角色") |
|||
@DeleteMapping |
|||
//@PreAuthorize("@el.check('roles:del')") |
|||
public ApiResponse<Object> deleteRole(@RequestBody Set<Long> ids){ |
|||
for (Long id : ids) { |
|||
RoleDto role = roleService.findById(id); |
|||
getLevels(role.getLevel()); |
|||
} |
|||
// 验证是否被用户关联 |
|||
roleService.verification(ids); |
|||
roleService.delete(ids); |
|||
return ApiResponse.success(HttpStatus.OK); |
|||
} |
|||
|
|||
/** |
|||
* 获取用户的角色级别 |
|||
* @return / |
|||
*/ |
|||
private int getLevels(Integer level){ |
|||
List<Integer> levels = roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()); |
|||
int min = Collections.min(levels); |
|||
if(level != null){ |
|||
if(level < min){ |
|||
throw new BaseException("权限不足,你的角色级别:" + min + ",低于操作的角色级别:" + level); |
|||
} |
|||
} |
|||
return min; |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue