world 世界管理模块

世界定义与管理模块(W-01 世界管理),平台入口域根模块。

功能

  • world 表 CRUD(创建自动编码 W+时间戳+随机4位)
  • 列表查询:sqlPaging 分页 + 复合索引(org_id+mode+created_at)过滤,返回 {list, total}
  • world.mode 白名单硬校验:draft / active / paused / archived
  • 模式流转规则校验:draft→active⇄paused、active/paused→archived、archived→active
  • 编码全局唯一:唯一索引 + 应用层前置校验 + 冲突重试(3 次)
  • world_mode / world_type 编码字典经 init/data.json 幂等落库(appcodes + appcodes_kv)

数据表

  • world:世界定义表(models/world.json,四段式 summary/fields/indexes/codes)
  • 编码字典:world_mode(draft/active/paused/archived)、world_type(game/simulation/education/business/social)

接口

REST 统一前缀 /api/*,错误结构 {code, message, field, detail},分页 {list, total}:

  • POST/GET /world/api/create_world.dspy 创建(自动编码、mode 校验)
  • POST /world/api/world_update.dspy 更新(mode 流转校验、code 唯一校验)
  • POST /world/api/world_delete.dspy 删除
  • GET /world/api/get_world.dspy 单条查询
  • GET /world/api/list_worlds.dspy 列表(分页 + 过滤)
  • POST /world/api/set_world_mode.dspy 模式切换
  • GET /world/api/get_search_status.dspy / get_search_world_type.dspy 下拉数据源

安装与集成

  1. pip install .(pyproject.toml,依赖 sqlor / bricks_for_python)
  2. 宿主应用 from world.init import load_world,init() 中 load_world() 挂载
  3. 建表:build.sh 中 json2ddl 依据 models/world.json 生成 DDL;编码字典经 init/data.json 幂等落库
  4. RBAC:运行 scripts/load_path.py(显式路径注册,禁通配符)
  5. 前端:wwwroot/index.ui(入口)、menu.ui(菜单)、CRUD 由 json/world.json 经 xls2ui 生成

目录结构

world/
├── world/            # Python 包(world.py 业务逻辑 / init.py 注册 / __init__.py 导出)
├── wwwroot/          # index.ui、menu.ui、api/*.dspy
├── models/world.json # 表定义(四段式)
├── json/world.json   # CRUD 定义(tblname+params)
├── init/data.json    # 编码字典种子数据
├── scripts/load_path.py  # RBAC 注册
├── skill/SKILL.md    # 模块技能文档
└── pyproject.toml    # 打包
Description
No description provided
Readme 36 KiB