调试交互

Change-Id: Ib9d7b8432cb622c7e28c842ab4dc4e156fcd6414
diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml
index 2550a70..2e8aee0 100644
--- a/.idea/dataSources.local.xml
+++ b/.idea/dataSources.local.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="dataSourceStorageLocal" created-in="IU-243.21565.193">
+  <component name="dataSourceStorageLocal" created-in="IU-233.13135.103">
     <data-source name="echodevelop@202.205.102.121" uuid="6d2a7063-ae4c-471f-ae05-e32dede5d0ec">
       <database-info product="MySQL" version="8.4.5" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-j-8.2.0 (Revision: 06a1f724497fd81c6a659131fda822c9e5085b6c)" dbms="MYSQL" exact-version="8.4.5" exact-driver-version="8.2">
         <extra-name-characters>#@</extra-name-characters>
diff --git a/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml b/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml
index ba8f5ec..ddcbc11 100644
--- a/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml
+++ b/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <dataSource name="echodevelop@202.205.102.121">
-  <database-model serializer="dbm" dbms="MYSQL" family-id="MYSQL" format-version="4.53">
+  <database-model serializer="dbm" dbms="MYSQL" family-id="MYSQL" format-version="4.51">
     <root id="1">
       <DefaultCasing>exact</DefaultCasing>
       <DefaultEngine>InnoDB</DefaultEngine>
@@ -949,7 +949,7 @@
     </schema>
     <schema id="289" parent="1" name="echodevelop">
       <Current>1</Current>
-      <LastIntrospectionLocalTimestamp>2025-06-04.12:31:10</LastIntrospectionLocalTimestamp>
+      <LastIntrospectionLocalTimestamp>2025-06-06.11:08:11</LastIntrospectionLocalTimestamp>
       <CollationName>utf8mb4_0900_ai_ci</CollationName>
     </schema>
     <schema id="290" parent="1" name="information_schema">
@@ -959,1705 +959,1902 @@
       <CollationName>utf8mb4_0900_ai_ci</CollationName>
     </schema>
     <user id="292" parent="1" name="team11"/>
-    <table id="293" parent="289" name="collections">
+    <table id="293" parent="289" name="TorrentReport">
+      <Engine>InnoDB</Engine>
+      <CollationName>utf8mb4_0900_ai_ci</CollationName>
+    </table>
+    <table id="294" parent="289" name="collections">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="294" parent="289" name="comments">
+    <table id="295" parent="289" name="comments">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="295" parent="289" name="downloads">
+    <table id="296" parent="289" name="downloads">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="296" parent="289" name="dynamic_comment">
+    <table id="297" parent="289" name="dynamic_comment">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="297" parent="289" name="dynamic_likes">
+    <table id="298" parent="289" name="dynamic_likes">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="298" parent="289" name="experience_history">
+    <table id="299" parent="289" name="experience_history">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="299" parent="289" name="favorite">
+    <table id="300" parent="289" name="favorite">
       <Comment>ç§&#x8d;å­&#x90;æ&#x94;¶è&#x97;&#x8f;表</Comment>
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_0900_ai_ci</CollationName>
     </table>
-    <table id="300" parent="289" name="follow">
+    <table id="301" parent="289" name="follow">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="301" parent="289" name="friend_relation">
+    <table id="302" parent="289" name="friend_relation">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="302" parent="289" name="group_comments">
+    <table id="303" parent="289" name="group_comments">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="303" parent="289" name="group_interests">
+    <table id="304" parent="289" name="group_interests">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="304" parent="289" name="group_members">
+    <table id="305" parent="289" name="group_members">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="305" parent="289" name="group_post">
+    <table id="306" parent="289" name="group_post">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="306" parent="289" name="level">
+    <table id="307" parent="289" name="level">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="307" parent="289" name="likes">
+    <table id="308" parent="289" name="likes">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="308" parent="289" name="post">
+    <table id="309" parent="289" name="post">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="309" parent="289" name="promotion">
+    <table id="310" parent="289" name="promotion">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_0900_ai_ci</CollationName>
     </table>
-    <table id="310" parent="289" name="seed_comment_likes">
+    <table id="311" parent="289" name="seed_comment_likes">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="311" parent="289" name="seed_comments">
+    <table id="312" parent="289" name="seed_comments">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="312" parent="289" name="tasks">
+    <table id="313" parent="289" name="seed_rating">
+      <Engine>InnoDB</Engine>
+      <CollationName>utf8mb4_0900_ai_ci</CollationName>
+    </table>
+    <table id="314" parent="289" name="tasks">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="313" parent="289" name="torrent">
+    <table id="315" parent="289" name="torrent">
       <Comment>ç§&#x8d;å­&#x90;表</Comment>
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_0900_ai_ci</CollationName>
     </table>
-    <table id="314" parent="289" name="user">
+    <table id="316" parent="289" name="torrent_likes">
+      <Engine>InnoDB</Engine>
+      <CollationName>utf8mb4_0900_ai_ci</CollationName>
+    </table>
+    <table id="317" parent="289" name="user">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="315" parent="289" name="user_dynamic">
+    <table id="318" parent="289" name="user_dynamic">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="316" parent="289" name="user_invite_code">
+    <table id="319" parent="289" name="user_invite_code">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="317" parent="289" name="user_messages">
+    <table id="320" parent="289" name="user_messages">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <table id="318" parent="289" name="user_task_status">
+    <table id="321" parent="289" name="user_task_status">
       <Engine>InnoDB</Engine>
       <CollationName>utf8mb4_unicode_ci</CollationName>
     </table>
-    <column id="319" parent="293" name="collectionId">
-      <AutoIncrement>3</AutoIncrement>
+    <column id="322" parent="293" name="id">
+      <AutoIncrement>1</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="320" parent="293" name="user_id">
+    <column id="323" parent="293" name="downloaded">
+      <DasType>bigint|0s</DasType>
+      <Position>2</Position>
+    </column>
+    <column id="324" parent="293" name="event">
+      <DasType>varchar(255)|0s</DasType>
+      <Position>3</Position>
+    </column>
+    <column id="325" parent="293" name="infoHash">
+      <DasType>varchar(255)|0s</DasType>
+      <Position>4</Position>
+    </column>
+    <column id="326" parent="293" name="ip">
+      <DasType>varchar(255)|0s</DasType>
+      <Position>5</Position>
+    </column>
+    <column id="327" parent="293" name="left">
+      <DasType>bigint|0s</DasType>
+      <Position>6</Position>
+    </column>
+    <column id="328" parent="293" name="peerId">
+      <DasType>varchar(255)|0s</DasType>
+      <Position>7</Position>
+    </column>
+    <column id="329" parent="293" name="port">
+      <DasType>int|0s</DasType>
+      <Position>8</Position>
+    </column>
+    <column id="330" parent="293" name="reportTime">
+      <DasType>datetime(6)|0s</DasType>
+      <Position>9</Position>
+    </column>
+    <column id="331" parent="293" name="torrentId">
+      <DasType>bigint|0s</DasType>
+      <Position>10</Position>
+    </column>
+    <column id="332" parent="293" name="uploaded">
+      <DasType>bigint|0s</DasType>
+      <Position>11</Position>
+    </column>
+    <column id="333" parent="293" name="userId">
+      <DasType>int|0s</DasType>
+      <Position>12</Position>
+    </column>
+    <index id="334" parent="293" name="PRIMARY">
+      <ColNames>id</ColNames>
+      <Type>btree</Type>
+      <Unique>1</Unique>
+    </index>
+    <key id="335" parent="293" name="PRIMARY">
+      <NameSurrogate>1</NameSurrogate>
+      <Primary>1</Primary>
+      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
+    </key>
+    <column id="336" parent="294" name="collectionId">
+      <AutoIncrement>6</AutoIncrement>
+      <DasType>bigint|0s</DasType>
+      <NotNull>1</NotNull>
+      <Position>1</Position>
+    </column>
+    <column id="337" parent="294" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="321" parent="293" name="postNo">
+    <column id="338" parent="294" name="postNo">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <foreign-key id="322" parent="293" name="collections_ibfk_1">
+    <foreign-key id="339" parent="294" name="collections_ibfk_1">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <OnUpdate>cascade</OnUpdate>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <foreign-key id="323" parent="293" name="collections_ibfk_2">
+    <foreign-key id="340" parent="294" name="collections_ibfk_2">
       <ColNames>postNo</ColNames>
       <OnDelete>cascade</OnDelete>
       <OnUpdate>cascade</OnUpdate>
       <RefColNames>postNo</RefColNames>
       <RefTableName>post</RefTableName>
     </foreign-key>
-    <index id="324" parent="293" name="PRIMARY">
+    <index id="341" parent="294" name="PRIMARY">
       <ColNames>collectionId</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="325" parent="293" name="user_id">
