一、功能概述
本地供应商评价功能是小象买菜系统中连接消费者与本地供应商的重要桥梁,旨在通过用户反馈提升供应商服务质量,增强平台信任度,同时为消费者提供购物参考。
二、核心功能模块设计
1. 评价维度设计
- 商品质量:新鲜度、包装完整性、规格准确性
- 配送服务:准时率、配送员态度、包装保护
- 价格合理性:性价比、与市场价对比
- 售后服务:退换货处理、问题解决效率
- 供应商响应:缺货通知、特殊需求处理
2. 评价流程设计
1. 订单完成后触发:用户确认收货后24小时内可评价
2. 多维度评分:1-5星评分制,每个维度独立评分
3. 文字评价:可选填写详细反馈(200字以内)
4. 图片上传:支持上传3张以内相关图片
5. 匿名评价:用户可选择是否匿名
3. 评价展示规则
- 供应商主页:展示平均评分和近期3条优质评价
- 商品详情页:显示该商品对应供应商的评分
- 搜索排序:评价评分作为供应商排序重要权重
- 评价筛选:按星级、时间、是否有图筛选查看
三、技术实现方案
1. 数据库设计
```sql
CREATE TABLE supplier_evaluations (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
supplier_id BIGINT NOT NULL,
order_id BIGINT NOT NULL,
quality_score TINYINT NOT NULL COMMENT 商品质量评分1-5,
delivery_score TINYINT NOT NULL COMMENT 配送服务评分1-5,
price_score TINYINT NOT NULL COMMENT 价格合理性评分1-5,
service_score TINYINT NOT NULL COMMENT 售后服务评分1-5,
response_score TINYINT NOT NULL COMMENT 供应商响应评分1-5,
comment TEXT COMMENT 文字评价,
images VARCHAR(1000) COMMENT 图片URL列表,JSON格式,
is_anonymous TINYINT(1) DEFAULT 0 COMMENT 是否匿名,
create_time DATETIME NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (supplier_id) REFERENCES suppliers(id),
FOREIGN KEY (order_id) REFERENCES orders(id)
);
CREATE TABLE supplier_scores (
supplier_id BIGINT PRIMARY KEY,
avg_quality DECIMAL(3,2) DEFAULT 0,
avg_delivery DECIMAL(3,2) DEFAULT 0,
avg_price DECIMAL(3,2) DEFAULT 0,
avg_service DECIMAL(3,2) DEFAULT 0,
avg_response DECIMAL(3,2) DEFAULT 0,
overall_score DECIMAL(3,2) DEFAULT 0,
evaluation_count INT DEFAULT 0,
FOREIGN KEY (supplier_id) REFERENCES suppliers(id)
);
```
2. 后端实现要点
- 评价提交接口:
```java
@PostMapping("/api/evaluations")
public ResponseEntity<?> submitEvaluation(
@RequestBody EvaluationRequest request,
@AuthenticationPrincipal UserDetails userDetails) {
// 验证订单归属
Order order = orderService.getById(request.getOrderId());
if (!order.getUserId().equals(userDetails.getId())) {
throw new AccessDeniedException("无权评价此订单");
}
// 保存评价
Evaluation evaluation = evaluationConverter.convert(request, userDetails);
evaluationRepository.save(evaluation);
// 更新供应商评分
supplierService.updateSupplierScores(evaluation.getSupplierId());
return ResponseEntity.ok().build();
}
```
- 评分计算服务:
```java
@Service
public class SupplierScoreCalculator {
@Transactional
public void updateSupplierScores(Long supplierId) {
// 从数据库获取所有评价
List
evaluations = evaluationRepository.findBySupplierId(supplierId); if (evaluations.isEmpty()) { return; } // 计算各维度平均分 double avgQuality = evaluations.stream() .mapToDouble(Evaluation::getQualityScore) .average() .orElse(0); // 类似计算其他维度... // 计算综合评分(加权平均) double overallScore = (avgQuality * 0.3) + (avgDelivery * 0.25) + (avgPrice * 0.15) + (avgService * 0.2) + (avgResponse * 0.1); // 更新供应商评分表 SupplierScore score = supplierScoreRepository.findById(supplierId) .orElseGet(() -> new SupplierScore(supplierId)); score.setAvgQuality((float)avgQuality); // 设置其他维度... score.setOverallScore((float)overallScore); score.setEvaluationCount(evaluations.size()); supplierScoreRepository.save(score); } } ``` 3. 前端展示方案 - 供应商详情页: ```jsx function SupplierProfile({ supplier }) { const [showAllReviews, setShowAllReviews] = useState(false); // 显示前3条评价,或全部如果showAllReviews为true const displayedReviews = showAllReviews ? supplier.reviews : supplier.reviews.slice(0, 3); return ( {supplier.overallScore.toFixed(1)}分 · {supplier.evaluationCount}条评价
用户评价 {displayedReviews.map(review => ( ))} {supplier.reviews.length > 3 && ( onClick={() => setShowAllReviews(!showAllReviews)} className="show-more-btn" > {showAllReviews ? 收起评价 : `查看全部${supplier.reviews.length}条评价`} )} ); } ``` 四、关键业务逻辑 1. 评价权限控制 - 仅允许下单用户评价对应订单的供应商 - 每个订单只能评价一次 - 评价时间窗口:收货后24-72小时内(可配置) 2. 防刷评机制 - 同一用户对同一供应商24小时内只能评价一次 - 识别并过滤异常评价模式(如短时间内大量相似评价) - 图片评价需通过内容审核 3. 评分计算规则 - 综合评分 = 质量×30% + 配送×25% + 价格×15% + 服务×20% + 响应×10% - 新供应商初始评分设为4.0分 - 评价数量少于10条时显示"评价较少" 五、扩展功能建议 1. 供应商回复:允许供应商对评价进行回复,增强互动 2. 评价标签:自动提取评价中的高频词作为标签 3. 评价有用性:用户可标记评价"有帮助",提升优质评价曝光 4. 评价激励:首次评价或带图评价可获得积分奖励 5. 趋势分析:为供应商提供评分变化趋势图表 六、实施路线图 1. 第一阶段(2周): - 数据库设计与基础评价功能开发 - 后端API实现(评价提交、查询) 2. 第二阶段(1周): - 前端评价页面开发 - 评分计算逻辑实现 3. 第三阶段(1周): - 权限控制与防刷机制 - 测试与优化 4. 第四阶段(持续): - 数据监控与分析 - 根据用户反馈迭代优化 七、预期效果 1. 提升平台透明度,增强用户信任 2. 激励供应商提升服务质量 3. 为用户提供更有价值的购物参考 4. 通过数据积累优化供应商管理策略 该方案可根据实际业务需求和技术栈进行调整,建议先实现核心评价功能,再逐步完善扩展功能。