多商户商城小程序

wesmiler 485ae7a3a3 Wesmiler 3 weken geleden
addons 67419470da 完善订单导出功能 1 maand geleden
app 485ae7a3a3 Wesmiler 3 weken geleden
bootstrap 01af669e40 wesmiler 4 maanden geleden
config ed7d5cd043 Wesmiler 3 maanden geleden
crontab 317a71cc79 Wesmiler 3 maanden geleden
database 9f7db34a6e 商家审核通过 3 maanden geleden
public 485ae7a3a3 Wesmiler 3 weken geleden
resources 3906d5b5a7 添加生活圈 3 maanden geleden
routes 75480ce922 Wesmiler 3 weken geleden
tests 4fa7abe2a8 Wesmiler 4 maanden geleden
.dockerignore e3aac1fd06 Merge branch 'master' of http://git.derkj.com:9095/waibao/NN2025112501 3 maanden geleden
.env.example 4fa7abe2a8 Wesmiler 4 maanden geleden
.gitignore 007f6ea19b Wesmiler 3 maanden geleden
.nvmrc e3229c9df6 no message 4 maanden geleden
FEATURE_MERCHANT_SELECTOR.md 3dffa922bc no message 4 maanden geleden
LICENSE 3fc83927e0 Initial commit 4 maanden geleden
README.md e3229c9df6 no message 4 maanden geleden
artisan 1c27d1f7e3 wesmiler 项目初始化部署 4 maanden geleden
composer.json 01af669e40 wesmiler 4 maanden geleden
composer.lock 01af669e40 wesmiler 4 maanden geleden
package-lock.json 1c27d1f7e3 wesmiler 项目初始化部署 4 maanden geleden
package.json 1c27d1f7e3 wesmiler 项目初始化部署 4 maanden geleden
phpunit.xml 1c27d1f7e3 wesmiler 项目初始化部署 4 maanden geleden
server.php 1c27d1f7e3 wesmiler 项目初始化部署 4 maanden geleden
temp_check_syntax.php.bak e52676c4ab [√]商品,多规格时,单价也要必填,price字段不管单规格还是多规格都要填 3 maanden geleden
webpack.mix.js 1c27d1f7e3 wesmiler 项目初始化部署 4 maanden geleden

README.md

共享平台商城系统开发

项目概述

这是一个基于 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 PHP 面向对象编程
  • Laravel Laravel 框架精通
  • MySQL MySQL 数据库设计与优化
  • Redis 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 Vue.js 框架
  • Element UI Element UI 组件库
  • JavaScript ES6+ 语法
  • Webpack Webpack 构建工具

Vue.js 核心能力

  • 组件开发 - 单文件组件、组件通信、插槽
  • 状态管理 - Vuex、模块化、持久化
  • 路由管理 - Vue Router、路由守卫、动态路由
  • 生命周期 - 钩子函数、异步组件
  • 响应式原理 - 数据绑定、计算属性、侦听器

Element UI 应用

  • 表格组件 - 数据展示、分页、排序、筛选
  • 表单组件 - 表单验证、动态表单、上传组件
  • 布局组件 - 栅格系统、容器布局
  • 导航组件 - 菜单、标签页、面包屑
  • 反馈组件 - 消息提示、对话框、加载状态

前端工程化

  • 模块化开发 - ES6 Module、组件化
  • 代码规范 - ESLint、Prettier
  • 构建优化 - 代码分割、懒加载、压缩
  • 调试工具 - Vue DevTools、Chrome DevTools
  • 版本控制 - Git、分支管理

通用技能

开发工具

  • Git Git 版本控制
  • Composer Composer 依赖管理
  • npm npm 包管理
  • Postman Postman API测试

软技能

  • 需求分析 - 业务理解、需求拆解
  • 系统设计 - 架构设计、数据建模
  • 代码审查 - Code Review、最佳实践
  • 文档编写 - API文档、技术文档
  • 团队协作 - 敏捷开发、沟通能力
  • 问题解决 - Debug能力、性能优化

业务理解

  • 电商系统 - 订单流程、支付流程、库存管理
  • 多商户平台 - 商户入驻、数据隔离、结算分账
  • 会员系统 - 等级体系、积分系统、推荐机制
  • 财务系统 - 账户管理、交易记录、对账结算
  • 权限系统 - 角色管理、菜单权限、数据权限

进阶技能

性能优化

  • 数据库优化 - 慢查询分析、索引优化、分库分表
  • 缓存策略 - Redis缓存、页面缓存、对象缓存
  • 代码优化 - 算法优化、内存管理、并发控制
  • 前端优化 - 资源压缩、CDN加速、懒加载

高级特性

  • 消息队列 - Laravel Queue、异步任务
  • 定时任务 - Cron、任务调度
  • 文件存储 - 本地存储、云存储、OSS
  • 第三方集成 - 支付接口、短信服务、物流接口
  • API开发 - RESTful、GraphQL、接口文档

测试能力

  • 单元测试 - PHPUnit、测试覆盖率
  • 功能测试 - Feature Test、集成测试
  • 接口测试 - Postman、自动化测试
  • 前端测试 - Jest、Vue Test Utils

学习资源

官方文档

推荐书籍

  • 《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接口规范

请求格式

{
  "page": 1,
  "limit": 20,
  "keyword": "搜索关键词",
  "status": 1
}

响应格式

{
  "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. 克隆项目

    git clone [repository-url]
    cd NN2025112501
    
  2. 安装后端依赖

    composer install
    
  3. 配置环境变量

    cp .env.example .env
    # 编辑 .env 文件,配置数据库等信息
    
  4. 生成应用密钥

    php artisan key:generate
    
  5. 导入数据库

    # 导入 database/lev_.sql 文件
    
  6. 安装前端依赖

    cd addons/admin
    npm install
    
  7. 编译前端资源

    npm run dev   # 开发环境
    npm run build # 生产环境
    
  8. 启动服务

    php artisan serve
    

开发规范

代码规范

  • 遵循 PSR-12 编码规范
  • 使用 Laravel 最佳实践
  • 代码注释完整
  • 变量命名语义化

Git 提交规范

feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 重构
test: 测试相关
chore: 构建/工具链

数据库规范

  • 表名使用 lev_ 前缀
  • 字段名使用下划线命名
  • 必须包含 create_timeupdate_timemark 字段
  • 软删除使用 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)

  • ✅ 完成会员管理模块
  • ✅ 完成财务明细模块
  • ✅ 完成充值套餐模块
  • ✅ 完成权限管理系统
  • ✅ 完成多商户数据隔离