+    <index id="342" parent="294" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="326" parent="293" name="postNo">
+    <index id="343" parent="294" name="postNo">
       <ColNames>postNo</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="327" parent="293" name="PRIMARY">
+    <key id="344" parent="294" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="328" parent="294" name="comment_id">
-      <AutoIncrement>18</AutoIncrement>
+    <column id="345" parent="295" name="comment_id">
+      <AutoIncrement>19</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="329" parent="294" name="post_id">
+    <column id="346" parent="295" name="post_id">
+      <DasType>int|0s</DasType>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="330" parent="294" name="com_comment_id">
+    <column id="347" parent="295" name="com_comment_id">
+      <DasType>bigint|0s</DasType>
       <Position>3</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="331" parent="294" name="user_id">
+    <column id="348" parent="295" name="user_id">
+      <DasType>int|0s</DasType>
       <Position>4</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="332" parent="294" name="content">
+    <column id="349" parent="295" name="content">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="333" parent="294" name="is_anonymous">
+    <column id="350" parent="295" name="is_anonymous">
+      <DasType>tinyint(1)|0s</DasType>
       <Position>6</Position>
-      <StoredType>tinyint(1)|0s</StoredType>
     </column>
-    <column id="334" parent="294" name="likes_count">
+    <column id="351" parent="295" name="likes_count">
+      <DasType>int|0s</DasType>
       <Position>7</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="335" parent="294" name="reply_count">
+    <column id="352" parent="295" name="reply_count">
+      <DasType>int|0s</DasType>
       <Position>8</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="336" parent="294" name="comment_time">
+    <column id="353" parent="295" name="comment_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>9</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="337" parent="294" name="fk_post_id">
+    <foreign-key id="354" parent="295" name="fk_post_id">
       <ColNames>post_id</ColNames>
       <RefColNames>postNo</RefColNames>
       <RefTableName>post</RefTableName>
     </foreign-key>
-    <foreign-key id="338" parent="294" name="FK_Relationship_6">
+    <foreign-key id="355" parent="295" name="FK_Relationship_6">
       <ColNames>user_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="339" parent="294" name="PRIMARY">
+    <index id="356" parent="295" name="PRIMARY">
       <ColNames>comment_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="340" parent="294" name="fk_post_id">
+    <index id="357" parent="295" name="fk_post_id">
       <ColNames>post_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="341" parent="294" name="FK_Relationship_9">
+    <index id="358" parent="295" name="FK_Relationship_9">
       <ColNames>com_comment_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="342" parent="294" name="fk_user_id">
+    <index id="359" parent="295" name="fk_user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="343" parent="294" name="PRIMARY">
+    <key id="360" parent="295" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="344" parent="295" name="download_id">
+    <column id="361" parent="296" name="download_id">
       <AutoIncrement>4</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="345" parent="295" name="torrent_id">
+    <column id="362" parent="296" name="torrent_id">
+      <DasType>int|0s</DasType>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="346" parent="295" name="user_id">
+    <column id="363" parent="296" name="user_id">
+      <DasType>int|0s</DasType>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="347" parent="295" name="download_time">
+    <column id="364" parent="296" name="download_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="348" parent="295" name="download_size">
+    <column id="365" parent="296" name="download_size">
+      <DasType>float|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <foreign-key id="349" parent="295" name="FK_Relationship_5">
+    <foreign-key id="366" parent="296" name="FK_Relationship_5">
       <ColNames>torrent_id</ColNames>
       <RefColNames>torrent_id</RefColNames>
       <RefTableName>torrents</RefTableName>
     </foreign-key>
-    <foreign-key id="350" parent="295" name="FK_Relationship_4">
+    <foreign-key id="367" parent="296" name="FK_Relationship_4">
       <ColNames>user_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="351" parent="295" name="PRIMARY">
+    <index id="368" parent="296" name="PRIMARY">
       <ColNames>download_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="352" parent="295" name="FK_Relationship_5">
+    <index id="369" parent="296" name="FK_Relationship_5">
       <ColNames>torrent_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="353" parent="295" name="FK_Relationship_4">
+    <index id="370" parent="296" name="FK_Relationship_4">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="354" parent="295" name="PRIMARY">
+    <key id="371" parent="296" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="355" parent="296" name="comment_id">
-      <AutoIncrement>4</AutoIncrement>
+    <column id="372" parent="297" name="comment_id">
+      <AutoIncrement>6</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="356" parent="296" name="dynamic_id">
+    <column id="373" parent="297" name="dynamic_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="357" parent="296" name="user_id">
+    <column id="374" parent="297" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="358" parent="296" name="comment_content">
+    <column id="375" parent="297" name="comment_content">
+      <DasType>varchar(255)|0s</DasType>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="359" parent="296" name="comment_time">
+    <column id="376" parent="297" name="comment_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="360" parent="296" name="is_anonymous">
+    <column id="377" parent="297" name="is_anonymous">
+      <DasType>tinyint(1)|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>6</Position>
-      <StoredType>tinyint(1)|0s</StoredType>
     </column>
-    <column id="361" parent="296" name="parent_comment_id">
+    <column id="378" parent="297" name="parent_comment_id">
+      <DasType>int|0s</DasType>
       <Position>7</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <foreign-key id="362" parent="296" name="dynamic_comment_ibfk_1">
+    <foreign-key id="379" parent="297" name="dynamic_comment_ibfk_1">
       <ColNames>dynamic_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>dynamic_id</RefColNames>
       <RefTableName>user_dynamic</RefTableName>
     </foreign-key>
-    <foreign-key id="363" parent="296" name="dynamic_comment_ibfk_2">
+    <foreign-key id="380" parent="297" name="dynamic_comment_ibfk_2">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <foreign-key id="364" parent="296" name="dynamic_comment_ibfk_3">
+    <foreign-key id="381" parent="297" name="dynamic_comment_ibfk_3">
       <ColNames>parent_comment_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>comment_id</RefColNames>
       <RefTableName>dynamic_comment</RefTableName>
     </foreign-key>
-    <index id="365" parent="296" name="PRIMARY">
+    <index id="382" parent="297" name="PRIMARY">
       <ColNames>comment_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="366" parent="296" name="dynamic_id">
+    <index id="383" parent="297" name="dynamic_id">
       <ColNames>dynamic_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="367" parent="296" name="user_id">
+    <index id="384" parent="297" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="368" parent="296" name="parent_comment_id">
+    <index id="385" parent="297" name="parent_comment_id">
       <ColNames>parent_comment_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="369" parent="296" name="PRIMARY">
+    <key id="386" parent="297" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="370" parent="297" name="like_id">
-      <AutoIncrement>4</AutoIncrement>
+    <column id="387" parent="298" name="like_id">
+      <AutoIncrement>5</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="371" parent="297" name="dynamic_id">
+    <column id="388" parent="298" name="dynamic_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="372" parent="297" name="user_id">
+    <column id="389" parent="298" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="373" parent="297" name="like_time">
+    <column id="390" parent="298" name="like_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="374" parent="297" name="dynamic_likes_ibfk_1">
+    <foreign-key id="391" parent="298" name="dynamic_likes_ibfk_1">
       <ColNames>dynamic_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>dynamic_id</RefColNames>
       <RefTableName>user_dynamic</RefTableName>
     </foreign-key>
-    <foreign-key id="375" parent="297" name="dynamic_likes_ibfk_2">
+    <foreign-key id="392" parent="298" name="dynamic_likes_ibfk_2">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="376" parent="297" name="PRIMARY">
+    <index id="393" parent="298" name="PRIMARY">
       <ColNames>like_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="377" parent="297" name="dynamic_id">
+    <index id="394" parent="298" name="dynamic_id">
       <ColNames>dynamic_id
 user_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="378" parent="297" name="user_id">
+    <index id="395" parent="298" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="379" parent="297" name="PRIMARY">
+    <key id="396" parent="298" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <key id="380" parent="297" name="dynamic_id">
+    <key id="397" parent="298" name="dynamic_id">
       <UnderlyingIndexName>dynamic_id</UnderlyingIndexName>
     </key>
-    <column id="381" parent="298" name="history_id">
+    <column id="398" parent="299" name="history_id">
       <AutoIncrement>2</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="382" parent="298" name="user_id">
+    <column id="399" parent="299" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="383" parent="298" name="experience_change">
+    <column id="400" parent="299" name="experience_change">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="384" parent="298" name="source">
+    <column id="401" parent="299" name="source">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="385" parent="298" name="update_time">
+    <column id="402" parent="299" name="update_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="386" parent="298" name="experience_history_ibfk_1">
+    <foreign-key id="403" parent="299" name="experience_history_ibfk_1">
       <ColNames>user_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="387" parent="298" name="PRIMARY">
+    <index id="404" parent="299" name="PRIMARY">
       <ColNames>history_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="388" parent="298" name="user_id">
