upload功能

Change-Id: Iad725ce3e2edd913531bf11705bf51000dde010d
diff --git a/src/main/resources/mapper/xml/UserMapper.xml b/src/main/resources/mapper/xml/UserMapper.xml
new file mode 100644
index 0000000..229f3c0
--- /dev/null
+++ b/src/main/resources/mapper/xml/UserMapper.xml
@@ -0,0 +1,91 @@
+<?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 namespace="com.pt5.pthouduan.mapper.UserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.pt5.pthouduan.entity.User">
+        <id column="userid" property="userid" />
+        <result column="username" property="username" />
+        <result column="password" property="password" />
+        <result column="user_upload" property="userUpload" />
+        <result column="user_download" property="userDownload" />
+        <result column="credit" property="credit" />
+        <result column="image" property="image" />
+        <result column="sex" property="sex" />
+        <result column="grade_id" property="gradeId" />
+        <result column="passkey" property="passkey" />
+        <result column="user_created_time" property="userCreatedTime" />
+        <result column="ratio" property="ratio" />
+        <result column="age" property="age" />
+        <result column="privacy" property="privacy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        username, password, user_upload, user_download, credit, image, sex, userid, grade_id, passkey, user_created_time, ratio, age, privacy
+    </sql>
+    <!-- 根据 passkey 查询用户名 -->
+    <select id="getUsernameByPasskey" parameterType="java.lang.String" resultType="java.lang.String">
+        SELECT username
+        FROM user
+        WHERE passkey = #{passkey}
+    </select>
+
+    <select id="findSeedersByInfoHash" resultType="com.pt5.pthouduan.entity.PeerInfo">
+        SELECT
+            ps.ip,
+            ps.port,
+            ps.peer_id,
+            ps.uploaded,
+            ps.upload_speed,
+            ps.downloaded,
+            ps.download_speed,
+            ps.last_event,
+            ps.last_updated,
+            ps.created_at,
+            ps.client,
+            ps.username,
+            ps.created_at,
+            ps.completed_time,
+            ps.port
+        FROM peer_stats ps
+        WHERE ps.info_hash = #{infoHash}
+    </select>
+
+
+
+    <!-- 根据 passkey 检查用户是否存在 -->
+    <select id="existsByPasskey" resultType="boolean">
+        SELECT COUNT(*) > 0
+        FROM user
+        WHERE passkey = #{passkey}
+    </select>
+
+<!--    <update id="incrementUserTraffic">-->
+<!--        UPDATE user-->
+<!--        SET user_upload = user_upload + #{user_upload},-->
+<!--            user_download = user_download + #{user_download}-->
+<!--        WHERE passkey = #{passkey}-->
+<!--    </update>-->
+    <update id="incrementUserTraffic">
+        UPDATE user u
+            JOIN torrent t ON t.info_hash = #{info_hash} AND u.passkey = #{passkey}
+            SET
+                u.user_upload = u.user_upload + (
+                CASE
+                WHEN t.promotionid = 1 THEN #{user_upload} * 2      -- 上传加倍
+                ELSE #{user_upload}
+                END
+                ),
+                u.user_download = u.user_download + (
+                CASE
+                WHEN t.promotionid = 2 THEN #{user_download} / 2    -- 下载减半
+                WHEN t.promotionid = 3 THEN 0                       -- 免费下载
+                ELSE #{user_download}
+                END
+                )
+    </update>
+
+
+
+</mapper>