From b3def6eb10b8bde60f141473ee2b974b42e0c77b Mon Sep 17 00:00:00 2001 From: xiayebo <364530740@qq.com> Date: Fri, 16 Jan 2026 15:09:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=A6=E6=83=85=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codegen/controller/MenuController.java | 6 ++++ .../xinghe/codegen/service/MenuService.java | 5 ++++ .../service/impl/FunOperationServiceImpl.java | 4 ++- .../codegen/service/impl/MenuServiceImpl.java | 28 ++++++++++++++++++- 4 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/cczsa/xinghe/codegen/controller/MenuController.java b/src/main/java/com/cczsa/xinghe/codegen/controller/MenuController.java index 3c67415..1394629 100644 --- a/src/main/java/com/cczsa/xinghe/codegen/controller/MenuController.java +++ b/src/main/java/com/cczsa/xinghe/codegen/controller/MenuController.java @@ -12,6 +12,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -71,5 +72,10 @@ public class MenuController { return menuService.deleteFun(menuId); } + @Operation(summary = "根据ID获取菜单详情", description = "根据ID获取菜单详情") + @GetMapping("/get/{id}") + public XResult getById(@PathVariable Long id) { + return menuService.getById(id); + } } \ No newline at end of file diff --git a/src/main/java/com/cczsa/xinghe/codegen/service/MenuService.java b/src/main/java/com/cczsa/xinghe/codegen/service/MenuService.java index 7905bd1..9f15b74 100644 --- a/src/main/java/com/cczsa/xinghe/codegen/service/MenuService.java +++ b/src/main/java/com/cczsa/xinghe/codegen/service/MenuService.java @@ -47,4 +47,9 @@ public interface MenuService { */ XResult deleteFun(Long menuId); + /** + * 根据ID获取菜单详情 + */ + XResult getById(Long id); + } \ No newline at end of file diff --git a/src/main/java/com/cczsa/xinghe/codegen/service/impl/FunOperationServiceImpl.java b/src/main/java/com/cczsa/xinghe/codegen/service/impl/FunOperationServiceImpl.java index e933dfe..d0d5ff8 100644 --- a/src/main/java/com/cczsa/xinghe/codegen/service/impl/FunOperationServiceImpl.java +++ b/src/main/java/com/cczsa/xinghe/codegen/service/impl/FunOperationServiceImpl.java @@ -45,6 +45,7 @@ public class FunOperationServiceImpl implements FunOperationService { */ @Override public XResult> query(FunOperationQueryReq req, Boolean isTenant) { + boolean isTenantNotNull = isTenant != null; FunOperationDef funOperationDef = FunOperationDef.FUN_OPERATION_ENTITY; FunModuleDef funModuleDef = FunModuleDef.FUN_MODULE_ENTITY; FunItemDef funItemDef = FunItemDef.FUN_ITEM_ENTITY; @@ -57,7 +58,8 @@ public class FunOperationServiceImpl implements FunOperationService { .eq(FunOperationEntity::getItemId, req.getItemId(), req.getItemId() != null) .like(FunOperationEntity::getOperationCode, req.getOperationCode(), StrUtil.isNotBlank(req.getOperationCode())) .like(FunOperationEntity::getFunName, req.getFunName(), StrUtil.isNotBlank(req.getFunName())) - .eq(FunItemEntity::getIsTenant, isTenant, isTenant != null) + .eq(FunItemEntity::getIsTenant, isTenant, isTenantNotNull) + .eq(FunOperationEntity::getIsGreenLight,false,isTenantNotNull) // 直接放行,不用提供绑定 .orderBy(FunOperationEntity::getSortOrder, false); List funOperationQueryRes = funOperationMapper.selectListByQueryAs(queryWrapper, FunOperationQueryRes.class); return XResult.ok(funOperationQueryRes); diff --git a/src/main/java/com/cczsa/xinghe/codegen/service/impl/MenuServiceImpl.java b/src/main/java/com/cczsa/xinghe/codegen/service/impl/MenuServiceImpl.java index cd5b8fc..3b7a487 100644 --- a/src/main/java/com/cczsa/xinghe/codegen/service/impl/MenuServiceImpl.java +++ b/src/main/java/com/cczsa/xinghe/codegen/service/impl/MenuServiceImpl.java @@ -2,7 +2,6 @@ package com.cczsa.xinghe.codegen.service.impl; import com.cczsa.xinghe.codegen.entity.FunItemEntity; import com.cczsa.xinghe.codegen.entity.FunOperationEntity; -import com.cczsa.xinghe.codegen.entity.MenuBindFunEntity; import com.cczsa.xinghe.codegen.entity.MenuEntity; import com.cczsa.xinghe.codegen.entity.req.menu.MenuAddReq; import com.cczsa.xinghe.codegen.entity.req.menu.MenuBindFunReq; @@ -258,4 +257,31 @@ public class MenuServiceImpl implements MenuService { return XResult.ok(); } + /** + * 根据ID获取菜单详情 + */ + @Override + public XResult getById(Long id) { + MenuDef menuDef = MenuDef.MENU_ENTITY; + FunOperationDef funOperationDef = FunOperationDef.FUN_OPERATION_ENTITY; + QueryWrapper query = new QueryWrapper(); + query.select( + menuDef.ALL_COLUMNS, + funOperationDef.ID.as("funId"), + funOperationDef.FUN_NAME.as("funName") + ) + .from(menuDef) + .leftJoin(funOperationDef).on(menuDef.FUN_ID.eq(funOperationDef.ID)) + .eq(MenuEntity::getId, id); + MenuQueryRes menuQueryRes = menuMapper.selectOneByQueryAs(query, MenuQueryRes.class); + if (menuQueryRes == null) { + return XResult.failed("菜单不存在"); + } + QueryWrapper wrapper = QueryWrapper.create(); + wrapper.eq(MenuEntity::getFunId, menuQueryRes.getFunId()); + long l = menuMapper.selectCountByQuery(wrapper); + menuQueryRes.setExistNum(Math.toIntExact(l)); + return XResult.ok(menuQueryRes); + } + } \ No newline at end of file