From d835d1b51f832889929cdf69010034a30ef44d02 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期四, 17 十月 2024 13:57:29 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/RoleController.java | 77 ++++++++++++++++++++++++++++++++------ 1 files changed, 65 insertions(+), 12 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/RoleController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/RoleController.java index 61ae217..c96dc48 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/RoleController.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/RoleController.java @@ -4,20 +4,25 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.R; +import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wcs.common.annotation.OperationLog; import com.zy.asrs.wcs.common.domain.BaseParam; import com.zy.asrs.wcs.common.domain.KeyValVo; import com.zy.asrs.wcs.common.domain.PageParam; +import com.zy.asrs.wcs.system.controller.param.RoleScopeParam; import com.zy.asrs.wcs.system.entity.Role; +import com.zy.asrs.wcs.system.entity.RoleMenu; +import com.zy.asrs.wcs.system.service.RoleMenuService; import com.zy.asrs.wcs.system.service.RoleService; import com.zy.asrs.wcs.utils.ExcelUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Map; @@ -30,28 +35,30 @@ @Autowired private RoleService roleService; + @Autowired + private RoleMenuService roleMenuService; - @PreAuthorize("hasAuthority('sys:role:list')") + @PreAuthorize("hasAuthority('system:role:list')") @PostMapping("/role/page") public R page(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<Role, BaseParam> pageParam = new PageParam<>(baseParam, Role.class); - return R.ok().add(roleService.page(pageParam, pageParam.buildWrapper(true))); + return R.ok().add(roleService.page(pageParam, pageParam.buildWrapper(true, (wrapper) -> wrapper.orderByAsc("create_time")))); } - @PreAuthorize("hasAuthority('sys:role:list')") + @PreAuthorize("hasAuthority('system:role:list')") @PostMapping("/role/list") public R list(@RequestBody Map<String, Object> map) { return R.ok().add(roleService.list()); } - @PreAuthorize("hasAuthority('sys:role:list')") + @PreAuthorize("hasAuthority('system:role:list')") @GetMapping("/role/{id}") public R get(@PathVariable("id") Long id) { return R.ok().add(roleService.getById(id)); } - @PreAuthorize("hasAuthority('sys:role:save')") + @PreAuthorize("hasAuthority('system:role:save')") @OperationLog("娣诲姞瑙掕壊") @PostMapping("/role/save") public R save(@RequestBody Role role) { @@ -63,13 +70,15 @@ && roleService.count(new LambdaQueryWrapper<Role>().eq(Role::getCode, role.getCode())) > 0) { return R.error("瑙掕壊鏍囪瘑宸插瓨鍦�"); } + role.setCreateTime(new Date()); + role.setUpdateTime(new Date()); if (!roleService.save(role)) { return R.error("娣诲姞澶辫触"); } return R.ok("娣诲姞鎴愬姛"); } - @PreAuthorize("hasAuthority('sys:role:update')") + @PreAuthorize("hasAuthority('system:role:update')") @OperationLog("淇敼瑙掕壊") @PostMapping("/role/update") public R update(@RequestBody Role role) { @@ -83,23 +92,30 @@ .ne(Role::getId, role.getId())) > 0) { return R.error("瑙掕壊鍚嶇О宸插瓨鍦�"); } + role.setUpdateTime(new Date()); if (!roleService.updateById(role)) { return R.error("淇敼澶辫触"); } return R.ok("淇敼鎴愬姛"); } - @PreAuthorize("hasAuthority('sys:role:remove')") + @PreAuthorize("hasAuthority('system:role:remove')") @OperationLog("鍒犻櫎瑙掕壊") @PostMapping("/role/remove/{ids}") + @Transactional public R remove(@PathVariable Long[] ids) { - if (!roleService.removeByIds(Arrays.asList(ids))) { - return R.error("鍒犻櫎澶辫触"); + for (Long roleId : ids) { + if (!roleService.removeById(roleId)) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"); + } + if (!roleMenuService.remove(new LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, roleId))) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"); + } } return R.ok("鍒犻櫎鎴愬姛"); } - @PreAuthorize("hasAuthority('sys:role:list')") + @PreAuthorize("hasAuthority('system:role:list')") @PostMapping("/role/query") public R query(@RequestParam(required = false) String condition) { List<KeyValVo> vos = new ArrayList<>(); @@ -113,10 +129,47 @@ return R.ok().add(vos); } - @PreAuthorize("hasAuthority('sys:role:list')") + @PreAuthorize("hasAuthority('system:role:list')") @PostMapping("/role/export") public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { ExcelUtil.build(ExcelUtil.create(roleService.list(), Role.class), response); } + @PreAuthorize("hasAuthority('system:role:list')") + @GetMapping("/role/scope/list") + public R scopeList(@RequestParam Long roleId) { +// List<RoleMenu> list = roleMenuService.list(new LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, roleId)); +// if (!Cools.isEmpty(list)) { +// return R.ok().add(list.stream().map(RoleMenu::getMenuId).collect(Collectors.toList())); +// } + return R.ok().add(roleMenuService.listStrictlyMenuByRoleId(roleId)); + } + + @PreAuthorize("hasAuthority('system:role:update')") + @OperationLog("鍒嗛厤鏉冮檺") + @PostMapping("/role/scope/update") + @Transactional + public R scopeUpdate(@RequestBody RoleScopeParam param) { + Long roleId = param.getId(); + List<Long> menuIds = new ArrayList<>(param.getMenuIds().getChecked()); + menuIds.addAll(param.getMenuIds().getHalfChecked()); + roleMenuService.remove(new LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, roleId)); + for (Long menuId : menuIds) { + if (!roleMenuService.save(new RoleMenu(roleId, menuId))) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"); + } + } + return R.ok("鍒嗛厤鎴愬姛"); + } + + @PreAuthorize("hasAuthority('system:role:list')") + @GetMapping("/role/list/name/{ids}") + public R listName(@PathVariable Long[] ids) { + List<String> nameList = new ArrayList<>(); + for (Long id : ids) { + nameList.add(roleService.getById(id).getName()); + } + return R.ok().add(nameList); + } + } -- Gitblit v1.9.1