本文档旨在详细说明CRMEB系统中物流管理模块的设计架构、核心功能、代码实现及开发规范,为系统开发人员提供完整的开发参考。
本文档适用于CRMEB系统开发人员、维护人员及二次开发人员,用于指导物流管理模块的开发、扩展和维护工作。
| 术语 | 解释 |
|---|---|
| 快递公司 | 提供物流配送服务的公司,如顺丰、中通、圆通等 |
| 物流模板 | 定义商品运费计算规则的模板,包含计费方式、区域配送规则等 |
| 电子面单 | 在线生成的快递单,可直接打印使用 |
| 配送员 | 负责配送订单的人员 |
| 物流单号 | 快递包裹的唯一标识,用于查询物流信息 |
| 批量发货 | 一次处理多个订单的发货操作 |
系统采用分层架构设计,严格遵循MVC设计模式:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Controllers │ │ Services │ │ Daos │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ Models │
└─────────────────┘
│
┌─────────────────┐
│ 数据库 │
└─────────────────┘
crmeb/app/adminapi/controller/v1/freight/Express.phpcrmeb/app/services/shipping/ExpressServices.phpcrmeb/app/dao/shipping/ExpressDao.phpcrmeb/app/adminapi/route/freight.phpcrmeb/app/adminapi/controller/v1/setting/ShippingTemplates.phpcrmeb/app/services/shipping/ShippingTemplatesServices.phpcrmeb/app/dao/shipping/ShippingTemplatesDao.phpcrmeb/app/model/shipping/ShippingTemplates.phpcrmeb/app/adminapi/controller/v1/order/StoreOrder.phpcrmeb/app/adminapi/controller/v1/order/DeliveryService.phpcrmeb/app/services/order/DeliveryServiceServices.phpcrmeb/app/services/order/StoreOrderDeliveryServices.php| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 快递公司ID |
| name | varchar(50) | 快递公司名称 |
| code | varchar(20) | 快递公司编码 |
| logo | varchar(255) | 快递公司Logo |
| sort | int(10) | 排序 |
| status | tinyint(1) | 状态(0-禁用,1-启用) |
| is_show | tinyint(1) | 是否显示(0-不显示,1-显示) |
| add_time | int(10) | 添加时间 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 模板ID |
| name | varchar(50) | 模板名称 |
| type | tinyint(1) | 计费方式(0-按件数,1-按重量,2-按体积) |
| sregion | text | 配送区域(JSON格式) |
| srules | text | 配送规则(JSON格式) |
| sort | int(10) | 排序 |
| status | tinyint(1) | 状态(0-禁用,1-启用) |
| add_time | int(10) | 添加时间 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 区域ID |
| temp_id | int(10) | 模板ID |
| region | text | 区域(JSON格式) |
| first | decimal(10,2) | 首件/首重/首体积 |
| first_price | decimal(10,2) | 首件/首重/首体积价格 |
| continue | decimal(10,2) | 续件/续重/续体积 |
| continue_price | decimal(10,2) | 续件/续重/续体积价格 |
| add_time | int(10) | 添加时间 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 订单ID |
| express_code | varchar(20) | 快递公司编码 |
| express_no | varchar(50) | 物流单号 |
| shipping_type | tinyint(1) | 配送方式(0-快递,1-自提) |
| delivery_type | tinyint(1) | 发货方式(0-未发货,1-已发货,2-已完成) |
| delivery_time | int(10) | 发货时间 |
| // 其他订单字段 | // 数据类型 | // 描述 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 配送员ID |
| name | varchar(20) | 配送员姓名 |
| phone | varchar(20) | 配送员手机号 |
| avatar | varchar(255) | 配送员头像 |
| status | tinyint(1) | 状态(0-禁用,1-启用) |
| add_time | int(10) | 添加时间 |
/adminapi/v1/freight/express/list/adminapi/v1/freight/express/create/adminapi/v1/freight/express/sync/adminapi/v1/setting/shipping/template/list/adminapi/v1/setting/shipping/template/create/adminapi/v1/order/delivery/{id}/adminapi/v1/order/delivery/batch/adminapi/v1/order/express/{id}/adminapi/v1/order/delivery/service/list命名规范:
ExpressServicesgetExpressListshippingTemplateSHIPPING_TYPE_EXPRESS代码结构:
性能优化:
问题:调用物流查询API失败 解决方案:
问题:批量处理大量订单发货时超时 解决方案:
问题:根据物流模板计算的运费与预期不符 解决方案:
问题:电子面单生成或打印失败 解决方案:
| 版本 | 更新日期 | 更新内容 | 更新人 |
|---|---|---|---|
| 1.0 | 2026-01-19 | 初始版本,包含快递公司管理、物流模板管理、订单配送管理等核心功能 | AI Assistant |
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Controllers │ │ Services │ │ Daos │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ Models │
└─────────────────┘
│
┌─────────────────┐
│ 数据库 │
└─────────────────┘
订单发货流程:
1. 管理员进入订单详情页
2. 点击"发货"按钮
3. 选择发货方式(快递发货、电子面单、商家寄件)
4. 填写物流信息(快递公司、物流单号等)
5. 提交发货请求
6. 系统更新订单状态为已发货
7. 系统记录物流信息
8. 触发物流通知事件
9. 发送物流通知给用户
物流查询流程:
1. 用户或管理员请求查询物流信息
2. 系统验证请求合法性
3. 检查缓存中是否有物流信息
4. 缓存命中,返回缓存数据
5. 缓存未命中,调用物流查询API
6. 解析API返回结果
7. 缓存物流信息
8. 返回物流信息给请求方
| 计费方式 | 描述 |
|---|---|
| 按件数 | 按照商品件数计算运费 |
| 按重量 | 按照商品重量计算运费 |
| 按体积 | 按照商品体积计算运费 |
| 状态值 | 描述 |
|---|---|
| 0 | 未发货 |
| 1 | 已发货 |
| 2 | 已完成 |
| 方式值 | 描述 |
|---|---|
| 0 | 快递配送 |
| 1 | 门店自提 |
提示:该文档由AI生成,仅供参考。