+    <index id="405" parent="299" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="389" parent="298" name="PRIMARY">
+    <key id="406" parent="299" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="390" parent="299" name="id">
+    <column id="407" parent="300" name="id">
       <AutoIncrement>1</AutoIncrement>
       <Comment>主é&#x94;®</Comment>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="391" parent="299" name="user_id">
+    <column id="408" parent="300" name="user_id">
       <Comment>ç&#x94;¨æ&#x88;·ID</Comment>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="392" parent="299" name="seed_id">
+    <column id="409" parent="300" name="seed_id">
       <Comment>ç§&#x8d;å­&#x90;ID</Comment>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="393" parent="299" name="create_time">
+    <column id="410" parent="300" name="create_time">
       <Comment>æ&#x94;¶è&#x97;&#x8f;æ&#x97;¶é&#x97;´</Comment>
+      <DasType>datetime|0s</DasType>
       <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <index id="394" parent="299" name="PRIMARY">
+    <index id="411" parent="300" name="PRIMARY">
       <ColNames>id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="395" parent="299" name="uk_user_seed">
+    <index id="412" parent="300" name="uk_user_seed">
       <ColNames>user_id
 seed_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="396" parent="299" name="idx_user_id">
+    <index id="413" parent="300" name="idx_user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="397" parent="299" name="idx_seed_id">
+    <index id="414" parent="300" name="idx_seed_id">
       <ColNames>seed_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="398" parent="299" name="PRIMARY">
+    <key id="415" parent="300" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <key id="399" parent="299" name="uk_user_seed">
+    <key id="416" parent="300" name="uk_user_seed">
       <UnderlyingIndexName>uk_user_seed</UnderlyingIndexName>
     </key>
-    <column id="400" parent="300" name="record_id">
+    <column id="417" parent="301" name="record_id">
       <AutoIncrement>6</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="401" parent="300" name="follower_id">
+    <column id="418" parent="301" name="follower_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="402" parent="300" name="followed_id">
+    <column id="419" parent="301" name="followed_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="403" parent="300" name="follow_time">
+    <column id="420" parent="301" name="follow_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="404" parent="300" name="follow_ibfk_1">
+    <foreign-key id="421" parent="301" name="follow_ibfk_1">
       <ColNames>follower_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <foreign-key id="405" parent="300" name="follow_ibfk_2">
+    <foreign-key id="422" parent="301" name="follow_ibfk_2">
       <ColNames>followed_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="406" parent="300" name="PRIMARY">
+    <index id="423" parent="301" name="PRIMARY">
       <ColNames>record_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="407" parent="300" name="follower_id">
+    <index id="424" parent="301" name="follower_id">
       <ColNames>follower_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="408" parent="300" name="followed_id">
+    <index id="425" parent="301" name="followed_id">
       <ColNames>followed_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="409" parent="300" name="PRIMARY">
+    <key id="426" parent="301" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="410" parent="301" name="relation_id">
+    <column id="427" parent="302" name="relation_id">
       <AutoIncrement>3</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="411" parent="301" name="user_id">
+    <column id="428" parent="302" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="412" parent="301" name="friend_id">
+    <column id="429" parent="302" name="friend_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="413" parent="301" name="create_time">
+    <column id="430" parent="302" name="create_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="414" parent="301" name="friend_relation_ibfk_1">
+    <foreign-key id="431" parent="302" name="friend_relation_ibfk_1">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <foreign-key id="415" parent="301" name="friend_relation_ibfk_2">
+    <foreign-key id="432" parent="302" name="friend_relation_ibfk_2">
       <ColNames>friend_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="416" parent="301" name="PRIMARY">
+    <index id="433" parent="302" name="PRIMARY">
       <ColNames>relation_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="417" parent="301" name="user_id">
+    <index id="434" parent="302" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="418" parent="301" name="friend_id">
+    <index id="435" parent="302" name="friend_id">
       <ColNames>friend_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="419" parent="301" name="PRIMARY">
+    <key id="436" parent="302" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="420" parent="302" name="comment_id">
+    <column id="437" parent="303" name="comment_id">
       <AutoIncrement>6</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="421" parent="302" name="group_post_id">
+    <column id="438" parent="303" name="group_post_id">
+      <DasType>int|0s</DasType>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="422" parent="302" name="user_id">
+    <column id="439" parent="303" name="user_id">
+      <DasType>int|0s</DasType>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="423" parent="302" name="content">
+    <column id="440" parent="303" name="content">
+      <DasType>varchar(255)|0s</DasType>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="424" parent="302" name="parent_comment_id">
+    <column id="441" parent="303" name="parent_comment_id">
+      <DasType>int|0s</DasType>
       <Position>5</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="425" parent="302" name="time">
+    <column id="442" parent="303" name="time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>6</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="426" parent="302" name="group_comments_ibfk_1">
+    <foreign-key id="443" parent="303" name="group_comments_ibfk_1">
       <ColNames>group_post_id</ColNames>
       <RefColNames>group_post_id</RefColNames>
       <RefTableName>group_post</RefTableName>
     </foreign-key>
-    <foreign-key id="427" parent="302" name="group_comments_ibfk_2">
+    <foreign-key id="444" parent="303" name="group_comments_ibfk_2">
       <ColNames>user_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <foreign-key id="428" parent="302" name="group_comments_ibfk_3">
+    <foreign-key id="445" parent="303" name="group_comments_ibfk_3">
       <ColNames>parent_comment_id</ColNames>
       <RefColNames>comment_id</RefColNames>
       <RefTableName>group_comments</RefTableName>
     </foreign-key>
-    <index id="429" parent="302" name="PRIMARY">
+    <index id="446" parent="303" name="PRIMARY">
       <ColNames>comment_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="430" parent="302" name="group_post_id">
+    <index id="447" parent="303" name="group_post_id">
       <ColNames>group_post_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="431" parent="302" name="user_id">
+    <index id="448" parent="303" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="432" parent="302" name="parent_comment_id">
+    <index id="449" parent="303" name="parent_comment_id">
       <ColNames>parent_comment_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="433" parent="302" name="PRIMARY">
+    <key id="450" parent="303" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="434" parent="303" name="group_id">
+    <column id="451" parent="304" name="group_id">
       <AutoIncrement>5</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="435" parent="303" name="group_name">
+    <column id="452" parent="304" name="group_name">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="436" parent="303" name="description">
+    <column id="453" parent="304" name="description">
+      <DasType>varchar(255)|0s</DasType>
       <Position>3</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="437" parent="303" name="create_time">
+    <column id="454" parent="304" name="create_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="438" parent="303" name="user_id">
+    <column id="455" parent="304" name="user_id">
+      <DasType>int|0s</DasType>
       <Position>5</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="439" parent="303" name="member_count">
+    <column id="456" parent="304" name="member_count">
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>6</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="440" parent="303" name="category">
+    <column id="457" parent="304" name="category">
+      <DasType>varchar(255)|0s</DasType>
       <Position>7</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="441" parent="303" name="cover_image">
+    <column id="458" parent="304" name="cover_image">
+      <DasType>varchar(255)|0s</DasType>
       <Position>8</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <foreign-key id="442" parent="303" name="group_interests_ibfk_1">
+    <foreign-key id="459" parent="304" name="group_interests_ibfk_1">
       <ColNames>user_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="443" parent="303" name="PRIMARY">
+    <index id="460" parent="304" name="PRIMARY">
       <ColNames>group_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="444" parent="303" name="user_id">
+    <index id="461" parent="304" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="445" parent="303" name="PRIMARY">
+    <key id="462" parent="304" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="446" parent="304" name="relation_id">
-      <AutoIncrement>5</AutoIncrement>
+    <column id="463" parent="305" name="relation_id">
+      <AutoIncrement>6</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="447" parent="304" name="group_id">
+    <column id="464" parent="305" name="group_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="448" parent="304" name="user_id">
+    <column id="465" parent="305" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <foreign-key id="449" parent="304" name="group_members_ibfk_1">
+    <foreign-key id="466" parent="305" name="group_members_ibfk_1">
       <ColNames>group_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>group_id</RefColNames>
       <RefTableName>group_interests</RefTableName>
     </foreign-key>
-    <foreign-key id="450" parent="304" name="group_members_ibfk_2">
+    <foreign-key id="467" parent="305" name="group_members_ibfk_2">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="451" parent="304" name="PRIMARY">
+    <index id="468" parent="305" name="PRIMARY">
       <ColNames>relation_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="452" parent="304" name="unique_group_user">
+    <index id="469" parent="305" name="unique_group_user">
       <ColNames>group_id
 user_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="453" parent="304" name="user_id">
