Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

李进 2 anni fa
parent
commit
f0f83afe55

+ 2 - 1
authorize-api-service/src/main/java/com/xy/service/SysRoleMenuService.java

@@ -26,9 +26,10 @@ public interface SysRoleMenuService extends IService<SysRoleMenu> {
      * 获取角色菜单ID
      *
      * @param roleId
+     * @param isAdmin 是否具有管理员权限
      * @return
      */
-    List<Long> getMenuIdsByRoleId(Long roleId);
+    List<Long> getMenuIdsByRoleId(Long roleId, Boolean isAdmin);
 
     /**
      * 更新菜单管理员查询权限

+ 12 - 0
authorize-api-service/src/main/java/com/xy/service/impl/SysMenuServiceImpl.java

@@ -15,6 +15,7 @@ import com.xy.mapper.SysRoleMapper;
 import com.xy.mapper.SysRoleMenuMapper;
 import com.xy.redis.RedisCache;
 import com.xy.service.SysMenuService;
+import com.xy.service.SysRoleMenuService;
 import com.xy.utils.R;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -47,6 +48,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
 
     private SysRoleMapper sysRoleMapper;
 
+    private SysRoleMenuService sysRoleMenuService;
+
     @PostMapping("workMenu")
     @ApiOperation("用户菜单树")
     public R<List<SysMenuDto.Vo>> workMenu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu) {
@@ -125,4 +128,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         removeBatchByIds(del.getId());
         return R.ok();
     }
+
+
+    @PostMapping("getMenuIdsForAdmin")
+    @ApiOperation("获取角色的管理员权限菜单")
+    public R<List<Long>> getMenuIdsForAdmin(@RequestBody @Validated SysMenuDto.RoleAdminMenuIdsDto roleAdminMenuIdsDto) {
+        List<Long> menuIds = sysRoleMenuService.getMenuIdsByRoleId(roleAdminMenuIdsDto.getRoleId(), Boolean.TRUE);
+        return R.ok(menuIds);
+    }
+
 }

+ 28 - 6
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleMenuServiceImpl.java

@@ -48,7 +48,7 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
             SysRoleMenu roleMenu = new SysRoleMenu();
             roleMenu.setRoleId(roleId);
             roleMenu.setMenuId(menuId);
-            roleMenu.setSysId(sysId);
+            roleMenu.setSysId(sysId).createId();
             return roleMenu;
         }).collect(Collectors.toList());
         //批量保存
@@ -56,9 +56,12 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
     }
 
     @Override
-    public List<Long> getMenuIdsByRoleId(Long roleId) {
+    public List<Long> getMenuIdsByRoleId(Long roleId, Boolean isAdmin) {
         List<Long> menuIds = new ArrayList<>(16);
-        List<SysRoleMenu> sysRoleMenus = this.list(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, roleId));
+        List<SysRoleMenu> sysRoleMenus = this.list(Wrappers.<SysRoleMenu>lambdaQuery()
+                .eq(SysRoleMenu::getRoleId, roleId)
+                .eq(isAdmin != null, SysRoleMenu::getSelectAdmin, isAdmin)
+        );
         if (CollUtil.isEmpty(sysRoleMenus)) {
             return menuIds;
         }
@@ -72,7 +75,22 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
         if (CollUtil.isEmpty(sysRoleMenuList)) {
             return Boolean.TRUE;
         }
+        SysRoleMenu reqSysRoleMenu = sysRoleMenuList.get(0);
+        //先将现有的管理员权限全部更新为false,因为前端只传全量的有管理员权限的菜单
+        List<SysRoleMenu> roleMenuList = this.list(
+                Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getSysId, reqSysRoleMenu.getSysId())
+                        .eq(SysRoleMenu::getRoleId, reqSysRoleMenu.getRoleId()));
+
+        if (CollUtil.isNotEmpty(roleMenuList)) {
+            List<SysRoleMenu> updateRoleMenuList = roleMenuList.stream().map(sysRoleMenu -> {
+                sysRoleMenu.setSelectAdmin(Boolean.FALSE);
+                return sysRoleMenu;
+            }).collect(Collectors.toList());
+            updateBatchById(updateRoleMenuList);
+        }
+
         List<SysRoleMenu> updateList = new ArrayList<>(16);
+        List<SysRoleMenu> addList = new ArrayList<>(16);
         sysRoleMenuList.forEach(sysRoleMenu -> {
             SysRoleMenu roleMenu = this.getOne(Wrappers.<SysRoleMenu>lambdaQuery()
                     .eq(SysRoleMenu::getSysId, sysRoleMenu.getSysId())
@@ -80,12 +98,16 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRo
                     .eq(SysRoleMenu::getMenuId, sysRoleMenu.getMenuId())
             );
             if (roleMenu != null) {
-                roleMenu.setSelectAdmin(sysRoleMenu.getSelectAdmin());
-                updateList.add(roleMenu);
+                updateList.add(roleMenu.setSelectAdmin(Boolean.TRUE));
+            } else {
+                addList.add(sysRoleMenu.createId().setSelectAdmin(Boolean.TRUE));
             }
         });
         if (CollUtil.isNotEmpty(updateList)) {
-            saveOrUpdateBatch(updateList);
+            updateBatchById(updateList);
+        }
+        if (CollUtil.isNotEmpty(addList)) {
+            saveBatch(addList);
         }
         return Boolean.TRUE;
     }

+ 2 - 1
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleServiceImpl.java

@@ -90,6 +90,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                         .createId()
                         .setSelectAdmin(finalSelectAdmin)
                         .setMenuId(menuId)
+                        .setSysId(sysRoleDto.getSysId())
                         .setRoleId(sysRoleId);
                 return sysRoleMenu;
 
@@ -173,7 +174,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             //拿到角色菜单信息返回
             records.forEach(sysRoleVo -> {
                 Long id = sysRoleVo.getId();
-                List<Long> menuIdsByRoleId = sysRoleMenuService.getMenuIdsByRoleId(id);
+                List<Long> menuIdsByRoleId = sysRoleMenuService.getMenuIdsByRoleId(id, null);
                 sysRoleVo.setMenuIds(menuIdsByRoleId);
             });
             sysRoleVoPageBean.setRecords(records);

+ 6 - 0
authorize-api-service/src/main/java/com/xy/service/impl/SysWorkUserServiceImpl.java

@@ -22,6 +22,7 @@ import com.xy.utils.Beans;
 import com.xy.utils.R;
 import icu.mhb.mybatisplus.plugln.core.JoinLambdaWrapper;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -58,6 +59,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     private final SysDeptMapper sysDeptMapper;
 
     @Override
+    @ApiOperation(value = "注册", notes = "注册")
     @Transactional(rollbackFor = Exception.class)
     public R<Long> register(AddDto addDto) {
         //校验
@@ -94,6 +96,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     }
 
     @Override
+    @ApiOperation(value = "修改", notes = "修改")
     @Transactional(rollbackFor = Exception.class)
     public R<Boolean> update(UpdateDto updateDto) {
         //更新用户信息
@@ -129,6 +132,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     }
 
     @Override
+    @ApiOperation(value = "删除", notes = "删除")
     @Transactional(rollbackFor = Exception.class)
     public R del(DelDto delDto) {
         //删除用户角色
@@ -141,6 +145,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     }
 
     @Override
+    @ApiOperation("登录")
     public R<String> login(LoginDto loginDto) {
         SysWorkUser sysWorkUser;
         //手机短信登录
@@ -189,6 +194,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     }
 
     @Override
+    @ApiOperation("集合查询")
     public R<List<SysWorkVo>> list(ListDto listDto) {
         //条件构造
         JoinLambdaWrapper<SysWorkUser> joinLambdaWrapper = new JoinLambdaWrapper<>(SysWorkUser.class)

+ 11 - 0
authorize-api/src/main/java/com/xy/dto/SysMenuDto.java

@@ -27,6 +27,17 @@ public class SysMenuDto {
         private Long sysId;
     }
 
+    @Data
+    @ApiModel("角色管理员权限菜单")
+    @Accessors(chain = true)
+    public static class RoleAdminMenuIdsDto {
+ 
+        @NotNull(message = "角色ID不能为空")
+        @ApiModelProperty(value = "角色ID", required = true)
+        private Long roleId;
+
+    }
+
     @Data
     @ApiModel("添加")
     @Accessors(chain = true)

+ 3 - 5
authorize-api/src/main/java/com/xy/service/SysWorkUserService.java

@@ -20,20 +20,19 @@ import java.util.List;
 @RestMappingController("sysWorkUser")
 public interface SysWorkUserService {
 
-    @ApiOperation(value = "注册", notes = "注册")
+
     @PostMapping("register")
     R<Long> register(@Valid @RequestBody AddDto addDto);
 
-    @ApiOperation(value = "修改", notes = "修改")
+
     @PostMapping("update")
     R<Boolean> update(@Valid @RequestBody UpdateDto updateDto);
 
-    @ApiOperation(value = "删除", notes = "删除")
+
     @PostMapping("del")
     R del(@RequestBody @Validated DelDto delDto);
 
     @PostMapping("login")
-    @ApiOperation("登录")
     R<String> login(@RequestBody @Validated LoginDto loginDto);
 
     @PostMapping("logout")
@@ -41,6 +40,5 @@ public interface SysWorkUserService {
     R logout();
 
     @PostMapping("list")
-    @ApiOperation("集合查询")
     R<List<SysWorkVo>> list(@RequestBody ListDto listDto);
 }

+ 1 - 1
authorize-start/pom.xml

@@ -90,4 +90,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
+</project>

+ 16 - 0
authorize-start/src/main/java/com/xy/PushDoc.java

@@ -0,0 +1,16 @@
+package com.xy;
+
+import cn.torna.swaggerplugin.SwaggerPlugin;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+ 
+public class PushDoc {
+
+
+    public static void main(String[] args) {
+        //手动推送更新torna文档
+        SwaggerPlugin.pushDoc();
+    }
+
+}