liudongzhi 2 часов назад
Родитель
Сommit
e73af639e2

+ 32 - 37
alien-store/src/main/java/shop/alien/store/service/impl/CommonRatingServiceImpl.java

@@ -1144,57 +1144,52 @@ public class CommonRatingServiceImpl extends ServiceImpl<CommonRatingMapper, Com
             Integer commentCount = storeInfoScoreNew.size();
 
 
-            if (commentCount == 10) {
-                // 没有评价,设置默认评分为0
-                StoreInfo storeInfo = new StoreInfo();
-                storeInfo.setId(businessId);
-                storeInfo.setScoreAvg(4.0);
+            if (commentCount < 10) {
+                if (storeInfoNew.getScoreAvg()!=0.0){
+                    // 没有评价,设置默认评分为0
+                    StoreInfo storeInfo = new StoreInfo();
+                    storeInfo.setId(businessId);
+                    storeInfo.setScoreAvg(3.5);
 //                storeInfo.setScoreOne(3.0);
 //                storeInfo.setScoreTwo(3.0);
 //                storeInfo.setScoreThree(3.0);
-                storeInfoMapper.updateById(storeInfo);
-                log.info("店铺有效评价被删除=10条,重置评分为4.0,businessId={}", businessId);
-                return;
-            }
+                    storeInfoMapper.updateById(storeInfo);
+                    log.info("店铺有效评价被删除<10条,重置评分为3.5,businessId={}", businessId);
+                }
+            }else if(commentCount > 10){
+                // 计算平均评分
+                double scoreSum = ratings.stream().mapToDouble(r -> r.getScore() != null ? r.getScore() : 0.0).sum();
+                double scoreOneSum = ratings.stream().mapToDouble(r -> r.getScoreOne() != null ? r.getScoreOne() : 0.0).sum();
+                double scoreTwoSum = ratings.stream().mapToDouble(r -> r.getScoreTwo() != null ? r.getScoreTwo() : 0.0).sum();
+                double scoreThreeSum = ratings.stream().mapToDouble(r -> r.getScoreThree() != null ? r.getScoreThree() : 0.0).sum();
+
+                double scoreAvg = Math.round((scoreSum / total) * 100.0) / 100.0;
+                double scoreOne = Math.round((scoreOneSum / total) * 100.0) / 100.0;
+                double scoreTwo = Math.round((scoreTwoSum / total) * 100.0) / 100.0;
+                double scoreThree = Math.round((scoreThreeSum / total) * 100.0) / 100.0;
 
-            if (commentCount < 10) {
+                StoreInfo storeInfo = new StoreInfo();
+                storeInfo.setId(businessId);
+                storeInfo.setScoreAvg(scoreAvg);
+                storeInfo.setScoreOne(scoreOne);
+                storeInfo.setScoreTwo(scoreTwo);
+                storeInfo.setScoreThree(scoreThree);
+                storeInfoMapper.updateById(storeInfo);
 
-                if (storeInfoNew.getScoreAvg()==0.0){
-                    return;
-                }
+                log.info("更新店铺评分成功,businessId={},评价数={},scoreAvg={}", businessId, total, scoreAvg);
+            }else{
                 // 没有评价,设置默认评分为0
                 StoreInfo storeInfo = new StoreInfo();
                 storeInfo.setId(businessId);
-                storeInfo.setScoreAvg(3.5);
+                storeInfo.setScoreAvg(4.0);
 //                storeInfo.setScoreOne(3.0);
 //                storeInfo.setScoreTwo(3.0);
 //                storeInfo.setScoreThree(3.0);
                 storeInfoMapper.updateById(storeInfo);
-                log.info("店铺有效评价被删除<10条,重置评分为3.5,businessId={}", businessId);
-                return;
-            }
+                log.info("店铺有效评价被删除=10条,重置评分为4.0,businessId={}", businessId);
 
+            }
 
-            // 计算平均评分
-            double scoreSum = ratings.stream().mapToDouble(r -> r.getScore() != null ? r.getScore() : 0.0).sum();
-            double scoreOneSum = ratings.stream().mapToDouble(r -> r.getScoreOne() != null ? r.getScoreOne() : 0.0).sum();
-            double scoreTwoSum = ratings.stream().mapToDouble(r -> r.getScoreTwo() != null ? r.getScoreTwo() : 0.0).sum();
-            double scoreThreeSum = ratings.stream().mapToDouble(r -> r.getScoreThree() != null ? r.getScoreThree() : 0.0).sum();
-            
-            double scoreAvg = Math.round((scoreSum / total) * 100.0) / 100.0;
-            double scoreOne = Math.round((scoreOneSum / total) * 100.0) / 100.0;
-            double scoreTwo = Math.round((scoreTwoSum / total) * 100.0) / 100.0;
-            double scoreThree = Math.round((scoreThreeSum / total) * 100.0) / 100.0;
-            
-            StoreInfo storeInfo = new StoreInfo();
-            storeInfo.setId(businessId);
-            storeInfo.setScoreAvg(scoreAvg);
-            storeInfo.setScoreOne(scoreOne);
-            storeInfo.setScoreTwo(scoreTwo);
-            storeInfo.setScoreThree(scoreThree);
-            storeInfoMapper.updateById(storeInfo);
-            
-            log.info("更新店铺评分成功,businessId={},评价数={},scoreAvg={}", businessId, total, scoreAvg);
         } catch (Exception e) {
             log.error("更新店铺评分失败,businessId={},error={}", businessId, e.getMessage());
         }