+    <index id="470" parent="305" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="454" parent="304" name="PRIMARY">
+    <key id="471" parent="305" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <key id="455" parent="304" name="unique_group_user">
+    <key id="472" parent="305" name="unique_group_user">
       <UnderlyingIndexName>unique_group_user</UnderlyingIndexName>
     </key>
-    <column id="456" parent="305" name="group_post_id">
+    <column id="473" parent="306" name="group_post_id">
       <AutoIncrement>6</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="457" parent="305" name="group_id">
+    <column id="474" parent="306" name="group_id">
+      <DasType>int|0s</DasType>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="458" parent="305" name="user_id">
+    <column id="475" parent="306" name="user_id">
+      <DasType>int|0s</DasType>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="459" parent="305" name="content">
+    <column id="476" parent="306" name="content">
+      <DasType>varchar(255)|0s</DasType>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="460" parent="305" name="title">
+    <column id="477" parent="306" name="title">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="461" parent="305" name="image">
+    <column id="478" parent="306" name="image">
+      <DasType>varchar(255)|0s</DasType>
       <Position>6</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="462" parent="305" name="like_count">
+    <column id="479" parent="306" name="like_count">
+      <DasType>bigint|0s</DasType>
       <Position>7</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="463" parent="305" name="comment_count">
+    <column id="480" parent="306" name="comment_count">
+      <DasType>bigint|0s</DasType>
       <Position>8</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="464" parent="305" name="time">
+    <column id="481" parent="306" name="time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>9</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="465" parent="305" name="group_post_ibfk_1">
+    <foreign-key id="482" parent="306" name="group_post_ibfk_1">
       <ColNames>group_id</ColNames>
       <RefColNames>group_id</RefColNames>
       <RefTableName>group_interests</RefTableName>
     </foreign-key>
-    <foreign-key id="466" parent="305" name="group_post_ibfk_2">
+    <foreign-key id="483" parent="306" name="group_post_ibfk_2">
       <ColNames>user_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="467" parent="305" name="PRIMARY">
+    <index id="484" parent="306" name="PRIMARY">
       <ColNames>group_post_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="468" parent="305" name="group_id">
+    <index id="485" parent="306" name="group_id">
       <ColNames>group_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="469" parent="305" name="user_id">
+    <index id="486" parent="306" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="470" parent="305" name="PRIMARY">
+    <key id="487" parent="306" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="471" parent="306" name="level_id">
+    <column id="488" parent="307" name="level_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="472" parent="306" name="level_name">
+    <column id="489" parent="307" name="level_name">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="473" parent="306" name="required_experience">
+    <column id="490" parent="307" name="required_experience">
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="474" parent="306" name="required_share_ratio">
+    <column id="491" parent="307" name="required_share_ratio">
+      <DasType>float|0s</DasType>
       <Position>4</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <column id="475" parent="306" name="required_upload_gb">
+    <column id="492" parent="307" name="required_upload_gb">
+      <DasType>float|0s</DasType>
       <Position>5</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <column id="476" parent="306" name="required_seeding_hours">
+    <column id="493" parent="307" name="required_seeding_hours">
+      <DasType>float|0s</DasType>
       <Position>6</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <column id="477" parent="306" name="permissions">
+    <column id="494" parent="307" name="permissions">
+      <DasType>varchar(255)|0s</DasType>
       <Position>7</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <index id="478" parent="306" name="PRIMARY">
+    <index id="495" parent="307" name="PRIMARY">
       <ColNames>level_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <key id="479" parent="306" name="PRIMARY">
+    <key id="496" parent="307" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="480" parent="307" name="likeId">
-      <AutoIncrement>4</AutoIncrement>
+    <column id="497" parent="308" name="likeId">
+      <AutoIncrement>9</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="481" parent="307" name="user_id">
+    <column id="498" parent="308" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="482" parent="307" name="postNo">
+    <column id="499" parent="308" name="postNo">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <foreign-key id="483" parent="307" name="likes_ibfk_1">
+    <foreign-key id="500" parent="308" name="likes_ibfk_1">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <OnUpdate>cascade</OnUpdate>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <foreign-key id="484" parent="307" name="likes_ibfk_2">
+    <foreign-key id="501" parent="308" name="likes_ibfk_2">
       <ColNames>postNo</ColNames>
       <OnDelete>cascade</OnDelete>
       <OnUpdate>cascade</OnUpdate>
       <RefColNames>postNo</RefColNames>
       <RefTableName>post</RefTableName>
     </foreign-key>
-    <index id="485" parent="307" name="PRIMARY">
+    <index id="502" parent="308" name="PRIMARY">
       <ColNames>likeId</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="486" parent="307" name="user_id">
+    <index id="503" parent="308" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="487" parent="307" name="postNo">
+    <index id="504" parent="308" name="postNo">
       <ColNames>postNo</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="488" parent="307" name="PRIMARY">
+    <key id="505" parent="308" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="489" parent="308" name="postNo">
-      <AutoIncrement>28</AutoIncrement>
+    <column id="506" parent="309" name="postNo">
+      <AutoIncrement>30</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="490" parent="308" name="userId">
+    <column id="507" parent="309" name="userId">
+      <DasType>int|0s</DasType>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="491" parent="308" name="postContent">
+    <column id="508" parent="309" name="postContent">
+      <DasType>varchar(255)|0s</DasType>
       <Position>3</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="492" parent="308" name="imageUrl">
+    <column id="509" parent="309" name="imageUrl">
+      <DasType>varchar(255)|0s</DasType>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="493" parent="308" name="postTime">
+    <column id="510" parent="309" name="postTime">
+      <DasType>datetime|0s</DasType>
       <Position>5</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="494" parent="308" name="postLikeNum">
+    <column id="511" parent="309" name="postLikeNum">
+      <DasType>int|0s</DasType>
       <Position>6</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="495" parent="308" name="postCollectNum">
+    <column id="512" parent="309" name="postCollectNum">
+      <DasType>int|0s</DasType>
       <Position>7</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="496" parent="308" name="title">
+    <column id="513" parent="309" name="title">
+      <DasType>varchar(255)|0s</DasType>
       <Position>8</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="497" parent="308" name="postType">
+    <column id="514" parent="309" name="postType">
+      <DasType>varchar(255)|0s</DasType>
       <Position>9</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <foreign-key id="498" parent="308" name="post_ibfk_1">
+    <foreign-key id="515" parent="309" name="post_ibfk_1">
       <ColNames>userId</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="499" parent="308" name="PRIMARY">
+    <index id="516" parent="309" name="PRIMARY">
       <ColNames>postNo</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="500" parent="308" name="userId">
+    <index id="517" parent="309" name="userId">
       <ColNames>userId</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="501" parent="308" name="PRIMARY">
+    <key id="518" parent="309" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="502" parent="309" name="id">
-      <AutoIncrement>4</AutoIncrement>
+    <column id="519" parent="310" name="id">
+      <AutoIncrement>5</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="503" parent="309" name="name">
+    <column id="520" parent="310" name="name">
+      <DasType>varchar(100)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>varchar(100)|0s</StoredType>
     </column>
-    <column id="504" parent="309" name="description">
+    <column id="521" parent="310" name="description">
+      <DasType>varchar(500)|0s</DasType>
       <Position>3</Position>
-      <StoredType>varchar(500)|0s</StoredType>
     </column>
-    <column id="505" parent="309" name="start_time">
+    <column id="522" parent="310" name="start_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="506" parent="309" name="end_time">
+    <column id="523" parent="310" name="end_time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="507" parent="309" name="discount_percentage">
+    <column id="524" parent="310" name="discount_percentage">
+      <DasType>double|0s</DasType>
       <NotNull>1</NotNull>
       <Position>6</Position>
-      <StoredType>double|0s</StoredType>
     </column>
-    <column id="508" parent="309" name="applicable_torrent_ids">
+    <column id="525" parent="310" name="applicable_torrent_ids">
+      <DasType>json|0s</DasType>
       <Position>7</Position>
-      <StoredType>json|0s</StoredType>
     </column>
-    <column id="509" parent="309" name="create_time">
+    <column id="526" parent="310" name="create_time">
+      <DasType>datetime|0s</DasType>
       <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
       <NotNull>1</NotNull>
       <Position>8</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="510" parent="309" name="update_time">
+    <column id="527" parent="310" name="update_time">
+      <DasType>datetime|0s</DasType>
       <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
       <NotNull>1</NotNull>
       <OnUpdate>CURRENT_TIMESTAMP</OnUpdate>
       <Position>9</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="511" parent="309" name="is_deleted">
+    <column id="528" parent="310" name="is_deleted">
+      <DasType>tinyint(1)|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>10</Position>
-      <StoredType>tinyint(1)|0s</StoredType>
     </column>
-    <index id="512" parent="309" name="PRIMARY">
+    <index id="529" parent="310" name="PRIMARY">
       <ColNames>id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="513" parent="309" name="idx_time">
