package com.iailab.module.infra.service.codegen; import com.iailab.framework.common.pojo.PageResult; import com.iailab.module.infra.controller.admin.codegen.vo.CodegenCreateListReqVO; import com.iailab.module.infra.controller.admin.codegen.vo.CodegenUpdateReqVO; import com.iailab.module.infra.controller.admin.codegen.vo.table.CodegenTablePageReqVO; import com.iailab.module.infra.controller.admin.codegen.vo.table.DatabaseTableRespVO; import com.iailab.module.infra.dal.dataobject.codegen.CodegenColumnDO; import com.iailab.module.infra.dal.dataobject.codegen.CodegenTableDO; import java.util.List; import java.util.Map; /** * 代码生成 Service 接口 * * @author iailab */ public interface CodegenService { /** * 基于数据库的表结构,创建代码生成器的表定义 * * @param userId 用户编号 * @param reqVO 表信息 * @return 创建的表定义的编号数组 */ List createCodegenList(Long userId, CodegenCreateListReqVO reqVO); /** * 更新数据库的表和字段定义 * * @param updateReqVO 更新信息 */ void updateCodegen(CodegenUpdateReqVO updateReqVO); /** * 基于数据库的表结构,同步数据库的表和字段定义 * * @param tableId 表编号 */ void syncCodegenFromDB(Long tableId); /** * 删除数据库的表和字段定义 * * @param tableId 数据编号 */ void deleteCodegen(Long tableId); /** * 获得表定义列表 * * @param dataSourceConfigId 数据源配置的编号 * @return 表定义列表 */ List getCodegenTableList(Long dataSourceConfigId); /** * 获得表定义分页 * * @param pageReqVO 分页条件 * @return 表定义分页 */ PageResult getCodegenTablePage(CodegenTablePageReqVO pageReqVO); /** * 获得表定义 * * @param id 表编号 * @return 表定义 */ CodegenTableDO getCodegenTable(Long id); /** * 获得指定表的字段定义数组 * * @param tableId 表编号 * @return 字段定义数组 */ List getCodegenColumnListByTableId(Long tableId); /** * 执行指定表的代码生成 * * @param tableId 表编号 * @return 生成结果。key 为文件路径,value 为对应的代码内容 */ Map generationCodes(Long tableId); /** * 获得数据库自带的表定义列表 * * @param dataSourceConfigId 数据源的配置编号 * @param name 表名称 * @param comment 表描述 * @return 表定义列表 */ List getDatabaseTableList(Long dataSourceConfigId, String name, String comment); }