ff7173aa68ce6144fb83329d81bf4482fdd2011f
BackManager Server
企业信息管理系统后端服务,提供用户认证、客户(加盟商)管理、员工管理、合同管理、售后服务和产品管理等 RESTful API。
技术栈
- 运行时: Node.js v18+
- 框架: Express.js 5
- 数据库: MySQL 5.7+ / MariaDB 10.2+
- 认证: JWT(jsonwebtoken + bcryptjs)
快速开始
环境准备
- Node.js >= 18
- MySQL 或 MariaDB
安装
git clone https://chochox.asia/ChoChoX/backmanager-server.git
cd backmanager-server
npm install
配置
复制环境变量模板并填写:
cp .env.example .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
启动
# 生产环境
npm start
# 开发环境(文件变更自动重启)
npm run dev
服务默认运行在 http://localhost:3000。
数据库初始化
无需手动执行迁移。服务启动时会自动:
- 创建数据库(如不存在)
- 创建所有数据表(如不存在)
- 插入默认管理员账户
默认管理员: 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 <token>
用户管理 /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 格式:
{
"code": 200,
"message": "操作成功",
"data": { }
}
测试
运行集成测试脚本,覆盖所有模块的 CRUD 接口:
node test-all.js
数据库设计
系统包含 6 张核心表:
| 表名 | 说明 |
|---|---|
users |
系统用户(角色:admin / user) |
customers |
客户/加盟商(类型:VIP / 普通) |
employees |
员工信息 |
products |
产品/库存 |
contracts |
合同(关联客户和员工) |
after_sales |
售后服务记录(关联客户和员工) |
ER 关系概览:
customers ─┬──< contracts >──┬── employees
└──< after_sales >┘
许可证
MIT
Description
Languages
JavaScript
100%