+    <index id="530" parent="310" name="idx_time">
       <ColNames>start_time
 end_time</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="514" parent="309" name="PRIMARY">
+    <key id="531" parent="310" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="515" parent="310" name="id">
+    <column id="532" parent="311" name="id">
       <AutoIncrement>3</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="516" parent="310" name="comment_id">
+    <column id="533" parent="311" name="comment_id">
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="517" parent="310" name="user_id">
+    <column id="534" parent="311" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="518" parent="310" name="is_liked">
+    <column id="535" parent="311" name="is_liked">
+      <DasType>tinyint(1)|0s</DasType>
       <DefaultExpression>1</DefaultExpression>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>tinyint(1)|0s</StoredType>
     </column>
-    <foreign-key id="519" parent="310" name="fk_comment">
+    <foreign-key id="536" parent="311" name="fk_comment">
       <ColNames>comment_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>comment_id</RefColNames>
       <RefTableName>seed_comments</RefTableName>
     </foreign-key>
-    <foreign-key id="520" parent="310" name="fk_user">
+    <foreign-key id="537" parent="311" name="fk_user">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="521" parent="310" name="PRIMARY">
+    <index id="538" parent="311" name="PRIMARY">
       <ColNames>id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="522" parent="310" name="fk_comment">
+    <index id="539" parent="311" name="fk_comment">
       <ColNames>comment_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="523" parent="310" name="fk_user">
+    <index id="540" parent="311" name="fk_user">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="524" parent="310" name="PRIMARY">
+    <key id="541" parent="311" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="525" parent="311" name="comment_id">
+    <column id="542" parent="312" name="comment_id">
       <AutoIncrement>11</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="526" parent="311" name="seed_id">
+    <column id="543" parent="312" name="seed_id">
+      <DasType>bigint|0s</DasType>
       <Position>2</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="527" parent="311" name="com_comment_id">
+    <column id="544" parent="312" name="com_comment_id">
+      <DasType>bigint|0s</DasType>
       <Position>3</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="528" parent="311" name="user_id">
+    <column id="545" parent="312" name="user_id">
+      <DasType>int|0s</DasType>
       <Position>4</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="529" parent="311" name="content">
+    <column id="546" parent="312" name="content">
+      <DasType>varchar(255)|0s</DasType>
       <Position>5</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="530" parent="311" name="is_anonymous">
+    <column id="547" parent="312" name="is_anonymous">
+      <DasType>tinyint|0s</DasType>
       <Position>6</Position>
-      <StoredType>tinyint|0s</StoredType>
     </column>
-    <column id="531" parent="311" name="likes_count">
+    <column id="548" parent="312" name="likes_count">
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>7</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="532" parent="311" name="reply_count">
+    <column id="549" parent="312" name="reply_count">
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>8</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="533" parent="311" name="comment_time">
+    <column id="550" parent="312" name="comment_time">
+      <DasType>datetime|0s</DasType>
       <Position>9</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="534" parent="311" name="fk_seed_id">
+    <foreign-key id="551" parent="312" name="fk_seed_id">
       <ColNames>seed_id</ColNames>
       <RefColNames>id</RefColNames>
       <RefTableName>torrent</RefTableName>
     </foreign-key>
-    <foreign-key id="535" parent="311" name="seed_comments_ibfk_2">
+    <foreign-key id="552" parent="312" name="seed_comments_ibfk_2">
       <ColNames>user_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="536" parent="311" name="PRIMARY">
+    <index id="553" parent="312" name="PRIMARY">
       <ColNames>comment_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="537" parent="311" name="fk_seed_id">
+    <index id="554" parent="312" name="fk_seed_id">
       <ColNames>seed_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="538" parent="311" name="com_comment_id">
+    <index id="555" parent="312" name="com_comment_id">
       <ColNames>com_comment_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="539" parent="311" name="user_id">
+    <index id="556" parent="312" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="540" parent="311" name="PRIMARY">
+    <key id="557" parent="312" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="541" parent="312" name="task_id">
+    <check id="558" parent="313" name="seed_rating_chk_1">
+      <NameSurrogate>1</NameSurrogate>
+      <Predicate>`score` between 0 and 10</Predicate>
+    </check>
+    <column id="559" parent="313" name="rating_id">
+      <AutoIncrement>2</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>varchar(50)|0s</StoredType>
     </column>
-    <column id="542" parent="312" name="title">
+    <column id="560" parent="313" name="seed_id">
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="543" parent="312" name="description">
+    <column id="561" parent="313" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="544" parent="312" name="reward_experience">
+    <column id="562" parent="313" name="score">
+      <DasType>tinyint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="545" parent="312" name="reward_points">
+    <foreign-key id="563" parent="313" name="seed_rating_ibfk_1">
+      <ColNames>seed_id</ColNames>
+      <RefColNames>id</RefColNames>
+      <RefTableName>torrent</RefTableName>
+    </foreign-key>
+    <foreign-key id="564" parent="313" name="seed_rating_ibfk_2">
+      <ColNames>user_id</ColNames>
+      <RefColNames>user_id</RefColNames>
+      <RefTableName>user</RefTableName>
+    </foreign-key>
+    <index id="565" parent="313" name="PRIMARY">
+      <ColNames>rating_id</ColNames>
+      <Type>btree</Type>
+      <Unique>1</Unique>
+    </index>
+    <index id="566" parent="313" name="UK2yrje6s0bt9i80jj794fvdsyk">
+      <ColNames>seed_id
+user_id</ColNames>
+      <Type>btree</Type>
+      <Unique>1</Unique>
+    </index>
+    <index id="567" parent="313" name="unique_seed_user">
+      <ColNames>seed_id
+user_id</ColNames>
+      <Type>btree</Type>
+      <Unique>1</Unique>
+    </index>
+    <index id="568" parent="313" name="user_id">
+      <ColNames>user_id</ColNames>
+      <Type>btree</Type>
+    </index>
+    <key id="569" parent="313" name="PRIMARY">
+      <NameSurrogate>1</NameSurrogate>
+      <Primary>1</Primary>
+      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
+    </key>
+    <key id="570" parent="313" name="UK2yrje6s0bt9i80jj794fvdsyk">
+      <UnderlyingIndexName>UK2yrje6s0bt9i80jj794fvdsyk</UnderlyingIndexName>
+    </key>
+    <key id="571" parent="313" name="unique_seed_user">
+      <UnderlyingIndexName>unique_seed_user</UnderlyingIndexName>
+    </key>
+    <column id="572" parent="314" name="task_id">
+      <DasType>varchar(50)|0s</DasType>
+      <NotNull>1</NotNull>
+      <Position>1</Position>
+    </column>
+    <column id="573" parent="314" name="title">
+      <DasType>varchar(255)|0s</DasType>
+      <NotNull>1</NotNull>
+      <Position>2</Position>
+    </column>
+    <column id="574" parent="314" name="description">
+      <DasType>varchar(255)|0s</DasType>
+      <NotNull>1</NotNull>
+      <Position>3</Position>
+    </column>
+    <column id="575" parent="314" name="reward_experience">
+      <DasType>int|0s</DasType>
+      <NotNull>1</NotNull>
+      <Position>4</Position>
+    </column>
+    <column id="576" parent="314" name="reward_points">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <index id="546" parent="312" name="PRIMARY">
+    <index id="577" parent="314" name="PRIMARY">
       <ColNames>task_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <key id="547" parent="312" name="PRIMARY">
+    <key id="578" parent="314" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="548" parent="313" name="id">
-      <AutoIncrement>6</AutoIncrement>
+    <column id="579" parent="315" name="id">
+      <AutoIncrement>8</AutoIncrement>
       <Comment>ç§&#x8d;å­&#x90;ID</Comment>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="549" parent="313" name="info_hash">
+    <column id="580" parent="315" name="info_hash">
       <Comment>ç§&#x8d;å­&#x90;ä¿¡æ&#x81;¯å&#x93;&#x88;å¸&#x8c;</Comment>
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="550" parent="313" name="file_name">
+    <column id="581" parent="315" name="file_name">
       <Comment>ç§&#x8d;å­&#x90;æ&#x96;&#x87;ä»¶å&#x90;&#x8d;</Comment>
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="551" parent="313" name="uploader">
+    <column id="582" parent="315" name="uploader">
       <Comment>ä¸&#x8a;ä¼ è&#x80;&#x85;</Comment>
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="552" parent="313" name="create_time">
+    <column id="583" parent="315" name="create_time">
       <Comment>ä¸&#x8a;ä¼ æ&#x97;¶é&#x97;´</Comment>
+      <DasType>datetime|0s</DasType>
       <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
       <Position>5</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="553" parent="313" name="update_time">
+    <column id="584" parent="315" name="update_time">
       <Comment>æ&#x9b;´æ&#x96;°æ&#x97;¶é&#x97;´</Comment>
