1.9 KiB
1.9 KiB
| name | description |
|---|---|
| entity | entity 模块技能文档——实体管理(实体表 CRUD + 实体导入 entity_import + api/entity_import.dspy),通过 load_entity() 挂载。 |
entity 模块
概述
实体管理模块,提供实体表(entity)增删改查与文件导入(entity_import 记录表)。依赖 world、scene 模块。
数据模型
entity:id / world_id(→world.id)/ scene_id(→scene.id)/ name / code / entity_type(appcodes entity_type)/ status(appcodes entity_status)/ attributes_json(text) / created_at / updated_at。唯一索引 code。entity_import:id / world_id / scene_id / file_name / total / success / fail / status(appcodes import_status)/ created_at。只读记录。
关键接口
load_entity():注册 create_entity/update_entity/delete_entity/entity_import 到 ServerEnv(含复数别名)。wwwroot/api/entity_import.dspy:文件导入 → 解析(JSON 数组或 CSV 表头)→ 逐条校验 name/code → sor.C('entity') → 统计 → sor.C('entity_import')。返回{success,total,success_count,fail,file_name}。wwwroot/api/entity_{create,update,delete}.dspy:实体 CRUD(委托 init.py 函数)。wwwroot/api/get_search_{world_id,scene_id,entity_type,status}.dspy:下拉数据源。
陷阱
- 库名禁止硬编码:.py 用
ServerEnv().get_module_dbname('entity'),.dspy 用get_module_dbname('entity')/get_sor_context(request._run_ns, 'entity')。 - dspy 内禁止 import(仅
from sqlor.filter import DBFilter例外),业务逻辑放entity/init.py并通过load_entity()导出。 sor.C()不会自动填 created_at,必须显式ns['created_at'] = curDateString()。- 实体导入记录(entity_import)只读,不可手工增删改。
依赖
- world、scene(下拉数据源 world / scene 表)
- 基础:sqlor、ahserver、bricks、appbase(appcodes)