---
url: /blog/cp5sgl9s/index.md
---
# ShopXO 项目学习清单 - TODO

> 勾选完成项，跟踪学习进度

## 一、项目架构理解

* \[ ] 1.1 阅读 CLAUDE.md 了解项目整体架构
* \[ ] 1.2 熟悉目录结构（app/service, app/plugins, extend/）
* \[ ] 1.3 理解 MVC + Service 三层架构
* \[ ] 1.4 了解配置文件结构（config/, .env）
* \[ ] 1.5 了解数据库表结构（sxo\_ 前缀）

***

## 二、核心业务层（L1）

### 2.1 商品管理系统

* \[ ] 2.1.1 阅读 GoodsService.php 源码（3964行）
* \[ ] 2.1.2 理解多规格 SKU 实现（GoodsSpecificationsInsert）
* \[ ] 2.1.3 理解商品参数配置（GoodsParamsInsert）
* \[ ] 2.1.4 理解商品楼层展示（HomeFloorList）
* \[ ] 2.1.5 理解商品缓存策略
* \[ ] 2.1.6 理解商品数据组装逻辑（GoodsDataHandle）

### 2.2 订单管理系统

* \[ ] 2.2.1 阅读 OrderService.php 源码（3333行）
* \[ ] 2.2.2 理解订单状态机设计
* \[ ] 2.2.3 理解订单支付流程（Pay）
* \[ ] 2.2.4 理解订单发货处理（OrderDelivery）
* \[ ] 2.2.5 理解订单取消/确认/收货
* \[ ] 2.2.6 理解订单状态历史记录（OrderHistoryAdd）
* \[ ] 2.2.7 理解订单数据关联结构

### 2.3 支付系统

* \[ ] 2.3.1 阅读 PaymentService.php 源码（1303行）
* \[ ] 2.3.2 理解统一支付接口设计
* \[ ] 2.3.3 理解支付回调处理（Respond/Notify）
* \[ ] 2.3.4 理解支付幂等性处理
* \[ ] 2.3.5 了解 60+ 支付方式集成
* \[ ] 2.3.6 查看支付扩展目录（extend/payment/）

***

## 三、业务流程层（L2）

### 3.1 购买流程

* \[ ] 3.1.1 阅读 BuyService.php 源码（1893行）
* \[ ] 3.1.2 理解购物车处理逻辑
* \[ ] 3.1.3 理解下单流程（BuyGoods/OrderInsert）
* \[ ] 3.1.4 理解库存校验与锁定（OrderInventoryDeduct）
* \[ ] 3.1.5 理解库存回滚机制（OrderInventoryRollback）
* \[ ] 3.1.6 理解订单拆分逻辑（OrderSplitHandle）
* \[ ] 3.1.7 理解价格计算逻辑

### 3.2 售后服务

* \[ ] 3.2.1 阅读 OrderAftersaleService.php 源码（2035行）
* \[ ] 3.2.2 理解退款/退货/换货流程
* \[ ] 3.2.3 理解售后审核流程
* \[ ] 3.2.4 理解售后状态流转
* \[ ] 3.2.5 理解退款金额计算

### 3.3 库存管理

* \[ ] 3.3.1 阅读 WarehouseGoodsService.php
* \[ ] 3.3.2 理解多仓库架构
* \[ ] 3.3.3 理解库存同步机制
* \[ ] 3.3.4 理解库存预警逻辑

***

## 四、扩展功能层（L3）

### 4.1 插件系统

* \[ ] 4.1.1 理解钩子机制原理
* \[ ] 4.1.2 查看插件配置结构（config.json）
* \[ ] 4.1.3 理解插件目录结构规范
* \[ ] 4.1.4 了解钩子注入时机
* \[ ] 4.1.5 理解插件热插拔实现

### 4.2 DIY 可视化装修

* \[ ] 4.2.1 阅读 DiyService.php 源码（1117行）
* \[ ] 4.2.2 理解组件化设计
* \[ ] 4.2.3 理解配置存储格式
* \[ ] 4.2.4 理解配置导入导出