+      <DasType>datetime|0s</DasType>
       <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
       <OnUpdate>CURRENT_TIMESTAMP</OnUpdate>
       <Position>6</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="554" parent="313" name="size">
+    <column id="585" parent="315" name="size">
       <Comment>ç§&#x8d;å­&#x90;æ&#x96;&#x87;件大å°&#x8f;</Comment>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>7</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="555" parent="313" name="title">
+    <column id="586" parent="315" name="title">
       <Comment>ç§&#x8d;å­&#x90;æ &#x87;é¢&#x98;</Comment>
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>8</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="556" parent="313" name="description">
+    <column id="587" parent="315" name="description">
       <Comment>ç§&#x8d;å­&#x90;æ&#x8f;&#x8f;è¿°</Comment>
+      <DasType>text|0s</DasType>
       <Position>9</Position>
-      <StoredType>text|0s</StoredType>
     </column>
-    <column id="557" parent="313" name="tags">
+    <column id="588" parent="315" name="tags">
       <Comment>ç§&#x8d;å­&#x90;æ &#x87;ç­¾</Comment>
+      <DasType>varchar(255)|0s</DasType>
       <Position>10</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="558" parent="313" name="category">
+    <column id="589" parent="315" name="category">
       <Comment>ç§&#x8d;å­&#x90;å&#x88;&#x86;ç±»</Comment>
+      <DasType>varchar(255)|0s</DasType>
       <Position>11</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="559" parent="313" name="image_url">
+    <column id="590" parent="315" name="image_url">
       <Comment>ç§&#x8d;å­&#x90;å°&#x81;é&#x9d;¢å&#x9b;¾URL</Comment>
+      <DasType>varchar(255)|0s</DasType>
       <Position>12</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="560" parent="313" name="leechers">
+    <column id="591" parent="315" name="leechers">
       <Comment>ä¸&#x8b;载次æ&#x95;°</Comment>
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>13</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="561" parent="313" name="seeders">
+    <column id="592" parent="315" name="seeders">
       <Comment>å&#x81;&#x9a;ç§&#x8d;æ&#x95;°</Comment>
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>14</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="562" parent="313" name="comments">
+    <column id="593" parent="315" name="comments">
       <Comment>è¯&#x84;论æ&#x95;°</Comment>
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>15</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="563" parent="313" name="views">
+    <column id="594" parent="315" name="views">
       <Comment>æµ&#x8f;è§&#x88;次æ&#x95;°</Comment>
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>16</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="564" parent="313" name="hits">
+    <column id="595" parent="315" name="hits">
       <Comment>ç&#x82;¹å&#x87;»æ¬¡æ&#x95;°</Comment>
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>17</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="565" parent="313" name="promotion_time_type">
+    <column id="596" parent="315" name="promotion_time_type">
       <Comment>ä¿&#x83;é&#x94;&#x80;æ&#x97;¶é&#x97;´ç±»å&#x9e;&#x8b;</Comment>
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>18</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="566" parent="313" name="promotion_until">
+    <column id="597" parent="315" name="promotion_until">
       <Comment>ä¿&#x83;é&#x94;&#x80;æ&#x88;ªæ­¢æ&#x97;¥æ&#x9c;&#x9f;</Comment>
+      <DasType>datetime|0s</DasType>
       <Position>19</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="567" parent="313" name="torrent_file">
+    <column id="598" parent="315" name="torrent_file">
       <Comment>ç§&#x8d;å­&#x90;æ&#x96;&#x87;ä»¶ï¼&#x88;äº&#x8c;è¿&#x9b;å&#x88;¶ï¼&#x89;</Comment>
+      <DasType>longblob|0s</DasType>
       <Position>20</Position>
-      <StoredType>longblob|0s</StoredType>
     </column>
-    <column id="568" parent="313" name="is_deleted">
+    <column id="599" parent="315" name="is_deleted">
       <Comment>æ&#x98;¯å&#x90;¦å&#x88; é&#x99;¤</Comment>
+      <DasType>tinyint(1)|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>21</Position>
-      <StoredType>tinyint(1)|0s</StoredType>
     </column>
-    <index id="569" parent="313" name="PRIMARY">
+    <index id="600" parent="315" name="PRIMARY">
       <ColNames>id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <key id="570" parent="313" name="PRIMARY">
+    <key id="601" parent="315" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="571" parent="314" name="user_id">
-      <AutoIncrement>6</AutoIncrement>
+    <column id="602" parent="316" name="like_id">
+      <AutoIncrement>4</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="572" parent="314" name="username">
+    <column id="603" parent="316" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="573" parent="314" name="avatar_url">
+    <column id="604" parent="316" name="torrent_id">
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="574" parent="314" name="email">
+    <column id="605" parent="316" name="is_liked">
+      <DasType>tinyint(1)|0s</DasType>
+      <DefaultExpression>0</DefaultExpression>
+      <Position>4</Position>
+    </column>
+    <foreign-key id="606" parent="316" name="fk_user_id">
+      <ColNames>user_id</ColNames>
+      <RefColNames>user_id</RefColNames>
+      <RefTableName>user</RefTableName>
+    </foreign-key>
+    <foreign-key id="607" parent="316" name="fk_torrent_id">
+      <ColNames>torrent_id</ColNames>
+      <RefColNames>id</RefColNames>
+      <RefTableName>torrent</RefTableName>
+    </foreign-key>
+    <index id="608" parent="316" name="PRIMARY">
+      <ColNames>like_id</ColNames>
+      <Type>btree</Type>
+      <Unique>1</Unique>
+    </index>
+    <index id="609" parent="316" name="unique_user_torrent">
+      <ColNames>user_id
+torrent_id</ColNames>
+      <Type>btree</Type>
+      <Unique>1</Unique>
+    </index>
+    <index id="610" parent="316" name="fk_torrent_id">
+      <ColNames>torrent_id</ColNames>
+      <Type>btree</Type>
+    </index>
+    <key id="611" parent="316" name="PRIMARY">
+      <NameSurrogate>1</NameSurrogate>
+      <Primary>1</Primary>
+      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
+    </key>
+    <key id="612" parent="316" name="unique_user_torrent">
+      <UnderlyingIndexName>unique_user_torrent</UnderlyingIndexName>
+    </key>
+    <column id="613" parent="317" name="user_id">
+      <AutoIncrement>9</AutoIncrement>
+      <DasType>int|0s</DasType>
+      <NotNull>1</NotNull>
+      <Position>1</Position>
+    </column>
+    <column id="614" parent="317" name="username">
+      <DasType>varchar(255)|0s</DasType>
+      <NotNull>1</NotNull>
+      <Position>2</Position>
+    </column>
+    <column id="615" parent="317" name="avatar_url">
+      <DasType>varchar(255)|0s</DasType>
+      <NotNull>1</NotNull>
+      <Position>3</Position>
+    </column>
+    <column id="616" parent="317" name="email">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="575" parent="314" name="password">
+    <column id="617" parent="317" name="password">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="576" parent="314" name="role">
+    <column id="618" parent="317" name="role">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>6</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="577" parent="314" name="invite_count">
+    <column id="619" parent="317" name="invite_count">
+      <DasType>int|0s</DasType>
       <Position>7</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="578" parent="314" name="level">
+    <column id="620" parent="317" name="level">
+      <DasType>int|0s</DasType>
       <Position>8</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="579" parent="314" name="upload_count">
+    <column id="621" parent="317" name="upload_count">
+      <DasType>float|0s</DasType>
       <Position>9</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <column id="580" parent="314" name="download_count">
+    <column id="622" parent="317" name="download_count">
+      <DasType>float|0s</DasType>
       <Position>10</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <column id="581" parent="314" name="share_rate">
+    <column id="623" parent="317" name="share_rate">
+      <DasType>float|0s</DasType>
       <Position>11</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <column id="582" parent="314" name="registration_date">
+    <column id="624" parent="317" name="registration_date">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>12</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="583" parent="314" name="last_login_time">
+    <column id="625" parent="317" name="last_login_time">
+      <DasType>datetime|0s</DasType>
       <Position>13</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="584" parent="314" name="user_points">
+    <column id="626" parent="317" name="user_points">
+      <DasType>int|0s</DasType>
       <Position>14</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="585" parent="314" name="is_promo">
+    <column id="627" parent="317" name="is_promo">
+      <DasType>tinyint(1)|0s</DasType>
       <Position>15</Position>
-      <StoredType>tinyint(1)|0s</StoredType>
     </column>
-    <column id="586" parent="314" name="current_experience">
+    <column id="628" parent="317" name="current_experience">
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <NotNull>1</NotNull>
       <Position>16</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="587" parent="314" name="current_seeding_hours">
+    <column id="629" parent="317" name="current_seeding_hours">
+      <DasType>float|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <NotNull>1</NotNull>
       <Position>17</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <column id="588" parent="314" name="gender">
