Pārlūkot izejas kodu

bugId-422 bug修改

zhangchen 1 mēnesi atpakaļ
vecāks
revīzija
72e0a37015

+ 2 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeUserDynamicsMapper.java

@@ -86,4 +86,6 @@ public interface LifeUserDynamicsMapper extends BaseMapper<LifeUserDynamics> {
 
     List<LifeUserDynamicsVo> getExpertDynamicsDetail(@Param("id") Integer id);
 
+    List<LifeUserDynamicsVo> getStoreDynamicslist(@Param("userId") String userId, @Param("phoneId") String phoneId);
+
 }

+ 86 - 0
alien-entity/src/main/resources/mapper/LifeUserDynamicsMapper.xml

@@ -113,4 +113,90 @@
         AND dy.delete_flag = 0
     </select>
 
+    <select id="getStoreDynamicslist" resultType="shop.alien.entity.store.vo.LifeUserDynamicsVo">
+        select
+        dyna1.*,
+        COUNT(dyna1.id) AS fansCount
+        from
+        (
+        select
+        dyna.*,
+        COUNT(sc.id) AS commentCount,
+        COUNT(lm.id) AS transferNum
+        from
+        (
+        with dynamice as(
+        select
+        CASE
+        WHEN image_path REGEXP '.mp4|.avi|.flv|.mkv|.rmvb|.wmv|.3gp|.mov' THEN 2
+        WHEN image_path REGEXP '.jpg|.jpeg|.png|.bmp|.webp|.gif|.svg' THEN 1
+        ELSE 0
+        END AS dynamicsType, id, title, phone_id phoneId, context, image_path, address, address_name, address_context, liulan_count, dianzan_count, type, created_time, substring_index(phone_id, '_', 1) userType, substring_index(phone_id, '_', -1) phone, draft , address_province, top_status, top_time, enable_status,
+        order_gmv,business_id
+        from life_user_dynamics
+        where phone_id = #{phoneId} and delete_flag = 0 and draft = 0 order by created_time desc
+        )
+        select
+        dynamice.*,
+        user.nick_name userName,
+        user.head_img userImage,
+        info.id storeUserId,
+        user.id storeOrUserId,
+        0 isExpert,
+        IF(llr.huifu_id IS NOT NULL or llr1.huifu_id IS NOT NULL, 1, 0) AS isLike
+        from
+        dynamice
+        left join store_user user on
+        dynamice.phone = user.phone
+        and user.delete_flag = 0
+        left join store_info info on
+        info.id = user.store_id
+        and info.delete_flag = 0
+        left join store_img img on
+        img.store_id = user.store_id
+        and img.img_type = '10'
+        and img.delete_flag = 0
+        left join life_like_record llr on
+        llr.huifu_id = dynamice.id
+        and llr.delete_flag = 0
+        and llr.dianzan_id = (
+        select
+        CONCAT('user_', lu1.user_phone)
+        from
+        life_user lu1
+        where
+        lu1.id = #{userId})
+        left join life_like_record llr1 on
+        llr1.huifu_id = dynamice.id
+        and llr1.delete_flag = 0
+        and llr1.dianzan_id = (
+        select
+        CONCAT('store_', lu2.phone)
+        from
+        store_user lu2
+        where
+        lu2.id = #{userId})
+        where
+        dynamice.userType = 'store') dyna
+        left join life_comment lc on
+        lc.dongtai_shequ_id = dyna.id
+        left join store_comment sc on
+        sc.business_id = dyna.id
+        and sc.business_type = 2
+        and sc.delete_flag = 0
+        left join life_message lm on
+        lm.business_id = dyna.id
+        GROUP BY
+        dyna.id
+        order by
+        dyna.created_time desc) dyna1
+        left join life_fans lf1 on
+        lf1.followed_id = dyna1.phoneId
+        GROUP by
+        dyna1.id
+        order by
+        dyna1.top_status desc,
+        dyna1.top_time desc
+    </select>
+
 </mapper>

+ 43 - 1
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -133,6 +133,9 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
     private final AliOSSUtil aliOSSUtil;
 
     private final WebSocketProcess webSocketProcess;
+
+    private final LifeFansMapper lifeFansMapper;
+
     @Resource
     private StoreIncomeDetailsRecordService storeIncomeDetailsRecordService;
 
@@ -1193,7 +1196,46 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
         QueryWrapper<LifeUserDynamics> dynamicsWrapper = new QueryWrapper<>();
         dynamicsWrapper.eq("phone_id", "store_" + result.getStorePhone()).orderByDesc("lud.created_time");
         dynamicsWrapper.eq("lud.delete_flag",0);
-        List<LifeUserDynamicsVo> storeDynamicslist = lifeUserDynamicsMapper.getStoreDynamicslist(userId, dynamicsWrapper);
+        //List<LifeUserDynamicsVo> storeDynamicslist = lifeUserDynamicsMapper.getStoreDynamicslist(userId, dynamicsWrapper);
+        List<LifeUserDynamicsVo> storeDynamicslist = lifeUserDynamicsMapper.getStoreDynamicslist(userId, "store_" + result.getStorePhone());
+
+        List<String> followList = new ArrayList<>();
+        List<String> fansList = new ArrayList<>();
+
+        if(StringUtils.isNotEmpty(userId)){
+            LifeUser lifeUser = lifeUserMapper.selectById(userId);
+            if(lifeUser!=null && StringUtils.isNotEmpty(lifeUser.getUserPhone())){
+                // 查询我的关注信息,构建关注者ID列表
+                LambdaQueryWrapper<LifeFans> lifeFansWrapper = new LambdaQueryWrapper<>();
+                lifeFansWrapper.eq(LifeFans::getFansId, "user_" + result.getStorePhone());
+                List<LifeFans> lifeFansList = lifeFansMapper.selectList(lifeFansWrapper);
+                if(!CollectionUtils.isEmpty(lifeFansList)){
+                    followList = lifeFansList.stream().map(LifeFans::getFollowedId).collect(Collectors.toList());
+                }
+
+                // 查询我的粉丝信息,构建粉丝ID列表
+                lifeFansWrapper = new LambdaQueryWrapper<>();
+                lifeFansWrapper.eq(LifeFans::getFollowedId, "user_" + result.getStorePhone());
+                lifeFansList = lifeFansMapper.selectList(lifeFansWrapper);
+                if(!CollectionUtils.isEmpty(lifeFansList)){
+                    fansList = lifeFansList.stream().map(LifeFans::getFansId).collect(Collectors.toList());
+                }
+            }
+        }
+
+        for (LifeUserDynamicsVo vo : storeDynamicslist) {
+            if (followList.contains(vo.getPhoneId())) {
+                vo.setIsFollowThis("1");
+            } else {
+                vo.setIsFollowThis("0");
+            }
+            if (fansList.contains(vo.getPhoneId())) {
+                vo.setIsFollowMe("1");
+            } else {
+                vo.setIsFollowMe("0");
+            }
+        }
+
         List<LifeUserDynamicsVo> storeDynamicslist2 = storeDynamicslist.stream().limit(10).collect(Collectors.toList());
         result.setDynamicsList(storeDynamicslist2);
         // 获取店铺动态总数