# manage **Repository Path**: she-minimall/manage ## Basic Information - **Project Name**: manage - **Description**: managemanagemanagemanage - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-30 - **Last Updated**: 2026-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 后台管理系统 ## 项目介绍 后台管理系统是一个基于Node.js开发的独立管理系统,用于商家管理商品、订单、用户、租户等数据。系统采用MVC架构,支持租户层级管理,主租户可管理多个子租户,实现了商品共享机制。 ## 技术栈 ### 后端技术栈 - **框架**:Koa.js - **路由**:@koa/router - **数据库ORM**:Sequelize - **认证**:JWT - **日志**:Winston - **配置管理**:dotenv ### 前端技术栈 - **框架**:Vue 3 + Vite - **UI组件库**:Element Plus - **路由管理**:Vue Router - **状态管理**:Pinia - **HTTP客户端**:Axios ## 项目结构 ``` backend-admin/ ├── config/ # 配置文件 │ ├── config.js # 系统配置 │ └── database.js # 数据库配置 ├── controllers/ # 控制器 │ ├── admins.js # 管理员控制器 │ ├── tenants.js # 租户控制器 │ ├── products.js # 商品控制器 │ ├── orders.js # 订单控制器 │ ├── users.js # 用户控制器 │ └── stats.js # 数据统计控制器 ├── middlewares/ # 中间件 │ ├── auth.js # 认证中间件 │ ├── tenant.js # 租户中间件 │ └── logger.js # 日志中间件 ├── models/ # 模型 │ ├── Admin.js # 管理员模型 │ ├── Role.js # 角色模型 │ ├── Permission.js # 权限模型 │ ├── AdminRole.js # 管理员角色关联模型 │ ├── RolePermission.js # 角色权限关联模型 │ └── ... # 商城共享模型 ├── routes/ # 路由 │ ├── auth.js # 认证路由 │ ├── admins.js # 管理员路由 │ ├── tenants.js # 租户路由 │ ├── products.js # 商品路由 │ ├── orders.js # 订单路由 │ ├── users.js # 用户路由 │ └── stats.js # 数据统计路由 ├── utils/ # 工具函数 ├── index.js # 入口文件 ├── package.json # 项目依赖 └── .env # 环境变量 ``` ## 安装步骤 ### 1. 克隆项目 ```bash git clone <仓库地址> cd backend-admin ``` ### 2. 安装依赖 ```bash npm install ``` ### 3. 配置环境变量 复制 `.env.example` 文件为 `.env`,并根据实际情况修改配置: ```bash cp .env.example .env ``` ## 配置说明 ### 环境变量配置 ``` # 服务器配置 SERVER_PORT=3001 SERVER_HOST=0.0.0.0 # 数据库配置(与商城共用) DB_NAME=postgres DB_USER=postgres DB_PASSWORD=password DB_HOST=localhost DB_PORT=5432 # JWT配置 JWT_SECRET=admin_secret_key_2025 JWT_EXPIRES_IN=7d # 日志配置 LOG_LEVEL=info LOG_DIR=logs ``` ## 运行方式 ### 开发环境 ```bash npm run dev ``` ### 生产环境 ```bash npm start ``` ## API接口 ### 认证接口 - POST /admin/login:管理员登录 - POST /admin/logout:管理员登出 - GET /admin/info:获取管理员信息 ### 管理员管理 - GET /admin/admins:获取管理员列表 - POST /admin/admins:创建管理员 - GET /admin/admins/:id:获取管理员详情 - PUT /admin/admins/:id:更新管理员 - DELETE /admin/admins/:id:删除管理员 - PUT /admin/admins/:id/status:更新管理员状态 ### 租户管理 - GET /admin/tenants:获取租户列表(带层级结构) - POST /admin/tenants:创建租户 - GET /admin/tenants/:id:获取租户详情 - PUT /admin/tenants/:id:更新租户 - DELETE /admin/tenants/:id:删除租户 - PUT /admin/tenants/:id/status:更新租户状态 - GET /admin/tenants/:id/children:获取子租户列表 ### 商品管理 - GET /admin/products:获取商品列表 - POST /admin/products:创建商品 - GET /admin/products/:id:获取商品详情 - PUT /admin/products/:id:更新商品 - DELETE /admin/products/:id:删除商品 - PUT /admin/products/:id/status:更新商品状态 - PUT /admin/products/:id/share:设置商品共享状态 ### 订单管理 - GET /admin/orders:获取订单列表 - GET /admin/orders/:id:获取订单详情 - PUT /admin/orders/:id:更新订单 - PUT /admin/orders/:id/status:更新订单状态 - PUT /admin/orders/:id/shipping:发货处理 ### 用户管理 - GET /admin/users:获取用户列表 - GET /admin/users/:id:获取用户详情 - PUT /admin/users/:id/status:更新用户状态 ### 数据统计 - GET /admin/dashboard:获取仪表盘数据 - GET /admin/stats/sales:获取销售统计 - GET /admin/stats/products:获取商品统计 - GET /admin/stats/users:获取用户统计 ## 核心功能 ### 1. 租户层级管理 - 支持主租户(master)和子租户(sub)的层级结构 - 主租户可查看和管理所有子租户数据 - 子租户只能查看和管理自身数据 - 主租户可将商品共享给子租户使用 ### 2. 独立认证系统 - 管理员专属登录,与商城用户体系分离 - 基于JWT的身份验证 - 安全的密码加密存储 - 支持异常登录检测 ### 3. 权限管理 - 基于RBAC模型的权限控制 - 支持菜单权限、按钮权限、数据权限 - 细粒度的权限控制 ### 4. 商品管理 - 完整的商品CRUD功能 - 支持商品分类管理 - 支持商品图片上传 - 支持商品库存管理 - 支持商品共享功能 ### 5. 订单管理 - 订单列表查询,支持多条件筛选 - 完整的订单状态流转 - 支持发货处理 - 支持退款处理 ### 6. 数据统计 - 仪表盘数据展示 - 销售统计 - 商品统计 - 用户统计 ## 部署说明 ### 环境要求 - Node.js 14+ - PostgreSQL 12+ - Redis 5+(可选,用于缓存) ### 部署步骤 1. **安装依赖** ```bash npm install ``` 2. **配置环境变量** ```bash cp .env.example .env # 修改.env文件中的配置 ``` 3. **构建项目** ```bash npm run build ``` 4. **启动服务** ```bash npm start ``` ### 部署注意事项 1. **数据库配置** - 确保数据库用户具有创建表和索引的权限 - 首次启动时会自动创建表结构 2. **JWT配置** - 生产环境中务必修改JWT密钥 - 合理设置JWT过期时间 3. **日志配置** - 定期清理日志文件,避免占用过多磁盘空间 - 生产环境建议使用ELK等日志管理工具 4. **安全配置** - 启用HTTPS - 设置合理的CORS策略 - 定期更新依赖包 - 配置防火墙,只开放必要的端口 ## 开发规范 ### 代码规范 - 使用ES6+语法 - 采用2空格缩进 - 文件名使用小写+下划线命名 - 函数名使用小驼峰命名 - 类名使用大驼峰命名 ### 数据库规范 - 表名使用复数形式 - 字段名使用下划线命名 - 主键使用自增整数 - 外键使用表名+主键名的形式 - 添加合理的索引 ### API规范 - 采用RESTful API设计 - 使用HTTP状态码表示请求结果 - 统一的响应格式 ```json { "code": 200, "message": "操作成功", "data": {} } ``` ## 常见问题 ### 1. 数据库连接失败 - 检查数据库配置是否正确 - 检查数据库服务是否启动 - 检查数据库用户权限是否正确 ### 2. 启动服务失败 - 检查端口是否被占用 - 检查环境变量是否配置正确 - 检查依赖是否安装完整 ### 3. API接口返回401 - 检查token是否有效 - 检查token是否过期 - 检查token格式是否正确 ### 4. API接口返回403 - 检查用户是否有权限访问该接口 - 检查用户所属租户是否正确 ## 开发计划 ### V1.0.0 - [x] 项目初始化 - [x] 数据库配置 - [x] 管理员认证系统 - [x] 租户管理 - [x] 商品管理 - [x] 订单管理 - [x] 用户管理 - [x] 数据统计 ### V1.1.0 - [ ] 操作日志记录 - [ ] 系统监控和告警 - [ ] 支持多语言 - [ ] 优化移动端适配 ### V1.2.0 - [ ] 添加更多数据可视化图表 - [ ] 实现定时任务管理 - [ ] 支持批量操作功能 - [ ] 添加数据导出功能 ## 贡献指南 1. Fork 项目 2. 创建分支 (git checkout -b feature/xxx) 3. 提交代码 (git commit -m 'add feature xxx') 4. 推送到分支 (git push origin feature/xxx) 5. 创建 Pull Request ## 许可证 MIT License ## 联系方式 如有问题或建议,欢迎联系我们: - Email: xxx@example.com - GitHub Issues: https://github.com/xxx/xxx/issues