目录结构说明
**本文档引用的文件** - [[README.md]](../file/readme.md) - [[go.work]](../file/go.work) - [[bi-common/README.md]](../file/bi-common/readme.md) - [[bi-common/go.mod]](../file/bi-common/go.mod) - [[bi-basic/go.mod]](../file/bi-basic/go.mod) - [[bi-analysis/go.mod]](../file/bi-analysis/go.mod) - [[bi-api-leke/go.mod]](../file/bi-api-leke/go.mod) - [[bi-api-jushuitan/go.mod]](../file/bi-api-jushuitan/go.mod) - [[bi-notify/go.mod]](../file/bi-notify/go.mod) - [[bi-sys/go.mod]](../file/bi-sys/go.mod) - [[bi-tenant/go.mod]](../file/bi-tenant/go.mod) - [[bi-cron/go.mod]](../file/bi-cron/go.mod) - [[bi-server/go.mod]](../file/bi-server/go.mod) - [[bi-template/go.mod]](../file/bi-template/go.mod) - [[bi-plan-taoxi/go.mod]](../file/bi-plan-taoxi/go.mod) - [[ui-web/package.json]](../file/ui-web/package.json) - [[ui-web/README.md]](../file/ui-web/readme.md)
更新摘要
所做更改
- 更新了 Go Workspace 依赖关系图,移除了对 bi-proto 模块的依赖
- 更新了模块依赖关系分析,反映了最新的模块结构
- 更新了 bi-basic、bi-analysis 等模块的依赖配置
- 更新了架构设计原则中的依赖关系说明
目录
简介
本项目是一个企业级商业智能(BI)分析平台,采用现代化技术栈构建,具备高性能、可扩展性和良好的用户体验。平台由多个相互独立的服务模块组成,包括公共组件库、基础数据服务、核心分析服务、AI对话系统以及多个前端应用。
项目结构概览
项目采用多模块架构,通过 Go Workspace 进行统一管理:
图表来源
核心模块详解
bi-common 公共组件库
bi-common 是整个 BI 平台的基础设施组件库,提供开箱即用的通用能力:
主要功能模块
| 模块 | 说明 | 关键特性 |
|---|---|---|
| nacos | Nacos 配置中心与服务发现 | 零配置集成、智能推断、动态配置 |
| apitypes | 统一响应格式与错误码管理 | 7位错误码、标准响应结构 |
| logger | 统一日志组件 | 文件轮转、阿里云 SLS、中间件集成 |
| gormx | GORM 数据库封装 | MySQL/StarRocks 支持、TLS 加密 |
| redisx | Redis 客户端封装 | 单机/哨兵/集群模式 |
| kafkax | Kafka 客户端封装 | 生产者/消费者/多Topic支持 |
| starrocks/streamload | StarRocks HTTP 批量导入 | 高性能数据导入 |
设计理念
- 零配置优先:1-10 行代码完成集成
- 智能默认:自动推断配置,减少人工配置错误
- Kratos 原生:深度集成 Kratos 框架生态
- 类型安全:完整的类型定义和编译时检查
章节来源
bi-basic 基础数据服务
bi-basic 提供 BI 系统的基础数据服务能力,是其他业务模块的重要支撑:
核心能力
- 订单数据管理:订单、售后订单、重复购买等核心业务数据
- 商品数据管理:商品、类目、SKU 等商品相关信息
- 成本数据管理:成本核算、费用统计等功能
- 店铺数据管理:店铺信息、认证状态等
技术特点
- 基于 Kratos 框架构建
- 集成 bi-common 组件库
- 支持 gRPC + HTTP 双协议
- 完善的测试体系
章节来源
bi-analysis 核心分析服务
bi-analysis 是 BI 系统的分析引擎,负责复杂的数据分析和指标计算:
主要特性
- Kratos 框架:微服务架构基础
- bi-common 集成:统一配置、日志、数据库等基础设施
- OpenAPI 文档:自动生成并同步到 Apifox
- 统一响应格式:标准化 API 输出
目录结构
API 文档规范
平台采用统一的 API 文档规范:
- 响应结构:标准的 code/message/data 格式
- 分页支持:统一的分页响应结构
- 标签层级:使用 "/" 分隔符创建层级目录
- 字段命名:snake_case 命名规范
章节来源
前端应用模块
平台提供多个前端应用,满足不同用户场景的需求:
ui-web 租户控制台
基于 Next.js 16 构建的企业级前端应用:
- 技术栈:TypeScript + React 19 + Next.js 16
- UI 框架:Arco Design
- 图表库:ECharts 6.x
- 状态管理:Zustand
- 样式系统:Tailwind CSS
ui-web-admin 运营后台
系统运营管理后台,提供平台级管理功能。
ui-web-top 顶部导航
门户级组件,提供统一的导航体验。
ui-crx 浏览器扩展
增强用户在目标网站上的数据分析体验。
章节来源
架构设计原则
1. 分层架构原则
2. 模块化设计
- 单一职责:每个模块专注于特定业务领域
- 低耦合:模块间通过明确定义的接口交互
- 可替换性:核心组件支持配置化替换
3. 可扩展性设计
- 插件机制:支持功能模块的动态加载
- 配置驱动:通过配置文件控制行为
- 版本管理:清晰的版本升级策略
模块依赖关系
Go Workspace 依赖
图表来源
依赖关系分析
bi-basic 依赖关系
- 依赖 bi-common 提供基础设施组件
- 已移除 依赖 bi-proto 定义数据接口
- 使用 Kratos 框架进行服务治理
bi-analysis 依赖关系
- 依赖 bi-common 统一基础设施
- 已移除 依赖 bi-proto 定义分析接口
- 集成 OpenAPI 文档生成
前端应用依赖
- ui-web 依赖后端 API 服务
- 使用 Next.js 生态系统
- 集成各种 UI 组件库
更新 移除了对 bi-proto 模块的所有依赖关系,所有模块现在直接使用本地生成的 proto 文件
章节来源
扩展指南
新模块开发流程
开发规范
代码规范
- Go 语言:使用 Go 1.25+ 版本
- TypeScript:前端使用 TypeScript 严格模式
- ESLint:代码风格统一检查
- Prettier:代码格式化工具
Git 提交规范
| 类型 | 用途 | 示例 |
|---|---|---|
| feat | 新功能 | feat: 添加用户管理功能 |
| fix | 修复 bug | fix: 修复登录验证问题 |
| docs | 文档更新 | docs: 更新API文档 |
| style | 代码格式调整 | style: 修复代码格式问题 |
| refactor | 重构代码 | refactor: 优化数据库查询 |
| test | 测试相关 | test: 添加单元测试 |
配置管理
环境配置
| 环境 | 配置文件 | 用途 |
|---|---|---|
| dev | application-dev.yaml | 开发环境 |
| test | application-test.yaml | 测试环境 |
| prod | application-prod.yaml | 生产环境 |
Nacos 配置优先级
- 环境变量 - 最高优先级
- 用户配置 - 通过 WithXXX() 函数
- 配置文件 - 通过 WithConfigFile() 加载
- 智能推断 - 组件自动推断
- 默认配置 - 内嵌默认值
开发与部署
前端开发
开发环境启动
bash
# 进入 ui-web 目录
cd ui-web
# 安装依赖
npm install
# 启动开发服务器
npm run dev构建与部署
bash
# 构建生产版本
npm run build
# 启动生产服务器
npm run start后端开发
开发环境启动
bash
# 进入 bi-analysis 目录
cd bi-analysis
# 初始化开发环境
make init
# 启动服务
./bin/bi-analysis -env dev构建与部署
bash
# 构建二进制文件
make build
# 容器化部署
docker build -t bi-analysis .
docker run -p 8080:8080 bi-analysis总结
本 BI 分析平台采用模块化、分层化的架构设计,通过 bi-common 提供统一的基础设施,bi-basic 和 bi-analysis 分别承担基础数据服务和核心分析功能,多个前端应用满足不同用户场景需求。
核心优势
- 统一基础设施:bi-common 提供标准化的组件库
- 清晰的模块边界:各模块职责明确,便于维护和扩展
- 现代化技术栈:前后端分离,微服务架构
- 完善的开发规范:从代码到部署的全流程规范
- 强大的扩展能力:支持新模块的快速开发和集成
发展方向
- 性能优化:针对大数据量场景进行性能调优
- 监控完善:加强全链路监控和日志分析能力
- 自动化运维:完善 CI/CD 流水线和自动化部署
- 模块化演进:继续推进服务模块的解耦和独立部署