# Server - 后端服务 ## 📋 项目简介 Server 是 Crawlful Hub 的后端服务,提供了完整的API接口,用于处理商品管理、订单处理、物流策略、广告营销、B2B贸易等核心业务功能。 ## 🚀 核心功能 ### 1. 商品管理 - 商品CRUD操作 - 库存同步 - 商品健康度监控 ### 2. 订单管理 - 订单CRUD操作 - 订单状态更新 - 批量订单处理 ### 3. 物流管理 - 物流渠道选择 - 运费计算 - 物流轨迹跟踪 ### 4. 广告管理 - 广告计划管理 - 投放效果分析 - ROI计算 ### 5. B2B贸易管理 - 企业报价管理 - 批量订单处理 - 合同管理 ### 6. 售后管理 - 退货申请处理 - 退款流程管理 - 客户服务 ### 7. 合规管理 - 证书管理 - 合规检查 - 证书过期提醒 ### 8. 用户资产管理 - 资产管理 - 积分管理 - 会员等级管理 ### 9. A/B测试管理 - 测试策略管理 - 测试结果分析 - 自动优化 ## 🏗 技术栈 - **框架**: Node.js + Express - **语言**: TypeScript - **数据库**: MySQL - **缓存**: Redis - **消息队列**: BullMQ - **认证**: JWT ## 📦 快速开始 ### 环境要求 - Node.js 16+ - MySQL 8.0+ - Redis 6.0+ ### 安装依赖 ```bash cd server npm install ``` ### 数据库初始化 ```bash # 执行数据库初始化脚本 mysql -u root -p < ../scripts/db-init.sql ``` ### 配置环境变量 创建 `.env` 文件,配置以下环境变量: ``` # 服务器配置 PORT=3003 # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=crawlful_hub # Redis配置 REDIS_HOST=localhost REDIS_PORT=6379 # JWT配置 JWT_SECRET=your_jwt_secret JWT_EXPIRES_IN=24h # 日志配置 LOG_LEVEL=info ``` ### 启动服务 ```bash # 开发模式 npm run dev # 生产模式 npm run build npm start ``` ## 📁 项目结构 ``` server/ ├── src/ │ ├── api/ # API接口 │ │ ├── controllers/ # 控制器 │ │ ├── middleware/ # 中间件 │ │ └── routes/ # 路由 │ ├── config/ # 配置文件 │ ├── core/ # 核心服务 │ │ ├── ai/ # AI服务 │ │ ├── auth/ # 认证服务 │ │ ├── biz/ # 业务服务 │ │ ├── cache/ # 缓存服务 │ │ ├── connectors/ # 平台连接器 │ │ ├── engine/ # 业务引擎 │ │ ├── gateway/ # 网关 │ │ ├── governance/ # 治理服务 │ │ ├── graph/ # 图服务 │ │ ├── guards/ # 守卫 │ │ ├── integrations/ # 集成服务 │ │ ├── isolation/ # 隔离服务 │ │ ├── network/ # 网络服务 │ │ ├── orchestrator/ # 编排服务 │ │ ├── pipeline/ # 管道服务 │ │ ├── protocols/ # 协议服务 │ │ ├── runtime/ # 运行时服务 │ │ ├── sandbox/ # 沙箱服务 │ │ ├── scheduler/ # 调度服务 │ │ ├── security/ # 安全服务 │ │ ├── telemetry/ # 遥测服务 │ │ └── workers/ # 工作器 │ ├── database/ # 数据库相关 │ ├── domains/ # 业务域 │ ├── services/ # 业务服务 │ ├── utils/ # 工具函数 │ ├── app.ts # 应用入口 │ └── index.ts # 主入口 ├── package.json # 项目配置 ├── tsconfig.json # TypeScript 配置 └── README.md # 项目说明 ``` ## 🔧 开发规范 ### 代码规范 - 遵循 TypeScript 最佳实践 - 使用 ESLint 进行代码检查 - 服务类命名使用 PascalCase,后缀为 Service - 文件命名使用 PascalCase ### 提交规范 - 提交信息使用中文描述 - 提交前确保代码通过测试 - 大型功能提交前创建分支 ## 🤝 贡献 欢迎贡献代码和提出建议!请先阅读项目文档,然后提交 Pull Request。