# entity 实体管理模块(W-03) 实体管理模块:管理元景项目的实体(entity)数据,提供实体表 CRUD、分页列表查询与实体文件导入。 ## 功能 - **实体表 CRUD**:`entity` 表新增/编辑/删除/详情/分页列表(`{list, total}`)。 - **列表查询**:按关键字、实体类型、状态、场景过滤,分页返回 `{list, total, page, rows}`。 - **实体导入**:`api/entity_import.dspy` 文件导入(CSV 首行表头 / JSON 数组),两阶段处理: 1. 全量校验(编码必填/唯一、类型/状态字典白名单、场景/世界存在性)——任一行非法整批拦截,不落库; 2. 批量插入(同批以 `import_id` 标记),插入异常按 `import_id` 补偿回滚,保证无脏数据。 - **导入记录**:`entity_import`(批次)+ `entity_import_log`(逐行明细)系统生成,只读,禁止手工增删改。 - **编码字典**:`entity_type`(实体类型)、`common_status`(通用状态)、`import_status`(导入状态)经 `init/data.json` 幂等落库到 appcodes/appcodes_kv。 ## 数据表 | 表 | 说明 | |----|------| | `entity` | 实体表(entity_code 唯一,entity_type 字典,scene_id/world_id 逻辑关联 codes 段,不加外键) | | `entity_import` | 实体导入批次记录(import_no 唯一,status 字典) | | `entity_import_log` | 实体导入逐行明细日志(import_id 关联批次) | ## 接口约定 - REST 统一前缀 `/api/*`:`/entity/api/entity_list.dspy`、`entity_create.dspy`、`entity_update.dspy`、`entity_delete.dspy`、`entity_get.dspy`、`entity_import.dspy`、`entity_import_guard.dspy`、`entity_import_list.dspy`。 - 错误结构统一:`{code, message, field, detail}`;分页结构统一:`{list, total}`。 - 非法输入 100% 拦截,不落库。 ## 集成 通过 `load_entity()` 挂载到宿主应用(`app/{应用名}.py` 的 init() 中调用并注册 `get_module_dbname('entity')`),库名禁止硬编码。前端页面:`wwwroot/index.ui`(入口导航)、`wwwroot/import_page.ui`(导入页)。 ## 目录结构 ``` modules/entity/ ├── entity/ # Python 包(entity/__init__.py + entity/init.py) ├── wwwroot/ # index.ui / import_page.ui / api/*.dspy / i18n/ ├── models/ # entity / entity_import / entity_import_log 表定义 ├── json/ # entity / entity_import CRUD 定义 ├── init/data.json # 编码字典种子(appcodes) ├── scripts/load_path.py # RBAC 路径注册 └── skill/SKILL.md # 模块技能文档 ```