功能增加参数

This commit is contained in:
2026-01-13 18:00:39 +08:00
parent 924db70d84
commit cbc0c8f4dd
10 changed files with 104 additions and 97 deletions

View File

@@ -71,4 +71,24 @@ public class FunItemEntity extends BaseEntity implements Serializable {
*/ */
private Long itemId; private Long itemId;
/**
* 是否需要请求参数
*/
private Boolean isReqParams;
/**
* 是否需要响应参数
*/
private Boolean isResParams;
/**
* 是否分页
*/
private Boolean isPage;
/**
* 路径参数与请求参数true互斥
*/
private String pathParams;
} }

View File

@@ -66,24 +66,4 @@ public class FunModuleEntity extends BaseEntity implements Serializable {
*/ */
private Integer sortOrder; private Integer sortOrder;
/**
* 是否需要请求参数
*/
private Boolean isReqParams;
/**
* 是否需要响应参数
*/
private Boolean isResParams;
/**
* 是否分页
*/
private Boolean isPage;
/**
* 路径参数与请求参数true互斥
*/
private String pathParams;
} }

View File

@@ -61,4 +61,20 @@ public class FunItemSaveUpdateReq implements Serializable {
@Max(value = 99, message = "功能ID必须大于等于10小于等于99") @Max(value = 99, message = "功能ID必须大于等于10小于等于99")
private Long itemId; private Long itemId;
@NotNull(message = "是否需要请求参数不能为空")
@Schema(description = "是否需要请求参数")
private Boolean isReqParams;
@NotNull(message = "是否需要响应参数不能为空")
@Schema(description = "是否需要响应参数")
private Boolean isResParams;
@NotNull(message = "是否分页不能为空")
@Schema(description = "是否分页")
private Boolean isPage;
@Pattern(regexp = "^[a-zA-Z]*$", message = "路径参数只能包含英文字符")
@Schema(description = "路径参数")
private String pathParams;
} }

View File

@@ -55,20 +55,4 @@ public class FunModuleSaveUpdateReq implements Serializable {
@Schema(description = "排序") @Schema(description = "排序")
private Integer sortOrder; private Integer sortOrder;
@NotNull(message = "是否需要请求参数不能为空")
@Schema(description = "是否需要请求参数")
private Boolean isReqParams;
@NotNull(message = "是否需要响应参数不能为空")
@Schema(description = "是否需要响应参数")
private Boolean isResParams;
@NotNull(message = "是否分页不能为空")
@Schema(description = "是否分页")
private Boolean isPage;
@Pattern(regexp = "^[a-zA-Z]*$", message = "路径参数只能包含英文字符")
@Schema(description = "路径参数")
private String pathParams;
} }

View File

@@ -48,4 +48,16 @@ public class FunItemQueryRes implements Serializable {
@Schema(description = "功能ID") @Schema(description = "功能ID")
private Long itemId; private Long itemId;
@Schema(description = "是否需要请求参数")
private Boolean isReqParams;
@Schema(description = "是否需要响应参数")
private Boolean isResParams;
@Schema(description = "是否分页")
private Boolean isPage;
@Schema(description = "路径参数")
private String pathParams;
} }

View File

@@ -43,16 +43,4 @@ public class FunModuleQueryRes implements Serializable {
@Schema(description = "排序") @Schema(description = "排序")
private Integer sortOrder; private Integer sortOrder;
@Schema(description = "是否需要请求参数")
private Boolean isReqParams;
@Schema(description = "是否需要响应参数")
private Boolean isResParams;
@Schema(description = "是否分页")
private Boolean isPage;
@Schema(description = "路径参数")
private String pathParams;
} }

View File