+    <column id="630" parent="317" name="gender">
+      <DasType>varchar(255)|0s</DasType>
       <Position>18</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="589" parent="314" name="description">
+    <column id="631" parent="317" name="description">
+      <DasType>varchar(255)|0s</DasType>
       <Position>19</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="590" parent="314" name="hobbies">
+    <column id="632" parent="317" name="hobbies">
+      <DasType>varchar(255)|0s</DasType>
       <Position>20</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="591" parent="314" name="registration_time">
+    <column id="633" parent="317" name="registration_time">
+      <DasType>timestamp|0s</DasType>
       <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
       <Position>21</Position>
-      <StoredType>timestamp|0s</StoredType>
     </column>
-    <foreign-key id="592" parent="314" name="fk_user_level">
+    <column id="634" parent="317" name="friend">
+      <DasType>text|0s</DasType>
+      <Position>22</Position>
+    </column>
+    <foreign-key id="635" parent="317" name="fk_user_level">
       <ColNames>level</ColNames>
       <OnDelete>set-null</OnDelete>
       <OnUpdate>cascade</OnUpdate>
       <RefColNames>level_id</RefColNames>
       <RefTableName>level</RefTableName>
     </foreign-key>
-    <index id="593" parent="314" name="PRIMARY">
+    <index id="636" parent="317" name="PRIMARY">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="594" parent="314" name="fk_user_level">
+    <index id="637" parent="317" name="fk_user_level">
       <ColNames>level</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="595" parent="314" name="PRIMARY">
+    <key id="638" parent="317" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="596" parent="315" name="dynamic_id">
-      <AutoIncrement>6</AutoIncrement>
+    <column id="639" parent="318" name="dynamic_id">
+      <AutoIncrement>9</AutoIncrement>
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="597" parent="315" name="user_id">
+    <column id="640" parent="318" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="598" parent="315" name="title">
+    <column id="641" parent="318" name="title">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="599" parent="315" name="content">
+    <column id="642" parent="318" name="content">
+      <DasType>varchar(255)|0s</DasType>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="600" parent="315" name="image_url">
+    <column id="643" parent="318" name="image_url">
+      <DasType>varchar(255)|0s</DasType>
       <Position>5</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="601" parent="315" name="time">
+    <column id="644" parent="318" name="time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>6</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <column id="602" parent="315" name="likes_count">
+    <column id="645" parent="318" name="likes_count">
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>7</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="603" parent="315" name="comments_count">
+    <column id="646" parent="318" name="comments_count">
+      <DasType>int|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>8</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <foreign-key id="604" parent="315" name="user_dynamic_ibfk_1">
+    <foreign-key id="647" parent="318" name="user_dynamic_ibfk_1">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="605" parent="315" name="PRIMARY">
+    <index id="648" parent="318" name="PRIMARY">
       <ColNames>dynamic_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="606" parent="315" name="user_id">
+    <index id="649" parent="318" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="607" parent="315" name="PRIMARY">
+    <key id="650" parent="318" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="608" parent="316" name="invite_id">
-      <AutoIncrement>3</AutoIncrement>
+    <column id="651" parent="319" name="invite_id">
+      <AutoIncrement>6</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="609" parent="316" name="user_id">
+    <column id="652" parent="319" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="610" parent="316" name="invite_code">
+    <column id="653" parent="319" name="invite_code">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="611" parent="316" name="is_used">
+    <column id="654" parent="319" name="is_used">
+      <DasType>tinyint(1)|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>4</Position>
-      <StoredType>tinyint(1)|0s</StoredType>
     </column>
-    <column id="612" parent="316" name="created_at">
+    <column id="655" parent="319" name="created_at">
+      <DasType>timestamp|0s</DasType>
       <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
       <Position>5</Position>
-      <StoredType>timestamp|0s</StoredType>
     </column>
-    <foreign-key id="613" parent="316" name="user_invite_code_ibfk_1">
+    <foreign-key id="656" parent="319" name="user_invite_code_ibfk_1">
       <ColNames>user_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="614" parent="316" name="PRIMARY">
+    <index id="657" parent="319" name="PRIMARY">
       <ColNames>invite_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="615" parent="316" name="invite_code">
+    <index id="658" parent="319" name="invite_code">
       <ColNames>invite_code</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="616" parent="316" name="user_id">
+    <index id="659" parent="319" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="617" parent="316" name="PRIMARY">
+    <key id="660" parent="319" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <key id="618" parent="316" name="invite_code">
+    <key id="661" parent="319" name="invite_code">
       <UnderlyingIndexName>invite_code</UnderlyingIndexName>
     </key>
-    <column id="619" parent="317" name="message_id">
+    <column id="662" parent="320" name="message_id">
       <AutoIncrement>2</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="620" parent="317" name="sender_id">
+    <column id="663" parent="320" name="sender_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="621" parent="317" name="receiver_id">
+    <column id="664" parent="320" name="receiver_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="622" parent="317" name="content">
+    <column id="665" parent="320" name="content">
+      <DasType>varchar(255)|0s</DasType>
       <Position>4</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="623" parent="317" name="time">
+    <column id="666" parent="320" name="time">
+      <DasType>datetime|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>datetime|0s</StoredType>
     </column>
-    <foreign-key id="624" parent="317" name="user_messages_ibfk_1">
+    <foreign-key id="667" parent="320" name="user_messages_ibfk_1">
       <ColNames>sender_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <foreign-key id="625" parent="317" name="user_messages_ibfk_2">
+    <foreign-key id="668" parent="320" name="user_messages_ibfk_2">
       <ColNames>receiver_id</ColNames>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <index id="626" parent="317" name="PRIMARY">
+    <index id="669" parent="320" name="PRIMARY">
       <ColNames>message_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="627" parent="317" name="sender_id">
+    <index id="670" parent="320" name="sender_id">
       <ColNames>sender_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="628" parent="317" name="receiver_id">
+    <index id="671" parent="320" name="receiver_id">
       <ColNames>receiver_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="629" parent="317" name="PRIMARY">
+    <key id="672" parent="320" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
     </key>
-    <column id="630" parent="318" name="status_id">
+    <column id="673" parent="321" name="status_id">
       <AutoIncrement>3</AutoIncrement>
+      <DasType>bigint|0s</DasType>
       <NotNull>1</NotNull>
       <Position>1</Position>
-      <StoredType>bigint|0s</StoredType>
     </column>
-    <column id="631" parent="318" name="user_id">
+    <column id="674" parent="321" name="user_id">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>2</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="632" parent="318" name="task_id">
+    <column id="675" parent="321" name="task_id">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>3</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="633" parent="318" name="current_progress">
+    <column id="676" parent="321" name="current_progress">
+      <DasType>float|0s</DasType>
       <NotNull>1</NotNull>
       <Position>4</Position>
-      <StoredType>float|0s</StoredType>
     </column>
-    <column id="634" parent="318" name="current_experience">
+    <column id="677" parent="321" name="current_experience">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>5</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="635" parent="318" name="current_points">
+    <column id="678" parent="321" name="current_points">
+      <DasType>int|0s</DasType>
       <NotNull>1</NotNull>
       <Position>6</Position>
-      <StoredType>int|0s</StoredType>
     </column>
-    <column id="636" parent="318" name="status">
+    <column id="679" parent="321" name="status">
+      <DasType>varchar(255)|0s</DasType>
       <NotNull>1</NotNull>
       <Position>7</Position>
-      <StoredType>varchar(255)|0s</StoredType>
     </column>
-    <column id="637" parent="318" name="is_reward_claimed">
+    <column id="680" parent="321" name="is_reward_claimed">
+      <DasType>tinyint(1)|0s</DasType>
       <DefaultExpression>0</DefaultExpression>
       <Position>8</Position>
-      <StoredType>tinyint(1)|0s</StoredType>
     </column>
-    <foreign-key id="638" parent="318" name="user_task_status_ibfk_1">
+    <foreign-key id="681" parent="321" name="user_task_status_ibfk_1">
       <ColNames>user_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>user_id</RefColNames>
       <RefTableName>user</RefTableName>
     </foreign-key>
-    <foreign-key id="639" parent="318" name="user_task_status_ibfk_2">
+    <foreign-key id="682" parent="321" name="user_task_status_ibfk_2">
       <ColNames>task_id</ColNames>
       <OnDelete>cascade</OnDelete>
       <RefColNames>task_id</RefColNames>
       <RefTableName>tasks</RefTableName>
     </foreign-key>
-    <index id="640" parent="318" name="PRIMARY">
+    <index id="683" parent="321" name="PRIMARY">
       <ColNames>status_id</ColNames>
       <Type>btree</Type>
       <Unique>1</Unique>
     </index>
