From 684484fb93775edcfa19cfc7a43d0a748c8362be Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期五, 12 四月 2024 10:59:30 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/RoleController.java | 61 ++++++++++++++++++++++++++++-- 1 files changed, 57 insertions(+), 4 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 574cdd7..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,13 +35,15 @@ @Autowired private RoleService roleService; + @Autowired + private RoleMenuService roleMenuService; @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('system:role:list')") @@ -63,6 +70,8 @@ && 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("娣诲姞澶辫触"); } @@ -83,6 +92,7 @@ .ne(Role::getId, role.getId())) > 0) { return R.error("瑙掕壊鍚嶇О宸插瓨鍦�"); } + role.setUpdateTime(new Date()); if (!roleService.updateById(role)) { return R.error("淇敼澶辫触"); } @@ -92,9 +102,15 @@ @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("鍒犻櫎鎴愬姛"); } @@ -119,4 +135,41 @@ 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