Ver Fonte

bugid-422 bug修改

zhangchen há 1 mês atrás
pai
commit
ed21de6df4

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

@@ -15,10 +15,9 @@ import java.util.List;
 public interface LifeUserDynamicsMapper extends BaseMapper<LifeUserDynamics> {
 
     @Select("select dyna1.* from (with dynamice as( " +
-            "    select id, top_status, top_time,  title, phone_id phoneId, context, image_path, address,address_name,address_context, liulan_count, dianzan_count, type, created_time, substring_index(phone_id, '_', 1) flag, substring_index(phone_id, '_', -1) phone, draft , address_province, transfer_count" +
-            "    from life_user_dynamics " +
-            "    where delete_flag = 0  and enable_status = 0 and draft = 0 order by created_time desc" +
-            ") " +
+            "select lud.id, lud.top_status, lud.top_time, lud.title, lud.phone_id phoneId, lud.context, lud.image_path, lud.address, lud.address_name, lud.address_context, lud.liulan_count, lud.dianzan_count, lud.type, lud.created_time, substring_index(lud.phone_id, '_', 1) flag, substring_index(lud.phone_id, '_', -1) phone, lud.draft , lud.address_province, lud.transfer_count from life_user_dynamics lud " +
+            "where lud.delete_flag = 0 and lud.enable_status = 0 and lud.draft = 0 and " +
+            "not exists (select 1 from life_user_violation luv where luv.delete_flag = 0 and luv.processing_status = 1 AND luv.dynamics_id = lud.id) order by lud.created_time desc) " +
             "select dynamice.*, info.store_name userName, user.head_img userImage, info.id storeUserId, user.id storeOrUserId, 0 isExpert " +
             "from dynamice " +
             "join store_user user on dynamice.phone = user.phone and user.delete_flag = 0 " +
@@ -84,4 +83,5 @@ public interface LifeUserDynamicsMapper extends BaseMapper<LifeUserDynamics> {
 
     List<LifeUserDynamicsVo> getDynamicsDetail(@Param("id") Integer id);
 
+    List<LifeUserDynamicsVo> getStoreDynamicslist(@Param("userId") String userId, @Param("phoneId") String phoneId);
 }

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

@@ -88,4 +88,89 @@
         GROUP by dyna1.id order by dyna1.top_status desc, dyna1.top_time desc
     </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,
+        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>

+ 45 - 2
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -131,6 +131,9 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
     private final AliOSSUtil aliOSSUtil;
 
     private final WebSocketProcess webSocketProcess;
+
+    private final LifeFansMapper lifeFansMapper;
+
     @Resource
     private StoreIncomeDetailsRecordService storeIncomeDetailsRecordService;
 
@@ -145,6 +148,7 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
      * 懒得查, 留着导出Excel
      */
     List<StoreInfoVo> toExcel = new ArrayList<>();
+    private final LifeUserMapper lifeUserMapper;
 
     /**
      * 门店详情
@@ -1186,8 +1190,47 @@ 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);
+        dynamicsWrapper.eq("lud.delete_flag", 0);
+        //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);
         // 获取店铺动态总数