19 KiB
19 KiB
📋 老项目完整技术分析文档
项目概述
项目名称: 大型零售电商管理系统 技术栈: ThinkPHP 3.x + MySQL 5.7 + Redis 系统规模: 2,169个PHP文件,401个目录,342个数据表 业务类型: 综合性电商平台,支持线上线下零售、会员管理、配送系统、支付处理等
🏗️ 项目架构分析
目录结构
/www/wwwroot/mss.nahaichuan.com/
├── ThinkPHP/ # ThinkPHP框架核心文件
├── Application/ # 应用程序主目录
│ ├── Admin/ # 后台管理模块
│ ├── Api/ # REST API模块
│ ├── Agent/ # 代理商模块
│ ├── CashierApi/ # 收银台API模块
│ ├── Delivery/ # 配送管理模块
│ ├── Main/ # 前台展示模块
│ ├── Pay/ # 支付处理模块
│ ├── Retail/ # 零售业务模块
│ ├── RiderApi/ # 骑手API模块
│ ├── SmallProgramApi/ # 小程序API模块
│ ├── Super/ # 超级管理员模块
│ ├── Vip/ # 会员系统模块
│ └── Common/ # 公共组件和业务逻辑
├── Public/ # 静态资源文件
├── Runtime/ # 运行时缓存和日志
├── Data/ # 数据库文件和SQL脚本
└── vendor/ # 第三方依赖包
模块功能划分
1. 核心业务模块
- Retail: 零售业务核心,包含门店管理、商品管理、订单处理
- Api: 移动端和第三方系统调用的REST API
- Pay: 支付网关集成,支持微信、支付宝等多种支付方式
- Delivery: 配送管理系统,包含骑手管理、配送路径优化
2. 管理系统模块
- Admin: 后台管理系统,商户和平台管理
- Super: 超级管理员系统,系统配置和插件管理
- Agent: 代理商管理,多租户支持
3. 用户交互模块
- Main: 前台展示,产品展示、新闻发布等
- Vip: 会员系统,积分、优惠券、会员等级管理
- SmallProgramApi: 微信小程序API接口
4. 支撑系统模块
- CashierApi: 收银台系统,支持多种收银方式
- RiderApi: 骑手移动端API
- NotifyApi: 回调和通知处理
🎮 控制器详细分析
API控制器模块 (/Application/Api/Controller/)
1. BaseController.class.php
功能: API基础控制器,提供通用功能 主要方法:
_initialize()- 初始化,设置JSON响应头和CORSsuccess()- 统一成功响应格式error()- 统一错误响应格式
响应格式:
{
"status": 1,
"code": 200,
"message": "success",
"data": {}
}
2. CostCalculationController.class.php
功能: 配送费计算系统 主要方法:
getFreight()- 计算配送费用- 参数: 商品数据、门店ID、用户地址省市
- 支持多种配送模板和区域计费
- 返回: 配送费用或错误信息
业务逻辑:
// 直辖市处理
$direct = array('北京市', '天津市', '上海市', '重庆市');
if (in_array($province, $direct)) {
$province = str_replace('市', '', $province);
}
// 获取模板ID并进行区域匹配
$tempIds = $this->getTempIds($goodsData);
$areaData = $TemplateAreaModel->getTemplateAreas($tempIds);
3. TurntableApiController.class.php
功能: 大转盘抽奖系统 主要方法:
TurntableWinList()- 用户中奖记录getRunTurntable()- 执行抽奖updateReceiveInfo()- 领奖信息更新getTurntableInfo()- 活动详情
4. CustomerController.class.php
功能: 客服系统API 主要方法:
order_info()- 获取订单详情用于客服examineOperation()- 处理退款换货申请BusinessReceiving()- 商家接收退货处理order_cancel()- 订单取消处理
5. RiderOrderController.class.php
功能: 骑手订单管理API 主要方法:
getOrderList()- 获取骑手订单列表acceptOrder()- 骑手接单rejectOrder()- 骑手拒单startDelivery()- 开始配送completeDelivery()- 完成配送
身份验证:
$riderInfo = $this->checkRiderAuth();
if ($riderInfo['status'] != 1) {
$this->ajaxReturn($riderInfo);
}
零售管理模块 (/Application/Retail/Controller/)
1. CheckstandController.class.php
功能: 收银台核心控制器 主要方法:
createOrder()- 创建零售订单processPayment()- 处理支付printReceipt()- 打印小票applyDiscount()- 应用优惠券
2. BasetwoController.class.php
功能: 扩展基础控制器,包含图片处理和认证 核心特性:
- 图片上传处理
- 用户身份验证
- 权限检查
- 数据验证
3. StoreJurUsersController.class.php
功能: 门店用户权限管理 主要方法:
userList()- 门店用户列表addUser()- 添加门店用户editUser()- 编辑用户权限deleteUser()- 删除用户
会员系统模块 (/Application/Vip/Controller/)
1. MembershipController.class.php
功能: 会员等级管理 主要方法:
getMembership()- 获取会员等级信息upgradeMembership()- 升级会员等级getBenefits()- 获取会员权益
2. SetController.class.php
功能: 用户设置管理 主要方法:
changePassword()- 修改密码resetPassword()- 重置密码changePersonal()- 修改个人信息updateAvatar()- 更新头像
3. ScoreMallController.class.php
功能: 积分商城系统 主要方法:
getGoods()- 获取积分商品exchangeGoods()- 积分兑换getExchangeRecord()- 兑换记录
后台管理模块 (/Application/Admin/Controller/)
1. IndexController.class.php
功能: 管理后台首页 主要功能:
- 系统概览统计
- 快捷操作入口
- 系统通知
- 图表数据展示
2. MerchantController.class.php
功能: 商户管理 主要方法:
merchantList()- 商户列表addMerchant()- 添加商户editMerchant()- 编辑商户信息auditMerchant()- 商户审核
3. ConfigController.class.php
功能: 系统配置管理 配置项:
- 支付配置
- 短信配置
- 邮件配置
- 系统参数设置
🛤️ API端点完整分析
1. 认证相关API
用户认证
POST /api/user/login # 用户登录
POST /api/user/register # 用户注册
POST /api/user/reset_password # 重置密码
GET /api/user/profile # 获取用户信息
POST /api/user/update_profile # 更新用户信息
骑手认证
POST /rider_api/auth/login # 骑手登录
POST /rider_api/auth/logout # 骑手登出
GET /rider_api/auth/status # 获取认证状态
POST /rider_api/auth/register # 骑手注册
2. 订单管理API
订单操作
POST /api/orders/create # 创建订单
GET /api/orders/list # 订单列表
GET /api/orders/detail/{id} # 订单详情
POST /api/orders/cancel/{id} # 取消订单
POST /api/orders/refund/{id} # 申请退款
订单状态更新
POST /api/orders/pay # 订单支付
POST /api/orders/confirm # 确认订单
POST /api/orders/delivery # 开始配送
POST /api/orders/complete # 完成订单
POST /api/orders/evaluate # 订单评价
3. 支付处理API
支付操作
POST /api/payment/create # 创建支付
POST /api/payment/notify # 支付回调
GET /api/payment/status/{id} # 支付状态查询
POST /api/payment/refund # 申请退款
支付方式支持
微信支付: /api/payment/wechat
支付宝: /api/payment/alipay
银行卡: /api/payment/bank
余额支付: /api/payment/balance
现金支付: /api/payment/cash
组合支付: /api/payment/combination
4. 配送管理API
骑手管理
GET /api/rider/list # 骑手列表
GET /api/rider/nearby # 附近骑手
POST /api/rider/dispatch # 派单给骑手
GET /api/rider/location # 骑手位置
POST /api/rider/update_location # 更新位置
配送操作
POST /api/delivery/assign # 分配配送任务
GET /api/delivery/track # 配送跟踪
POST /api/delivery/complete # 完成配送
POST /api/delivery/exception # 配送异常
5. 会员系统API
会员操作
GET /api/vip/info # 会员信息
POST /api/vip/upgrade # 会员升级
GET /api/vip/benefits # 会员权益
GET /api/vip/points # 积分查询
积分商城
GET /api/score_mall/goods # 积分商品
POST /api/score_mall/exchange # 积分兑换
GET /api/score_mall/record # 兑换记录
6. 营销活动API
大转盘活动
GET /api/turntable/info # 活动信息
POST /api/turntable/spin # 参与抽奖
GET /api/turntable/prizes # 奖品列表
GET /api/turntable/records # 中奖记录
优惠券系统
GET /api/coupon/available # 可用优惠券
POST /api/coupon/apply # 使用优惠券
GET /api/coupon/history # 优惠券历史
🎨 前端页面结构分析
1. 会员系统页面 (/Application/Vip/View/)
核心页面
- Index/index.html - 会员首页
- Membership/index.html - 会员等级页面
- ScoreMall/me.html - 积分商城
- Set/changepwd.html - 修改密码页面
- Cardcenter/index.html - 会员卡中心
活动页面
- Activity/index.html - 活动首页
- Activity/reward.html - 奖励活动
- Turntable/index.html - 大转盘抽奖
个人设置页面
- Set/resetpwd.html - 重置密码
- Set/changepersonal.html - 个人信息修改
2. 零售管理页面 (/Application/Retail/View/)
门店管理
- Store/payset.html - 支付设置
- Store/logos.html - 门店Logo设置
- Store/editstore.html - 门店信息编辑
订单管理
- Discount/index.html - 优惠管理
- Discount/discountdetail.html - 优惠详情
- Mcoupon/ - 优惠券管理相关页面
系统配置
- Wxconfig/ - 微信相关配置页面
- Notice/ - 公告管理页面
- Helps/ - 帮助文档页面
3. 后台管理页面 (/Application/Admin/View/)
登录和首页
- Login/login.html - 管理员登录页面
- Index/home.html - 管理后台首页
系统管理
- Merchant/addMerchant.html - 添加商户页面
- Template/ - 模板管理页面
- Config/ - 系统配置页面
用户管理
- AdminJurUsersController - 管理员用户管理
4. 前台展示页面 (/Application/Main/View/)
模板系统
Templateone/ # 模板风格1
├── product.html # 产品展示页
├── news.html # 新闻列表页
├── about.html # 关于我们页面
└── newsdetails.html # 新闻详情页
Templatetwo/ # 模板风格2
├── product.html
├── news.html
├── about.html
└── newsdetails.html
🗄️ 数据库模型分析
核心数据表结构
1. 订单相关表
ls_retail_bill_order (订单主表)
主要字段:
- id: 订单ID
- order_no: 订单号
- store_id: 门店ID
- merchant_id: 商户ID
- order_type: 订单类型 (1购买订单 2退款订单)
- pay_state: 支付状态 (0未支付 1已支付)
- pay_type: 支付方式 (1现金 2银行卡 3微信 4支付宝...)
- all_money: 订单总金额
- pay_money: 已支付金额
- refund_status: 退款状态
- add_time: 创建时间
- finish_time: 完成时间
ls_retail_sell (商品明细表)
主要字段:
- id: 明细ID
- bill_order_id: 订单ID
- goods_id: 商品ID
- goods_name: 商品名称
- num: 购买数量
- price: 商品价格
2. 用户相关表
ls_vip (会员信息表)
主要字段:
- id: 会员ID
- merchant_id: 商户ID
- phone: 手机号
- openid: 微信OpenID
- name: 会员姓名
- balance: 余额
- points: 积分
- level: 会员等级
- add_time: 注册时间
ls_rider_info (骑手信息表)
主要字段:
- id: 骑手ID
- merchant_id: 商户ID
- store_id: 门店ID
- rider_name: 骑手姓名
- rider_phone: 骑手手机
- work_status: 工作状态 (0离线 1在线 2忙碌)
- auth_status: 认证状态
- balance: 账户余额
- rating: 评分
- on_time_rate: 准时率
3. 门店相关表
ls_store_info (门店信息表)
主要字段:
- id: 门店ID
- merchant_id: 商户ID
- store_name: 门店名称
- address: 门店地址
- phone: 联系电话
- business_hours: 营业时间
- delivery_scope: 配送范围
ls_store_config (门店配置表)
主要字段:
- store_id: 门店ID
- cn_token: 菜鸟物流token
- delivery_template_status: 配送模板状态
- diy_mall_data: 商城DIY设置
- mobile_set: 移动端设置
- credit_num: 赊账条数
- credit_quota: 赊账额度
数据表关系图
商户(Merchant)
├── 门店(Store) ← 1:N
│ ├── 配送配置(Store_Config)
│ ├── 门店用户(Store_Jur_Users)
│ └── 商品库存(Store_Goods)
├── 订单(Retail_Bill_Order) ← 1:N
│ ├── 订单明细(Retail_Sell)
│ ├── 支付记录(Payment_Record)
│ └── 配送信息(Delivery_Order)
├── 会员(Vip) ← 1:N
│ ├── 会员卡(Vip_Card)
│ ├── 积分记录(Point_Record)
│ └── 优惠券记录(Coupon_Record)
└── 骑手(Rider_Info) ← 1:N
├── 位置记录(Rider_Location)
├── 配送订单(Rider_Order)
└── 收入记录(Rider_Income)
🔧 业务逻辑流程分析
1. 订单处理流程
订单创建流程:
用户下单 → 库存检查 → 价格计算 → 优惠应用 → 配送费计算 → 订单保存 → 支付处理
订单状态流转:
pending(待支付) → paid(已支付) → preparing(准备中) → ready(待配送)
→ picking(配送中) → delivered(已送达) → completed(已完成)
2. 支付处理流程
支付方式支持:
微信支付 → 调用微信支付API → 异步回调 → 更新订单状态
支付宝支付 → 调用支付宝API → 异步回调 → 更新订单状态
现金支付 → 收银台确认 → 直接更新状态
余额支付 → 检查余额 → 扣除余额 → 更新状态
组合支付 → 多种方式组合 → 分别处理 → 统一回调
3. 配送管理流程
智能派单:
订单确认 → 获取附近骑手 → 综合评分排序 → 自动分配 → 骑手接单
骑手操作:
接单 → 开始配送 → 实时位置更新 → 完成配送 → 用户确认
4. 会员权益系统
会员等级:
普通会员 → 付费会员 → VIP会员 → 等级权益递增
积分获取:
购物消费 → 签到打卡 → 活动参与 → 推荐分享
积分用途:
积分商城兑换 → 优惠券抵扣 → 会员特权使用
🔌 技术特点分析
1. 框架特性
ThinkPHP 3.x特性:
- MVC分层架构
- 单一入口文件
- 自动加载和缓存机制
- 内置验证和安全过滤
- 数据库ORM支持
自定义扩展:
- 多模块支持
- 自定义业务类
- 第三方服务集成
- 缓存优化
2. 数据库设计特点
表命名规范:
- 统一前缀
ls_ - 下划线命名法
- 业务模块化分组
字段设计:
- ID主键设计
- 时间字段格式化
- 状态字段枚举化
- 金额字段精度控制
3. API设计特点
RESTful设计:
- 统一响应格式
- HTTP状态码规范
- 错误信息标准化
- 接口版本管理
安全机制:
- Token认证
- 参数验证
- SQL注入防护
- 跨域控制
4. 前端技术特点
模板系统:
- PHP模板引擎
- 模板继承机制
- 多主题支持
- 动态内容加载
交互功能:
- AJAX异步加载
- 表单实时验证
- 图片上传预览
- 移动端适配
⚠️ 技术债务与风险
1. 安全风险
SQL注入风险:
- 部分查询使用字符串拼接
- 缺少参数绑定
- 用户输入过滤不充分
身份认证:
- 多套认证系统并存
- Token安全性待加强
- 会话管理不够完善
2. 性能问题
数据库优化:
- 复杂查询缺乏优化
- 索引设置不完善
- 大数据量查询缓慢
缓存策略:
- 缓存使用不统一
- 缓存失效机制简单
- 高并发场景性能瓶颈
3. 代码质量问题
代码重复:
- 相似逻辑重复实现
- 工具函数分散
- 缺少统一抽象
维护性:
- 代码注释不完善
- 错误处理不统一
- 测试覆盖率低
4. 架构问题
单体架构:
- 模块间耦合度高
- 扩展性受限
- 部署和运维复杂
技术栈落后:
- ThinkPHP 3.x版本过时
- 缺少现代化工具支持
- 第三方库兼容性问题
🎯 重构建议
1. 立即改进项
安全加固:
- 实施参数化查询
- 加强输入验证和过滤
- 升级身份认证机制
- 完善权限控制系统
性能优化:
- 优化数据库查询和索引
- 实施分布式缓存策略
- 添加接口限流机制
- 优化静态资源加载
2. 架构升级
技术栈现代化:
- 迁移到FastAPI/Python后端
- 采用Vue.js + Ant Design前端
- 升级到MySQL 8.0
- 容器化部署方案
模块化重构:
- 拆分为微服务架构
- 实现API网关统一入口
- 建立消息队列异步处理
- 完善服务注册和发现
3. 开发流程改进
代码质量:
- 建立代码规范和评审机制
- 实施单元测试和集成测试
- 引入自动化CI/CD流水线
- 建立性能监控和告警
文档完善:
- 完善API文档
- 建立技术文档库
- 实施知识管理系统
- 建立故障处理手册
📊 系统规模统计
代码规模
- PHP文件总数: 2,169个
- 目录总数: 401个
- HTML模板文件: 871个
- 数据库表: 342个
业务模块规模
- Api模块控制器: 20个
- Retail模块控制器: 35个
- Admin模块控制器: 18个
- Vip模块控制器: 15个
- 其他模块控制器: 42个
数据库规模
- 核心业务表: 85个
- 配置相关表: 47个
- 日志相关表: 63个
- 缓存相关表: 28个
- 其他辅助表: 119个
🚀 重构路线图
第一阶段:基础设施升级 (1-3个月)
- 项目结构分析完成
- 数据库迁移设计
- 新框架技术选型
- 开发环境搭建
第二阶段:核心功能迁移 (4-6个月)
- 订单系统重构
- 支付系统迁移
- 会员系统升级
- 门店管理重构
第三阶段:高级功能实现 (7-9个月)
- 配送系统优化
- 营销活动系统
- 数据统计分析
- 移动端适配
第四阶段:系统完善 (10-12个月)
- 性能优化
- 安全加固
- 测试完善
- 部署运维
这个完整的分析文档为项目重构提供了全面的技术基础和实施指导。