一、功能概述
本地供应商评价功能是小象买菜系统中重要的用户反馈机制,旨在帮助平台和用户了解供应商的服务质量、商品品质和配送效率,同时激励供应商提升服务水平。
二、核心功能模块
1. 评价维度设计
- 商品质量:新鲜度、包装完整性、与描述相符度
- 配送服务:准时率、配送员态度、包装保护
- 价格合理性:性价比、市场对比
- 售后服务:退换货处理、问题响应速度
- 总体评分:1-5星综合评分
2. 评价流程
1. 订单完成后触发:用户确认收货后自动弹出评价入口
2. 多维度评分:用户可对各维度进行1-5星评分
3. 文字评价:可选填写详细评价内容
4. 图片上传:支持上传商品实物图或问题照片
5. 匿名评价:提供匿名评价选项保护用户隐私
3. 评价展示与筛选
- 供应商主页展示:显示综合评分和评价数量
- 评价标签云:自动提取高频关键词形成标签
- 筛选功能:按评分、时间、评价类型筛选
- 图片评价优先展示:带图片的评价获得更高曝光
三、技术实现方案
1. 数据库设计
```sql
CREATE TABLE supplier_ratings (
id INT AUTO_INCREMENT PRIMARY KEY,
supplier_id INT NOT NULL,
user_id INT NOT NULL,
order_id INT NOT NULL,
quality_rating TINYINT CHECK (quality_rating BETWEEN 1 AND 5),
delivery_rating TINYINT CHECK (delivery_rating BETWEEN 1 AND 5),
price_rating TINYINT CHECK (price_rating BETWEEN 1 AND 5),
service_rating TINYINT CHECK (service_rating BETWEEN 1 AND 5),
overall_rating TINYINT CHECK (overall_rating BETWEEN 1 AND 5),
comment TEXT,
is_anonymous BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (supplier_id) REFERENCES suppliers(id),
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (order_id) REFERENCES orders(id)
);
CREATE TABLE rating_images (
id INT AUTO_INCREMENT PRIMARY KEY,
rating_id INT NOT NULL,
image_url VARCHAR(255) NOT NULL,
FOREIGN KEY (rating_id) REFERENCES supplier_ratings(id)
);
```
2. 后端API设计
- `POST /api/ratings` - 提交评价
- `GET /api/suppliers/{id}/ratings` - 获取供应商评价
- `GET /api/ratings/statistics/{supplierId}` - 获取评价统计数据
- `PUT /api/ratings/{id}` - 更新评价(有限制条件)
3. 前端实现要点
- 评价组件:星级评分控件、文本输入框、图片上传器
- 评价列表:分页加载、排序功能(按时间/评分)
- 评价统计卡片:显示平均分、各维度评分、好评率
- 评价审核:敏感词过滤、图片内容审核
四、供应商管理功能
1. 供应商端功能
- 评价概览:显示平均评分、评价数量趋势
- 详细评价查看:按时间、评分筛选查看评价
- 评价回复:供应商可回复用户评价
- 改进计划:针对差评制定改进措施并公示
2. 平台管理功能
- 评价审核:人工审核敏感或违规评价
- 评价分析:生成供应商评价报告
- 奖惩机制:根据评价自动调整供应商排名/推荐权重
- 异常评价处理:处理恶意评价或刷评行为
五、关键算法实现
1. 供应商综合评分算法
```python
def calculate_supplier_score(supplier_id, time_window=30d):
"""
计算供应商综合评分(考虑时间衰减)
:param supplier_id: 供应商ID
:param time_window: 时间窗口(如30d表示最近30天)
:return: 综合评分(0-5)
"""
获取时间窗口内的评价
ratings = get_ratings_in_window(supplier_id, time_window)
if not ratings:
return 0
计算加权平均分(最近评价权重更高)
total_weight = 0
weighted_sum = 0
for i, rating in enumerate(ratings):
时间衰减因子(最近30天线性衰减)
days_ago = (datetime.now() - rating[created_at]).days
weight = max(0, 1 - days_ago/30)
weighted_sum += rating[overall_rating] * weight
total_weight += weight
return weighted_sum / total_weight if total_weight > 0 else 0
```
2. 评价排序算法
```python
def sort_ratings(ratings, sort_by=newest):
"""
评价排序算法
:param ratings: 评价列表
:param sort_by: 排序方式(newest/highest/lowest/helpful)
:return: 排序后的评价列表
"""
if sort_by == newest:
return sorted(ratings, key=lambda x: x[created_at], reverse=True)
elif sort_by == highest:
return sorted(ratings, key=lambda x: x[overall_rating], reverse=True)
elif sort_by == lowest:
return sorted(ratings, key=lambda x: x[overall_rating])
elif sort_by == helpful:
有帮助排序(基于点赞数/时间衰减)
now = datetime.now()
def helpful_score(rating):
days_ago = (now - rating[created_at]).days
time_factor = 1 / (1 + days_ago/30) 30天半衰期
return rating.get(helpful_votes, 0) * time_factor
return sorted(ratings, key=lambda x: helpful_score(x), reverse=True)
else:
return ratings
```
六、安全与合规考虑
1. 用户隐私保护:匿名评价处理、个人信息脱敏
2. 评价真实性验证:防止刷评和恶意评价
3. 内容审核:自动过滤敏感词和违规内容
4. 数据安全:评价数据加密存储和传输
5. 合规性:符合《电子商务法》和《网络交易监督管理办法》
七、实施路线图
1. 第一阶段(2周):数据库设计和基础API开发
2. 第二阶段(3周):前端评价组件和供应商管理界面开发
3. 第三阶段(2周):评价算法实现和测试
4. 第四阶段(1周):上线前安全审计和合规检查
5. 第五阶段(持续):根据用户反馈迭代优化
八、预期效果
1. 提升用户对平台和供应商的信任度
2. 激励供应商提升服务质量
3. 为平台采购决策提供数据支持
4. 增强用户粘性和平台竞争力
通过完善的供应商评价系统,小象买菜可以构建更加透明、可信的本地生鲜供应链,提升整体服务质量和用户满意度。