entity 实体管理模块W-03

实体管理模块管理元景项目的实体entity数据提供实体表 CRUD、分页列表查询与实体文件导入。

功能

  • 实体表 CRUDentity 表新增/编辑/删除/详情/分页列表({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.dspyentity_create.dspyentity_update.dspyentity_delete.dspyentity_get.dspyentity_import.dspyentity_import_guard.dspyentity_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     # 模块技能文档
Description
No description provided
Readme 41 KiB