# 共享平台商城系统开发 ## 项目概述 这是一个基于 Laravel 8.0 框架开发的多商户共享平台商城系统,支持会员、商户、代理等多角色管理。 ## 技术栈 ### 后端 - **框架**: Laravel 8.0 - **数据库**: MySQL 5.6+ - **缓存**: Redis - **语言**: PHP 7.4+ ### 前端 - **框架**: Vue.js 2.x - **UI组件**: Element UI (element-admin) - **构建工具**: Webpack - **包管理**: npm ## 技能要求 (Skills) ### 后端开发技能 #### 核心技术 - ![PHP](https://img.shields.io/badge/PHP-7.4+-777BB4?style=flat&logo=php&logoColor=white) PHP 面向对象编程 - ![Laravel](https://img.shields.io/badge/Laravel-8.0-FF2D20?style=flat&logo=laravel&logoColor=white) Laravel 框架精通 - ![MySQL](https://img.shields.io/badge/MySQL-5.6+-4479A1?style=flat&logo=mysql&logoColor=white) MySQL 数据库设计与优化 - ![Redis](https://img.shields.io/badge/Redis-5.0+-DC382D?style=flat&logo=redis&logoColor=white) Redis 缓存应用 #### Laravel 核心能力 - **Eloquent ORM** - 模型关联、查询构造器、软删除 - **服务容器** - 依赖注入、服务提供者 - **中间件** - 认证、授权、请求过滤 - **验证器** - 表单验证、自定义规则 - **事件系统** - 事件监听、队列任务 - **数据库迁移** - Schema Builder、数据填充 #### 架构设计 - **MVC架构** - Model-View-Controller 分层 - **服务层模式** - Service Layer 业务逻辑封装 - **仓储模式** - Repository Pattern 数据访问抽象 - **RESTful API** - 接口设计规范 - **多商户架构** - 数据隔离、权限控制 #### 数据库技能 - **数据库设计** - ER图设计、范式应用 - **索引优化** - 索引策略、查询优化 - **事务处理** - ACID特性、锁机制 - **关联查询** - JOIN、子查询、聚合函数 - **数据迁移** - 版本控制、回滚机制 #### 安全技能 - **身份认证** - JWT、Session、OAuth - **权限控制** - RBAC、ACL、数据权限 - **数据加密** - 密码哈希、敏感信息加密 - **防护机制** - SQL注入、XSS、CSRF防护 - **接口安全** - 签名验证、频率限制 ### 前端开发技能 #### 核心技术 - ![Vue.js](https://img.shields.io/badge/Vue.js-2.x-4FC08D?style=flat&logo=vue.js&logoColor=white) Vue.js 框架 - ![Element UI](https://img.shields.io/badge/Element_UI-2.x-409EFF?style=flat&logo=element&logoColor=white) Element UI 组件库 - ![JavaScript](https://img.shields.io/badge/JavaScript-ES6+-F7DF1E?style=flat&logo=javascript&logoColor=black) ES6+ 语法 - ![Webpack](https://img.shields.io/badge/Webpack-4.x-8DD6F9?style=flat&logo=webpack&logoColor=black) Webpack 构建工具 #### Vue.js 核心能力 - **组件开发** - 单文件组件、组件通信、插槽 - **状态管理** - Vuex、模块化、持久化 - **路由管理** - Vue Router、路由守卫、动态路由 - **生命周期** - 钩子函数、异步组件 - **响应式原理** - 数据绑定、计算属性、侦听器 #### Element UI 应用 - **表格组件** - 数据展示、分页、排序、筛选 - **表单组件** - 表单验证、动态表单、上传组件 - **布局组件** - 栅格系统、容器布局 - **导航组件** - 菜单、标签页、面包屑 - **反馈组件** - 消息提示、对话框、加载状态 #### 前端工程化 - **模块化开发** - ES6 Module、组件化 - **代码规范** - ESLint、Prettier - **构建优化** - 代码分割、懒加载、压缩 - **调试工具** - Vue DevTools、Chrome DevTools - **版本控制** - Git、分支管理 ### 通用技能 #### 开发工具 - ![Git](https://img.shields.io/badge/Git-F05032?style=flat&logo=git&logoColor=white) Git 版本控制 - ![Composer](https://img.shields.io/badge/Composer-885630?style=flat&logo=composer&logoColor=white) Composer 依赖管理 - ![npm](https://img.shields.io/badge/npm-CB3837?style=flat&logo=npm&logoColor=white) npm 包管理 - ![Postman](https://img.shields.io/badge/Postman-FF6C37?style=flat&logo=postman&logoColor=white) Postman API测试 #### 软技能 - **需求分析** - 业务理解、需求拆解 - **系统设计** - 架构设计、数据建模 - **代码审查** - Code Review、最佳实践 - **文档编写** - API文档、技术文档 - **团队协作** - 敏捷开发、沟通能力 - **问题解决** - Debug能力、性能优化 #### 业务理解 - **电商系统** - 订单流程、支付流程、库存管理 - **多商户平台** - 商户入驻、数据隔离、结算分账 - **会员系统** - 等级体系、积分系统、推荐机制 - **财务系统** - 账户管理、交易记录、对账结算 - **权限系统** - 角色管理、菜单权限、数据权限 ### 进阶技能 #### 性能优化 - **数据库优化** - 慢查询分析、索引优化、分库分表 - **缓存策略** - Redis缓存、页面缓存、对象缓存 - **代码优化** - 算法优化、内存管理、并发控制 - **前端优化** - 资源压缩、CDN加速、懒加载 #### 高级特性 - **消息队列** - Laravel Queue、异步任务 - **定时任务** - Cron、任务调度 - **文件存储** - 本地存储、云存储、OSS - **第三方集成** - 支付接口、短信服务、物流接口 - **API开发** - RESTful、GraphQL、接口文档 #### 测试能力 - **单元测试** - PHPUnit、测试覆盖率 - **功能测试** - Feature Test、集成测试 - **接口测试** - Postman、自动化测试 - **前端测试** - Jest、Vue Test Utils ### 学习资源 #### 官方文档 - [Laravel 中文文档](https://learnku.com/docs/laravel/8.x) - [Vue.js 官方文档](https://cn.vuejs.org/) - [Element UI 文档](https://element.eleme.cn/) - [MySQL 官方文档](https://dev.mysql.com/doc/) #### 推荐书籍 - 《Laravel 框架关键技术解析》 - 《Vue.js 设计与实现》 - 《高性能MySQL》 - 《PHP核心技术与最佳实践》 #### 在线课程 - Laravel 从入门到精通 - Vue.js 实战开发 - MySQL 数据库优化 - Redis 深度历险 ## 核心功能模块 ### 1. 用户管理 - **会员管理** (`lev_member`) - 用户注册、登录 - 会员等级管理 - 账户余额管理 - 推荐关系管理 - 设备信息记录 - **后台用户** (`lev_user`) - 管理员账号管理 - 角色权限分配 - 登录日志记录 ### 2. 商户管理 - **商户信息** (`lev_store`) - 商户入驻审核 - 商户资料管理 - 商户状态控制 - 多商户隔离 ### 3. 商品管理 - **商品信息** (`lev_goods`) - 商品发布 - 商品分类 - 库存管理 - 价格管理 ### 4. 订单管理 - **订单处理** (`lev_order`) - 订单创建 - 订单状态流转 - 订单支付 - 订单退款 ### 5. 财务管理 - **账户明细** (`lev_account_logs`) - 交易记录 - 收支明细 - 资金流水 - 统计报表 - **充值套餐** (`lev_pay_meals`) - 套餐配置 - 折扣设置 - 排序管理 ### 6. 权限管理 - **角色管理** (`lev_role`) - **权限管理** (`lev_menu`) - **用户角色关联** (`lev_user_role`) ## 数据表关系 ### 核心关联关系 ``` store.user_id = user.user_id = member.id ``` ### 主要数据表 #### 用户相关 - `lev_member` - 会员表(前台用户) - `lev_user` - 后台用户表 - `lev_user_role` - 用户角色关联表 #### 商户相关 - `lev_store` - 商户表 - 关联字段: `user_id` 关联到 `member.id` #### 商品相关 - `lev_goods` - 商品表 - `lev_goods_category` - 商品分类表 #### 订单相关 - `lev_order` - 订单表 - `lev_order_goods` - 订单商品明细表 #### 财务相关 - `lev_account_logs` - 账户明细表 - `lev_pay_meals` - 充值套餐表 - `lev_balance_logs` - 余额变动记录表 #### 系统相关 - `lev_role` - 角色表 - `lev_menu` - 菜单权限表 - `lev_action_log` - 操作日志表 - `lev_login_log` - 登录日志表 ## 目录结构 ``` NN2025112501/ ├── addons/ # 前端插件 │ └── admin/ # 后台管理前端 │ ├── dist/ # 编译后的文件 │ ├── public/ # 公共资源 │ └── src/ # 源代码 │ ├── components/ # 公共组件 │ ├── views/ # 页面视图 │ │ ├── financial/ # 财务管理 │ │ ├── member/ # 会员管理 │ │ ├── store/ # 商户管理 │ │ ├── goods/ # 商品管理 │ │ └── pay/ # 支付管理 │ ├── router/ # 路由配置 │ └── utils/ # 工具函数 ├── app/ # 应用核心 │ ├── Console/ # 命令行 │ ├── Exceptions/ # 异常处理 │ ├── Exports/ # 导出功能 │ ├── Helpers/ # 辅助函数 │ ├── Http/ # HTTP层 │ │ ├── Controllers/ # 控制器 │ │ │ ├── Admin/ # 后台控制器 │ │ │ └── Api/ # API控制器 │ │ ├── Middleware/ # 中间件 │ │ └── Validator/ # 验证器 │ ├── Models/ # 数据模型 │ └── Services/ # 业务逻辑层 │ ├── Common/ # 公共服务 │ └── Api/ # API服务 ├── config/ # 配置文件 ├── database/ # 数据库 │ ├── migrations/ # 数据迁移 │ ├── seeders/ # 数据填充 │ └── *.sql # SQL文件 ├── public/ # 公共资源 ├── resources/ # 资源文件 │ ├── certs/ # 证书文件 │ ├── lang/ # 语言包 │ └── views/ # 视图模板 ├── routes/ # 路由定义 │ ├── api.php # API路由 │ └── web.php # Web路由 └── storage/ # 存储目录 ``` ## 核心业务流程 ### 1. 会员注册流程 1. 用户提交注册信息 2. 验证手机号唯一性 3. 创建会员记录 (`lev_member`) 4. 生成推广码 5. 记录推荐关系 ### 2. 商户入驻流程 1. 会员申请成为商户 2. 提交商户资料 3. 后台审核 4. 创建商户记录 (`lev_store`) 5. 关联用户ID (`store.user_id = member.id`) ### 3. 订单处理流程 1. 用户下单 2. 创建订单记录 3. 扣减库存 4. 支付处理 5. 更新订单状态 6. 记录账户明细 ### 4. 财务结算流程 1. 订单完成 2. 计算佣金 3. 更新账户余额 4. 记录账户明细 (`lev_account_logs`) 5. 生成财务报表 ## 权限系统 ### 权限配置 - 基于 RBAC (Role-Based Access Control) - 菜单权限控制 - 接口权限控制 - 数据权限控制(多商户隔离) ### 权限标识格式 ``` 模块:功能:操作 例如: sys:member:add ``` ### 常用权限 - `sys:member:view` - 查看会员 - `sys:member:add` - 添加会员 - `sys:member:edit` - 编辑会员 - `sys:member:delete` - 删除会员 - `financial:accountLog:view` - 查看财务明细 - `store:store:view` - 查看商户 ## API接口规范 ### 请求格式 ```json { "page": 1, "limit": 20, "keyword": "搜索关键词", "status": 1 } ``` ### 响应格式 ```json { "code": 0, "msg": "操作成功", "data": [], "count": 100 } ``` ### 状态码 - `0` - 成功 - `1` - 失败 - `-1` - 异常 ## 数据字典 ### 交易类型 (account_logs.type) - `1` - 商城消费 - `2` - 充值缴费 - `3` - 商城退款 - `4` - 佣金提现 - `5` - 提现驳回 - `6` - 平台入款 ### 订单状态 (order.status) - `1` - 待支付 - `2` - 已支付 - `3` - 配送中 - `4` - 已完成 - `5` - 已取消 ### 用户状态 (member.status) - `1` - 正常 - `2` - 冻结 ### 商户状态 (store.status) - `1` - 启用 - `2` - 禁用 ## 环境配置 ### 开发环境要求 - PHP >= 7.4 - MySQL >= 5.6 - Redis >= 5.0 - Composer - Node.js >= 12.x - npm >= 6.x ### 安装步骤 1. **克隆项目** ```bash git clone [repository-url] cd NN2025112501 ``` 2. **安装后端依赖** ```bash composer install ``` 3. **配置环境变量** ```bash cp .env.example .env # 编辑 .env 文件,配置数据库等信息 ``` 4. **生成应用密钥** ```bash php artisan key:generate ``` 5. **导入数据库** ```bash # 导入 database/lev_.sql 文件 ``` 6. **安装前端依赖** ```bash cd addons/admin npm install ``` 7. **编译前端资源** ```bash npm run dev # 开发环境 npm run build # 生产环境 ``` 8. **启动服务** ```bash php artisan serve ``` ## 开发规范 ### 代码规范 - 遵循 PSR-12 编码规范 - 使用 Laravel 最佳实践 - 代码注释完整 - 变量命名语义化 ### Git 提交规范 ``` feat: 新功能 fix: 修复bug docs: 文档更新 style: 代码格式调整 refactor: 重构 test: 测试相关 chore: 构建/工具链 ``` ### 数据库规范 - 表名使用 `lev_` 前缀 - 字段名使用下划线命名 - 必须包含 `create_time`、`update_time`、`mark` 字段 - 软删除使用 `mark` 字段(1-有效,0-删除) ## 安全措施 ### 数据安全 - 密码加密存储 - SQL注入防护 - XSS攻击防护 - CSRF令牌验证 ### 接口安全 - JWT身份验证 - 接口签名验证 - 请求频率限制 - IP白名单 ### 数据隔离 - 多商户数据隔离 - 基于 `store_id` 的数据过滤 - 权限级别控制 ## 常见问题 ### Q: 如何添加新的权限? A: 在 `lev_menu` 表中添加权限记录,然后在角色管理中分配权限。 ### Q: 如何实现多商户数据隔离? A: 在控制器中获取 `$this->storeId`,在查询时添加 `store_id` 条件。 ### Q: 如何自定义交易类型? A: 修改 `config/payment.php` 中的 `accountTypes` 配置。 ## 更新日志 ### v1.0.0 (2025-01-25) - ✅ 完成会员管理模块 - ✅ 完成财务明细模块 - ✅ 完成充值套餐模块 - ✅ 完成权限管理系统 - ✅ 完成多商户数据隔离