|
|
@@ -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);
|