添加详情接口

This commit is contained in:
2026-01-16 15:09:23 +08:00
parent 9ae7b537cc
commit b3def6eb10
4 changed files with 41 additions and 2 deletions

View File

@@ -12,6 +12,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.DeleteMapping; 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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.PutMapping;
@@ -71,5 +72,10 @@ public class MenuController {
return menuService.deleteFun(menuId); return menuService.deleteFun(menuId);
} }
@Operation(summary = "根据ID获取菜单详情", description = "根据ID获取菜单详情")
@GetMapping("/get/{id}")
public XResult<MenuQueryRes> getById(@PathVariable Long id) {
return menuService.getById(id);
}
} }

View File

@@ -47,4 +47,9 @@ public interface MenuService {
*/ */
XResult<Void> deleteFun(Long menuId); XResult<Void> deleteFun(Long menuId);
/**
* 根据ID获取菜单详情
*/
XResult<MenuQueryRes> getById(Long id);
} }

View File

@@ -45,6 +45,7 @@ public class FunOperationServiceImpl implements FunOperationService {
*/ */
@Override @Override
public XResult<List<FunOperationQueryRes>> query(FunOperationQueryReq req, Boolean isTenant) { public XResult<List<FunOperationQueryRes>> query(FunOperationQueryReq req, Boolean isTenant) {
boolean isTenantNotNull = isTenant != null;
FunOperationDef funOperationDef = FunOperationDef.FUN_OPERATION_ENTITY; FunOperationDef funOperationDef = FunOperationDef.FUN_OPERATION_ENTITY;
FunModuleDef funModuleDef = FunModuleDef.FUN_MODULE_ENTITY; FunModuleDef funModuleDef = FunModuleDef.FUN_MODULE_ENTITY;
FunItemDef funItemDef = FunItemDef.FUN_ITEM_ENTITY; FunItemDef funItemDef = FunItemDef.FUN_ITEM_ENTITY;
@@ -57,7 +58,8 @@ public class FunOperationServiceImpl implements FunOperationService {
.eq(FunOperationEntity::getItemId, req.getItemId(), req.getItemId() != null) .eq(FunOperationEntity::getItemId, req.getItemId(), req.getItemId() != null)
.like(FunOperationEntity::getOperationCode, req.getOperationCode(), StrUtil.isNotBlank(req.getOperationCode())) .like(FunOperationEntity::getOperationCode, req.getOperationCode(), StrUtil.isNotBlank(req.getOperationCode()))
.like(FunOperationEntity::getFunName, req.getFunName(), StrUtil.isNotBlank(req.getFunName())) .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); .orderBy(FunOperationEntity::getSortOrder, false);
List<FunOperationQueryRes> funOperationQueryRes = funOperationMapper.selectListByQueryAs(queryWrapper, FunOperationQueryRes.class); List<FunOperationQueryRes> funOperationQueryRes = funOperationMapper.selectListByQueryAs(queryWrapper, FunOperationQueryRes.class);
return XResult.ok(funOperationQueryRes); return XResult.ok(funOperationQueryRes);

View File

@@ -2,7 +2,6 @@ package com.cczsa.xinghe.codegen.service.impl;
import com.cczsa.xinghe.codegen.entity.FunItemEntity; import com.cczsa.xinghe.codegen.entity.FunItemEntity;
import com.cczsa.xinghe.codegen.entity.FunOperationEntity; 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.MenuEntity;
import com.cczsa.xinghe.codegen.entity.req.menu.MenuAddReq; import com.cczsa.xinghe.codegen.entity.req.menu.MenuAddReq;
import com.cczsa.xinghe.codegen.entity.req.menu.MenuBindFunReq; import com.cczsa.xinghe.codegen.entity.req.menu.MenuBindFunReq;
@@ -258,4 +257,31 @@ public class MenuServiceImpl implements MenuService {
return XResult.ok(); return XResult.ok();
} }
/**
* 根据ID获取菜单详情
*/
@Override
public XResult<MenuQueryRes> 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);
}
} }