一、生鲜订单状态提醒系统设计
1. 核心状态节点定义
- 支付状态:待支付/支付成功/支付失败
- 仓储状态:待分拣/分拣中/分拣完成
- 物流状态:待发货/运输中/已签收/异常(如配送延迟、商品损坏)
- 售后状态:退款申请/退款中/退款完成/投诉处理中
2. 提醒触发机制
- 实时触发:支付成功、物流状态变更(如从“运输中”到“已签收”)
- 定时触发:
- 待支付订单:30分钟/1小时未支付提醒
- 待发货订单:超过承诺发货时间(如T+1日12:00)提醒
- 运输中订单:预计送达前2小时提醒
- 异常触发:
- 配送延迟超过30分钟
- 商品分拣错误(如重量不符)
- 客户投诉未处理超过2小时
3. 提醒渠道与内容
- 短信/邮件:
- 模板示例:
```
【生鲜到家】您的订单 12345已分拣完成,预计18:00前送达,点击查看详情:链接
```
- App/小程序推送:
- 富文本消息(含商品图片、物流地图轨迹)
- 语音电话(可选):
- 针对高价值订单或异常情况(如配送地址错误)
4. 技术实现方案
- 后端服务:
- 使用消息队列(如RabbitMQ/Kafka)解耦状态变更与提醒发送
- 规则引擎(如Drools)动态管理提醒规则
- 数据库设计:
```sql
CREATE TABLE order_reminder (
id BIGINT PRIMARY KEY,
order_id VARCHAR(32) NOT NULL,
status VARCHAR(20) NOT NULL, -- 待支付/待发货等
reminder_type VARCHAR(10), -- SMS/EMAIL/PUSH
sent_time DATETIME,
is_success BOOLEAN,
retry_count INT DEFAULT 0
);
```
- API接口:
```rest
POST /api/reminder/trigger
{
"order_id": "12345",
"status": "SHIPPED",
"user_id": "67890"
}
```
二、万象源码部署指南
1. 部署前准备
- 环境要求:
- Linux/Ubuntu 20.04+
- Docker 20.10+ / Kubernetes 1.21+
- MySQL 8.0+ / PostgreSQL 12+
- Redis 6.0+
- 资源分配:
- 开发环境:2核4G(测试用)
- 生产环境:4核8G起(建议使用云服务器)
2. 部署步骤
1. 代码获取:
```bash
git clone https://github.com/wanxiang/生鲜系统.git
cd 生鲜系统
```
2. 容器化部署(推荐):
```bash
构建镜像
docker build -t wanxiang-order .
启动服务
docker-compose -f docker-compose.prod.yml up -d
```
3. 数据库初始化:
```bash
mysql -u root -p < db/schema.sql
```
4. 配置文件调整:
- 修改`config/application.yml`中的短信网关、支付接口等参数
3. 关键配置项
```yaml
config/application.yml
reminder:
sms:
enabled: true
provider: aliyun 或 twilio
template_id: SMS_123456
push:
android_app_key: your_app_key
ios_cert_path: /path/to/cert.p12
```
4. 部署后验证
- 健康检查:
```bash
curl http://localhost:8080/actuator/health
```
- 模拟订单状态变更:
```bash
使用Postman调用API
POST http://localhost:8080/api/orders/12345/status
{
"status": "SHIPPED"
}
```
- 检查提醒日志:
```bash
tail -f logs/reminder.log
```
三、运维与优化建议
1. 监控告警:
- 配置Prometheus监控提醒发送成功率
- 设置阈值告警(如5分钟内失败率>10%)
2. 性能优化:
- 对高频提醒(如配送中)使用批量发送
- 短信网关配置异步回调确认
3. 灾备方案:
- 数据库主从复制
- 提醒队列持久化存储
四、常见问题处理
| 问题现象 | 可能原因 | 解决方案 |
|---------|---------|---------|
| 短信未发送 | 网关余额不足 | 充值并检查配置 |
| 推送延迟 | 消息队列积压 | 增加消费者实例 |
| 状态更新不及时 | 数据库锁等待 | 优化SQL索引 |
如需更详细的部署文档或定制化开发支持,可提供以下信息进一步沟通:
1. 现有技术栈(如是否使用微服务)
2. 预计订单量峰值
3. 特殊业务规则(如预售订单处理)