zhangchen 1 день назад
Родитель
Сommit
fd77063e3f

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

@@ -66,48 +66,61 @@ public interface LifeUserDynamicsMapper extends BaseMapper<LifeUserDynamics> {
             "${ew.customSqlSegment}")
     List<LifeUserDynamicsVo> getStoreDynamicslistWithWrapper(@Param("userId") String userId, @Param(Constants.WRAPPER) QueryWrapper<LifeUserDynamics> dynamicsWrapper);
 
-    @Select("with middle_lud as (\n" +
-            "  select \n" +
-            "    lud.id, lud.title, lud.context, lud.image_path, lud.phone_user_type phoneUserType, lud.phone_ref_id phoneRefId, lud.type, lud.created_time,\n" +
-            "    case when lud.phone_user_type = 1 then concat('user_', (select user_phone from life_user where id = lud.phone_ref_id and delete_flag = 0 limit 1))\n" +
-            "         when lud.phone_user_type = 2 then concat('store_', (select phone from store_user where id = lud.phone_ref_id and delete_flag = 0 limit 1))\n" +
-            "         when lud.phone_user_type = 3 then concat('lawyer_', (select phone from lawyer_user where id = lud.phone_ref_id and delete_flag = 0 limit 1))\n" +
-            "    end as phoneId,\n" +
-            "    '1' as isLike,\n" +
-            "    llr_sub.like_created_time\n" +
-            "  from life_user_dynamics lud\n" +
-            "  inner join (\n" +
-            "    select huifu_id, max(created_time) as like_created_time\n" +
-            "    from life_like_record llr\n" +
-            "    where llr.dianzan_user_type = (case when #{phoneId} like 'user\\_%' then 1 when #{phoneId} like 'store\\_%' then 2 when #{phoneId} like 'lawyer\\_%' then 3 else null end)\n" +
-            "      and llr.dianzan_ref_id = (case when #{phoneId} like 'user\\_%' then (select id from life_user where concat('user_', user_phone) = #{phoneId} and delete_flag = 0 limit 1)\n" +
-            "           when #{phoneId} like 'store\\_%' then (select id from store_user where concat('store_', phone) = #{phoneId} and delete_flag = 0 limit 1)\n" +
-            "           when #{phoneId} like 'lawyer\\_%' then (select id from lawyer_user where concat('lawyer_', phone) = #{phoneId} and delete_flag = 0 limit 1) else null end)\n" +
-            "      and llr.delete_flag = 0\n" +
-            "    group by huifu_id\n" +
-            "  ) llr_sub on lud.id = llr_sub.huifu_id\n" +
-            "  where lud.delete_flag = 0\n" +
-            "    and lud.phone_user_type is not null and lud.phone_ref_id is not null\n" +
-            "    and not exists (\n" +
-            "      select 1 from life_blacklist lb\n" +
-            "      where lb.blocker_phone_id = #{phoneId}\n" +
-            "        and lb.delete_flag = 0\n" +
-            "        and lb.blocked_phone_id = case when lud.phone_user_type = 1 then concat('user_', (select user_phone from life_user where id = lud.phone_ref_id and delete_flag = 0 limit 1))\n" +
-            "             when lud.phone_user_type = 2 then concat('store_', (select phone from store_user where id = lud.phone_ref_id and delete_flag = 0 limit 1))\n" +
-            "             when lud.phone_user_type = 3 then concat('lawyer_', (select phone from lawyer_user where id = lud.phone_ref_id and delete_flag = 0 limit 1)) end\n" +
-            "    )\n" +
+    @Select("WITH middle_lud AS (\n" +
+            "    SELECT \n" +
+            "        lud.*,\n" +
+            "        '1' AS isLike,\n" +
+            "        llr_sub.like_created_time\n" +
+            "    FROM life_user_dynamics lud\n" +
+            "    INNER JOIN (\n" +
+            "        SELECT \n" +
+            "            huifu_id, \n" +
+            "            MAX(created_time) AS like_created_time\n" +
+            "        FROM life_like_record llr\n" +
+            "        WHERE \n" +
+            "        llr.dianzan_user_type = #{viewerUserType}\n" +
+            "        and llr.dianzan_ref_id = #{viewerRefId}\n" +
+            "            AND llr.delete_flag = 0\n" +
+            "        GROUP BY huifu_id\n" +
+            "    ) llr_sub ON lud.id = llr_sub.huifu_id\n" +
+            "    WHERE lud.delete_flag = 0\n" +
+            "        AND NOT EXISTS (\n" +
+            "            SELECT 1 \n" +
+            "            FROM life_blacklist lb\n" +
+            "            WHERE lb.blocker_id = #{viewerRefId}\n" +
+            "            and lb.blocked_type = #{viewerUserType}\n" +
+            "                AND lb.delete_flag = 0\n" +
+            "                AND  lb.blocker_id = lud.phone_ref_id \n" +
+            "            and lb.blocked_type = lud.phone_user_type \n" +
+            "        )\n" +
             ")\n" +
-            "select middle_lud.*,\n" +
-            "  CASE WHEN lf.id is not null THEN 1 ELSE 0 END AS isFollowThis,\n" +
-            "  CASE WHEN lf1.id is not null THEN 1 ELSE 0 END AS isFollowMe\n" +
-            "from middle_lud\n" +
-            "left join life_fans lf on lf.fans_user_type = #{viewerUserType} and lf.fans_ref_id = #{viewerRefId} " +
-            "and lf.followed_user_type = middle_lud.phoneUserType and lf.followed_ref_id = middle_lud.phoneRefId and lf.delete_flag = 0\n" +
-            "left join life_fans lf1 on lf1.fans_user_type = middle_lud.phoneUserType and lf1.fans_ref_id = middle_lud.phoneRefId " +
-            "and lf1.followed_user_type = #{viewerUserType} and lf1.followed_ref_id = #{viewerRefId} and lf1.delete_flag = 0\n" +
-            "order by middle_lud.like_created_time desc")
-    List<LifeUserDynamicsVo> selectDianZanList(@Param("phoneId") String phoneId,
-                                               @Param("viewerUserType") Integer viewerUserType,
+            "SELECT \n" +
+            "    middle_lud.*,\n" +
+            "    CASE \n" +
+            "        WHEN lf.id IS NOT NULL THEN 1\n" +
+            "        ELSE 0\n" +
+            "    END AS isFollowThis,\n" +
+            "    CASE \n" +
+            "        WHEN lf1.id IS NOT NULL THEN 1\n" +
+            "        ELSE 0\n" +
+            "    END AS isFollowMe\n" +
+            "FROM middle_lud\n" +
+            "LEFT JOIN life_fans lf \n" +
+            "    ON \n" +
+            "    lf.fans_ref_id = #{viewerRefId} and\n" +
+            "    lf.fans_user_type = #{viewerUserType} and\n" +
+            "    lf.followed_ref_id = middle_lud.phone_ref_id and \n" +
+            "    lf.followed_user_type = middle_lud.phone_user_type \n" +
+            "    AND lf.delete_flag = '0'\n" +
+            "LEFT JOIN life_fans lf1 \n" +
+            "    ON \n" +
+            "     lf1.fans_ref_id = middle_lud.phone_ref_id and\n" +
+            "    lf1.fans_user_type = middle_lud.phone_user_type  and\n" +
+            "     lf1.followed_ref_id = #{viewerRefId} and \n" +
+            "    lf1.followed_user_type = #{viewerUserType}\n" +
+            "    AND lf1.delete_flag = '0'\n" +
+            "ORDER BY middle_lud.like_created_time DESC")
+    List<LifeUserDynamicsVo> selectDianZanList(@Param("viewerUserType") Integer viewerUserType,
                                                @Param("viewerRefId") Integer viewerRefId);
 
     List<LifeUserDynamicsVo> getDynamicsList(@Param("nickName") String nickName, @Param("userType") String userType, @Param("dynamicsType") Integer dynamicsType, @Param("releaseStartTime") String releaseStartTime, @Param("releaseEndTime") String releaseEndTime, @Param("storeName") String storeName);

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

@@ -748,7 +748,7 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
     public List<LifeUserDynamicsVo> getDianZanList(String phoneId) {
         PublisherScope viewerScope = dynamicsIdentityHelper.resolveFromPhoneId(phoneId);
         List<LifeUserDynamicsVo> lifeUserDynamicsVos = lifeUserDynamicsMapper.selectDianZanList(
-                phoneId, viewerScope.getPhoneUserType(), viewerScope.getPhoneRefId());
+                viewerScope.getPhoneUserType(), viewerScope.getPhoneRefId());
 
 
         // TODO  bugfix: 过滤掉我拉黑的和拉黑我的。