5.2 KiB
5.2 KiB
Integrated CRM 部署指南
1. 环境准备
- Python 3.10+
- MySQL 5.7+(需有 CREATE DATABASE 权限的管理员账号)
- Git
2. 一键部署
只需克隆主应用并运行 build.sh,其余模块自动克隆、数据库自动配置:
git clone git@git.opencomputing.cn:yumoqing/integrated_crm_app.git
cd integrated_crm_app
chmod +x build.sh
./build.sh
构建脚本会自动完成:
- 创建虚拟环境(py3/)
- 安装核心依赖
- 克隆所有 11 个模块到 pkgs/(5个引用模块 + 6个业务模块)
- 生成数据库 DDL 和 CRUD UI
- 创建 wwwroot 符号链接
- 交互式配置数据库(host、port、用户名、密码)
- 自动创建数据库、导入表结构
- 生成 config.json(密码自动 AES 加密)
- 自动初始化权限(角色 + 权限映射)
- 生成 start.sh / stop.sh
2.1 数据库配置提示
运行 build.sh 时会依次询问:
MySQL host [localhost]: # 直接回车用默认
MySQL port [3306]: # 直接回车用默认
MySQL admin user [root]: # 有CREATE DATABASE权限的管理员
MySQL admin password: # 管理员密码(不显示)
CRM database name [crm_db]: # 直接回车用默认
CRM database user [hermes]: # 应用使用的数据库用户
CRM database password: # 该用户密码(不显示)
rbac 和所有业务模块共用同一个数据库,不会创建独立数据库。
3. 启动应用
./start.sh # 默认端口 8080
./start.sh 9999 # 指定端口
访问:http://localhost:8080/main/login.ui
4. 创建管理员用户
首次使用需注册并分配超级管理员角色:
- 访问
http://localhost:8080/user/register.ui注册第一个用户 - 为该用户分配
admin_superuser角色:
mysql -u crm_user -p crm_db
INSERT INTO userroles (userid, roleid) VALUES ('你的用户ID', 'admin_superuser');
5. 停止应用
./stop.sh
6. 权限体系
6.1 角色定义(单业主机构)
| 角色ID | 名称 | 说明 |
|---|---|---|
| any | 任何人 | 未登录用户(固定ID,不可改) |
| logined | 已登录 | 任意登录用户(固定ID,不可改) |
| sales_manager | 销售经理 | 团队管理、客户分配、审批 |
| sales_rep | 销售代表 | 客户跟进、商机推进 |
| finance_admin | 财务管理员 | 所有财务操作、报表 |
| finance_clerk | 财务出纳 | 收款登记、付款处理 |
| admin_superuser | 超级用户 | 全部权限 |
6.2 注意事项
- 角色 ID 使用下划线(如
sales_manager),不能用点号,因为前端显示格式为机构类型.角色名称(如sales.manager) any、logined是约定角色,rbac 模块硬编码检查,必须用固定 ID- rbac 自带完整登录注册功能(
pkgs/rbac/wwwroot/user/),不要创建冗余文件
7. 模块引用规则
| 类别 | 模块 | 规则 |
|---|---|---|
| 引用模块 | apppublic, sqlor, ahserver, appbase, rbac | 绝对不能修改 |
| 业务模块 | customer_management 等 6 个 | 遵循 module-development-spec |
8. 目录结构
integrated_crm_app/
├── app/
│ ├── integrated_crm_app.py # 主入口
│ ├── perm_config.py # 权限配置(角色+权限矩阵)
│ └── init_permissions.py # 权限初始化脚本
├── conf/
│ └── config.json # 应用配置(build.sh 自动生成)
├── wwwroot/
│ ├── main/ # 主页面
│ ├── rbac/ # 用户管理(symlink → pkgs/rbac/wwwroot)
│ ├── customer_management/ # 客户管理(symlink)
│ ├── opportunity_management/ # 商机管理(symlink)
│ ├── contract_management/ # 合同管理(symlink)
│ ├── financial_management/ # 财务管理(symlink)
│ ├── workflow_approval/ # 审批管理(symlink)
│ ├── unified_dashboard/ # 仪表盘(symlink)
│ └── bricks/ # 前端框架(symlink)
├── pkgs/ # 模块目录(build.sh 自动克隆)
│ ├── apppublic/
│ ├── sqlor/
│ ├── ahserver/
│ ├── appbase/
│ ├── rbac/
│ ├── customer_management/
│ ├── opportunity_management/
│ ├── contract_management/
│ ├── financial_management/
│ ├── workflow_approval/
│ └── unified_dashboard/
├── py3/ # 虚拟环境(build.sh 自动创建)
├── logs/ # 日志
├── files/ # 文件存储
├── build.sh # 一键构建脚本
├── start.sh # 启动脚本(build.sh 自动生成)
└── stop.sh # 停止脚本(build.sh 自动生成)
9. 故障排查
端口被占用
lsof -i :8080
kill -9 <PID>
数据库连接失败
检查 conf/config.json 中的数据库配置是否正确。
权限初始化失败
重新运行:
source py3/bin/activate
python app/init_permissions.py