|
|
|
@ -13,13 +13,16 @@ import com.spring.modules.sys.entity.dto.SysMenuEntityDto; |
|
|
|
import com.spring.modules.sys.service.ShiroService; |
|
|
|
import com.spring.modules.sys.service.SysMenuService; |
|
|
|
import com.spring.modules.sys.service.SysObjectLanguageMenuService; |
|
|
|
import com.spring.modules.sys.service.SysRoleMenuService; |
|
|
|
import org.apache.commons.lang.StringUtils; |
|
|
|
import org.apache.shiro.authz.annotation.RequiresPermissions; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
/** |
|
|
|
@ -31,6 +34,8 @@ public class SysMenuController extends AbstractController { |
|
|
|
@Autowired |
|
|
|
private SysMenuService sysMenuService; |
|
|
|
@Autowired |
|
|
|
private SysRoleMenuService sysRoleMenuService; |
|
|
|
@Autowired |
|
|
|
private ShiroService shiroService; |
|
|
|
@Autowired |
|
|
|
private SysObjectLanguageMenuService sysObjectLanguageMenuService; |
|
|
|
@ -53,14 +58,32 @@ public class SysMenuController extends AbstractController { |
|
|
|
@RequiresPermissions("sys:menu:list") |
|
|
|
public List<SysMenuEntity> list() { |
|
|
|
//sysMenuService.lambdaQuery().orderBy(true,true,SysMenuEntity::getOrderNum).list(); |
|
|
|
List<SysMenuEntity> menuList = sysMenuService.list(); |
|
|
|
for (SysMenuEntity sysMenuEntity : menuList) { |
|
|
|
List<SysMenuEntity> menuList = null; |
|
|
|
//判断是否是admin |
|
|
|
if (getUserId() == Constant.SUPER_ADMIN) { |
|
|
|
menuList = sysMenuService.list(); |
|
|
|
}else { |
|
|
|
//查询当前用户的权限 |
|
|
|
menuList = sysMenuService.getUserMenuListByUserId(getUserId()); |
|
|
|
} |
|
|
|
//先转map |
|
|
|
Map<String,String> nameMap = new HashMap<>(); |
|
|
|
for (SysMenuEntity sysMenuEntity : menuList){ |
|
|
|
nameMap.put(sysMenuEntity.getMenuId(), sysMenuEntity.getName()); |
|
|
|
} |
|
|
|
/* for (SysMenuEntity sysMenuEntity : menuList) { |
|
|
|
SysMenuEntity parentMenuEntity = sysMenuService.getById(sysMenuEntity.getParentId()); |
|
|
|
if (parentMenuEntity != null) { |
|
|
|
sysMenuEntity.setParentName(parentMenuEntity.getName()); |
|
|
|
} |
|
|
|
}*/ |
|
|
|
for(SysMenuEntity sysMenuEntity : menuList){ |
|
|
|
String parentId = sysMenuEntity.getParentId(); |
|
|
|
//判断是否需要第二次查询数据 |
|
|
|
if (nameMap.containsKey(parentId)){ |
|
|
|
sysMenuEntity.setParentName(nameMap.get(parentId)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return menuList; |
|
|
|
} |
|
|
|
|
|
|
|
@ -72,12 +95,25 @@ public class SysMenuController extends AbstractController { |
|
|
|
@RequiresPermissions("sys:menu:list") |
|
|
|
public List<SysMenuEntity> listLanguage(@PathVariable String language) { |
|
|
|
List<SysMenuEntity> menuList = sysMenuService.listLanguage(language); |
|
|
|
for (SysMenuEntity sysMenuEntity : menuList) { |
|
|
|
//先转map |
|
|
|
Map<String,String> nameMap = new HashMap<>(); |
|
|
|
for (SysMenuEntity sysMenuEntity : menuList){ |
|
|
|
nameMap.put(sysMenuEntity.getMenuId(), sysMenuEntity.getName()); |
|
|
|
} |
|
|
|
/*for (SysMenuEntity sysMenuEntity : menuList) { |
|
|
|
System.out.println(sysMenuEntity.getParentId()); |
|
|
|
SysMenuEntity parentMenuEntity = sysMenuService.getByIdLanguage(sysMenuEntity.getParentId(), language); |
|
|
|
if (parentMenuEntity != null) { |
|
|
|
sysMenuEntity.setParentName(parentMenuEntity.getName()); |
|
|
|
} |
|
|
|
}*/ |
|
|
|
//优化查询次数 |
|
|
|
for(SysMenuEntity sysMenuEntity : menuList){ |
|
|
|
String parentId = sysMenuEntity.getParentId(); |
|
|
|
//判断是否需要第二次查询数据 |
|
|
|
if (nameMap.containsKey(parentId)){ |
|
|
|
sysMenuEntity.setParentName(nameMap.get(parentId)); |
|
|
|
} |
|
|
|
} |
|
|
|
return menuList; |
|
|
|
} |
|
|
|
|