### 4.3 分销系统

* \[ ] 4.3.1 查看分销插件目录（app/plugins/distribution/）
* \[ ] 4.3.2 阅读 Hook.php 了解钩子实现
* \[ ] 4.3.3 理解多级返佣逻辑
* \[ ] 4.3.4 理解上下级关系管理
* \[ ] 4.3.5 理解佣金计算逻辑
* \[ ] 4.3.6 查看分销服务层（service/ProfitService.php 106KB）

### 4.4 优惠券系统

* \[ ] 4.4.1 查看优惠券插件（app/plugins/coupon/）
* \[ ] 4.4.2 理解满减券/折扣券实现
* \[ ] 4.4.3 理解优惠券使用逻辑

***

## 五、架构设计亮点

### 5.1 Service 服务层

* \[ ] 5.1.1 理解单一职责原则应用
* \[ ] 5.1.2 理解统一返回格式设计
* \[ ] 5.1.3 理解 Service 层可复用性
* \[ ] 5.1.4 查看 Top 10 Service 文件

### 5.2 钩子系统

* \[ ] 5.2.1 理解钩子类型分类
* \[ ] 5.2.2 理解钩子调用流程
* \[ ] 5.2.3 理解插件与核心代码解耦

### 5.3 缓存策略

* \[ ] 5.3.1 了解缓存层级设计
* \[ ] 5.3.2 理解缓存 Key 命名规范
* \[ ] 5.3.3 理解缓存更新策略
* \[ ] 5.3.4 查看缓存配置（config/shopxo.php）

### 5.4 动态表格模块

* \[ ] 5.4.1 阅读 FormTableHandleModule.php（1992行）
* \[ ] 5.4.2 理解表格配置化设计
* \[ ] 5.4.3 理解条件筛选实现
* \[ ] 5.4.4 理解数据导出逻辑

***

## 六、面试准备

### 6.1 技术理解

* \[ ] 6.1.1 能画出系统架构图
* \[ ] 6.1.2 能讲解订单状态流转
* \[ ] 6.1.3 能讲解支付回调处理
* \[ ] 6.1.4 能讲解多规格商品实现
* \[ ] 6.1.5 能讲解插件系统原理
* \[ ] 6.1.6 能讲解缓存策略设计

### 6.2 技术问答

* \[ ] 6.2.1 准备"如何防止超卖"答案
* \[ ] 6.2.2 准备"支付回调幂等性"答案
* \[ ] 6.2.3 准备"多规格商品设计"答案
* \[ ] 6.2.4 准备"缓存更新策略"答案
* \[ ] 6.2.5 准备"订单拆分逻辑"答案

### 6.3 难点案例

* \[ ] 6.3.1 准备1个技术难点案例
* \[ ] 6.3.2 准备1个性能优化案例
* \[ ] 6.3.3 准备1个架构设计案例

***

## 七、实战演练

* \[ ] 7.1 搭建本地开发环境
* \[ ] 7.2 运行项目前后台
* \[ ] 7.3 测试购买流程
* \[ ] 7.4 测试支付流程
* \[ ] 7.5 安装/卸载一个插件
* \[ ] 7.6 使用 DIY 装修功能
* \[ ] 7.7 查看 API 接口文档
* \[ ] 7.8 阅读 SQL 建表语句

***

## 八、进阶学习

* \[ ] 8.1 了解 ThinkPHP 8.x 新特性
* \[ ] 8.2 了解分布式锁实现
* \[ ] 8.3 了解消息队列使用（如有）
* \[ ] 8.4 了解定时任务实现（CrontabService）
* \[ ] 8.5 了解多商户架构（如有）
* \[ ] 8.6 了解国际化支持（MultilingualService）

***

## 进度统计

**总任务数**: 120
**已完成**: 0
**完成率**: 0%

***

> 提示：建议按顺序完成，每天 5-10 个任务，约 2-3 周完成全部学习
