|
@@ -28,7 +28,6 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
|
|
|
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
|
|
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
|
|
|
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
|
|
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
-import javax.annotation.Resource;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
@@ -75,6 +74,7 @@ public class MenuApiController {
|
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,0);
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,0);
|
|
|
} else {
|
|
} else {
|
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,dto.getServiceModeType());
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,dto.getServiceModeType());
|
|
|
|
|
+ applyAppIdFilter(queryWrapper, dto.getAppId());
|
|
|
}
|
|
}
|
|
|
queryWrapper.orderByAsc(MenuEntity::getSort);
|
|
queryWrapper.orderByAsc(MenuEntity::getSort);
|
|
|
List<MenuEntity> menus = menuService.list(queryWrapper);
|
|
List<MenuEntity> menus = menuService.list(queryWrapper);
|
|
@@ -102,6 +102,7 @@ public class MenuApiController {
|
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,0);
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,0);
|
|
|
} else {
|
|
} else {
|
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,dto.getServiceModeType());
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,dto.getServiceModeType());
|
|
|
|
|
+ applyAppIdFilter(queryWrapper, dto.getAppId());
|
|
|
}
|
|
}
|
|
|
List<MenuEntity> menus = menuService.list(queryWrapper);
|
|
List<MenuEntity> menus = menuService.list(queryWrapper);
|
|
|
List<RouterVo> routerVos = menuToRouter(menus);
|
|
List<RouterVo> routerVos = menuToRouter(menus);
|
|
@@ -147,13 +148,18 @@ public class MenuApiController {
|
|
|
|
|
|
|
|
@ApiOperation("查询菜单Tree")
|
|
@ApiOperation("查询菜单Tree")
|
|
|
@PostMapping("listResTree")
|
|
@PostMapping("listResTree")
|
|
|
- public Result listResTree() {
|
|
|
|
|
|
|
+ public Result listResTree(@RequestBody(required = false) MenuParamDTO dto) {
|
|
|
try {
|
|
try {
|
|
|
LambdaQueryWrapper<MenuEntity> queryWrapper = new LambdaQueryWrapper();
|
|
LambdaQueryWrapper<MenuEntity> queryWrapper = new LambdaQueryWrapper();
|
|
|
queryWrapper.eq(MenuEntity::getIsDelete,0);
|
|
queryWrapper.eq(MenuEntity::getIsDelete,0);
|
|
|
queryWrapper.eq(MenuEntity::getEnabled,1);
|
|
queryWrapper.eq(MenuEntity::getEnabled,1);
|
|
|
queryWrapper.orderByAsc(MenuEntity::getSort);
|
|
queryWrapper.orderByAsc(MenuEntity::getSort);
|
|
|
- queryWrapper.eq(MenuEntity::getServiceModeType,0);
|
|
|
|
|
|
|
+ if (Objects.isNull(dto)) {
|
|
|
|
|
+ queryWrapper.eq(MenuEntity::getServiceModeType,0);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ queryWrapper.eq(MenuEntity::getServiceModeType, dto.getServiceModeType());
|
|
|
|
|
+ applyAppIdFilter(queryWrapper, dto.getAppId());
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
List<MenuEntity> menus = menuService.list(queryWrapper);
|
|
List<MenuEntity> menus = menuService.list(queryWrapper);
|
|
|
if(CollectionUtils.isEmpty(menus)) {
|
|
if(CollectionUtils.isEmpty(menus)) {
|
|
@@ -198,6 +204,7 @@ public class MenuApiController {
|
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,0);
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,0);
|
|
|
} else {
|
|
} else {
|
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,dto.getServiceModeType());
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,dto.getServiceModeType());
|
|
|
|
|
+ applyAppIdFilter(queryWrapper, dto.getAppId());
|
|
|
}
|
|
}
|
|
|
List<MenuEntity> menus = menuService.list(queryWrapper);
|
|
List<MenuEntity> menus = menuService.list(queryWrapper);
|
|
|
if(CollectionUtils.isEmpty(menus)) {
|
|
if(CollectionUtils.isEmpty(menus)) {
|
|
@@ -237,8 +244,10 @@ public class MenuApiController {
|
|
|
try {
|
|
try {
|
|
|
IPage<MenuEntity> page = new Page<>(dto.getPageIndex(),dto.getPageSize());
|
|
IPage<MenuEntity> page = new Page<>(dto.getPageIndex(),dto.getPageSize());
|
|
|
LambdaQueryWrapper<MenuEntity> queryWrapper = new LambdaQueryWrapper();
|
|
LambdaQueryWrapper<MenuEntity> queryWrapper = new LambdaQueryWrapper();
|
|
|
- if (Objects.nonNull(dto)) {
|
|
|
|
|
|
|
+ if
|
|
|
|
|
+ (Objects.nonNull(dto)) {
|
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,dto.getServiceModeType());
|
|
queryWrapper.eq(MenuEntity::getServiceModeType,dto.getServiceModeType());
|
|
|
|
|
+ applyAppIdFilter(queryWrapper, dto.getAppId());
|
|
|
}
|
|
}
|
|
|
IPage<MenuEntity> menus = menuService.page(page,queryWrapper);
|
|
IPage<MenuEntity> menus = menuService.page(page,queryWrapper);
|
|
|
return Result.ok(menus);
|
|
return Result.ok(menus);
|
|
@@ -254,6 +263,9 @@ public class MenuApiController {
|
|
|
if (Objects.isNull(menu.getPid())) {
|
|
if (Objects.isNull(menu.getPid())) {
|
|
|
menu.setPid(0L);
|
|
menu.setPid(0L);
|
|
|
}
|
|
}
|
|
|
|
|
+ if (Long.valueOf(0L).equals(menu.getPid()) && menu.getAppId() == null) {
|
|
|
|
|
+ return Result.error("顶级菜单(pid=0)必须指定 appId");
|
|
|
|
|
+ }
|
|
|
convertMenuCode(menu);
|
|
convertMenuCode(menu);
|
|
|
return Result.ok(menuService.saveOrUpdate(menu));
|
|
return Result.ok(menuService.saveOrUpdate(menu));
|
|
|
}
|
|
}
|
|
@@ -473,7 +485,7 @@ public class MenuApiController {
|
|
|
|
|
|
|
|
@ApiOperation("查询菜单所有菜单")
|
|
@ApiOperation("查询菜单所有菜单")
|
|
|
@PostMapping("allMenulist")
|
|
@PostMapping("allMenulist")
|
|
|
- public Result allMenulist(String menuName, Integer[] types) {
|
|
|
|
|
|
|
+ public Result allMenulist(String menuName, Integer[] types, String appId) {
|
|
|
if(types == null) {
|
|
if(types == null) {
|
|
|
types = new Integer[]{1, 2};
|
|
types = new Integer[]{1, 2};
|
|
|
}
|
|
}
|
|
@@ -482,6 +494,7 @@ public class MenuApiController {
|
|
|
queryWrapper.eq(MenuEntity::getIsDelete,0);
|
|
queryWrapper.eq(MenuEntity::getIsDelete,0);
|
|
|
queryWrapper.eq(MenuEntity::getEnabled,1);
|
|
queryWrapper.eq(MenuEntity::getEnabled,1);
|
|
|
queryWrapper.in(MenuEntity::getMenuType, Arrays.asList(types));
|
|
queryWrapper.in(MenuEntity::getMenuType, Arrays.asList(types));
|
|
|
|
|
+ applyAppIdFilter(queryWrapper, appId);
|
|
|
queryWrapper.likeLeft(StringUtils.isNotEmpty(menuName), MenuEntity::getMenuName, menuName);
|
|
queryWrapper.likeLeft(StringUtils.isNotEmpty(menuName), MenuEntity::getMenuName, menuName);
|
|
|
queryWrapper.likeRight(StringUtils.isNotEmpty(menuName), MenuEntity::getMenuName, menuName);
|
|
queryWrapper.likeRight(StringUtils.isNotEmpty(menuName), MenuEntity::getMenuName, menuName);
|
|
|
queryWrapper.orderByAsc(MenuEntity::getSort);
|
|
queryWrapper.orderByAsc(MenuEntity::getSort);
|
|
@@ -502,4 +515,26 @@ public class MenuApiController {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 从 DTO 字符串解析应用维度;非空且合法时在查询上追加 app_id 条件(要求库表 menu.app_id 与数据一致)。
|
|
|
|
|
+ */
|
|
|
|
|
+ private void applyAppIdFilter(LambdaQueryWrapper<MenuEntity> queryWrapper, String appIdRaw) {
|
|
|
|
|
+ Long appId = parseAppId(appIdRaw);
|
|
|
|
|
+ if (appId != null) {
|
|
|
|
|
+ queryWrapper.eq(MenuEntity::getAppId, appId);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private Long parseAppId(String appIdRaw) {
|
|
|
|
|
+ if (StrUtil.isBlank(appIdRaw)) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ try {
|
|
|
|
|
+ return Long.parseLong(appIdRaw.trim());
|
|
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
|
|
+ log.warn("非法 appId,已忽略: {}", appIdRaw);
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|