Răsfoiți Sursa

修复BUG 4534

lutong 3 zile în urmă
părinte
comite
6cec0436b9

+ 43 - 10
alien-store/src/main/java/shop/alien/store/service/LifeUserDynamicsService.java

@@ -553,6 +553,10 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
 
         LifeUser lifeUser = new LifeUser();
         StoreUser storeUser = new StoreUser();
+        // 商户 phoneId 时在 resultMap 与每条动态上填充店铺展示字段
+        String profileStoreName = null;
+        Double profileScoreAvg = null;
+        String profileRatingCount = null;
 
         String[] split = myselfPhoneId.split("_");
 //        if ("store".equals(split[0])) {
@@ -573,20 +577,40 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
             // 根据storeId查询店铺信息,获取店铺名称
             if (storeUser != null) {
                 if (storeUser.getStoreId() != null) {
+                    String storeIdStr = String.valueOf(storeUser.getStoreId());
+                    Map<String, Integer> ratingCountMap = batchGetRatingCount(Collections.singletonList(storeIdStr));
+                    int ratingCnt = ratingCountMap.getOrDefault(storeIdStr, 0);
+                    profileRatingCount = String.valueOf(ratingCnt);
+                    resultMap.put("ratingCount", profileRatingCount);
+
                     StoreInfo storeInfo = storeInfoMapper.selectById(storeUser.getStoreId());
-                    resultMap.put("businessSection",storeInfo.getBusinessSection());
-                    resultMap.put("scoreAvg",storeInfo.getScoreAvg());
-                    if (storeInfo != null && storeInfo.getStoreName() != null) {
-                        // 使用店铺名称作为昵称
-                        storeUser.setUserName(storeInfo.getStoreName());
-                        storeUser.setNickName(storeInfo.getStoreName());
+                    if (storeInfo != null) {
+                        resultMap.put("businessSection", storeInfo.getBusinessSection());
+                        double score = storeInfo.getScoreAvg() != null ? storeInfo.getScoreAvg() : 0.0;
+                        resultMap.put("scoreAvg", score);
+                        profileScoreAvg = score;
+                        String sn = StringUtils.hasText(storeInfo.getStoreName()) ? storeInfo.getStoreName() : storeUser.getNickName();
+                        resultMap.put("storeName", sn);
+                        profileStoreName = sn;
+                        storeUser.setUserName(sn);
+                        storeUser.setNickName(sn);
                     } else {
-                        // 如果没有店铺信息,使用原来的nickName
-                        storeUser.setUserName(storeUser.getNickName());
+                        resultMap.put("scoreAvg", 0.0);
+                        profileScoreAvg = 0.0;
+                        String nick = storeUser.getNickName();
+                        resultMap.put("storeName", nick);
+                        profileStoreName = nick;
+                        storeUser.setUserName(nick);
                     }
                 } else {
-                    // 如果没有storeId,使用原来的nickName
-                    storeUser.setUserName(storeUser.getNickName());
+                    resultMap.put("scoreAvg", 0.0);
+                    resultMap.put("ratingCount", "0");
+                    String nick = storeUser.getNickName();
+                    resultMap.put("storeName", nick);
+                    profileScoreAvg = 0.0;
+                    profileRatingCount = "0";
+                    profileStoreName = nick;
+                    storeUser.setUserName(nick);
                 }
                 storeUser.setUserImage(storeUser.getHeadImg());
                 storeUser.setJianjie(storeUser.getAccountBlurb());
@@ -642,6 +666,15 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
 
         // 我是否点赞,并且查询每条动态的评论数量
         for (LifeUserDynamicsVo dynamicsVo : lifeUserDynamicsVoList) {
+            if (profileStoreName != null) {
+                dynamicsVo.setStoreName(profileStoreName);
+            }
+            if (profileScoreAvg != null) {
+                dynamicsVo.setScoreAvg(profileScoreAvg);
+            }
+            if (profileRatingCount != null) {
+                dynamicsVo.setRatingCount(profileRatingCount);
+            }
             if (likeList.contains(String.valueOf(dynamicsVo.getId()))) {
                 dynamicsVo.setIsLike("1");
             } else {