@@ -6,7 +6,7 @@ import com.mybatisflex.core.table.TableDef;
import java.io.Serial; import java.io.Serial;
/** /**
* 功能 表定义层。 * 功能项配置表 表定义层。
* *
* @author My * @author My
* @since 0.0.1 * @since 0.0.1
@@ -17,15 +17,20 @@ public class FunItemDef extends TableDef {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 功能 * 功能项配置表
*/ */
public static final FunItemDef FUN_ITEM_ENTITY = new FunItemDef(); public static final FunItemDef FUN_ITEM_ENTITY = new FunItemDef();
/** /**
* id * 主键ID
*/ */
public final QueryColumn ID = new QueryColumn(this, "id"); public final QueryColumn ID = new QueryColumn(this, "id");
/**
* 是否分页
*/
public final QueryColumn IS_PAGE = new QueryColumn(this, "is_page");
/** /**
* 功能ID * 功能ID
*/ */
@@ -61,6 +66,21 @@ public class FunItemDef extends TableDef {
*/ */
public final QueryColumn SORT_ORDER = new QueryColumn(this, "sort_order"); public final QueryColumn SORT_ORDER = new QueryColumn(this, "sort_order");
/**
* 路径参数与请求参数true互斥
*/
public final QueryColumn PATH_PARAMS = new QueryColumn(this, "path_params");
/**
* 是否需要请求参数
*/
public final QueryColumn IS_REQ_PARAMS = new QueryColumn(this, "is_req_params");
/**
* 是否需要响应参数
*/
public final QueryColumn IS_RES_PARAMS = new QueryColumn(this, "is_res_params");
/** /**
* 所有字段。 * 所有字段。
*/ */
@@ -69,7 +89,7 @@ public class FunItemDef extends TableDef {
/** /**
* 默认字段,不包含逻辑删除或者 large 等字段。 * 默认字段,不包含逻辑删除或者 large 等字段。
*/ */
public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, MODULE_ID, ITEM_NAME, ITEM_CODE, IS_TENANT, DESCRIBE, SORT_ORDER, ITEM_ID}; public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, MODULE_ID, ITEM_NAME, ITEM_CODE, ITEM_ID, IS_TENANT, DESCRIBE, SORT_ORDER, IS_REQ_PARAMS, IS_RES_PARAMS, IS_PAGE, PATH_PARAMS};
public FunItemDef() { public FunItemDef() {
super("", "cg_fun_item"); super("", "cg_fun_item");

View File

@@ -17,7 +17,7 @@ public class MenuDef extends TableDef {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 功能模块配置表 * 菜单
*/ */
public static final MenuDef MENU_ENTITY = new MenuDef(); public static final MenuDef MENU_ENTITY = new MenuDef();
@@ -27,54 +27,42 @@ public class MenuDef extends TableDef {
public final QueryColumn ID = new QueryColumn(this, "id"); public final QueryColumn ID = new QueryColumn(this, "id");
/** /**
* 是否分页 * 菜单图标
*/ */
public final QueryColumn IS_PAGE = new QueryColumn(this, "is_page"); public final QueryColumn ICON = new QueryColumn(this, "icon");
/** /**
* 描述 * 路由路径
*/ */
public final QueryColumn DESCRIBE = new QueryColumn(this, "describe"); public final QueryColumn PATH = new QueryColumn(this, "path");
/** /**
* 排序 * 是否隐藏
*/ */
public final QueryColumn IS_HIDE = new QueryColumn(this, "is_hide");
/**
* 是否租户
*/
public final QueryColumn IS_TENANT = new QueryColumn(this, "is_tenant");
/**
* 菜单名称
*/
public final QueryColumn MENU_NAME = new QueryColumn(this, "menu_name");
/**
* 父菜单ID
*/
public final QueryColumn PARENT_ID = new QueryColumn(this, "parent_id");
public final QueryColumn SORT_ORDER = new QueryColumn(this, "sort_order"); public final QueryColumn SORT_ORDER = new QueryColumn(this, "sort_order");
/** /**
* 模块编码 * 客户端类型0 PC端1 小程序端2 H5端
*/ */
public final QueryColumn MODULE_CODE = new QueryColumn(this, "module_code"); public final QueryColumn CLIENT_TYPE = new QueryColumn(this, "client_type");
/**
* 模块名称
*/
public final QueryColumn MODULE_NAME = new QueryColumn(this, "module_name");
/**
* 路径参数与请求参数true互斥
*/
public final QueryColumn PATH_PARAMS = new QueryColumn(this, "path_params");
/**
* 是否需要请求参数
*/
public final QueryColumn IS_REQ_PARAMS = new QueryColumn(this, "is_req_params");
/**
* 是否需要响应参数
*/
public final QueryColumn IS_RES_PARAMS = new QueryColumn(this, "is_res_params");
/**
* 包名称
*/
public final QueryColumn PACKAGE_NAME = new QueryColumn(this, "package_name");
/**
* 参数包名
*/
public final QueryColumn API_PACKAGE_NAME = new QueryColumn(this, "api_package_name");
/** /**
* 所有字段。 * 所有字段。
@@ -84,10 +72,10 @@ public class MenuDef extends TableDef {
/** /**
* 默认字段,不包含逻辑删除或者 large 等字段。 * 默认字段,不包含逻辑删除或者 large 等字段。
*/ */
public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, MODULE_NAME, MODULE_CODE, DESCRIBE, PACKAGE_NAME, API_PACKAGE_NAME, SORT_ORDER, IS_REQ_PARAMS, IS_RES_PARAMS, IS_PAGE, PATH_PARAMS}; public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, CLIENT_TYPE, MENU_NAME, PARENT_ID, PATH, ICON, IS_TENANT, IS_HIDE, SORT_ORDER};
public MenuDef() { public MenuDef() {
super("", "cg_fun_module"); super("", "cg_menu");
} }
private MenuDef(String schema, String name, String alisa) { private MenuDef(String schema, String name, String alisa) {
@@ -96,8 +84,7 @@ public class MenuDef extends TableDef {
public MenuDef as(String alias) { public MenuDef as(String alias) {
String key = getNameWithSchema() + "." + alias; String key = getNameWithSchema() + "." + alias;
return getCache(key, k -> new MenuDef("", "cg_fun_module", alias)); return getCache(key, k -> new MenuDef("", "cg_menu", alias));
} }
} }

View File

@@ -64,6 +64,9 @@ public class FunItemServiceImpl implements FunItemService {
@Transactional @Transactional
@Override @Override
public XResult<Void> saveUpdate(FunItemSaveUpdateReq req) { public XResult<Void> saveUpdate(FunItemSaveUpdateReq req) {
if (req.getIsReqParams() && StrUtil.isNotBlank(req.getPathParams())) {
return XResult.failed("请求参数和路径参数冲突");
}
Long id = req.getId(); Long id = req.getId();
if (id != null) { if (id != null) {
// 删除原数据 // 删除原数据

View File

@@ -65,9 +65,6 @@ public class FunModuleServiceImpl implements FunModuleService {
@Transactional @Transactional
@Override @Override
public XResult<Void> saveUpdate(FunModuleSaveUpdateReq req) { public XResult<Void> saveUpdate(FunModuleSaveUpdateReq req) {
if (req.getIsReqParams() && StrUtil.isNotBlank(req.getPathParams())) {
return XResult.failed("请求参数和路径参数冲突");
}
// 模块编码不能重复 // 模块编码不能重复
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq(FunModuleEntity::getModuleCode, req.getModuleCode()); queryWrapper.eq(FunModuleEntity::getModuleCode, req.getModuleCode());