-    <index id="641" parent="318" name="user_id">
+    <index id="684" parent="321" name="user_id">
       <ColNames>user_id</ColNames>
       <Type>btree</Type>
     </index>
-    <index id="642" parent="318" name="task_id">
+    <index id="685" parent="321" name="task_id">
       <ColNames>task_id</ColNames>
       <Type>btree</Type>
     </index>
-    <key id="643" parent="318" name="PRIMARY">
+    <key id="686" parent="321" name="PRIMARY">
       <NameSurrogate>1</NameSurrogate>
       <Primary>1</Primary>
       <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
diff --git a/.idea/misc.xml b/.idea/misc.xml
index f58e1e2..64d19fc 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -7,12 +7,13 @@
         <option value="$PROJECT_DIR$/pom.xml" />
       </list>
     </option>
+    <option name="workspaceImportForciblyTurnedOn" value="true" />
   </component>
   <component name="PWA">
     <option name="enabled" value="true" />
     <option name="wasEnabledAtLeastOnce" value="true" />
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index a7cb21b..5e39899 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,14 +5,73 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="f008fe30-0711-42e2-bb33-17dcfdbad387" name="Changes" comment="pom">
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/TrackerController.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/dto/param/AnnounceRequest.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/dataSources.local.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources.local.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/mapper/UserMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/mapper/UserMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/config/WebConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/config/WebConfig.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/DynamicController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/DynamicController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/TorrentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/TorrentController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/UserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/UserController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/entity/User.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/entity/User.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/entity/Users.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/entity/Users.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/DynamicService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/DynamicService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/PostService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/PostService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/TorrentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/TorrentService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/UserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/UserService.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/serviceImpl/TorrentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/serviceImpl/TorrentServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/mapper/UserMapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/mapper/UserMapper.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/test/java/com/example/myproject/controller/DynamicControllerTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/com/example/myproject/controller/DynamicControllerTest.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/common/base/PageParam.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/common/base/PageParam.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/common/base/ResPage.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/common/base/ResPage.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/common/base/Result.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/common/base/Result.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/config/TrackerConfig.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/config/TrackerConfig.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/config/WebConfig.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/config/WebConfig.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/DynamicController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/DynamicController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/GroupController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/GroupController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/TorrentController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/TorrentController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/TrackerController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/TrackerController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/UserController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/controller/UserController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/PromotionCreateDTO.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/PromotionCreateDTO.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/TorrentUpdateDTO.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/TorrentUpdateDTO.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/param/AnnounceRequest.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/param/AnnounceRequest.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/param/TorrentParam.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/param/TorrentParam.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/param/TorrentUploadParam.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/param/TorrentUploadParam.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/vo/TorrentVO.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/dto/vo/TorrentVO.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/EntityBase.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/EntityBase.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/FavoriteEntity.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/FavoriteEntity.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/Promotion.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/Promotion.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/TorrentEntity.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/TorrentEntity.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/User.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/User.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/VerificationToken.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/entity/VerificationToken.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/CommentService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/CommentService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/DynamicService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/DynamicService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/GroupService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/GroupService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/LevelService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/LevelService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/PostService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/PostService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/TorrentService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/TorrentService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/UserMessageService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/UserMessageService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/UserService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/UserService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/serviceImpl/EmailServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/serviceImpl/EmailServiceImpl.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/serviceImpl/PromotionServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/serviceImpl/PromotionServiceImpl.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/service/serviceImpl/TorrentServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/service/serviceImpl/TorrentServiceImpl.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/uploads/torrents/1749131044219.jpg" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/utils/Result.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/utils/Result.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/com/example/myproject/utils/VerifyCode.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/utils/VerifyCode.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/files/files.torrent" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/output/valid.torrent" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/CommentControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/DynamicControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/GroupControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/LevelControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/PostControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/TaskControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/UserControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/UserFollowControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/test-classes/com/example/myproject/controller/UserMessageControllerTest.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/uploads/avatarUrl/1.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/uploads/avatarUrl/1.jpg" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/uploads/avatarUrl/2.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/uploads/avatarUrl/2.jpg" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/uploads/avatarUrl/3.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/uploads/avatarUrl/3.jpg" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/uploads/avatarUrl/4.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/uploads/avatarUrl/4.jpg" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -44,43 +103,49 @@
   &quot;associatedIndex&quot;: 0
 }</component>
   <component name="ProjectId" id="2vZNfNTEFyHApdxmHZ7Y0rlJjKB" />
-  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
+    <ConfirmationsSetting value="2" id="Add" />
+  </component>
   <component name="ProjectViewState">
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent">{
-  &quot;keyToString&quot;: {
-    &quot;JUnit.UserControllerTest.executor&quot;: &quot;Run&quot;,
-    &quot;JUnit.UserControllerTest.testUpdateUserAvatar.executor&quot;: &quot;Run&quot;,
-    &quot;JUnit.UserControllerTest.testUploadUserAvatar.executor&quot;: &quot;Run&quot;,
-    &quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
-    &quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
-    &quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
-    &quot;RequestMappingsPanelWidth1&quot;: &quot;75&quot;,
-    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
-    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
-    &quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
-    &quot;Spring Boot.MyProjectApplication.executor&quot;: &quot;Run&quot;,
-    &quot;git-widget-placeholder&quot;: &quot;my-branch&quot;,
-    &quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
-    &quot;last_opened_file_path&quot;: &quot;D:/study/学习资源/大三下/school/pt2/echo-backend&quot;,
-    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
-    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
-    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
-    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
-    &quot;settings.editor.selected.configurable&quot;: &quot;project.propVCSSupport.DirectoryMappings&quot;,
-    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;,
-    &quot;应用程序.MyProjectApplication.executor&quot;: &quot;Run&quot;
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "ASKED_ADD_EXTERNAL_FILES": "true",
+    "JUnit.UserControllerTest.executor": "Run",
+    "JUnit.UserControllerTest.testUpdateUserAvatar.executor": "Run",
+    "JUnit.UserControllerTest.testUploadUserAvatar.executor": "Run",
+    "RequestMappingsPanelOrder0": "0",
+    "RequestMappingsPanelOrder1": "1",
+    "RequestMappingsPanelWidth0": "75",
+    "RequestMappingsPanelWidth1": "75",
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "RunOnceActivity.git.unshallow": "true",
+    "Spring Boot.MyProjectApplication.executor": "Run",
+    "git-widget-placeholder": "完成pt与bt交互、补充图片资源",
+    "ignore.virus.scanning.warn.message": "true",
+    "kotlin-language-version-configured": "true",
+    "last_opened_file_path": "D:/Desktop/echo后端/echo-backend/images",
+    "node.js.detected.package.eslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "nodejs_package_manager_path": "npm",
+    "settings.editor.selected.configurable": "project.propVCSSupport.DirectoryMappings",
+    "vue.rearranger.settings.migration": "true",
+    "应用程序.MyProjectApplication.executor": "Run"
   },
-  &quot;keyToStringList&quot;: {
-    &quot;DatabaseDriversLRU&quot;: [
-      &quot;mysql_aurora&quot;
+  "keyToStringList": {
+    "DatabaseDriversLRU": [
+      "mysql_aurora"
     ]
   }
-}</component>
+}]]></component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\Desktop\echo后端\echo-backend\images" />
+      <recent name="D:\Desktop\echo后端\echo-backend\uploads\dynamic" />
       <recent name="D:\PT\echo-backend\src\main\java\com\example\myproject\config" />
       <recent name="D:\PT\echo-backend\src\main\java\com\example\myproject\service" />
       <recent name="D:\PT\echo-backend\src\main\java\com\example\myproject\controller" />
@@ -195,14 +260,6 @@
       </list>
     </recent_temporary>
   </component>
-  <component name="SharedIndexes">
-    <attachedChunks>
-      <set>
-        <option value="bundled-jdk-9823dce3aa75-fdfe4dae3a2d-intellij.indexing.shared.core-IU-243.21565.193" />
-        <option value="bundled-js-predefined-d6986cc7102b-e768b9ed790e-JavaScript-IU-243.21565.193" />
-      </set>
-    </attachedChunks>
-  </component>
   <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
   <component name="TaskManager">
     <task active="true" id="Default" summary="Default task">
@@ -215,6 +272,7 @@
       <workItem from="1749033374884" duration="7535000" />
       <workItem from="1749048857906" duration="4388000" />
       <workItem from="1749109821491" duration="5517000" />
+      <workItem from="1749206945935" duration="4467000" />
     </task>
     <task id="LOCAL-00001" summary="pom">
       <option name="closed" value="true" />
@@ -262,6 +320,7 @@
     </option>
   </component>
   <component name="VcsManagerConfiguration">
+    <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
     <MESSAGE value="pom" />
     <option name="LAST_COMMIT_MESSAGE" value="pom" />
   </component>