| | |
| | | SELECT |
| | | t.*, |
| | | c.name AS nickname, |
| | | c.cover AS avatar |
| | | c.cover AS avatar, |
| | | COALESCE(l.like_count, 0) AS vo_like_count, |
| | | COALESCE(com.comment_count, 0) AS vo_comment_count, |
| | | COALESCE(col.collect_count, 0) AS vo_collect_count, |
| | | CASE WHEN l_user.status = 1 THEN 1 ELSE 0 END AS liked, |
| | | CASE WHEN col_user.status = 1 THEN 1 ELSE 0 END AS collected |
| | | FROM |
| | | film_works t |
| | | LEFT JOIN |
| | | t_customer_info c |
| | | ON |
| | | t.create_by = c.user_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, COUNT(*) AS like_count |
| | | FROM film_likes |
| | | WHERE status = 1 |
| | | GROUP BY film_id |
| | | ) l ON t.id = l.film_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, COUNT(*) AS comment_count |
| | | FROM film_comments |
| | | WHERE state = 1 |
| | | GROUP BY film_id |
| | | ) com ON t.id = com.film_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, COUNT(*) AS collect_count |
| | | FROM film_collects |
| | | WHERE status = 1 |
| | | GROUP BY film_id |
| | | ) col ON t.id = col.film_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, status |
| | | FROM film_likes |
| | | WHERE create_by = #{dto.userId} |
| | | ) l_user ON t.id = l_user.film_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, status |
| | | FROM film_collects |
| | | WHERE create_by = #{dto.userId} |
| | | ) col_user ON t.id = col_user.film_id |
| | | WHERE |
| | | t.deleted = 0 |
| | | <if test="dto.id != null and dto.id != ''"> |
| | | AND t.id = #{dto.id} |
| | | </if> |
| | | <if test="dto.nameCn != null and dto.nameCn != ''"> |
| | | AND t.name_cn LIKE CONCAT('%', #{dto.nameCn}, '%') |
| | | </if> |
| | |
| | | t.update_time DESC |
| | | </select> |
| | | |
| | | |
| | | <select id="selectInfoById" resultType="com.mzl.flower.dto.response.film.FilmWorksVO"> |
| | | SELECT |
| | | t.*, |
| | | c.name AS nickname, |
| | | c.cover AS avatar, |
| | | COALESCE(l.like_count, 0) AS vo_like_count, |
| | | COALESCE(com.comment_count, 0) AS vo_comment_count, |
| | | COALESCE(col.collect_count, 0) AS vo_collect_count, |
| | | CASE WHEN l_user.status = 1 THEN 1 ELSE 0 END AS liked, |
| | | CASE WHEN col_user.status = 1 THEN 1 ELSE 0 END AS collected |
| | | FROM |
| | | film_works t |
| | | LEFT JOIN |
| | | t_customer_info c |
| | | ON |
| | | t.create_by = c.user_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, COUNT(*) AS like_count |
| | | FROM film_likes |
| | | WHERE status = 1 |
| | | GROUP BY film_id |
| | | ) l ON t.id = l.film_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, COUNT(*) AS comment_count |
| | | FROM film_comments |
| | | WHERE state = 1 |
| | | GROUP BY film_id |
| | | ) com ON t.id = com.film_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, COUNT(*) AS collect_count |
| | | FROM film_collects |
| | | WHERE status = 1 |
| | | GROUP BY film_id |
| | | ) col ON t.id = col.film_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, status |
| | | FROM film_likes |
| | | WHERE create_by = #{userId} |
| | | ) l_user ON t.id = l_user.film_id |
| | | LEFT JOIN ( |
| | | SELECT film_id, status |
| | | FROM film_collects |
| | | WHERE create_by = #{userId} |
| | | ) col_user ON t.id = col_user.film_id |
| | | WHERE |
| | | t.deleted = 0 |
| | | <if test="id != null and id != ''"> |
| | | AND t.id = #{id} |
| | | </if> |
| | | ORDER BY |
| | | t.update_time DESC |
| | | </select> |
| | | |
| | | </mapper> |