# BackManager Server 企业信息管理系统后端服务,提供用户认证、客户(加盟商)管理、员工管理、合同管理、售后服务和产品管理等 RESTful API。 ## 技术栈 - **运行时:** Node.js v18+ - **框架:** Express.js 5 - **数据库:** MySQL 5.7+ / MariaDB 10.2+ - **认证:** JWT(jsonwebtoken + bcryptjs) ## 快速开始 ### 环境准备 - Node.js >= 18 - MySQL 或 MariaDB ### 安装 ```bash git clone https://chochox.asia/ChoChoX/backmanager-server.git cd backmanager-server npm install ``` ### 配置 复制环境变量模板并填写: ```bash cp .env.example .env ``` 编辑 `.env` 文件: ```env PORT=3000 DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=backmanager JWT_SECRET=your_jwt_secret JWT_EXPIRES_IN=2h ``` ### 启动 ```bash # 生产环境 npm start # 开发环境(文件变更自动重启) npm run dev ``` 服务默认运行在 `http://localhost:3000`。 ### 数据库初始化 无需手动执行迁移。服务启动时会自动: 1. 创建数据库(如不存在) 2. 创建所有数据表(如不存在) 3. 插入默认管理员账户 **默认管理员:** `admin` / `123456` > 也可以使用 `enterprise_management.sql` 手动初始化数据库,其中包含建表语句和测试数据。 ## 项目结构 ``` backmanager-server/ ├── server.js # 入口文件,Express 应用和中间件配置 ├── db.js # 数据库连接池和自动初始化 ├── routes/ │ ├── users.js # 用户认证与管理 │ ├── customers.js # 客户(加盟商)管理 │ ├── employees.js # 员工管理 │ ├── contracts.js # 合同管理 │ ├── afterSales.js # 售后服务管理 │ └── products.js # 产品管理 ├── test-all.js # 集成测试脚本 ├── enterprise_management.sql # 数据库建表及测试数据 ├── .env.example # 环境变量模板 └── package.json ``` ## API 接口 ### 认证 所有接口(除登录外)需要在请求头中携带 JWT Token: ``` Authorization: Bearer ``` ### 用户管理 `/api/user` | 方法 | 路径 | 说明 | 权限 | |------|------|------|------| | POST | `/api/user/login` | 用户登录 | 公开 | | GET | `/api/user/info` | 获取当前用户信息 | 登录 | | POST | `/api/user/logout` | 退出登录 | 登录 | | PUT | `/api/user/password` | 修改自身密码 | 登录 | | GET | `/api/users` | 用户列表(分页/搜索) | 管理员 | | POST | `/api/users` | 创建用户 | 管理员 | | GET | `/api/users/:id` | 获取用户详情 | 管理员 | | PUT | `/api/users/:id` | 更新用户 | 管理员 | | DELETE | `/api/users/:id` | 删除用户 | 管理员 | ### 客户管理 `/api/customers` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/customers` | 客户列表(分页/搜索) | | POST | `/api/customers` | 创建客户 | | GET | `/api/customers/:id` | 获取客户详情 | | PUT | `/api/customers/:id` | 更新客户 | | DELETE | `/api/customers/:id` | 删除客户 | ### 员工管理 `/api/employees` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/employees` | 员工列表(分页/搜索) | | POST | `/api/employees` | 创建员工 | | GET | `/api/employees/:id` | 获取员工详情 | | PUT | `/api/employees/:id` | 更新员工 | | DELETE | `/api/employees/:id` | 删除员工 | ### 合同管理 `/api/contracts` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/contracts` | 合同列表(分页/搜索) | | POST | `/api/contracts` | 创建合同 | | GET | `/api/contracts/:id` | 获取合同详情 | | PUT | `/api/contracts/:id` | 更新合同 | | DELETE | `/api/contracts/:id` | 删除合同 | ### 售后服务 `/api/after-sales` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/after-sales` | 售后记录列表(分页/搜索) | | POST | `/api/after-sales` | 创建售后记录 | | GET | `/api/after-sales/:id` | 获取售后记录详情 | | PUT | `/api/after-sales/:id` | 更新售后记录 | | DELETE | `/api/after-sales/:id` | 删除售后记录 | ### 产品管理 `/api/products` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/products` | 产品列表(分页/搜索) | | POST | `/api/products` | 创建产品 | | GET | `/api/products/:id` | 获取产品详情 | | PUT | `/api/products/:id` | 更新产品 | | DELETE | `/api/products/:id` | 删除产品 | ### 通用参数 分页列表接口支持以下查询参数: | 参数 | 说明 | 默认值 | |------|------|--------| | `page` | 页码 | 1 | | `pageSize` | 每页条数 | 10(最大 100) | ### 响应格式 所有接口返回统一 JSON 格式: ```json { "code": 200, "message": "操作成功", "data": { } } ``` ## 测试 运行集成测试脚本,覆盖所有模块的 CRUD 接口: ```bash node test-all.js ``` ## 数据库设计 系统包含 6 张核心表: | 表名 | 说明 | |------|------| | `users` | 系统用户(角色:admin / user) | | `customers` | 客户/加盟商(类型:VIP / 普通) | | `employees` | 员工信息 | | `products` | 产品/库存 | | `contracts` | 合同(关联客户和员工) | | `after_sales` | 售后服务记录(关联客户和员工) | ER 关系概览: ``` customers ─┬──< contracts >──┬── employees └──< after_sales >┘ ``` ## 许可证 MIT