| | |
| | | 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; |
| | | |
| | |
| | | |
| | | @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')") |
| | |
| | | && 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("添加失败"); |
| | | } |
| | |
| | | .ne(Role::getId, role.getId())) > 0) { |
| | | return R.error("角色名称已存在"); |
| | | } |
| | | role.setUpdateTime(new Date()); |
| | | if (!roleService.updateById(role)) { |
| | | return R.error("修改失败"); |
| | | } |
| | |
| | | @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("删除成功"); |
| | | } |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |