FastbuildAI二开--Coze套餐功能开发指南
功能概述
Coze套餐功能是FastbuildAI平台的一个重要模块,为用户提供灵活的套餐配置和管理功能。该功能包括:
- 套餐状态开关控制
- 套餐说明配置
- 多套餐规则管理(时长、原价、现价、标签)
- 国际化支持(中文、英文、日文)
- 实时数据验证和保存
文件清单
前端文件(9个文件)
1. 主页面组件
- 文件路径:
apps/web/app/console/user/coze-package/index.vue
- 状态: 新增
- 作用: Coze套餐管理的主页面组件
2. 数据模型定义
- 文件路径:
apps/web/models/package-management.d.ts
- 状态: 修改(新增Coze相关接口)
- 作用: 定义前端数据类型和接口
3. API服务层
- 文件路径:
apps/web/services/console/package-management.ts
- 状态: 修改(新增Coze相关API)
- 作用: 封装与后端的API通信
4. 国际化文件(功能文本)
-
文件路径:
apps/web/core/i18n/zh/console-marketing.json
-
状态: 修改
-
作用: 中文国际化配置
-
文件路径:
apps/web/core/i18n/en/console-marketing.json
-
状态: 修改
-
作用: 英文国际化配置
-
文件路径:
apps/web/core/i18n/jp/console-marketing.json
-
状态: 修改
-
作用: 日文国际化配置
5. 国际化文件(菜单文本)
-
文件路径:
apps/web/core/i18n/zh/console-menu.json
-
状态: 修改
-
作用: 中文菜单国际化配置,在userManagement.cozePackage添加"Coze套餐"
-
文件路径:
apps/web/core/i18n/en/console-menu.json
-
状态: 修改
-
作用: 英文菜单国际化配置,在userManagement.cozePackage添加"Coze Package"
-
文件路径:
apps/web/core/i18n/jp/console-menu.json
-
状态: 修改
-
作用: 日文菜单国际化配置,在userManagement.cozePackage添加"Cozeパッケージ"
后端文件(7个文件)
1. 模块配置
- 文件路径:
apps/server/src/modules/console/cozepackage/cozepackage.module.ts
- 状态: 新增
- 作用: NestJS模块配置,注册控制器、服务和实体
2. 控制器
- 文件路径:
apps/server/src/modules/console/cozepackage/controllers/cozepackage-config.controller.ts
- 状态: 新增
- 作用: 处理HTTP请求,提供API接口
3. 服务层
- 文件路径:
apps/server/src/modules/console/cozepackage/services/cozepackage-config.service.ts
- 状态: 新增
- 作用: 业务逻辑处理,数据验证和数据库操作
4. 数据传输对象
- 文件路径:
apps/server/src/modules/console/cozepackage/dto/update-cozepackage-config.dto.ts
- 状态: 新增
- 作用: 定义API请求参数的数据结构和验证规则
5. 数据库实体
- 文件路径:
apps/server/src/modules/console/cozepackage/entities/cozepackage.entity.ts
- 状态: 新增
- 作用: 定义数据库表结构和字段映射
6. 菜单配置
- 文件路径:
apps/server/src/core/database/install/menu.json
- 状态: 修改
- 作用: 管理员后台菜单配置,在用户管理模块下添加了"user-coze-package"菜单项,包含查看和保存权限
7. 模块注册
- 文件路径:
apps/server/src/modules/console/console.module.ts
- 状态: 修改
- 作用: 在主控制台模块中注册Coze套餐模块
详细文件说明
前端文件详解
1. 主页面组件 (index.vue
)
主要功能:
- 套餐状态开关控制
- 套餐说明文本编辑
- 动态表格管理套餐规则
- 表单验证和数据提交
- 国际化文本显示
核心特性:
- 使用Vue 3 Composition API
- 集成Nuxt UI组件库
- 支持实时数据绑定
- 包含输入框单位显示(价格单位、时长单位)
- 响应式布局设计
关键代码结构:
<script setup lang="ts">
// 导入依赖和类型定义
// 状态管理
// 表格列配置
// 数据操作方法
</script><template>
<!-- 功能状态开关 -->
<!-- 套餐说明编辑器 -->
<!-- 套餐规则表格 -->
<!-- 操作按钮 -->
</template>
2. 数据模型定义 (package-management.d.ts
)
定义的接口:
CozepackageConfigData
: 套餐配置响应数据CozepackageRule
: 单个套餐规则数据
字段说明:
interface CozepackageRule {id?: string; // 套餐IDtimeLast: number; // 套餐时长(月)pastPrice: number; // 原价nowPrice: number; // 现价label: string; // 套餐标签
}
3. API服务层 (package-management.ts
)
提供的API方法:
apiGetCozepackageRules()
: 获取套餐配置saveCozepackageRules(data)
: 保存套餐配置
特点:
- 使用TypeScript类型约束
- 统一的错误处理
- RESTful API设计
4. 国际化配置文件(功能文本)
配置结构:
{"cozepackageManagement": {"statusTitle": "功能状态","statusDescription": "开启后用户可使用Coze套餐功能","cozepackageInstructionsTitle": "Coze套餐说明","cozepackageInstructionsDescription": "设置Coze套餐规则","cozepackageRulesTitle": "Coze套餐规则","tab": {"timeLast": "时长","pastPrice": "原价", "nowPrice": "现价","label": "标签","priceUnit": "元","timeUnit": "月"},"button": {"save": "保存","new": "新建套餐"}}
}
语言支持:
- 中文 (zh): 使用"元"和"月"作为单位
- 英文 (en): 使用"¥"和"Month(s)"作为单位
- 日文 (jp): 使用"円"和"ヶ月"作为单位
5. 国际化配置文件(菜单文本)
菜单配置结构:
{"userManagement": {"title": "用户管理","userList": "用户列表","userInfo": "用户信息","userRecharge": "充值管理","cozePackage": "Coze套餐"}
}
菜单多语言支持:
- 中文 (zh): “Coze套餐”
- 英文 (en): “Coze Package”
- 日文 (jp): “Cozeパッケージ”
菜单层级结构:
- 用户管理 (User Management)
- 用户列表 (User List)
- 用户信息 (User Info)
- 充值管理 (Top-up)
- Coze套餐 (Coze Package) ← 新增菜单项
后端文件详解
1. 模块配置 (cozepackage.module.ts
)
模块依赖:
TypeOrmModule
: 数据库ORM支持DictModule
: 字典管理模块
注册组件:
- 控制器:
CozepackageConfigController
- 服务:
CozepackageConfigService
- 实体:
Cozepackage
,Dict
2. 控制器 (cozepackage-config.controller.ts
)
API端点:
GET /cozepackage-config
: 获取配置POST /cozepackage-config
: 保存配置
权限控制:
- 使用
@Permissions
装饰器 - 集成权限验证系统
3. 服务层 (cozepackage-config.service.ts
)
核心方法:
getConfig()
: 获取配置数据setConfig(dto)
: 保存配置数据
数据验证逻辑:
- 套餐时长必须为正数
- 价格必须为非负数
- 标签不能为空
- 现价不能高于原价
数据存储策略:
- 状态和说明存储在字典表
- 套餐规则存储在专用表
4. DTO定义 (update-cozepackage-config.dto.ts
)
验证规则:
- 使用class-validator装饰器
- 类型安全的数据传输
- 自动参数验证
5. 数据库实体 (cozepackage.entity.ts
)
表结构:
CREATE TABLE cozepackage (id UUID PRIMARY KEY,time_last INTEGER NOT NULL COMMENT '套餐时长',past_price INTEGER NOT NULL COMMENT '原价',now_price DECIMAL(10,2) NOT NULL COMMENT '现价',label VARCHAR(64) NOT NULL COMMENT '标签',created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
6. 菜单配置 (menu.json
)
菜单配置结构:
{"name": "console-menu.userManagement.cozePackage","code": "user-coze-package","path": "coze-package","icon": "","component": "/console/user/coze-package/index","permissionCode": "cozepackage-config:getConfig","sort": 110,"isHidden": 0,"type": 2,"sourceType": 1,"pluginPackName": null,"children": [{"name": "console-common.save","code": "user-coze-package-save","path": "","icon": "","component": "","permissionCode": "cozepackage-config:setConfig","sort": 0,"isHidden": 1,"type": 2,"sourceType": 1,"pluginPackName": null}]
}
菜单配置说明:
- 菜单代码:
user-coze-package
- 唯一标识符 - 路由路径:
coze-package
- 前端路由路径 - 组件路径:
/console/user/coze-package/index
- Vue组件路径 - 权限代码:
cozepackage-config:getConfig
- 查看权限cozepackage-config:setConfig
- 保存权限
- 菜单层级: 位于用户管理模块下,排序为110
- 菜单类型: type=2表示页面菜单,isHidden=0表示显示在菜单中
开发流程总结
1. 后端开发流程
- 创建数据库实体 → 定义表结构和字段
- 创建DTO类 → 定义API参数验证
- 开发服务层 → 实现业务逻辑
- 创建控制器 → 提供HTTP API接口
- 配置模块 → 注册所有组件
- 集成到主模块 → 在console.module.ts中注册
2. 前端开发流程
- 定义数据模型 → 创建TypeScript接口
- 封装API服务 → 创建HTTP请求方法
- 配置国际化 → 添加多语言支持
- 开发页面组件 → 实现用户界面
- 集成路由 → 配置页面访问路径
- 测试功能 → 验证完整流程
3. 功能增强流程
- 添加国际化键 → 支持新的文本内容
- 修改组件模板 → 增强用户界面
- 更新数据验证 → 确保数据完整性
- 测试多语言 → 验证国际化效果
注意事项
开发规范
- 代码风格: 遵循项目ESLint配置
- 类型安全: 使用TypeScript严格模式
- 组件设计: 遵循Vue 3 Composition API最佳实践
- API设计: 遵循RESTful设计原则
数据安全
- 输入验证: 前后端双重验证
- 权限控制: 使用装饰器进行权限验证
- 数据完整性: 数据库约束和业务逻辑验证
- 错误处理: 统一的异常处理机制
性能优化
- 数据库查询: 使用select指定字段,避免全表查询
- 前端渲染: 使用Vue响应式系统优化更新
- API设计: 合理的数据结构减少网络传输
- 缓存策略: 适当使用缓存提升响应速度
国际化最佳实践
- 键名规范: 使用层级结构组织国际化键
- 文本复用: 避免重复定义相同含义的文本
- 单位处理: 不同语言使用合适的货币和时间单位
- 测试覆盖: 确保所有语言版本都能正常显示
扩展建议
- 功能扩展: 可以添加套餐排序、批量操作等功能
- 数据统计: 可以添加套餐使用情况统计
- 审核流程: 可以添加套餐变更审核机制
- 历史记录: 可以添加配置变更历史追踪
总结
Coze套餐功能的开发涉及了前后端共16个文件的新增和修改,实现了完整的套餐管理功能。该功能包括:
- 前端文件(9个): 主页面组件、数据模型、API服务、功能国际化文件(3个语言)、菜单国际化文件(3个语言)
- 后端文件(7个): 模块配置、控制器、服务层、DTO定义、数据库实体、菜单配置、模块注册
该功能具有良好的扩展性和维护性,支持完整的国际化(包括功能文本和菜单文本),并遵循了项目的开发规范。通过合理的架构设计和代码组织,为后续功能扩展奠定了良好的基础。
菜单集成特点:
- 完整的权限控制体系(查看和保存权限分离)
- 多语言菜单支持(中文、英文、日文)
- 层级化菜单结构(用户管理 > Coze套餐)
- 标准化的菜单配置格式