40 lines
1.5 KiB
XML
40 lines
1.5 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||
|
||
<!-- 电影 Mapper XML:存放复杂SQL,简单CRUD由MyBatis-Plus BaseMapper自动提供 -->
|
||
<mapper namespace="com.wangpan.common.dal.mapper.MovieMapper">
|
||
|
||
<!-- 查找用户所有网盘下的重复电影(按 title 分组,出现次数 > 1) -->
|
||
<select id="findDuplicateMovies" resultType="java.util.Map">
|
||
SELECT title, COUNT(*) AS cnt
|
||
FROM wp_movie
|
||
WHERE user_id = #{userId} AND status = 'active'
|
||
GROUP BY title
|
||
HAVING COUNT(*) > 1
|
||
ORDER BY cnt DESC
|
||
</select>
|
||
|
||
<!-- 查找所有配置了TMDB API Key的用户(供定时刮削使用) -->
|
||
<select id="findUsersWithTmdbKey" resultType="java.util.Map">
|
||
SELECT u.id, u.username
|
||
FROM wp_user u
|
||
WHERE u.tmdb_api_key IS NOT NULL
|
||
AND u.tmdb_api_key != ''
|
||
AND u.status = 1
|
||
</select>
|
||
|
||
<!-- 查找指定用户需要刮削的电影 -->
|
||
<select id="findMoviesNeedingScrape" resultType="com.wangpan.common.dal.dataobject.MovieDO">
|
||
SELECT m.* FROM wp_movie m
|
||
LEFT JOIN wp_tmdb_cache c ON m.id = c.movie_id AND c.status = 'active'
|
||
WHERE m.user_id = #{userId}
|
||
AND m.title IS NOT NULL AND m.title != ''
|
||
AND m.scrape_type != 'none'
|
||
AND (c.id IS NULL OR c.cache_time < DATE_SUB(NOW(), INTERVAL #{expireDays} DAY))
|
||
ORDER BY m.update_time DESC
|
||
LIMIT 100
|
||
</select>
|
||
|
||
</mapper>
|