yumoqing f70e8e4d26 fix: 全面修复所有dspy文件和数据库访问模式
dspy文件修复(27个entcms + 10个dingdingflow):
- 删除所有import语句(dspy环境已预加载)
- 替换 sor = DBPools().sqlorContext() 为 async with db.sqlorContext() as sor:
- 替换 print(json.dumps()) 为 return
- 替换 uuid() 为 getID()
- 替换 datetime.datetime.now() 为 datetime.now()
- 修复 get_user() 缺少 await
- 删除shebang/docstrings等无关内容
- 修正缩进

Python模块修复:
- entcms/init.py: DBNAME从'entcms'改为'ocai_cms'
- app/global_func.py: get_module_dbname返回'ocai_cms'而非'sage'
- 所有函数使用 async with db.sqlorContext() as sor: 正确模式
2026-06-03 18:04:53 +08:00
2026-06-03 16:34:00 +08:00
2026-06-03 16:34:00 +08:00
2026-06-03 16:34:00 +08:00
2026-06-03 16:34:00 +08:00

开元云科技 - 企业官网CMS系统

企业官网内容管理系统 + 钉钉审批流程基于Sage/bricks-framework开发。

模块

模块 说明
entcms 企业CMS - 新闻/案例/产品/Banner/线索管理
dingdingflow 钉钉审批流程 - 内容发布审批工作流

目录结构

cms/
├── conf/config.json          # 应用配置
├── wwwroot/                   # 前端静态文件(统一目录)
│   ├── index.ui, news.ui, ... # 企业官网页面
│   ├── api/*.dspy             # CMS后端API
│   └── dingdingflow/          # 钉钉审批模块前端
│       ├── index.ui, menu.ui
│       └── api/*.dspy
├── entcms/                    # 企业CMS Python模块
├── dingdingflow/              # 钉钉审批Python模块
├── bricks -> pkgs/bricks/dist # 前端框架(符号链接)
├── build.sh                   # 构建脚本
├── start.sh / stop.sh         # 启停脚本
├── init_superuser_permissions.py  # superuser权限初始化
├── init_any_permissions.py    # any权限初始化
└── scripts/init_superuser.py  # 超级用户账号初始化

快速开始

# 1. 构建并安装
cd ~/repos/cms && ./build.sh

# 2. 配置RBAC权限
cd ~/repos/sage
./py3/bin/python ~/repos/cms/entcms/scripts/load_path.py
./py3/bin/python ~/repos/cms/dingdingflow/scripts/load_path.py

# 3. 重启Sage
./stop.sh && ./start.sh

文档

环境变量 (dingdingflow)

DINGTALK_APP_KEY=xxx
DINGTALK_APP_SECRET=xxx
DINGTALK_AGENT_ID=xxx
Description
No description provided
Readme 245 KiB
Languages
Python 99.9%
Shell 0.1%