Quellcode durchsuchen

根据系统获取角色列表;获取当前登录用户创建的角色列表

谭斌 vor 2 Jahren
Ursprung
Commit
4e35e8a40a

+ 34 - 4
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleServiceImpl.java

@@ -8,11 +8,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dto.BatchDeleteDto;
 import com.xy.dto.SysRoleDto;
-import com.xy.entity.SysDeptRole;
-import com.xy.entity.SysRole;
-import com.xy.entity.SysRoleMenu;
-import com.xy.entity.SysUserRole;
+import com.xy.entity.*;
 import com.xy.mapper.SysRoleMapper;
+import com.xy.mapper.SysSystemMapper;
 import com.xy.service.SysDeptRoleService;
 import com.xy.service.SysRoleMenuService;
 import com.xy.service.SysRoleService;
@@ -21,13 +19,17 @@ import com.xy.utils.PageBean;
 import com.xy.utils.R;
 import com.xy.utils.SaTokenUtils;
 import com.xy.vo.RoleMenuVo;
+import com.xy.vo.SysRoleGroupBySysVo;
 import com.xy.vo.SysRoleVo;
 import io.swagger.annotations.Api;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import static com.xy.utils.Beans.copy;
 import static com.xy.utils.PlusBeans.toIPage;
@@ -46,6 +48,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
     private final SysRoleMenuService sysRoleMenuService;
     private final SysDeptRoleService sysDeptRoleService;
     private final SysUserRoleService sysUserRoleService;
+    private final SysRoleService sysRoleService;
+    private final SysSystemMapper sysSystemMapper;
 
     @Override
     public R<Boolean> saveOrUpdate(SysRoleDto sysRoleDto) {
@@ -123,5 +127,31 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         return R.ok(copy(SysRoleVo.class, list));
     }
 
+    @Override
+    public R<List<SysRoleGroupBySysVo>> myCreatedRoles() {
+        List<SysRoleGroupBySysVo> sysRoleGroupBySysVos = new ArrayList<>(16);
+        Long curUserId = Long.parseLong(SaTokenUtils.getId().toString());
+        //当前用户创建的的角色列表
+        List<SysRole> sysRoleList = this.list(Wrappers.<SysRole>lambdaQuery().eq(SysRole::getCreateUser, curUserId));
+        if (CollUtil.isNotEmpty(sysRoleList)) {
+            List<Long> sysIds = sysRoleList.stream().map(SysRole::getSysId).collect(Collectors.toList());
+            List<SysSystem> sysSystems = sysSystemMapper.selectBatchIds(sysIds);
+            //系统ID-系统名称映射
+            Map<Long, String> sysMap = sysSystems.stream().collect(Collectors.toMap(SysSystem::getId, SysSystem::getName));
+            //系统ID-系统角色映射
+            Map<Long, List<SysRole>> map = sysRoleList.stream().collect(Collectors.groupingBy(sysRole -> sysRole.getSysId()));
+            //按系统分组,封装角色信息
+            map.forEach((sysId, sysRoles) -> {
+                SysRoleGroupBySysVo sysRoleGroupBySysVo = new SysRoleGroupBySysVo();
+                sysRoleGroupBySysVo.setSysRoleVos(copy(SysRoleVo.class, sysRoles));
+                sysRoleGroupBySysVo.setSysId(sysId);
+                sysRoleGroupBySysVo.setName(sysMap.get(sysId));
+                sysRoleGroupBySysVos.add(sysRoleGroupBySysVo);
+            });
+
+        }
+        return R.ok(sysRoleGroupBySysVos);
+    }
+
 
 }

+ 47 - 0
authorize-api/src/main/java/com/xy/dto/RoleListDto.java

@@ -0,0 +1,47 @@
+package com.xy.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+@Data
+@ApiModel("角色表DTO")
+@Accessors(chain = true)
+public class RoleListDto {
+
+    @ApiModelProperty(value = "角色ID", required = false)
+    private Long id;
+
+    @ApiModelProperty(value = "系统", required = true)
+    private Long sysId;
+
+
+    @NotNull(message = "角色标识不可为空")
+    @Size(max = 64, min = 2, message = "角色标识长度需要在2-64之间")
+    @ApiModelProperty(value = "角色标识", required = true)
+    private String code;
+
+    @NotNull(message = "角色名称不能为空")
+    @Size(max = 64, min = 2, message = "角色名称长度需要在2-64之间")
+    @ApiModelProperty(value = "角色名称", required = true)
+    private String name;
+
+
+    @ApiModelProperty("描述")
+    @Size(max = 255, message = "描述不可超过255个字符")
+    private String description;
+
+
+    @ApiModelProperty("状态;true=启用(默认) false=禁用")
+    private Boolean status;
+
+
+    @ApiModelProperty("是否预留角色;true=是 false=否(默认)")
+    private Boolean isLeave;
+
+
+}

+ 5 - 0
authorize-api/src/main/java/com/xy/service/SysRoleService.java

@@ -6,6 +6,7 @@ import com.xy.dto.SysRoleDto;
 import com.xy.utils.PageBean;
 import com.xy.utils.R;
 import com.xy.vo.RoleMenuVo;
+import com.xy.vo.SysRoleGroupBySysVo;
 import com.xy.vo.SysRoleVo;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
@@ -82,4 +83,8 @@ public interface SysRoleService {
     @ApiOperation(value = "根据系统获取角色列表", notes = "根据系统获取角色列表")
     @GetMapping("listBySys/{sysId}")
     R<List<SysRoleVo>> listBySysId(@PathVariable("sysId") Long sysId);
+
+    @ApiOperation(value = "获取当前登录用户创建的角色列表", notes = "获取当前登录用户创建的角色列表")
+    @GetMapping("myCreatedRoles}")
+    R<List<SysRoleGroupBySysVo>> myCreatedRoles();
 }

+ 28 - 0
authorize-api/src/main/java/com/xy/vo/SysRoleGroupBySysVo.java

@@ -0,0 +1,28 @@
+package com.xy.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@ApiModel("按系统分组展示角色")
+@Accessors(chain = true)
+public class SysRoleGroupBySysVo {
+
+
+    @ApiModelProperty("系统ID")
+    private Long sysId;
+
+    @ApiModelProperty("角色名称")
+    private String name;
+
+    @ApiModelProperty("角色菜单")
+    private List<SysRoleVo> sysRoleVos;
+
+
+}
+
+ 

+ 2 - 0
authorize-api/src/main/java/com/xy/vo/SysRoleVo.java

@@ -42,3 +42,5 @@ public class SysRoleVo extends BaseVo {
 
 
 }
+
+