一、系统概述
小象买菜系统是一款面向社区的生鲜电商解决方案,核心功能之一是支持灵活的自提点设置,以满足不同社区、商圈和用户群体的需求。
二、自提点灵活设置功能设计
1. 自提点类型管理
- 固定自提点:实体店铺、智能柜等
- 临时自提点:活动现场、流动摊位等
- 合作自提点:便利店、快递站等第三方合作点
2. 自提点信息管理
- 基础信息:名称、地址、联系方式、营业时间
- 地理位置:经纬度坐标、服务范围半径
- 服务能力:每日最大接单量、当前订单量
- 图片展示:自提点外观、内部环境照片
3. 灵活设置功能
- 时间灵活设置:
- 支持按天设置营业时间
- 支持节假日特殊营业时间
- 支持临时闭店通知
- 范围灵活设置:
- 按行政区划设置服务区域
- 自定义多边形服务范围
- 最小服务半径设置(如500米)
- 规则灵活设置:
- 自提时间段选择(如9:00-12:00, 14:00-18:00)
- 订单处理规则(提前多久截单)
- 特殊商品自提限制
三、技术实现方案
1. 前端实现
- 地图交互:集成高德/百度地图API,支持画区选择服务范围
- 时间选择器:自定义时间区间选择组件
- 规则配置界面:可视化规则设置面板
2. 后端实现
- 自提点模型设计:
```javascript
{
id: String,
name: String,
type: Enum(fixed|temporary|partner),
location: {
type: Point,
coordinates: [Number, Number]
},
serviceArea: {
type: Polygon,
coordinates: [[Number, Number]]
},
serviceHours: [{
dayOfWeek: Number, // 0-6 (周日-周六)
openTime: String, // "09:00"
closeTime: String // "18:00"
}],
rules: {
orderCutoffTime: Number, // 提前小时数
maxOrdersPerDay: Number,
specialGoods: [String] // 特殊商品ID
}
}
```
- 地理围栏算法:
- 使用GeoJSON处理多边形区域
- 实现点在多边形内检测算法
- 距离计算服务(Haversine公式)
3. 数据库设计
- 自提点表:存储自提点基础信息
- 服务时间表:记录每日营业时间
- 服务范围表:存储地理围栏数据
- 规则配置表:存储各类业务规则
四、核心业务逻辑
1. 自提点可用性检查
```javascript
function isPickupPointAvailable(pickupPointId, userLocation, deliveryTime) {
// 1. 检查自提点是否营业
const isOpen = checkOperatingHours(pickupPointId, deliveryTime);
// 2. 检查用户是否在服务范围内
const isInRange = checkServiceArea(pickupPointId, userLocation);
// 3. 检查自提点是否已满
const hasCapacity = checkCapacity(pickupPointId, deliveryTime);
return isOpen && isInRange && hasCapacity;
}
```
2. 智能推荐自提点
```javascript
function recommendPickupPoints(userLocation, deliveryTime) {
// 1. 查询附近自提点
const nearbyPoints = queryNearbyPoints(userLocation, MAX_DISTANCE);
// 2. 过滤可用自提点
const availablePoints = nearbyPoints.filter(point =>
isPickupPointAvailable(point.id, userLocation, deliveryTime)
);
// 3. 按距离和评分排序
return availablePoints.sort((a, b) =>
a.distance - b.distance || b.rating - a.rating
);
}
```
五、管理后台功能
1. 自提点创建向导:
- 地图选点
- 信息填写
- 规则配置
- 审核流程
2. 批量管理工具:
- 批量修改营业时间
- 批量更新服务范围
- 批量调整规则
3. 数据分析看板:
- 自提点使用率
- 订单分布热力图
- 高峰时段分析
六、用户端体验
1. 自提点选择流程:
- 自动定位推荐附近自提点
- 地图查看所有可选自提点
- 筛选条件(营业时间、距离等)
2. 自提点详情页:
- 营业时间显示
- 服务范围地图展示
- 实时订单量显示
- 导航功能
七、扩展功能考虑
1. 动态定价:根据自提点繁忙程度调整服务费
2. 预约系统:高峰时段预约取货
3. 自提点评价:用户对自提点服务评分
4. 多级自提点:总仓-区域仓-社区自提点层级管理
八、实施建议
1. 分阶段开发:
- 第一阶段:基础自提点管理
- 第二阶段:灵活规则配置
- 第三阶段:智能推荐算法
2. 测试重点:
- 地理围栏准确性测试
- 高并发订单处理测试
- 边界条件测试(如营业时间切换点)
3. 运维考虑:
- 自提点状态监控
- 异常情况预警
- 数据备份与恢复
通过以上设计方案,小象买菜系统可以实现高度灵活的自提点设置,满足不同业务场景的需求,同时提供良好的用户体验和管理效率。