|
@@ -4,19 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xy.collections.list.JArrayList;
|
|
|
import com.xy.collections.list.JList;
|
|
|
+import com.xy.collections.map.JMap;
|
|
|
import com.xy.consts.CommConsts;
|
|
|
import com.xy.dto.SysMenuDto;
|
|
|
-import com.xy.entity.SysMenu;
|
|
|
-import com.xy.entity.SysMenuJoinSysRoleMenu;
|
|
|
-import com.xy.entity.SysRole;
|
|
|
-import com.xy.entity.SysRoleMenu;
|
|
|
+import com.xy.entity.*;
|
|
|
import com.xy.mapper.SysMenuMapper;
|
|
|
import com.xy.mapper.SysRoleMapper;
|
|
|
import com.xy.mapper.SysRoleMenuMapper;
|
|
|
+import com.xy.mapper.SysSystemMapper;
|
|
|
import com.xy.redis.RedisCache;
|
|
|
import com.xy.service.SysMenuService;
|
|
|
import com.xy.service.SysRoleMenuService;
|
|
|
-import com.xy.utils.Emptys;
|
|
|
import com.xy.utils.R;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -26,6 +24,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
+import javax.validation.constraints.NotNull;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -51,6 +50,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|
|
|
|
|
private SysRoleMenuService sysRoleMenuService;
|
|
|
|
|
|
+ private SysSystemMapper sysSystemMapper;
|
|
|
+
|
|
|
@PostMapping("workMenu")
|
|
|
@ApiOperation("用户菜单树")
|
|
|
public R<List<SysMenuDto.Vo>> workMenu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu) {
|
|
@@ -66,45 +67,26 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|
|
|
|
|
@PostMapping("workMenuList")
|
|
|
@ApiOperation("用户菜单集合")
|
|
|
- public R<List<SysMenuDto.Vo>> workMenuList(@RequestBody @Validated SysMenuDto.WorkMenu workMenu) {
|
|
|
- List<SysMenuDto.Vo> list = new ArrayList<>();
|
|
|
- List<SysMenuJoinSysRoleMenu> menus = RedisCache.getMenu(workMenu.getSysId());
|
|
|
- menus.forEach(sysMenuJoinSysRoleMenu -> list.add(copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu)));
|
|
|
- return R.ok(list);
|
|
|
- }
|
|
|
-
|
|
|
- @PostMapping("workMenuAll")
|
|
|
- @ApiOperation("用户全部菜单树")
|
|
|
- public R<List<List<SysMenuDto.Vo>>> workMenuAll() {
|
|
|
- List<List<SysMenuDto.Vo>> result = new ArrayList<>();
|
|
|
- List<List<SysMenuJoinSysRoleMenu>> menu = RedisCache.getMenuTree();
|
|
|
- menu.forEach(menus -> {
|
|
|
- List<SysMenuDto.Vo> list = new ArrayList<>();
|
|
|
- menus.forEach(sysMenuJoinSysRoleMenu -> {
|
|
|
- SysMenuDto.Vo vo = copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu);
|
|
|
- List<SysMenuDto.Vo> sonVos = copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu.getSonSysMenu());
|
|
|
- list.add(vo.setSonSysMenu(sonVos));
|
|
|
- });
|
|
|
- if (Emptys.check(list)) {
|
|
|
- result.add(list);
|
|
|
- }
|
|
|
- });
|
|
|
- return R.ok(result);
|
|
|
- }
|
|
|
-
|
|
|
- @PostMapping("workMenuAllList")
|
|
|
- @ApiOperation("用户全部菜单集合")
|
|
|
- public R<List<List<SysMenuDto.Vo>>> workMenuAllList() {
|
|
|
- List<List<SysMenuDto.Vo>> result = new ArrayList<>();
|
|
|
- List<List<SysMenuJoinSysRoleMenu>> menu = RedisCache.getMenu();
|
|
|
- menu.forEach(menus -> {
|
|
|
+ public R<List<SysMenuDto.MenuVo>> workMenuList(@RequestBody @Validated SysMenuDto.WorkMenuList workMenu) {
|
|
|
+ List<SysMenuDto.MenuVo> menuVos = new ArrayList<>();
|
|
|
+ List<Long> sysIds = workMenu.getSysId();
|
|
|
+ List<SysSystem> sysSystems = sysSystemMapper.selectList(new LambdaQueryWrapper<SysSystem>().in(SysSystem::getId, sysIds));
|
|
|
+ JMap<Long, SysSystem> sysSystemJMap = new JArrayList<>(sysSystems).toMap(SysSystem::getId).cover();
|
|
|
+ for (Long sysId : sysIds) {
|
|
|
List<SysMenuDto.Vo> list = new ArrayList<>();
|
|
|
+ List<SysMenuJoinSysRoleMenu> menus = RedisCache.getMenu(sysId);
|
|
|
menus.forEach(sysMenuJoinSysRoleMenu -> list.add(copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu)));
|
|
|
- if (Emptys.check(list)) {
|
|
|
- result.add(list);
|
|
|
+ SysSystem sysSystem = sysSystemJMap.get(sysId);
|
|
|
+ if (sysSystem == null) {
|
|
|
+ continue;
|
|
|
}
|
|
|
- });
|
|
|
- return R.ok(result);
|
|
|
+ SysMenuDto.MenuVo menuVo = new SysMenuDto.MenuVo()
|
|
|
+ .setId(sysId)
|
|
|
+ .setName(sysSystem.getName())
|
|
|
+ .setMenu(list);
|
|
|
+ menuVos.add(menuVo);
|
|
|
+ }
|
|
|
+ return R.ok(menuVos);
|
|
|
}
|
|
|
|
|
|
@PostMapping("menu")
|