wuchimedes | db9fe68 | 2025-04-22 19:24:11 +0800 | [diff] [blame] | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| 3 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| 4 | <mapper namespace="com.example.g8backend.mapper.PeerMapper"> |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 5 | |
| 6 | <select id="getPeerByPK" parameterType="map" resultType="com.example.g8backend.entity.Peer"> |
wuchimedes | db9fe68 | 2025-04-22 19:24:11 +0800 | [diff] [blame] | 7 | SELECT * FROM peers |
| 8 | WHERE peer_id = #{peerId} and info_hash = #{infoHash} and passkey = #{passkey} |
| 9 | </select> |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 10 | |
| 11 | <select id="getPeerByInfoHashAndPeerId" parameterType="map" resultType="com.example.g8backend.entity.Peer"> |
wuchimedes | db9fe68 | 2025-04-22 19:24:11 +0800 | [diff] [blame] | 12 | SELECT * FROM peers |
| 13 | WHERE info_hash = #{infoHash} and peer_id = #{peerId} |
| 14 | </select> |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 15 | |
22301071 | 7e8ebe4 | 2025-06-03 23:26:44 +0800 | [diff] [blame] | 16 | <select id="selectAllInfoHashesWithPeers" resultType="String"> |
| 17 | SELECT DISTINCT info_hash FROM peers |
| 18 | </select> |
| 19 | |
| 20 | <select id="countRecentActivity" resultType="Long" parameterType="String"> |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 21 | SELECT COUNT(*) FROM torrents |
22301071 | 7e8ebe4 | 2025-06-03 23:26:44 +0800 | [diff] [blame] | 22 | WHERE info_hash = #{infoHash} |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 23 | AND upload_time >= DATE_SUB(NOW(), INTERVAL 7 DAY) |
22301071 | 7e8ebe4 | 2025-06-03 23:26:44 +0800 | [diff] [blame] | 24 | </select> |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 25 | |
| 26 | |
22301071 | 7e8ebe4 | 2025-06-03 23:26:44 +0800 | [diff] [blame] | 27 | <select id="selectByInfoHashList" parameterType="list" resultType="com.example.g8backend.entity.Torrent"> |
| 28 | SELECT * FROM torrents |
| 29 | WHERE info_hash IN |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 30 | <foreach collection="infoHashes" item="item" open="(" separator="," close=")"> |
22301071 | 7e8ebe4 | 2025-06-03 23:26:44 +0800 | [diff] [blame] | 31 | #{item} |
| 32 | </foreach> |
| 33 | </select> |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 34 | |
| 35 | |
| 36 | <update id="updatePeer" parameterType="map"> |
wuchimedes | db9fe68 | 2025-04-22 19:24:11 +0800 | [diff] [blame] | 37 | UPDATE peers |
| 38 | SET uploaded = #{uploaded}, downloaded = #{downloaded} |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 39 | WHERE peer_id = #{peerId} and info_hash = #{infoHash} and passkey = #{passkey} |
wuchimedes | db9fe68 | 2025-04-22 19:24:11 +0800 | [diff] [blame] | 40 | </update> |
22301071 | b566662 | 2025-06-06 21:32:34 +0800 | [diff] [blame] | 41 | |
wuchimedes | db9fe68 | 2025-04-22 19:24:11 +0800 | [diff] [blame] | 42 | </mapper> |