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>