Просмотр исходного кода

更新店铺评分计算接口

liu 1 месяц назад
Родитель
Сommit
643a76cc99

+ 14 - 1
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -2478,7 +2478,20 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             evaluateDao.insert(evaluate);
             //重新计算并修改该商铺评分
             Evaluate evaluate1 = evaluateDao.selectScoreByShopId(evaluate.getShopId());
-            Double score = evaluate1.getAllScore() / Double.valueOf(evaluate1.getEvaluatecount());
+
+            // 先取值判空
+            Double allScore = evaluate1.getAllScore();
+            Integer count = evaluate1.getEvaluatecount();
+            double score = 0.0;
+// 双重校验
+            if (allScore != null && count != null && count > 0) {
+                BigDecimal allS = new BigDecimal(allScore);
+                BigDecimal evaluateC = new BigDecimal(count);
+                // 保留5位小数 四舍五入
+                score = allS.divide(evaluateC, 5, RoundingMode.HALF_UP).doubleValue();
+            }
+
+//            Double score = evaluate1.getAllScore() / Double.valueOf(evaluate1.getEvaluatecount());
             GoodsShop goodsShop = new GoodsShop();
             goodsShop.setShopId(evaluate.getShopId());
             goodsShop.setShopScore(score);

+ 1 - 1
src/test/java/OrderTest.java

@@ -325,7 +325,7 @@ public class OrderTest {
         RhtQrcodePayApi qrcodePay = new RhtQrcodePayApi(wechatMchConfig.getMchId(), wechatMchConfig.getMchKey(), "https://api.ekbuyclub.com");
 
         String orderNumberStr =
-                "118702260506006090507449"
+                "118702260319005697022370"
                 ;
         for (String orderNumber : orderNumberStr.split(",")) {
             QrcodeQueryRequestBean qqrb = new QrcodeQueryRequestBean();