# 二木小店 **Repository Path**: sushile/ermu-small-shop ## Basic Information - **Project Name**: 二木小店 - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-09 - **Last Updated**: 2026-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 二木小店 ## 项目介绍 二木小店是一个基于 **Uniapp + FastAPI** 开发的多品牌商品销售小程序平台。采用类SaaS模式,支持一个主店铺下管理多个品牌,每个品牌拥有独立的管理后台,所有品牌共享同一个支付账号。 ### 核心特性 - 🏪 **多品牌管理** - 一个店铺支持多个品牌,每个品牌独立运营 - 👥 **品牌管理后台** - 每个品牌拥有专属管理后台,独立管理商品和订单 - 💳 **统一支付** - 所有品牌使用同一微信支付商户号,简化财务结算 - 📊 **数据隔离** - 品牌间数据完全隔离,保证数据安全 - 🛒 **完整购物流程** - 从浏览商品到下单支付的完整购物体验 - 📈 **数据统计** - 销售趋势、商品排行等数据分析功能 --- ## 技术栈 ### 后端 - **框架**: FastAPI 0.104+ - **数据库**: MySQL 8.0+ - **ORM**: SQLAlchemy 2.0+ - **认证**: JWT (python-jose) - **支付**: 微信支付API ### 前端 - **框架**: Uniapp (Vue3) - **UI组件**: uView UI - **状态管理**: Vuex - **平台**: 微信小程序 --- ## 项目结构 ``` ermu-small-shop/ ├── backend/ # 后端项目 │ ├── app/ │ │ ├── api/ # API路由 │ │ │ └── v1/ # v1版本API │ │ ├── core/ # 核心配置 │ │ │ ├── config.py # 配置文件 │ │ │ ├── security.py # 安全相关 │ │ │ ├── deps.py # 依赖注入 │ │ │ ├── exceptions.py # 异常处理 │ │ │ └── logging.py # 日志配置 │ │ ├── models/ # 数据库模型 │ │ ├── schemas/ # Pydantic模型 │ │ ├── services/ # 业务逻辑 │ │ └── utils/ # 工具函数 │ ├── alembic/ # 数据库迁移 │ ├── logs/ # 日志文件 │ ├── uploads/ # 上传文件 │ ├── requirements.txt # Python依赖 │ └── main.py # 应用入口 │ ├── frontend/ # 前端项目 │ ├── pages/ # 页面 │ │ ├── index/ # 首页 │ │ ├── brand/ # 品牌页 │ │ ├── product/ # 商品页 │ │ ├── cart/ # 购物车 │ │ ├── order/ # 订单 │ │ ├── user/ # 个人中心 │ │ └── admin/ # 品牌管理端 │ ├── components/ # 组件 │ ├── api/ # API接口 │ ├── store/ # 状态管理 │ ├── utils/ # 工具函数 │ ├── static/ # 静态资源 │ ├── App.vue # 应用入口 │ ├── main.js # 主入口 │ ├── pages.json # 页面配置 │ └── manifest.json # 应用配置 │ └── README.md # 项目说明 ``` --- ## 快速开始 ### 环境要求 - Python 3.9+ - Node.js 16+ - MySQL 8.0+ - 微信开发者工具 ### 后端部署 1. **克隆项目** ```bash git clone https://github.com/your-username/ermu-small-shop.git cd ermu-small-shop/backend ``` 2. **安装依赖** ```bash python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt ``` 3. **配置环境变量** 复制 `.env.example` 为 `.env` 并修改配置: ```env # 数据库配置 DATABASE_HOST=localhost DATABASE_PORT=3306 DATABASE_USER=root DATABASE_PASSWORD=your_password DATABASE_NAME=ermu_shop # JWT配置 SECRET_KEY=your-secret-key # 微信小程序配置 WECHAT_APPID=your_appid WECHAT_SECRET=your_secret # 微信支付配置 WECHAT_PAY_MCHID=your_mchid WECHAT_PAY_API_KEY=your_api_key ``` 4. **创建数据库** ```sql CREATE DATABASE ermu_shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 5. **运行数据库迁移** ```bash alembic upgrade head ``` 6. **启动服务** ```bash python main.py ``` 服务将在 `http://localhost:8000` 启动 ### 前端部署 1. **安装依赖** ```bash cd ../frontend npm install ``` 2. **配置API地址** 修改 `utils/request.js` 中的 `BASE_URL`: ```javascript const BASE_URL = 'http://localhost:8000/api/v1' ``` 3. **配置微信小程序AppID** 修改 `manifest.json` 中的 `mp-weixin.appid`: ```json "mp-weixin": { "appid": "your_appid" } ``` 4. **运行项目** 使用 HBuilderX 或微信开发者工具打开 `frontend` 目录 --- ## API文档 启动后端服务后,访问以下地址查看API文档: - **Swagger UI**: http://localhost:8000/docs - **ReDoc**: http://localhost:8000/redoc ### 主要API模块 | 模块 | 说明 | |------|------| | /api/v1/auth | 用户认证(微信登录) | | /api/v1/users | 用户信息管理 | | /api/v1/brands | 品牌管理 | | /api/v1/products | 商品管理 | | /api/v1/orders | 订单管理 | | /api/v1/payments | 支付管理 | | /api/v1/statistics | 数据统计 | --- ## 功能模块 ### 用户端功能 - ✅ 微信一键登录 - ✅ 品牌浏览 - ✅ 商品浏览与搜索 - ✅ 购物车管理 - ✅ 订单创建与管理 - ✅ 微信支付 - ✅ 收货地址管理 - ✅ 订单状态跟踪 ### 品牌管理端功能 - ✅ 管理员登录 - ✅ 商品管理(增删改查、上下架) - ✅ 订单管理(查看、发货) - ✅ 销售数据统计 - ✅ 品牌信息编辑 --- ## 数据库设计 ### 核心数据表 | 表名 | 说明 | |------|------| | users | 用户信息表 | | shops | 店铺信息表 | | brands | 品牌信息表 | | brand_admins | 品牌管理员表 | | products | 商品信息表 | | categories | 商品分类表 | | orders | 订单表 | | order_items | 订单明细表 | | payments | 支付记录表 | | refunds | 退款记录表 | | addresses | 收货地址表 | --- ## 开发指南 ### 代码规范 - Python代码遵循 PEP 8 规范 - JavaScript代码使用 ESLint 规范 - 提交信息遵循 Conventional Commits 规范 ### 分支管理 - `main` - 生产环境分支 - `develop` - 开发环境分支 - `feature/*` - 功能开发分支 - `hotfix/*` - 紧急修复分支 --- ## 部署说明 ### 生产环境部署 1. **后端部署** - 使用 Gunicorn + Uvicorn 运行 - 配置 Nginx 反向代理 - 启用 HTTPS 2. **前端部署** - 使用微信开发者工具上传代码 - 提交审核 - 发布上线 ### 环境变量配置 生产环境需要配置以下环境变量: ```env ENVIRONMENT=production DEBUG=False SECRET_KEY=your-production-secret-key DATABASE_URL=mysql+pymysql://user:password@host:port/db WECHAT_APPID=your_production_appid WECHAT_SECRET=your_production_secret ``` --- ## 常见问题 ### 1. 微信登录失败 - 检查 `WECHAT_APPID` 和 `WECHAT_SECRET` 配置是否正确 - 确认小程序已发布或添加了开发权限 ### 2. 支付失败 - 检查微信支付商户号配置 - 确认支付回调URL可访问 - 检查API密钥是否正确 ### 3. 数据库连接失败 - 确认MySQL服务已启动 - 检查数据库用户名密码 - 确认数据库已创建 --- ## 更新日志 ### v1.0.0 (2024-01-01) - 🎉 初始版本发布 - ✅ 完成用户端基础功能 - ✅ 完成品牌管理端基础功能 - ✅ 集成微信支付 --- ## 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request --- ## 开源协议 本项目采用 MIT 协议开源,详见 [LICENSE](LICENSE) 文件 --- ## 联系方式 - 项目地址: [GitHub](https://github.com/your-username/ermu-small-shop) - 问题反馈: [Issues](https://github.com/your-username/ermu-small-shop/issues) --- ## 致谢 感谢以下开源项目: - [FastAPI](https://fastapi.tiangolo.com/) - [Uniapp](https://uniapp.dcloud.io/) - [uView UI](https://www.uviewui.com/) - [SQLAlchemy](https://www.sqlalchemy.org/)