Explorar o código

店铺评分修改 默认3分 评价数大于10条 计算店铺平均分

qinxuyang hai 1 semana
pai
achega
ae639e30af

+ 12 - 10
alien-store/src/main/java/shop/alien/store/service/impl/CommonRatingServiceImpl.java

@@ -419,17 +419,19 @@ public class CommonRatingServiceImpl extends ServiceImpl<CommonRatingMapper, Com
             // 更新门店评价信息
             StoreInfoScoreVo storeInfoScoreVo = commonRatingMapper.getCommentCountAndScoreInfo(commonRating.getBusinessType(),businessId);
             double total = storeInfoScoreVo.getTotal();
-            double scoreAvg = (total == 0 ? 0 : storeInfoScoreVo.getScore() / total);
-            double scoreOne = (total == 0 ? 0 : storeInfoScoreVo.getScoreOne() / total);
-            double scoreTwo = (total == 0 ? 0 : storeInfoScoreVo.getScoreTwo() / total);
-            double scoreThree = (total == 0 ? 0 : storeInfoScoreVo.getScoreThree() / total);
             StoreInfo storeInfo = new StoreInfo();
-            storeInfo.setId(businessId);
-            storeInfo.setScoreAvg(new BigDecimal(scoreAvg).setScale(2, RoundingMode.HALF_UP).doubleValue());
-            storeInfo.setScoreOne(new BigDecimal(scoreOne).setScale(2, RoundingMode.HALF_UP).doubleValue());
-            storeInfo.setScoreTwo(new BigDecimal(scoreTwo).setScale(2, RoundingMode.HALF_UP).doubleValue());
-            storeInfo.setScoreThree(new BigDecimal(scoreThree).setScale(2, RoundingMode.HALF_UP).doubleValue());
-            storeInfoMapper.updateById(storeInfo);
+            if(total >= 10){
+                double scoreAvg = (total == 0 ? 0 : storeInfoScoreVo.getScore() / total);
+                double scoreOne = (total == 0 ? 0 : storeInfoScoreVo.getScoreOne() / total);
+                double scoreTwo = (total == 0 ? 0 : storeInfoScoreVo.getScoreTwo() / total);
+                double scoreThree = (total == 0 ? 0 : storeInfoScoreVo.getScoreThree() / total);
+                storeInfo.setId(businessId);
+                storeInfo.setScoreAvg(new BigDecimal(scoreAvg).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                storeInfo.setScoreOne(new BigDecimal(scoreOne).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                storeInfo.setScoreTwo(new BigDecimal(scoreTwo).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                storeInfo.setScoreThree(new BigDecimal(scoreThree).setScale(2, RoundingMode.HALF_UP).doubleValue());
+                storeInfoMapper.updateById(storeInfo);
+            }
             StoreUser storeUser = storeUserMapper.selectOne(new LambdaQueryWrapper<StoreUser>().eq(StoreUser::getStoreId, storeInfo.getId()).eq(StoreUser::getDeleteFlag, 0));
 
             // 如果差评,则发送差评提醒