Merge branch 'master' of ssh://gerrit.lilingkun.com:29418/echo-backend

Change-Id: I1b49fb8032ecd127e91b5cc5fe4962e8dabfb1fd
diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml
index 2e8aee0..d9cb10e 100644
--- a/.idea/dataSources.local.xml
+++ b/.idea/dataSources.local.xml
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="dataSourceStorageLocal" created-in="IU-233.13135.103">
+  <component name="dataSourceStorageLocal" created-in="IU-222.4459.24">
     <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>
         <identifier-quote-string>`</identifier-quote-string>
-        <jdbc-catalog-is-schema>true</jdbc-catalog-is-schema>
       </database-info>
       <case-sensitivity plain-identifiers="exact" quoted-identifiers="exact" />
       <user-name>team11</user-name>
diff --git a/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml b/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml
deleted file mode 100644
index ddcbc11..0000000
--- a/.idea/dataSources/6d2a7063-ae4c-471f-ae05-e32dede5d0ec.xml
+++ /dev/null
@@ -1,2863 +0,0 @@
-<?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.51">
-    <root id="1">
-      <DefaultCasing>exact</DefaultCasing>
-      <DefaultEngine>InnoDB</DefaultEngine>
-      <DefaultTmpEngine>InnoDB</DefaultTmpEngine>
-      <Grants>echodeploy|schema||team11||ALTER|G
-echodeploy|schema||team11||ALTER ROUTINE|G
-echodeploy|schema||team11||CREATE|G
-echodeploy|schema||team11||CREATE ROUTINE|G
-echodeploy|schema||team11||CREATE TEMPORARY TABLES|G
-echodeploy|schema||team11||CREATE VIEW|G
-echodeploy|schema||team11||DELETE|G
-echodeploy|schema||team11||DROP|G
-echodeploy|schema||team11||EVENT|G
-echodeploy|schema||team11||EXECUTE|G
-echodeploy|schema||team11||INDEX|G
-echodeploy|schema||team11||INSERT|G
-echodeploy|schema||team11||LOCK TABLES|G
-echodeploy|schema||team11||REFERENCES|G
-echodeploy|schema||team11||SELECT|G
-echodeploy|schema||team11||SHOW VIEW|G
-echodeploy|schema||team11||TRIGGER|G
-echodeploy|schema||team11||UPDATE|G
-echodeploy|schema||team11||grant option|G
-echodevelop|schema||team11||ALTER|G
-echodevelop|schema||team11||ALTER ROUTINE|G
-echodevelop|schema||team11||CREATE|G
-echodevelop|schema||team11||CREATE ROUTINE|G
-echodevelop|schema||team11||CREATE TEMPORARY TABLES|G
-echodevelop|schema||team11||CREATE VIEW|G
-echodevelop|schema||team11||DELETE|G
-echodevelop|schema||team11||DROP|G
-echodevelop|schema||team11||EVENT|G
-echodevelop|schema||team11||EXECUTE|G
-echodevelop|schema||team11||INDEX|G
-echodevelop|schema||team11||INSERT|G
-echodevelop|schema||team11||LOCK TABLES|G
-echodevelop|schema||team11||REFERENCES|G
-echodevelop|schema||team11||SELECT|G
-echodevelop|schema||team11||SHOW VIEW|G
-echodevelop|schema||team11||TRIGGER|G
-echodevelop|schema||team11||UPDATE|G
-echodevelop|schema||team11||grant option|G</Grants>
-      <ServerVersion>8.4.5</ServerVersion>
-    </root>
-    <collation id="2" parent="1" name="armscii8_bin">
-      <Charset>armscii8</Charset>
-    </collation>
-    <collation id="3" parent="1" name="armscii8_general_ci">
-      <Charset>armscii8</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="4" parent="1" name="ascii_bin">
-      <Charset>ascii</Charset>
-    </collation>
-    <collation id="5" parent="1" name="ascii_general_ci">
-      <Charset>ascii</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="6" parent="1" name="big5_bin">
-      <Charset>big5</Charset>
-    </collation>
-    <collation id="7" parent="1" name="big5_chinese_ci">
-      <Charset>big5</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="8" parent="1" name="binary">
-      <Charset>binary</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="9" parent="1" name="cp1250_bin">
-      <Charset>cp1250</Charset>
-    </collation>
-    <collation id="10" parent="1" name="cp1250_croatian_ci">
-      <Charset>cp1250</Charset>
-    </collation>
-    <collation id="11" parent="1" name="cp1250_czech_cs">
-      <Charset>cp1250</Charset>
-    </collation>
-    <collation id="12" parent="1" name="cp1250_general_ci">
-      <Charset>cp1250</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="13" parent="1" name="cp1250_polish_ci">
-      <Charset>cp1250</Charset>
-    </collation>
-    <collation id="14" parent="1" name="cp1251_bin">
-      <Charset>cp1251</Charset>
-    </collation>
-    <collation id="15" parent="1" name="cp1251_bulgarian_ci">
-      <Charset>cp1251</Charset>
-    </collation>
-    <collation id="16" parent="1" name="cp1251_general_ci">
-      <Charset>cp1251</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="17" parent="1" name="cp1251_general_cs">
-      <Charset>cp1251</Charset>
-    </collation>
-    <collation id="18" parent="1" name="cp1251_ukrainian_ci">
-      <Charset>cp1251</Charset>
-    </collation>
-    <collation id="19" parent="1" name="cp1256_bin">
-      <Charset>cp1256</Charset>
-    </collation>
-    <collation id="20" parent="1" name="cp1256_general_ci">
-      <Charset>cp1256</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="21" parent="1" name="cp1257_bin">
-      <Charset>cp1257</Charset>
-    </collation>
-    <collation id="22" parent="1" name="cp1257_general_ci">
-      <Charset>cp1257</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="23" parent="1" name="cp1257_lithuanian_ci">
-      <Charset>cp1257</Charset>
-    </collation>
-    <collation id="24" parent="1" name="cp850_bin">
-      <Charset>cp850</Charset>
-    </collation>
-    <collation id="25" parent="1" name="cp850_general_ci">
-      <Charset>cp850</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="26" parent="1" name="cp852_bin">
-      <Charset>cp852</Charset>
-    </collation>
-    <collation id="27" parent="1" name="cp852_general_ci">
-      <Charset>cp852</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="28" parent="1" name="cp866_bin">
-      <Charset>cp866</Charset>
-    </collation>
-    <collation id="29" parent="1" name="cp866_general_ci">
-      <Charset>cp866</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="30" parent="1" name="cp932_bin">
-      <Charset>cp932</Charset>
-    </collation>
-    <collation id="31" parent="1" name="cp932_japanese_ci">
-      <Charset>cp932</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="32" parent="1" name="dec8_bin">
-      <Charset>dec8</Charset>
-    </collation>
-    <collation id="33" parent="1" name="dec8_swedish_ci">
-      <Charset>dec8</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="34" parent="1" name="eucjpms_bin">
-      <Charset>eucjpms</Charset>
-    </collation>
-    <collation id="35" parent="1" name="eucjpms_japanese_ci">
-      <Charset>eucjpms</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="36" parent="1" name="euckr_bin">
-      <Charset>euckr</Charset>
-    </collation>
-    <collation id="37" parent="1" name="euckr_korean_ci">
-      <Charset>euckr</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="38" parent="1" name="gb18030_bin">
-      <Charset>gb18030</Charset>
-    </collation>
-    <collation id="39" parent="1" name="gb18030_chinese_ci">
-      <Charset>gb18030</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="40" parent="1" name="gb18030_unicode_520_ci">
-      <Charset>gb18030</Charset>
-    </collation>
-    <collation id="41" parent="1" name="gb2312_bin">
-      <Charset>gb2312</Charset>
-    </collation>
-    <collation id="42" parent="1" name="gb2312_chinese_ci">
-      <Charset>gb2312</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="43" parent="1" name="gbk_bin">
-      <Charset>gbk</Charset>
-    </collation>
-    <collation id="44" parent="1" name="gbk_chinese_ci">
-      <Charset>gbk</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="45" parent="1" name="geostd8_bin">
-      <Charset>geostd8</Charset>
-    </collation>
-    <collation id="46" parent="1" name="geostd8_general_ci">
-      <Charset>geostd8</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="47" parent="1" name="greek_bin">
-      <Charset>greek</Charset>
-    </collation>
-    <collation id="48" parent="1" name="greek_general_ci">
-      <Charset>greek</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="49" parent="1" name="hebrew_bin">
-      <Charset>hebrew</Charset>
-    </collation>
-    <collation id="50" parent="1" name="hebrew_general_ci">
-      <Charset>hebrew</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="51" parent="1" name="hp8_bin">
-      <Charset>hp8</Charset>
-    </collation>
-    <collation id="52" parent="1" name="hp8_english_ci">
-      <Charset>hp8</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="53" parent="1" name="keybcs2_bin">
-      <Charset>keybcs2</Charset>
-    </collation>
-    <collation id="54" parent="1" name="keybcs2_general_ci">
-      <Charset>keybcs2</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="55" parent="1" name="koi8r_bin">
-      <Charset>koi8r</Charset>
-    </collation>
-    <collation id="56" parent="1" name="koi8r_general_ci">
-      <Charset>koi8r</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="57" parent="1" name="koi8u_bin">
-      <Charset>koi8u</Charset>
-    </collation>
-    <collation id="58" parent="1" name="koi8u_general_ci">
-      <Charset>koi8u</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="59" parent="1" name="latin1_bin">
-      <Charset>latin1</Charset>
-    </collation>
-    <collation id="60" parent="1" name="latin1_danish_ci">
-      <Charset>latin1</Charset>
-    </collation>
-    <collation id="61" parent="1" name="latin1_general_ci">
-      <Charset>latin1</Charset>
-    </collation>
-    <collation id="62" parent="1" name="latin1_general_cs">
-      <Charset>latin1</Charset>
-    </collation>
-    <collation id="63" parent="1" name="latin1_german1_ci">
-      <Charset>latin1</Charset>
-    </collation>
-    <collation id="64" parent="1" name="latin1_german2_ci">
-      <Charset>latin1</Charset>
-    </collation>
-    <collation id="65" parent="1" name="latin1_spanish_ci">
-      <Charset>latin1</Charset>
-    </collation>
-    <collation id="66" parent="1" name="latin1_swedish_ci">
-      <Charset>latin1</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="67" parent="1" name="latin2_bin">
-      <Charset>latin2</Charset>
-    </collation>
-    <collation id="68" parent="1" name="latin2_croatian_ci">
-      <Charset>latin2</Charset>
-    </collation>
-    <collation id="69" parent="1" name="latin2_czech_cs">
-      <Charset>latin2</Charset>
-    </collation>
-    <collation id="70" parent="1" name="latin2_general_ci">
-      <Charset>latin2</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="71" parent="1" name="latin2_hungarian_ci">
-      <Charset>latin2</Charset>
-    </collation>
-    <collation id="72" parent="1" name="latin5_bin">
-      <Charset>latin5</Charset>
-    </collation>
-    <collation id="73" parent="1" name="latin5_turkish_ci">
-      <Charset>latin5</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="74" parent="1" name="latin7_bin">
-      <Charset>latin7</Charset>
-    </collation>
-    <collation id="75" parent="1" name="latin7_estonian_cs">
-      <Charset>latin7</Charset>
-    </collation>
-    <collation id="76" parent="1" name="latin7_general_ci">
-      <Charset>latin7</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="77" parent="1" name="latin7_general_cs">
-      <Charset>latin7</Charset>
-    </collation>
-    <collation id="78" parent="1" name="macce_bin">
-      <Charset>macce</Charset>
-    </collation>
-    <collation id="79" parent="1" name="macce_general_ci">
-      <Charset>macce</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="80" parent="1" name="macroman_bin">
-      <Charset>macroman</Charset>
-    </collation>
-    <collation id="81" parent="1" name="macroman_general_ci">
-      <Charset>macroman</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="82" parent="1" name="sjis_bin">
-      <Charset>sjis</Charset>
-    </collation>
-    <collation id="83" parent="1" name="sjis_japanese_ci">
-      <Charset>sjis</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="84" parent="1" name="swe7_bin">
-      <Charset>swe7</Charset>
-    </collation>
-    <collation id="85" parent="1" name="swe7_swedish_ci">
-      <Charset>swe7</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="86" parent="1" name="tis620_bin">
-      <Charset>tis620</Charset>
-    </collation>
-    <collation id="87" parent="1" name="tis620_thai_ci">
-      <Charset>tis620</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="88" parent="1" name="ucs2_bin">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="89" parent="1" name="ucs2_croatian_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="90" parent="1" name="ucs2_czech_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="91" parent="1" name="ucs2_danish_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="92" parent="1" name="ucs2_esperanto_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="93" parent="1" name="ucs2_estonian_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="94" parent="1" name="ucs2_general_ci">
-      <Charset>ucs2</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="95" parent="1" name="ucs2_general_mysql500_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="96" parent="1" name="ucs2_german2_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="97" parent="1" name="ucs2_hungarian_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="98" parent="1" name="ucs2_icelandic_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="99" parent="1" name="ucs2_latvian_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="100" parent="1" name="ucs2_lithuanian_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="101" parent="1" name="ucs2_persian_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="102" parent="1" name="ucs2_polish_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="103" parent="1" name="ucs2_roman_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="104" parent="1" name="ucs2_romanian_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="105" parent="1" name="ucs2_sinhala_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="106" parent="1" name="ucs2_slovak_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="107" parent="1" name="ucs2_slovenian_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="108" parent="1" name="ucs2_spanish2_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="109" parent="1" name="ucs2_spanish_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="110" parent="1" name="ucs2_swedish_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="111" parent="1" name="ucs2_turkish_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="112" parent="1" name="ucs2_unicode_520_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="113" parent="1" name="ucs2_unicode_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="114" parent="1" name="ucs2_vietnamese_ci">
-      <Charset>ucs2</Charset>
-    </collation>
-    <collation id="115" parent="1" name="ujis_bin">
-      <Charset>ujis</Charset>
-    </collation>
-    <collation id="116" parent="1" name="ujis_japanese_ci">
-      <Charset>ujis</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="117" parent="1" name="utf16_bin">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="118" parent="1" name="utf16_croatian_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="119" parent="1" name="utf16_czech_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="120" parent="1" name="utf16_danish_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="121" parent="1" name="utf16_esperanto_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="122" parent="1" name="utf16_estonian_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="123" parent="1" name="utf16_general_ci">
-      <Charset>utf16</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="124" parent="1" name="utf16_german2_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="125" parent="1" name="utf16_hungarian_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="126" parent="1" name="utf16_icelandic_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="127" parent="1" name="utf16_latvian_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="128" parent="1" name="utf16_lithuanian_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="129" parent="1" name="utf16_persian_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="130" parent="1" name="utf16_polish_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="131" parent="1" name="utf16_roman_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="132" parent="1" name="utf16_romanian_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="133" parent="1" name="utf16_sinhala_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="134" parent="1" name="utf16_slovak_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="135" parent="1" name="utf16_slovenian_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="136" parent="1" name="utf16_spanish2_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="137" parent="1" name="utf16_spanish_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="138" parent="1" name="utf16_swedish_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="139" parent="1" name="utf16_turkish_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="140" parent="1" name="utf16_unicode_520_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="141" parent="1" name="utf16_unicode_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="142" parent="1" name="utf16_vietnamese_ci">
-      <Charset>utf16</Charset>
-    </collation>
-    <collation id="143" parent="1" name="utf16le_bin">
-      <Charset>utf16le</Charset>
-    </collation>
-    <collation id="144" parent="1" name="utf16le_general_ci">
-      <Charset>utf16le</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="145" parent="1" name="utf32_bin">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="146" parent="1" name="utf32_croatian_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="147" parent="1" name="utf32_czech_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="148" parent="1" name="utf32_danish_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="149" parent="1" name="utf32_esperanto_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="150" parent="1" name="utf32_estonian_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="151" parent="1" name="utf32_general_ci">
-      <Charset>utf32</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="152" parent="1" name="utf32_german2_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="153" parent="1" name="utf32_hungarian_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="154" parent="1" name="utf32_icelandic_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="155" parent="1" name="utf32_latvian_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="156" parent="1" name="utf32_lithuanian_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="157" parent="1" name="utf32_persian_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="158" parent="1" name="utf32_polish_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="159" parent="1" name="utf32_roman_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="160" parent="1" name="utf32_romanian_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="161" parent="1" name="utf32_sinhala_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="162" parent="1" name="utf32_slovak_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="163" parent="1" name="utf32_slovenian_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="164" parent="1" name="utf32_spanish2_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="165" parent="1" name="utf32_spanish_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="166" parent="1" name="utf32_swedish_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="167" parent="1" name="utf32_turkish_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="168" parent="1" name="utf32_unicode_520_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="169" parent="1" name="utf32_unicode_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="170" parent="1" name="utf32_vietnamese_ci">
-      <Charset>utf32</Charset>
-    </collation>
-    <collation id="171" parent="1" name="utf8mb3_bin">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="172" parent="1" name="utf8mb3_croatian_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="173" parent="1" name="utf8mb3_czech_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="174" parent="1" name="utf8mb3_danish_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="175" parent="1" name="utf8mb3_esperanto_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="176" parent="1" name="utf8mb3_estonian_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="177" parent="1" name="utf8mb3_general_ci">
-      <Charset>utf8mb3</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="178" parent="1" name="utf8mb3_general_mysql500_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="179" parent="1" name="utf8mb3_german2_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="180" parent="1" name="utf8mb3_hungarian_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="181" parent="1" name="utf8mb3_icelandic_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="182" parent="1" name="utf8mb3_latvian_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="183" parent="1" name="utf8mb3_lithuanian_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="184" parent="1" name="utf8mb3_persian_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="185" parent="1" name="utf8mb3_polish_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="186" parent="1" name="utf8mb3_roman_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="187" parent="1" name="utf8mb3_romanian_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="188" parent="1" name="utf8mb3_sinhala_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="189" parent="1" name="utf8mb3_slovak_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="190" parent="1" name="utf8mb3_slovenian_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="191" parent="1" name="utf8mb3_spanish2_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="192" parent="1" name="utf8mb3_spanish_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="193" parent="1" name="utf8mb3_swedish_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="194" parent="1" name="utf8mb3_tolower_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="195" parent="1" name="utf8mb3_turkish_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="196" parent="1" name="utf8mb3_unicode_520_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="197" parent="1" name="utf8mb3_unicode_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="198" parent="1" name="utf8mb3_vietnamese_ci">
-      <Charset>utf8mb3</Charset>
-    </collation>
-    <collation id="199" parent="1" name="utf8mb4_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-      <DefaultForCharset>1</DefaultForCharset>
-    </collation>
-    <collation id="200" parent="1" name="utf8mb4_0900_as_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="201" parent="1" name="utf8mb4_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="202" parent="1" name="utf8mb4_0900_bin">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="203" parent="1" name="utf8mb4_bg_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="204" parent="1" name="utf8mb4_bg_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="205" parent="1" name="utf8mb4_bin">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="206" parent="1" name="utf8mb4_bs_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="207" parent="1" name="utf8mb4_bs_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="208" parent="1" name="utf8mb4_croatian_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="209" parent="1" name="utf8mb4_cs_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="210" parent="1" name="utf8mb4_cs_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="211" parent="1" name="utf8mb4_czech_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="212" parent="1" name="utf8mb4_da_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="213" parent="1" name="utf8mb4_da_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="214" parent="1" name="utf8mb4_danish_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="215" parent="1" name="utf8mb4_de_pb_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="216" parent="1" name="utf8mb4_de_pb_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="217" parent="1" name="utf8mb4_eo_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="218" parent="1" name="utf8mb4_eo_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="219" parent="1" name="utf8mb4_es_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="220" parent="1" name="utf8mb4_es_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="221" parent="1" name="utf8mb4_es_trad_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="222" parent="1" name="utf8mb4_es_trad_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="223" parent="1" name="utf8mb4_esperanto_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="224" parent="1" name="utf8mb4_estonian_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="225" parent="1" name="utf8mb4_et_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="226" parent="1" name="utf8mb4_et_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="227" parent="1" name="utf8mb4_general_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="228" parent="1" name="utf8mb4_german2_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="229" parent="1" name="utf8mb4_gl_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="230" parent="1" name="utf8mb4_gl_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="231" parent="1" name="utf8mb4_hr_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="232" parent="1" name="utf8mb4_hr_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="233" parent="1" name="utf8mb4_hu_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="234" parent="1" name="utf8mb4_hu_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="235" parent="1" name="utf8mb4_hungarian_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="236" parent="1" name="utf8mb4_icelandic_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="237" parent="1" name="utf8mb4_is_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="238" parent="1" name="utf8mb4_is_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="239" parent="1" name="utf8mb4_ja_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="240" parent="1" name="utf8mb4_ja_0900_as_cs_ks">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="241" parent="1" name="utf8mb4_la_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="242" parent="1" name="utf8mb4_la_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="243" parent="1" name="utf8mb4_latvian_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="244" parent="1" name="utf8mb4_lithuanian_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="245" parent="1" name="utf8mb4_lt_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="246" parent="1" name="utf8mb4_lt_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="247" parent="1" name="utf8mb4_lv_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="248" parent="1" name="utf8mb4_lv_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="249" parent="1" name="utf8mb4_mn_cyrl_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="250" parent="1" name="utf8mb4_mn_cyrl_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="251" parent="1" name="utf8mb4_nb_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="252" parent="1" name="utf8mb4_nb_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="253" parent="1" name="utf8mb4_nn_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="254" parent="1" name="utf8mb4_nn_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="255" parent="1" name="utf8mb4_persian_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="256" parent="1" name="utf8mb4_pl_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="257" parent="1" name="utf8mb4_pl_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="258" parent="1" name="utf8mb4_polish_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="259" parent="1" name="utf8mb4_ro_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="260" parent="1" name="utf8mb4_ro_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="261" parent="1" name="utf8mb4_roman_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="262" parent="1" name="utf8mb4_romanian_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="263" parent="1" name="utf8mb4_ru_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="264" parent="1" name="utf8mb4_ru_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="265" parent="1" name="utf8mb4_sinhala_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="266" parent="1" name="utf8mb4_sk_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="267" parent="1" name="utf8mb4_sk_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="268" parent="1" name="utf8mb4_sl_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="269" parent="1" name="utf8mb4_sl_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="270" parent="1" name="utf8mb4_slovak_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="271" parent="1" name="utf8mb4_slovenian_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="272" parent="1" name="utf8mb4_spanish2_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="273" parent="1" name="utf8mb4_spanish_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="274" parent="1" name="utf8mb4_sr_latn_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="275" parent="1" name="utf8mb4_sr_latn_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="276" parent="1" name="utf8mb4_sv_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="277" parent="1" name="utf8mb4_sv_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="278" parent="1" name="utf8mb4_swedish_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="279" parent="1" name="utf8mb4_tr_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="280" parent="1" name="utf8mb4_tr_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="281" parent="1" name="utf8mb4_turkish_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="282" parent="1" name="utf8mb4_unicode_520_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="283" parent="1" name="utf8mb4_unicode_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="284" parent="1" name="utf8mb4_vi_0900_ai_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="285" parent="1" name="utf8mb4_vi_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="286" parent="1" name="utf8mb4_vietnamese_ci">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <collation id="287" parent="1" name="utf8mb4_zh_0900_as_cs">
-      <Charset>utf8mb4</Charset>
-    </collation>
-    <schema id="288" parent="1" name="echodeploy">
-      <CollationName>utf8mb4_0900_ai_ci</CollationName>
-    </schema>
-    <schema id="289" parent="1" name="echodevelop">
-      <Current>1</Current>
-      <LastIntrospectionLocalTimestamp>2025-06-06.11:08:11</LastIntrospectionLocalTimestamp>
-      <CollationName>utf8mb4_0900_ai_ci</CollationName>
-    </schema>
-    <schema id="290" parent="1" name="information_schema">
-      <CollationName>utf8mb3_general_ci</CollationName>
-    </schema>
-    <schema id="291" parent="1" name="performance_schema">
-      <CollationName>utf8mb4_0900_ai_ci</CollationName>
-    </schema>
-    <user id="292" parent="1" name="team11"/>
-    <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="295" parent="289" name="comments">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="296" parent="289" name="downloads">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="297" parent="289" name="dynamic_comment">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="298" parent="289" name="dynamic_likes">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="299" parent="289" name="experience_history">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <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="301" parent="289" name="follow">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="302" parent="289" name="friend_relation">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="303" parent="289" name="group_comments">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="304" parent="289" name="group_interests">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="305" parent="289" name="group_members">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="306" parent="289" name="group_post">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="307" parent="289" name="level">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="308" parent="289" name="likes">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="309" parent="289" name="post">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="310" parent="289" name="promotion">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_0900_ai_ci</CollationName>
-    </table>
-    <table id="311" parent="289" name="seed_comment_likes">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="312" parent="289" name="seed_comments">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <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="315" parent="289" name="torrent">
-      <Comment>ç§&#x8d;å­&#x90;表</Comment>
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_0900_ai_ci</CollationName>
-    </table>
-    <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="318" parent="289" name="user_dynamic">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="319" parent="289" name="user_invite_code">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="320" parent="289" name="user_messages">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <table id="321" parent="289" name="user_task_status">
-      <Engine>InnoDB</Engine>
-      <CollationName>utf8mb4_unicode_ci</CollationName>
-    </table>
-    <column id="322" parent="293" name="id">
-      <AutoIncrement>1</AutoIncrement>
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <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>
-    </column>
-    <column id="338" parent="294" name="postNo">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <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="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="341" parent="294" name="PRIMARY">
-      <ColNames>collectionId</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="342" parent="294" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="343" parent="294" name="postNo">
-      <ColNames>postNo</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="344" parent="294" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="345" parent="295" name="comment_id">
-      <AutoIncrement>19</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="346" parent="295" name="post_id">
-      <DasType>int|0s</DasType>
-      <Position>2</Position>
-    </column>
-    <column id="347" parent="295" name="com_comment_id">
-      <DasType>bigint|0s</DasType>
-      <Position>3</Position>
-    </column>
-    <column id="348" parent="295" name="user_id">
-      <DasType>int|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="349" parent="295" name="content">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <column id="350" parent="295" name="is_anonymous">
-      <DasType>tinyint(1)|0s</DasType>
-      <Position>6</Position>
-    </column>
-    <column id="351" parent="295" name="likes_count">
-      <DasType>int|0s</DasType>
-      <Position>7</Position>
-    </column>
-    <column id="352" parent="295" name="reply_count">
-      <DasType>int|0s</DasType>
-      <Position>8</Position>
-    </column>
-    <column id="353" parent="295" name="comment_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>9</Position>
-    </column>
-    <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="355" parent="295" name="FK_Relationship_6">
-      <ColNames>user_id</ColNames>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <index id="356" parent="295" name="PRIMARY">
-      <ColNames>comment_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="357" parent="295" name="fk_post_id">
-      <ColNames>post_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="358" parent="295" name="FK_Relationship_9">
-      <ColNames>com_comment_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="359" parent="295" name="fk_user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="360" parent="295" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="361" parent="296" name="download_id">
-      <AutoIncrement>4</AutoIncrement>
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="362" parent="296" name="torrent_id">
-      <DasType>int|0s</DasType>
-      <Position>2</Position>
-    </column>
-    <column id="363" parent="296" name="user_id">
-      <DasType>int|0s</DasType>
-      <Position>3</Position>
-    </column>
-    <column id="364" parent="296" name="download_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <column id="365" parent="296" name="download_size">
-      <DasType>float|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <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="367" parent="296" name="FK_Relationship_4">
-      <ColNames>user_id</ColNames>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <index id="368" parent="296" name="PRIMARY">
-      <ColNames>download_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="369" parent="296" name="FK_Relationship_5">
-      <ColNames>torrent_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="370" parent="296" name="FK_Relationship_4">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="371" parent="296" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="372" parent="297" name="comment_id">
-      <AutoIncrement>6</AutoIncrement>
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="373" parent="297" name="dynamic_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="374" parent="297" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="375" parent="297" name="comment_content">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="376" parent="297" name="comment_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <column id="377" parent="297" name="is_anonymous">
-      <DasType>tinyint(1)|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>6</Position>
-    </column>
-    <column id="378" parent="297" name="parent_comment_id">
-      <DasType>int|0s</DasType>
-      <Position>7</Position>
-    </column>
-    <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="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="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="382" parent="297" name="PRIMARY">
-      <ColNames>comment_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="383" parent="297" name="dynamic_id">
-      <ColNames>dynamic_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="384" parent="297" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="385" parent="297" name="parent_comment_id">
-      <ColNames>parent_comment_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="386" parent="297" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="387" parent="298" name="like_id">
-      <AutoIncrement>5</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="388" parent="298" name="dynamic_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="389" parent="298" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="390" parent="298" name="like_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <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="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="393" parent="298" name="PRIMARY">
-      <ColNames>like_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="394" parent="298" name="dynamic_id">
-      <ColNames>dynamic_id
-user_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="395" parent="298" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="396" parent="298" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <key id="397" parent="298" name="dynamic_id">
-      <UnderlyingIndexName>dynamic_id</UnderlyingIndexName>
-    </key>
-    <column id="398" parent="299" name="history_id">
-      <AutoIncrement>2</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="399" parent="299" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="400" parent="299" name="experience_change">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="401" parent="299" name="source">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <column id="402" parent="299" name="update_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <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="404" parent="299" name="PRIMARY">
-      <ColNames>history_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="405" parent="299" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="406" parent="299" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="407" parent="300" name="id">
-      <AutoIncrement>1</AutoIncrement>
-      <Comment>主é&#x94;®</Comment>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="408" parent="300" name="user_id">
-      <Comment>ç&#x94;¨æ&#x88;·ID</Comment>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="409" parent="300" name="seed_id">
-      <Comment>ç§&#x8d;å­&#x90;ID</Comment>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <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>
-    </column>
-    <index id="411" parent="300" name="PRIMARY">
-      <ColNames>id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="412" parent="300" name="uk_user_seed">
-      <ColNames>user_id
-seed_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="413" parent="300" name="idx_user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="414" parent="300" name="idx_seed_id">
-      <ColNames>seed_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="415" parent="300" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <key id="416" parent="300" name="uk_user_seed">
-      <UnderlyingIndexName>uk_user_seed</UnderlyingIndexName>
-    </key>
-    <column id="417" parent="301" name="record_id">
-      <AutoIncrement>6</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="418" parent="301" name="follower_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="419" parent="301" name="followed_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="420" parent="301" name="follow_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <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="422" parent="301" name="follow_ibfk_2">
-      <ColNames>followed_id</ColNames>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <index id="423" parent="301" name="PRIMARY">
-      <ColNames>record_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="424" parent="301" name="follower_id">
-      <ColNames>follower_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="425" parent="301" name="followed_id">
-      <ColNames>followed_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="426" parent="301" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="427" parent="302" name="relation_id">
-      <AutoIncrement>3</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="428" parent="302" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="429" parent="302" name="friend_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="430" parent="302" name="create_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <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="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="433" parent="302" name="PRIMARY">
-      <ColNames>relation_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="434" parent="302" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="435" parent="302" name="friend_id">
-      <ColNames>friend_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="436" parent="302" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="437" parent="303" name="comment_id">
-      <AutoIncrement>6</AutoIncrement>
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="438" parent="303" name="group_post_id">
-      <DasType>int|0s</DasType>
-      <Position>2</Position>
-    </column>
-    <column id="439" parent="303" name="user_id">
-      <DasType>int|0s</DasType>
-      <Position>3</Position>
-    </column>
-    <column id="440" parent="303" name="content">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="441" parent="303" name="parent_comment_id">
-      <DasType>int|0s</DasType>
-      <Position>5</Position>
-    </column>
-    <column id="442" parent="303" name="time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>6</Position>
-    </column>
-    <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="444" parent="303" name="group_comments_ibfk_2">
-      <ColNames>user_id</ColNames>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <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="446" parent="303" name="PRIMARY">
-      <ColNames>comment_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="447" parent="303" name="group_post_id">
-      <ColNames>group_post_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="448" parent="303" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="449" parent="303" name="parent_comment_id">
-      <ColNames>parent_comment_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="450" parent="303" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="451" parent="304" name="group_id">
-      <AutoIncrement>5</AutoIncrement>
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="452" parent="304" name="group_name">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="453" parent="304" name="description">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>3</Position>
-    </column>
-    <column id="454" parent="304" name="create_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <column id="455" parent="304" name="user_id">
-      <DasType>int|0s</DasType>
-      <Position>5</Position>
-    </column>
-    <column id="456" parent="304" name="member_count">
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>6</Position>
-    </column>
-    <column id="457" parent="304" name="category">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>7</Position>
-    </column>
-    <column id="458" parent="304" name="cover_image">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>8</Position>
-    </column>
-    <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="460" parent="304" name="PRIMARY">
-      <ColNames>group_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="461" parent="304" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="462" parent="304" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="463" parent="305" name="relation_id">
-      <AutoIncrement>6</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="464" parent="305" name="group_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="465" parent="305" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <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="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="468" parent="305" name="PRIMARY">
-      <ColNames>relation_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="469" parent="305" name="unique_group_user">
-      <ColNames>group_id
-user_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="470" parent="305" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="471" parent="305" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <key id="472" parent="305" name="unique_group_user">
-      <UnderlyingIndexName>unique_group_user</UnderlyingIndexName>
-    </key>
-    <column id="473" parent="306" name="group_post_id">
-      <AutoIncrement>6</AutoIncrement>
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="474" parent="306" name="group_id">
-      <DasType>int|0s</DasType>
-      <Position>2</Position>
-    </column>
-    <column id="475" parent="306" name="user_id">
-      <DasType>int|0s</DasType>
-      <Position>3</Position>
-    </column>
-    <column id="476" parent="306" name="content">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="477" parent="306" name="title">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <column id="478" parent="306" name="image">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>6</Position>
-    </column>
-    <column id="479" parent="306" name="like_count">
-      <DasType>bigint|0s</DasType>
-      <Position>7</Position>
-    </column>
-    <column id="480" parent="306" name="comment_count">
-      <DasType>bigint|0s</DasType>
-      <Position>8</Position>
-    </column>
-    <column id="481" parent="306" name="time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>9</Position>
-    </column>
-    <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="483" parent="306" name="group_post_ibfk_2">
-      <ColNames>user_id</ColNames>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <index id="484" parent="306" name="PRIMARY">
-      <ColNames>group_post_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="485" parent="306" name="group_id">
-      <ColNames>group_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="486" parent="306" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="487" parent="306" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="488" parent="307" name="level_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="489" parent="307" name="level_name">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="490" parent="307" name="required_experience">
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="491" parent="307" name="required_share_ratio">
-      <DasType>float|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="492" parent="307" name="required_upload_gb">
-      <DasType>float|0s</DasType>
-      <Position>5</Position>
-    </column>
-    <column id="493" parent="307" name="required_seeding_hours">
-      <DasType>float|0s</DasType>
-      <Position>6</Position>
-    </column>
-    <column id="494" parent="307" name="permissions">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>7</Position>
-    </column>
-    <index id="495" parent="307" name="PRIMARY">
-      <ColNames>level_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <key id="496" parent="307" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="497" parent="308" name="likeId">
-      <AutoIncrement>9</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="498" parent="308" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="499" parent="308" name="postNo">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <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="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="502" parent="308" name="PRIMARY">
-      <ColNames>likeId</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="503" parent="308" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="504" parent="308" name="postNo">
-      <ColNames>postNo</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="505" parent="308" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="506" parent="309" name="postNo">
-      <AutoIncrement>30</AutoIncrement>
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="507" parent="309" name="userId">
-      <DasType>int|0s</DasType>
-      <Position>2</Position>
-    </column>
-    <column id="508" parent="309" name="postContent">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>3</Position>
-    </column>
-    <column id="509" parent="309" name="imageUrl">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="510" parent="309" name="postTime">
-      <DasType>datetime|0s</DasType>
-      <Position>5</Position>
-    </column>
-    <column id="511" parent="309" name="postLikeNum">
-      <DasType>int|0s</DasType>
-      <Position>6</Position>
-    </column>
-    <column id="512" parent="309" name="postCollectNum">
-      <DasType>int|0s</DasType>
-      <Position>7</Position>
-    </column>
-    <column id="513" parent="309" name="title">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>8</Position>
-    </column>
-    <column id="514" parent="309" name="postType">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>9</Position>
-    </column>
-    <foreign-key id="515" parent="309" name="post_ibfk_1">
-      <ColNames>userId</ColNames>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <index id="516" parent="309" name="PRIMARY">
-      <ColNames>postNo</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="517" parent="309" name="userId">
-      <ColNames>userId</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="518" parent="309" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="519" parent="310" name="id">
-      <AutoIncrement>5</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="520" parent="310" name="name">
-      <DasType>varchar(100)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="521" parent="310" name="description">
-      <DasType>varchar(500)|0s</DasType>
-      <Position>3</Position>
-    </column>
-    <column id="522" parent="310" name="start_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <column id="523" parent="310" name="end_time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <column id="524" parent="310" name="discount_percentage">
-      <DasType>double|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>6</Position>
-    </column>
-    <column id="525" parent="310" name="applicable_torrent_ids">
-      <DasType>json|0s</DasType>
-      <Position>7</Position>
-    </column>
-    <column id="526" parent="310" name="create_time">
-      <DasType>datetime|0s</DasType>
-      <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
-      <NotNull>1</NotNull>
-      <Position>8</Position>
-    </column>
-    <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>
-    </column>
-    <column id="528" parent="310" name="is_deleted">
-      <DasType>tinyint(1)|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>10</Position>
-    </column>
-    <index id="529" parent="310" name="PRIMARY">
-      <ColNames>id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="530" parent="310" name="idx_time">
-      <ColNames>start_time
-end_time</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="531" parent="310" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="532" parent="311" name="id">
-      <AutoIncrement>3</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="533" parent="311" name="comment_id">
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="534" parent="311" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="535" parent="311" name="is_liked">
-      <DasType>tinyint(1)|0s</DasType>
-      <DefaultExpression>1</DefaultExpression>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <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="537" parent="311" name="fk_user">
-      <ColNames>user_id</ColNames>
-      <OnDelete>cascade</OnDelete>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <index id="538" parent="311" name="PRIMARY">
-      <ColNames>id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="539" parent="311" name="fk_comment">
-      <ColNames>comment_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="540" parent="311" name="fk_user">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="541" parent="311" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="542" parent="312" name="comment_id">
-      <AutoIncrement>11</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="543" parent="312" name="seed_id">
-      <DasType>bigint|0s</DasType>
-      <Position>2</Position>
-    </column>
-    <column id="544" parent="312" name="com_comment_id">
-      <DasType>bigint|0s</DasType>
-      <Position>3</Position>
-    </column>
-    <column id="545" parent="312" name="user_id">
-      <DasType>int|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="546" parent="312" name="content">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>5</Position>
-    </column>
-    <column id="547" parent="312" name="is_anonymous">
-      <DasType>tinyint|0s</DasType>
-      <Position>6</Position>
-    </column>
-    <column id="548" parent="312" name="likes_count">
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>7</Position>
-    </column>
-    <column id="549" parent="312" name="reply_count">
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>8</Position>
-    </column>
-    <column id="550" parent="312" name="comment_time">
-      <DasType>datetime|0s</DasType>
-      <Position>9</Position>
-    </column>
-    <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="552" parent="312" name="seed_comments_ibfk_2">
-      <ColNames>user_id</ColNames>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <index id="553" parent="312" name="PRIMARY">
-      <ColNames>comment_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="554" parent="312" name="fk_seed_id">
-      <ColNames>seed_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="555" parent="312" name="com_comment_id">
-      <ColNames>com_comment_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="556" parent="312" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="557" parent="312" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <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>
-    </column>
-    <column id="560" parent="313" name="seed_id">
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="561" parent="313" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="562" parent="313" name="score">
-      <DasType>tinyint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <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>
-    </column>
-    <index id="577" parent="314" name="PRIMARY">
-      <ColNames>task_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <key id="578" parent="314" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <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>
-    </column>
-    <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>
-    </column>
-    <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>
-    </column>
-    <column id="582" parent="315" name="uploader">
-      <Comment>ä¸&#x8a;ä¼ è&#x80;&#x85;</Comment>
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <column id="583" parent="315" name="create_time">
-      <Comment>ä¸&#x8a;ä¼ æ&#x97;¶é&#x97;´</Comment>
-      <DasType>datetime|0s</DasType>
-      <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
-      <Position>5</Position>
-    </column>
-    <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>
-    </column>
-    <column id="585" parent="315" name="size">
-      <Comment>ç§&#x8d;å­&#x90;æ&#x96;&#x87;件大å°&#x8f;</Comment>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>7</Position>
-    </column>
-    <column id="586" parent="315" name="title">
-      <Comment>ç§&#x8d;å­&#x90;æ &#x87;é¢&#x98;</Comment>
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>8</Position>
-    </column>
-    <column id="587" parent="315" name="description">
-      <Comment>ç§&#x8d;å­&#x90;æ&#x8f;&#x8f;è¿°</Comment>
-      <DasType>text|0s</DasType>
-      <Position>9</Position>
-    </column>
-    <column id="588" parent="315" name="tags">
-      <Comment>ç§&#x8d;å­&#x90;æ &#x87;ç­¾</Comment>
-      <DasType>varchar(255)|0s</DasType>
-      <Position>10</Position>
-    </column>
-    <column id="589" parent="315" name="category">
-      <Comment>ç§&#x8d;å­&#x90;å&#x88;&#x86;ç±»</Comment>
-      <DasType>varchar(255)|0s</DasType>
-      <Position>11</Position>
-    </column>
-    <column id="590" parent="315" name="image_url">
-      <Comment>ç§&#x8d;å­&#x90;å°&#x81;é&#x9d;¢å&#x9b;¾URL</Comment>
-      <DasType>varchar(255)|0s</DasType>
-      <Position>12</Position>
-    </column>
-    <column id="591" parent="315" name="leechers">
-      <Comment>ä¸&#x8b;载次æ&#x95;°</Comment>
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>13</Position>
-    </column>
-    <column id="592" parent="315" name="seeders">
-      <Comment>å&#x81;&#x9a;ç§&#x8d;æ&#x95;°</Comment>
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>14</Position>
-    </column>
-    <column id="593" parent="315" name="comments">
-      <Comment>è¯&#x84;论æ&#x95;°</Comment>
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>15</Position>
-    </column>
-    <column id="594" parent="315" name="views">
-      <Comment>æµ&#x8f;è§&#x88;次æ&#x95;°</Comment>
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>16</Position>
-    </column>
-    <column id="595" parent="315" name="hits">
-      <Comment>ç&#x82;¹å&#x87;»æ¬¡æ&#x95;°</Comment>
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>17</Position>
-    </column>
-    <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>
-    </column>
-    <column id="597" parent="315" name="promotion_until">
-      <Comment>ä¿&#x83;é&#x94;&#x80;æ&#x88;ªæ­¢æ&#x97;¥æ&#x9c;&#x9f;</Comment>
-      <DasType>datetime|0s</DasType>
-      <Position>19</Position>
-    </column>
-    <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>
-    </column>
-    <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>
-    </column>
-    <index id="600" parent="315" name="PRIMARY">
-      <ColNames>id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <key id="601" parent="315" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="602" parent="316" name="like_id">
-      <AutoIncrement>4</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="603" parent="316" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="604" parent="316" name="torrent_id">
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <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>
-    </column>
-    <column id="617" parent="317" name="password">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <column id="618" parent="317" name="role">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>6</Position>
-    </column>
-    <column id="619" parent="317" name="invite_count">
-      <DasType>int|0s</DasType>
-      <Position>7</Position>
-    </column>
-    <column id="620" parent="317" name="level">
-      <DasType>int|0s</DasType>
-      <Position>8</Position>
-    </column>
-    <column id="621" parent="317" name="upload_count">
-      <DasType>float|0s</DasType>
-      <Position>9</Position>
-    </column>
-    <column id="622" parent="317" name="download_count">
-      <DasType>float|0s</DasType>
-      <Position>10</Position>
-    </column>
-    <column id="623" parent="317" name="share_rate">
-      <DasType>float|0s</DasType>
-      <Position>11</Position>
-    </column>
-    <column id="624" parent="317" name="registration_date">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>12</Position>
-    </column>
-    <column id="625" parent="317" name="last_login_time">
-      <DasType>datetime|0s</DasType>
-      <Position>13</Position>
-    </column>
-    <column id="626" parent="317" name="user_points">
-      <DasType>int|0s</DasType>
-      <Position>14</Position>
-    </column>
-    <column id="627" parent="317" name="is_promo">
-      <DasType>tinyint(1)|0s</DasType>
-      <Position>15</Position>
-    </column>
-    <column id="628" parent="317" name="current_experience">
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <NotNull>1</NotNull>
-      <Position>16</Position>
-    </column>
-    <column id="629" parent="317" name="current_seeding_hours">
-      <DasType>float|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <NotNull>1</NotNull>
-      <Position>17</Position>
-    </column>
-    <column id="630" parent="317" name="gender">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>18</Position>
-    </column>
-    <column id="631" parent="317" name="description">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>19</Position>
-    </column>
-    <column id="632" parent="317" name="hobbies">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>20</Position>
-    </column>
-    <column id="633" parent="317" name="registration_time">
-      <DasType>timestamp|0s</DasType>
-      <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
-      <Position>21</Position>
-    </column>
-    <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="636" parent="317" name="PRIMARY">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="637" parent="317" name="fk_user_level">
-      <ColNames>level</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="638" parent="317" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="639" parent="318" name="dynamic_id">
-      <AutoIncrement>9</AutoIncrement>
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="640" parent="318" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="641" parent="318" name="title">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="642" parent="318" name="content">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="643" parent="318" name="image_url">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>5</Position>
-    </column>
-    <column id="644" parent="318" name="time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>6</Position>
-    </column>
-    <column id="645" parent="318" name="likes_count">
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>7</Position>
-    </column>
-    <column id="646" parent="318" name="comments_count">
-      <DasType>int|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>8</Position>
-    </column>
-    <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="648" parent="318" name="PRIMARY">
-      <ColNames>dynamic_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="649" parent="318" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="650" parent="318" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="651" parent="319" name="invite_id">
-      <AutoIncrement>6</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="652" parent="319" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="653" parent="319" name="invite_code">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="654" parent="319" name="is_used">
-      <DasType>tinyint(1)|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>4</Position>
-    </column>
-    <column id="655" parent="319" name="created_at">
-      <DasType>timestamp|0s</DasType>
-      <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
-      <Position>5</Position>
-    </column>
-    <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="657" parent="319" name="PRIMARY">
-      <ColNames>invite_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="658" parent="319" name="invite_code">
-      <ColNames>invite_code</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="659" parent="319" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="660" parent="319" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <key id="661" parent="319" name="invite_code">
-      <UnderlyingIndexName>invite_code</UnderlyingIndexName>
-    </key>
-    <column id="662" parent="320" name="message_id">
-      <AutoIncrement>2</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="663" parent="320" name="sender_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="664" parent="320" name="receiver_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="665" parent="320" name="content">
-      <DasType>varchar(255)|0s</DasType>
-      <Position>4</Position>
-    </column>
-    <column id="666" parent="320" name="time">
-      <DasType>datetime|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <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="668" parent="320" name="user_messages_ibfk_2">
-      <ColNames>receiver_id</ColNames>
-      <RefColNames>user_id</RefColNames>
-      <RefTableName>user</RefTableName>
-    </foreign-key>
-    <index id="669" parent="320" name="PRIMARY">
-      <ColNames>message_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="670" parent="320" name="sender_id">
-      <ColNames>sender_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="671" parent="320" name="receiver_id">
-      <ColNames>receiver_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="672" parent="320" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-    <column id="673" parent="321" name="status_id">
-      <AutoIncrement>3</AutoIncrement>
-      <DasType>bigint|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>1</Position>
-    </column>
-    <column id="674" parent="321" name="user_id">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>2</Position>
-    </column>
-    <column id="675" parent="321" name="task_id">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>3</Position>
-    </column>
-    <column id="676" parent="321" name="current_progress">
-      <DasType>float|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>4</Position>
-    </column>
-    <column id="677" parent="321" name="current_experience">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>5</Position>
-    </column>
-    <column id="678" parent="321" name="current_points">
-      <DasType>int|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>6</Position>
-    </column>
-    <column id="679" parent="321" name="status">
-      <DasType>varchar(255)|0s</DasType>
-      <NotNull>1</NotNull>
-      <Position>7</Position>
-    </column>
-    <column id="680" parent="321" name="is_reward_claimed">
-      <DasType>tinyint(1)|0s</DasType>
-      <DefaultExpression>0</DefaultExpression>
-      <Position>8</Position>
-    </column>
-    <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="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="683" parent="321" name="PRIMARY">
-      <ColNames>status_id</ColNames>
-      <Type>btree</Type>
-      <Unique>1</Unique>
-    </index>
-    <index id="684" parent="321" name="user_id">
-      <ColNames>user_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <index id="685" parent="321" name="task_id">
-      <ColNames>task_id</ColNames>
-      <Type>btree</Type>
-    </index>
-    <key id="686" parent="321" name="PRIMARY">
-      <NameSurrogate>1</NameSurrogate>
-      <Primary>1</Primary>
-      <UnderlyingIndexName>PRIMARY</UnderlyingIndexName>
-    </key>
-  </database-model>
-</dataSource>
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 712ab9d..0eda22b 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -16,5 +16,10 @@
       <option name="name" value="JBoss Community repository" />
       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="http://localhost:8081/repository/maven-public/" />
+    </remote-repository>
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index d3c9b17..d38745b 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,283 +1,283 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="AutoImportSettings">
-    <option name="autoReloadType" value="SELECTIVE" />
-  </component>
-  <component name="ChangeListManager">
-    <list default="true" id="f008fe30-0711-42e2-bb33-17dcfdbad387" name="Changes" comment="pom">
-      <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/controller/PromotionController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/PromotionController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/mapper/PromotionMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/mapper/PromotionMapper.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/serviceImpl/PromotionServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/serviceImpl/PromotionServiceImpl.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/PromotionMapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/mapper/PromotionMapper.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" />
-    </list>
-    <option name="SHOW_DIALOG" value="false" />
-    <option name="HIGHLIGHT_CONFLICTS" value="true" />
-    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
-    <option name="LAST_RESOLUTION" value="IGNORE" />
-  </component>
-  <component name="FileTemplateManagerImpl">
-    <option name="RECENT_TEMPLATES">
-      <list>
-        <option value="Class" />
-      </list>
-    </option>
-  </component>
-  <component name="Git.Settings">
-    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
-    <option name="ROOT_SYNC" value="SYNC" />
-  </component>
-  <component name="HighlightingSettingsPerFile">
-    <setting file="file://$PROJECT_DIR$/src/main/java/com/example/myproject/config/WebConfig.java" root0="FORCE_HIGHLIGHTING" />
-    <setting file="file://$PROJECT_DIR$/src/main/java/com/example/myproject/service/PostService.java" root0="FORCE_HIGHLIGHTING" />
-  </component>
-  <component name="MarkdownSettingsMigration">
-    <option name="stateVersion" value="1" />
-  </component>
-  <component name="ProblemsViewState">
-    <option name="selectedTabId" value="CurrentFile" />
-  </component>
-  <component name="ProjectColorInfo">{
-  &quot;associatedIndex&quot;: 0
-}</component>
-  <component name="ProjectId" id="2vZNfNTEFyHApdxmHZ7Y0rlJjKB" />
-  <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;ASKED_ADD_EXTERNAL_FILES&quot;: &quot;true&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;完成pt与bt交互、补充图片资源&quot;,
-    &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
-    &quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
-    &quot;last_opened_file_path&quot;: &quot;D:/Desktop/echo后端/echo-backend/images&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;
-  },
-  &quot;keyToStringList&quot;: {
-    &quot;DatabaseDriversLRU&quot;: [
-      &quot;mysql_aurora&quot;
-    ]
-  }
-}</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" />
-    </key>
-    <key name="MoveFile.RECENT_KEYS">
-      <recent name="D:\study\学习资源\大三下\school\echo-backend\src\main\resources\mapper" />
-    </key>
-  </component>
-  <component name="RunManager" selected="应用程序.MyProjectApplication">
-    <configuration name="MyProjectApplication" type="Application" factoryName="Application" temporary="true">
-      <option name="MAIN_CLASS_NAME" value="com.example.myproject.MyProjectApplication" />
-      <module name="echo-backend" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="com.example.myproject.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="MyProjectApplication" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
-      <option name="MAIN_CLASS_NAME" value="com.example.myproject.MyProjectApplication" />
-      <module name="echo-backend" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="com.example.myproject.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="TorrentControllerTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="echo-backend" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="com.example.myproject.controller.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <option name="PACKAGE_NAME" value="com.example.myproject.controller" />
-      <option name="MAIN_CLASS_NAME" value="com.example.myproject.controller.TorrentControllerTest" />
-      <option name="TEST_OBJECT" value="class" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="UserControllerTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="echo-backend" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="com.example.myproject.controller.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <option name="PACKAGE_NAME" value="com.example.myproject.controller" />
-      <option name="MAIN_CLASS_NAME" value="com.example.myproject.controller.UserControllerTest" />
-      <option name="TEST_OBJECT" value="class" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="UserControllerTest.testUpdateUserAvatar" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="echo-backend" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="com.example.myproject.controller.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <option name="PACKAGE_NAME" value="com.example.myproject.controller" />
-      <option name="MAIN_CLASS_NAME" value="com.example.myproject.controller.UserControllerTest" />
-      <option name="METHOD_NAME" value="testUpdateUserAvatar" />
-      <option name="TEST_OBJECT" value="method" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="UserControllerTest.testUploadUserAvatar" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="echo-backend" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="com.example.myproject.controller.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <option name="PACKAGE_NAME" value="com.example.myproject.controller" />
-      <option name="MAIN_CLASS_NAME" value="com.example.myproject.controller.UserControllerTest" />
-      <option name="METHOD_NAME" value="testUploadUserAvatar" />
-      <option name="TEST_OBJECT" value="method" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration name="MyProjectApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
-      <module name="echo-backend" />
-      <option name="SPRING_BOOT_MAIN_CLASS" value="com.example.myproject.MyProjectApplication" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <recent_temporary>
-      <list>
-        <item itemvalue="应用程序.MyProjectApplication" />
-        <item itemvalue="JUnit.UserControllerTest.testUploadUserAvatar" />
-        <item itemvalue="JUnit.UserControllerTest.testUpdateUserAvatar" />
-        <item itemvalue="JUnit.UserControllerTest" />
-        <item itemvalue="JUnit.TorrentControllerTest" />
-      </list>
-    </recent_temporary>
-  </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">
-      <changelist id="f008fe30-0711-42e2-bb33-17dcfdbad387" name="Changes" comment="" />
-      <created>1744348740342</created>
-      <option name="number" value="Default" />
-      <option name="presentableId" value="Default" />
-      <updated>1744348740342</updated>
-      <workItem from="1749007243227" duration="1245000" />
-      <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" />
-      <created>1749011916131</created>
-      <option name="number" value="00001" />
-      <option name="presentableId" value="LOCAL-00001" />
-      <option name="project" value="LOCAL" />
-      <updated>1749011916131</updated>
-    </task>
-    <task id="LOCAL-00002" summary="pom">
-      <option name="closed" value="true" />
-      <created>1749012141761</created>
-      <option name="number" value="00002" />
-      <option name="presentableId" value="LOCAL-00002" />
-      <option name="project" value="LOCAL" />
-      <updated>1749012141761</updated>
-    </task>
-    <option name="localTasksCounter" value="3" />
-    <servers />
-  </component>
-  <component name="TypeScriptGeneratedFilesManager">
-    <option name="version" value="3" />
-  </component>
-  <component name="Vcs.Log.Tabs.Properties">
-    <option name="TAB_STATES">
-      <map>
-        <entry key="MAIN">
-          <value>
-            <State>
-              <option name="FILTERS">
-                <map>
-                  <entry key="branch">
+    <component name="AutoImportSettings">
+        <option name="autoReloadType" value="SELECTIVE" />
+    </component>
+    <component name="ChangeListManager">
+        <list default="true" id="f008fe30-0711-42e2-bb33-17dcfdbad387" name="Changes" comment="pom">
+            <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/controller/PromotionController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/controller/PromotionController.java" afterDir="false" />
+            <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/mapper/PromotionMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/mapper/PromotionMapper.java" afterDir="false" />
+            <change beforePath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/serviceImpl/PromotionServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/example/myproject/service/serviceImpl/PromotionServiceImpl.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/PromotionMapper.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/example/myproject/mapper/PromotionMapper.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" />
+        </list>
+        <option name="SHOW_DIALOG" value="false" />
+        <option name="HIGHLIGHT_CONFLICTS" value="true" />
+        <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+        <option name="LAST_RESOLUTION" value="IGNORE" />
+    </component>
+    <component name="FileTemplateManagerImpl">
+        <option name="RECENT_TEMPLATES">
+            <list>
+                <option value="Class" />
+            </list>
+        </option>
+    </component>
+    <component name="Git.Settings">
+        <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+        <option name="ROOT_SYNC" value="SYNC" />
+    </component>
+    <component name="HighlightingSettingsPerFile">
+        <setting file="file://$PROJECT_DIR$/src/main/java/com/example/myproject/config/WebConfig.java" root0="FORCE_HIGHLIGHTING" />
+        <setting file="file://$PROJECT_DIR$/src/main/java/com/example/myproject/service/PostService.java" root0="FORCE_HIGHLIGHTING" />
+    </component>
+    <component name="MarkdownSettingsMigration">
+        <option name="stateVersion" value="1" />
+    </component>
+    <component name="ProblemsViewState">
+        <option name="selectedTabId" value="CurrentFile" />
+    </component>
+    <component name="ProjectColorInfo">{
+        &quot;associatedIndex&quot;: 0
+        }</component>
+    <component name="ProjectId" id="2vZNfNTEFyHApdxmHZ7Y0rlJjKB" />
+    <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;ASKED_ADD_EXTERNAL_FILES&quot;: &quot;true&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;完成pt与bt交互、补充图片资源&quot;,
+        &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
+        &quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
+        &quot;last_opened_file_path&quot;: &quot;D:/Desktop/echo后端/echo-backend/images&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;
+        },
+        &quot;keyToStringList&quot;: {
+        &quot;DatabaseDriversLRU&quot;: [
+        &quot;mysql_aurora&quot;
+        ]
+        }
+        }</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" />
+        </key>
+        <key name="MoveFile.RECENT_KEYS">
+            <recent name="D:\study\学习资源\大三下\school\echo-backend\src\main\resources\mapper" />
+        </key>
+    </component>
+    <component name="RunManager" selected="应用程序.MyProjectApplication">
+        <configuration name="MyProjectApplication" type="Application" factoryName="Application" temporary="true">
+            <option name="MAIN_CLASS_NAME" value="com.example.myproject.MyProjectApplication" />
+            <module name="echo-backend" />
+            <extension name="coverage">
+                <pattern>
+                    <option name="PATTERN" value="com.example.myproject.*" />
+                    <option name="ENABLED" value="true" />
+                </pattern>
+            </extension>
+            <method v="2">
+                <option name="Make" enabled="true" />
+            </method>
+        </configuration>
+        <configuration name="MyProjectApplication" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+            <option name="MAIN_CLASS_NAME" value="com.example.myproject.MyProjectApplication" />
+            <module name="echo-backend" />
+            <extension name="coverage">
+                <pattern>
+                    <option name="PATTERN" value="com.example.myproject.*" />
+                    <option name="ENABLED" value="true" />
+                </pattern>
+            </extension>
+            <method v="2">
+                <option name="Make" enabled="true" />
+            </method>
+        </configuration>
+        <configuration name="TorrentControllerTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+            <module name="echo-backend" />
+            <extension name="coverage">
+                <pattern>
+                    <option name="PATTERN" value="com.example.myproject.controller.*" />
+                    <option name="ENABLED" value="true" />
+                </pattern>
+            </extension>
+            <option name="PACKAGE_NAME" value="com.example.myproject.controller" />
+            <option name="MAIN_CLASS_NAME" value="com.example.myproject.controller.TorrentControllerTest" />
+            <option name="TEST_OBJECT" value="class" />
+            <method v="2">
+                <option name="Make" enabled="true" />
+            </method>
+        </configuration>
+        <configuration name="UserControllerTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+            <module name="echo-backend" />
+            <extension name="coverage">
+                <pattern>
+                    <option name="PATTERN" value="com.example.myproject.controller.*" />
+                    <option name="ENABLED" value="true" />
+                </pattern>
+            </extension>
+            <option name="PACKAGE_NAME" value="com.example.myproject.controller" />
+            <option name="MAIN_CLASS_NAME" value="com.example.myproject.controller.UserControllerTest" />
+            <option name="TEST_OBJECT" value="class" />
+            <method v="2">
+                <option name="Make" enabled="true" />
+            </method>
+        </configuration>
+        <configuration name="UserControllerTest.testUpdateUserAvatar" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+            <module name="echo-backend" />
+            <extension name="coverage">
+                <pattern>
+                    <option name="PATTERN" value="com.example.myproject.controller.*" />
+                    <option name="ENABLED" value="true" />
+                </pattern>
+            </extension>
+            <option name="PACKAGE_NAME" value="com.example.myproject.controller" />
+            <option name="MAIN_CLASS_NAME" value="com.example.myproject.controller.UserControllerTest" />
+            <option name="METHOD_NAME" value="testUpdateUserAvatar" />
+            <option name="TEST_OBJECT" value="method" />
+            <method v="2">
+                <option name="Make" enabled="true" />
+            </method>
+        </configuration>
+        <configuration name="UserControllerTest.testUploadUserAvatar" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+            <module name="echo-backend" />
+            <extension name="coverage">
+                <pattern>
+                    <option name="PATTERN" value="com.example.myproject.controller.*" />
+                    <option name="ENABLED" value="true" />
+                </pattern>
+            </extension>
+            <option name="PACKAGE_NAME" value="com.example.myproject.controller" />
+            <option name="MAIN_CLASS_NAME" value="com.example.myproject.controller.UserControllerTest" />
+            <option name="METHOD_NAME" value="testUploadUserAvatar" />
+            <option name="TEST_OBJECT" value="method" />
+            <method v="2">
+                <option name="Make" enabled="true" />
+            </method>
+        </configuration>
+        <configuration name="MyProjectApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
+            <module name="echo-backend" />
+            <option name="SPRING_BOOT_MAIN_CLASS" value="com.example.myproject.MyProjectApplication" />
+            <method v="2">
+                <option name="Make" enabled="true" />
+            </method>
+        </configuration>
+        <recent_temporary>
+            <list>
+                <item itemvalue="应用程序.MyProjectApplication" />
+                <item itemvalue="JUnit.UserControllerTest.testUploadUserAvatar" />
+                <item itemvalue="JUnit.UserControllerTest.testUpdateUserAvatar" />
+                <item itemvalue="JUnit.UserControllerTest" />
+                <item itemvalue="JUnit.TorrentControllerTest" />
+            </list>
+        </recent_temporary>
+    </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">
+            <changelist id="f008fe30-0711-42e2-bb33-17dcfdbad387" name="Changes" comment="" />
+            <created>1744348740342</created>
+            <option name="number" value="Default" />
+            <option name="presentableId" value="Default" />
+            <updated>1744348740342</updated>
+            <workItem from="1749007243227" duration="1245000" />
+            <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" />
+            <created>1749011916131</created>
+            <option name="number" value="00001" />
+            <option name="presentableId" value="LOCAL-00001" />
+            <option name="project" value="LOCAL" />
+            <updated>1749011916131</updated>
+        </task>
+        <task id="LOCAL-00002" summary="pom">
+            <option name="closed" value="true" />
+            <created>1749012141761</created>
+            <option name="number" value="00002" />
+            <option name="presentableId" value="LOCAL-00002" />
+            <option name="project" value="LOCAL" />
+            <updated>1749012141761</updated>
+        </task>
+        <option name="localTasksCounter" value="3" />
+        <servers />
+    </component>
+    <component name="TypeScriptGeneratedFilesManager">
+        <option name="version" value="3" />
+    </component>
+    <component name="Vcs.Log.Tabs.Properties">
+        <option name="TAB_STATES">
+            <map>
+                <entry key="MAIN">
                     <value>
-                      <list>
-                        <option value="master" />
-                      </list>
+                        <State>
+                            <option name="FILTERS">
+                                <map>
+                                    <entry key="branch">
+                                        <value>
+                                            <list>
+                                                <option value="master" />
+                                            </list>
+                                        </value>
+                                    </entry>
+                                </map>
+                            </option>
+                        </State>
                     </value>
-                  </entry>
-                </map>
-              </option>
-            </State>
-          </value>
-        </entry>
-      </map>
-    </option>
-  </component>
-  <component name="VcsManagerConfiguration">
-    <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
-    <MESSAGE value="pom" />
-    <option name="LAST_COMMIT_MESSAGE" value="pom" />
-  </component>
-  <component name="XDebuggerManager">
-    <breakpoint-manager>
-      <breakpoints>
-        <line-breakpoint enabled="true" type="java-method">
-          <url>file://$PROJECT_DIR$/src/test/java/com/example/myproject/controller/UserControllerTest.java</url>
-          <line>235</line>
-          <properties class="com.example.myproject.controller.UserControllerTest" method="testUploadUserAvatar">
-            <option name="EMULATED" value="true" />
-            <option name="WATCH_EXIT" value="false" />
-          </properties>
-          <option name="timeStamp" value="1" />
-        </line-breakpoint>
-      </breakpoints>
-    </breakpoint-manager>
-  </component>
+                </entry>
+            </map>
+        </option>
+    </component>
+    <component name="VcsManagerConfiguration">
+        <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
+        <MESSAGE value="pom" />
+        <option name="LAST_COMMIT_MESSAGE" value="pom" />
+    </component>
+    <component name="XDebuggerManager">
+        <breakpoint-manager>
+            <breakpoints>
+                <line-breakpoint enabled="true" type="java-method">
+                    <url>file://$PROJECT_DIR$/src/test/java/com/example/myproject/controller/UserControllerTest.java</url>
+                    <line>235</line>
+                    <properties class="com.example.myproject.controller.UserControllerTest" method="testUploadUserAvatar">
+                        <option name="EMULATED" value="true" />
+                        <option name="WATCH_EXIT" value="false" />
+                    </properties>
+                    <option name="timeStamp" value="1" />
+                </line-breakpoint>
+            </breakpoints>
+        </breakpoint-manager>
+    </component>
 </project>
\ No newline at end of file
diff --git a/src/main/java/com/example/myproject/controller/TorrentController.java b/src/main/java/com/example/myproject/controller/TorrentController.java
index 846e5da..ef62c26 100644
--- a/src/main/java/com/example/myproject/controller/TorrentController.java
+++ b/src/main/java/com/example/myproject/controller/TorrentController.java
@@ -1,323 +1,3 @@
-// package com.example.myproject.controller;
-
-// import com.example.myproject.common.base.PageUtil;
-// import com.example.myproject.entity.TorrentEntity;
-// import com.example.myproject.service.TorrentService;
-// import com.example.myproject.service.PromotionService;
-// import com.example.myproject.dto.param.TorrentParam;
-// import com.example.myproject.dto.vo.TorrentVO;
-// import com.example.myproject.common.base.Result;
-// import com.example.myproject.dto.param.TorrentUploadParam;
-// import com.example.myproject.dto.TorrentUpdateDTO;
-// import com.example.myproject.dto.PromotionCreateDTO;
-// import com.example.myproject.entity.Promotion;
-// import com.example.myproject.service.UserService;
-
-// import io.swagger.v3.oas.annotations.Operation;
-// import io.swagger.v3.oas.annotations.media.Content;
-// import io.swagger.v3.oas.annotations.media.Schema;
-// import io.swagger.v3.oas.annotations.responses.ApiResponse;
-
-// import org.springframework.beans.factory.annotation.Autowired;
-// import org.springframework.http.HttpStatus;
-// import org.springframework.http.ResponseEntity;
-// import org.springframework.validation.annotation.Validated;
-// import org.springframework.web.bind.annotation.*;
-// import org.springframework.web.multipart.MultipartFile;
-
-// import javax.servlet.http.HttpServletRequest;
-// import javax.servlet.http.HttpServletResponse;
-// import java.io.File;
-// import java.io.IOException;
-// import java.util.List;
-
-// import cn.dev33.satoken.annotation.SaCheckLogin;
-// import cn.dev33.satoken.stp.StpUtil;
-
-// @RestController
-// @RequestMapping("/seeds")
-// public class TorrentController {
-
-//     @Autowired
-//     private TorrentService torrentService;
-
-//     @Autowired
-//     private PromotionService promotionService;
-
-//     @Autowired
-//     private UserService userService;
-
-
-//     @SaCheckLogin
-//     @Operation(summary = "种子列表查询", description = "种子列表条件查询-分页-排序")
-//     @ApiResponse(responseCode = "0", description = "操作成功",
-//             content = {@Content(mediaType = "application/json",
-//                     schema = @Schema(implementation = TorrentVO.class))
-//             })
-//     @PostMapping("/list")
-//     public Result list(@RequestBody TorrentParam param) {
-//         // 构建排序和模糊查询条件
-//         param.validOrder(param.getOrderKey(TorrentEntity.class));
-//         param.buildLike();
-
-//         PageUtil.startPage(param);
-
-//         // 查询数据
-//         List<TorrentEntity> list = torrentService.search(param);
-
-//         // 返回分页结果
-//         return Result.ok(list, PageUtil.getPage(list));
-//     }
-
-//     @SaCheckLogin
-//     @Operation(summary = "种子详情查询")
-//     @ApiResponse(responseCode = "0", description = "操作成功", content = {
-//             @Content(mediaType = "application/json", schema = @Schema(implementation =
-//                     TorrentEntity.class))
-//     })
-//     @PostMapping("/info/{id}")
-//     public Result info(@PathVariable("id")Long id) {
-
-//         TorrentEntity entity = torrentService.selectBySeedId(id);
-//         return Result.ok(entity);
-//     }
-
-// @Operation(summary = "上传种子")
-
-//     @PostMapping("/upload")
-//     public Result uploadTorrent(
-//             @RequestParam("file") MultipartFile file,
-//             @RequestParam("coverImage") MultipartFile coverImage,
-//             @ModelAttribute @Validated TorrentUploadParam param,
-//             HttpServletRequest request
-//             ) throws IOException {
-//         try {
-//             // 验证用户权限
-//             // Long userId = StpUtil.getLoginIdAsLong();
-//             String userId = String.valueOf(param.getUploader());
-//             param.setUploader(userId);
-
-//             // 验证文件大小和类型
-//             if (file.isEmpty() || file.getSize() > 10 * 1024 * 1024) { // 10MB限制
-//                 return Result.error("文件大小不符合要求");
-//             }
-
-//             if (!file.getOriginalFilename().toLowerCase().endsWith(".torrent")) {
-//                 return Result.error("只支持.torrent文件");
-//             }
-//             if (!coverImage.isEmpty()) {
-//                 String originalFilename = coverImage.getOriginalFilename();
-//                 String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
-//                 String fileName = System.currentTimeMillis() + suffix;
-
-//                 if (!originalFilename.toLowerCase().matches(".*\\.(jpg|jpeg|png)$")) {
-//                     return Result.error("仅支持 JPG/PNG 格式的封面图片");
-//                 }
-
-
-//                 // 项目根目录下的 /uploads/torrents/
-//                 String uploadDir = System.getProperty("user.dir") + "/uploads/torrents/";
-//                 File dir = new File(uploadDir);
-//                 if (!dir.exists()) dir.mkdirs(); // 自动创建目录
-
-//                 File dest = new File(uploadDir + fileName);
-//                 coverImage.transferTo(dest);
-
-
-//                 String imageUrl = request.getScheme() + "://" + request.getServerName() + ":" +
-//                         request.getServerPort() + "/torrent-images/" + fileName;
-
-
-//                 param.setImageUrl(imageUrl);
-//             }
-
-//             torrentService.uploadTorrent(file, param);
-//             return Result.ok();
-//         } catch (Exception e) {
-//             return Result.error("种子上传失败: " + e.getMessage());
-//         }
-//     }
-
-//     /**
-//      * 获取种子文件
-//      */
-//     @GetMapping("/{seed_id}/download")
-//     public void downloadTorrent(
-//             @PathVariable("seed_id") Long seedId,
-//             @RequestParam("passkey") String passkey,
-//             HttpServletResponse response) throws IOException {
-
-//         // 获取种子实体
-//         TorrentEntity entity = torrentService.selectBySeedId(seedId);
-//         if (entity == null) {
-//             response.sendError(HttpServletResponse.SC_NOT_FOUND, "种子不存在");
-//             return;
-//         }
-
-//         // 获取并处理种子文件内容(需在service中实现passkey注入)
-//         byte[] torrentBytes = torrentService.fetch(seedId, passkey);
-
-//         // 设置下载文件名
-//         String filename = entity.getFileName();
-//         if (filename == null || filename.isBlank()) {
-//             filename = seedId + ".torrent";
-//         }
-//         if (!filename.toLowerCase().endsWith(".torrent")) {
-//             filename = filename + ".torrent";
-//         }
-//         filename = java.net.URLEncoder.encode(filename, java.nio.charset.StandardCharsets.UTF_8).replaceAll("\\+",
-//                 "%20");
-
-//         // 设置响应头
-//         response.setCharacterEncoding(java.nio.charset.StandardCharsets.UTF_8.name());
-//         response.setContentLength(torrentBytes.length);
-//         response.setContentType("application/x-bittorrent");
-//         response.setHeader("Content-Disposition", "attachment;filename=" + filename);
-
-//         // 写入文件内容
-//         response.getOutputStream().write(torrentBytes);
-//         response.getOutputStream().flush();
-//     }
-
-//     /**
-//      * 收藏或者取消收藏
-//      */
-//     @PostMapping("/{seed_id}/favorite-toggle")
-//     public Result favorite(
-//             @PathVariable("seed_id") Long seedId,
-//             @RequestParam("user_id") Long  userId) {
-//         try {
-
-//             return  torrentService.favorite(seedId, userId);
-//         } catch (Exception e) {
-//             return Result.error("失败: ");
-//         }
-//     }
-
-//     @SaCheckLogin
-//     @Operation(summary = "删除种子")
-//     @DeleteMapping("/{torrentId}")
-//     public Result deleteTorrent(@PathVariable Long torrentId) {
-//         try {
-//            //  验证用户权限
-//             Long userId = StpUtil.getLoginIdAsLong();
-//             if (!torrentService.canUserDeleteTorrent(torrentId, userId)) {
-//                 return Result.error("没有权限删除此种子");
-//             }
-
-//             torrentService.deleteTorrent(torrentId);
-//             return Result.ok();
-//         } catch (Exception e) {
-//             return Result.error("删除失败: " + e.getMessage());
-//         }
-//     }
-
-//     @SaCheckLogin
-//     @Operation(summary = "修改种子信息")
-//     @PutMapping("/{torrentId}")
-//     public Result updateTorrent(
-//             @PathVariable Long torrentId,
-//             @RequestBody @Validated TorrentUpdateDTO updateDTO) {
-//         try {
-//             // 验证用户权限
-//             Long userId = StpUtil.getLoginIdAsLong();
-//             if (!torrentService.canUserUpdateTorrent(torrentId, userId)) {
-//                 return Result.error("没有权限修改此种子");
-//             }
-
-//             torrentService.updateTorrent(torrentId, updateDTO);
-//             return Result.ok();
-//         } catch (Exception e) {
-//             return Result.error("更新失败: " + e.getMessage());
-//         }
-//     }
-
-//     @SaCheckLogin
-//     @Operation(summary = "创建促销活动")
-//     @PostMapping("/promotions")
-//     public Result createPromotion(@RequestBody @Validated PromotionCreateDTO promotionDTO) {
-//         try {
-//             // 验证用户权限(只有管理员可以创建促销)
-// //            if (!StpUtil.hasRole("admin")) {
-// //                return Result.error("没有权限创建促销活动");
-// //            }
-// //
-//             Promotion promotion = promotionService.createPromotion(promotionDTO);
-//             return Result.ok(promotion);
-//         } catch (Exception e) {
-//             return Result.error("创建促销失败: " + e.getMessage());
-//         }
-//     }
-
-//     @SaCheckLogin
-//     @Operation(summary = "获取促销活动列表")
-//     @GetMapping("/promotions")
-//     public Result getPromotions() {
-//         try {
-//             List<Promotion> promotions = promotionService.getAllActivePromotions();
-//             return Result.ok(promotions);
-//         } catch (Exception e) {
-//             return Result.error("获取促销列表失败: " + e.getMessage());
-//         }
-//     }
-
-//     @SaCheckLogin
-//     @Operation(summary = "获取促销详情")
-//     @GetMapping("/promotions/{promotionId}")
-//     public Result getPromotionDetails(@PathVariable Long promotionId) {
-//         try {
-//             Promotion promotion = promotionService.getPromotionById(promotionId);
-//             if (promotion == null) {
-//                 return Result.error("促销活动不存在");
-//             }
-//             return Result.ok(promotion);
-//         } catch (Exception e) {
-//             return Result.error("获取促销详情失败: " + e.getMessage());
-//         }
-//     }
-
-//     @SaCheckLogin
-//     @Operation(summary = "删除促销活动")
-//     @DeleteMapping("/promotions/{promotionId}")
-//     public Result deletePromotion(@PathVariable Long promotionId) {
-//         try {
-//             // 验证用户权限(只有管理员可以删除促销)
-//             if (!StpUtil.hasRole("admin")) {
-//                 return Result.error("没有权限删除促销活动");
-//             }
-
-//             promotionService.deletePromotion(promotionId);
-//             return Result.ok();
-//         } catch (Exception e) {
-//             return Result.error("删除促销失败: " + e.getMessage());
-//         }
-//     }
-
-//     // 下载种子(包含反作弊机制)
-//     @PostMapping("/{torrentId}/download")
-//     public ResponseEntity<?> downloadTorrent(@PathVariable Long torrentId,
-//                                            @RequestParam Long userId) {
-// //        // 验证用户身份和权限
-// //        if (!userService.validateUser(userId)) {
-// //            return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
-// //        }
-
-//         // 检查用户上传量是否足够
-//         if (!torrentService.checkUserUploadRatio(userId)) {
-//             return ResponseEntity.status(HttpStatus.FORBIDDEN)
-//                 .body("上传量不足,无法下载");
-//         }
-
-//         // 应用促销折扣(如果有)
-//         double downloadSize = torrentService.calculateDownloadSize(torrentId, userId);
-
-//         // 记录下载
-//         torrentService.recordDownload(torrentId, userId, downloadSize);
-
-//         return ResponseEntity.ok().build();
-//     }
-
-// }
 package com.example.myproject.controller;
 
 import cn.hutool.core.util.StrUtil;
@@ -338,6 +18,7 @@
 import com.example.myproject.entity.Promotion;
 
 import com.example.myproject.service.UserService;
+import com.example.myproject.repository.UserRepository;
 
 import com.turn.ttorrent.bcodec.BEValue;
 import com.turn.ttorrent.bcodec.BEncoder;
@@ -365,6 +46,9 @@
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
 import java.util.*;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
 
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.stp.StpUtil;
@@ -388,6 +72,8 @@
     private UserService userService;
     private final List<BEValue> peers = new Vector<>();
 
+    @Autowired
+    private UserRepository userRepository;
 
     @SaCheckLogin
     @Operation(summary = "种子列表查询", description = "种子列表条件查询-分页-排序")
@@ -430,7 +116,7 @@
             @RequestParam("coverImage") MultipartFile coverImage,
             @ModelAttribute @Validated TorrentUploadParam param,
             HttpServletRequest request
-            ) throws IOException {
+    ) throws IOException {
         try {
             // 验证用户权限
             // Long userId = StpUtil.getLoginIdAsLong();
@@ -541,16 +227,78 @@
     public Result getMyFavorite(
             @RequestParam("user_id") Long  userId) {
         try {
+
             return  torrentService.getMyfavorite(userId);
         } catch (Exception e) {
             return Result.error("失败: ");
         }
     }
 
+    @SaCheckLogin
+    @Operation(summary = "创建促销活动")
+    @PostMapping("/promotions")
+    public Result createPromotion(@RequestBody @Validated PromotionCreateDTO promotionDTO) {
+        try {
+            // 验证用户权限(只有管理员可以创建促销)
+//            if (!StpUtil.hasRole("admin")) {
+//                return Result.error("没有权限创建促销活动");
+//            }
+//
+            Promotion promotion = promotionService.createPromotion(promotionDTO);
+            return Result.ok(promotion);
+        } catch (Exception e) {
+            return Result.error("创建促销失败: " + e.getMessage());
+        }
+    }
 
+    @SaCheckLogin
+    @Operation(summary = "获取促销活动列表")
+    @GetMapping("/promotions")
+    public Result getPromotions() {
+        try {
+            List<Promotion> promotions = promotionService.getAllActivePromotions();
+            return Result.ok(promotions);
+        } catch (Exception e) {
+            return Result.error("获取促销列表失败: " + e.getMessage());
+        }
+    }
+
+    @SaCheckLogin
+    @Operation(summary = "获取促销详情")
+    @GetMapping("/promotions/{promotionId}")
+    public Result getPromotionDetails(@PathVariable Long promotionId) {
+        try {
+            Promotion promotion = promotionService.getPromotionById(promotionId);
+            if (promotion == null) {
+                return Result.error("促销活动不存在");
+            }
+            return Result.ok(promotion);
+        } catch (Exception e) {
+            return Result.error("获取促销详情失败: " + e.getMessage());
+        }
+    }
+
+    @SaCheckLogin
+    @Operation(summary = "删除促销活动")
+    @DeleteMapping("/promotions/{promotionId}")
+    public Result deletePromotion(@PathVariable Long promotionId) {
+        try {
+            Long userId = StpUtil.getLoginIdAsLong();
+            // 查询用户
+            var userOpt = userRepository.findById(userId);
+            if (userOpt.isEmpty() || !"admin".equals(userOpt.get().getRole())) {
+                return Result.error("没有权限删除促销活动");
+            }
+
+            promotionService.deletePromotion(promotionId);
+            return Result.ok();
+        } catch (Exception e) {
+            return Result.error("删除促销失败: " + e.getMessage());
+        }
+    }
     @GetMapping("/announce")
     public ResponseEntity<byte[]> announce(TrackerProtocol trackerProtocol, HttpServletRequest request, @RequestParam(value = "info_hash") String encodedInfoHash){
-
+        log.info("client report: {}", trackerProtocol);
         HashMap<String, BEValue> map = new HashMap<>();
         if (StrUtil.isBlank(trackerProtocol.getIp())) {
             trackerProtocol.setIp(request.getRemoteAddr());
diff --git a/src/main/java/com/example/myproject/mapper/PromotionMapper.java b/src/main/java/com/example/myproject/mapper/PromotionMapper.java
index caf96ee..4ff79ea 100644
--- a/src/main/java/com/example/myproject/mapper/PromotionMapper.java
+++ b/src/main/java/com/example/myproject/mapper/PromotionMapper.java
@@ -25,7 +25,7 @@
             "WHERE p.is_deleted = false " +
             "AND p.start_time <= #{now} AND p.end_time >= #{now} " +
 //            "AND FIND_IN_SET(#{torrentId}, p.applicable_torrent_ids) > 0"
-             "AND JSON_CONTAINS(p.applicable_torrent_ids, CAST(#{torrentId} AS JSON))")
+            "AND JSON_CONTAINS(p.applicable_torrent_ids, CAST(#{torrentId} AS JSON))")
     List<Promotion> findActivePromotionsForTorrent(
             @Param("torrentId") Long torrentId,
             @Param("now") LocalDateTime now);
diff --git a/target/classes/com/example/myproject/common/base/PageParam.class b/target/classes/com/example/myproject/common/base/PageParam.class
index aabaa31..2285fc1 100644
--- a/target/classes/com/example/myproject/common/base/PageParam.class
+++ b/target/classes/com/example/myproject/common/base/PageParam.class
Binary files differ
diff --git a/target/classes/com/example/myproject/common/base/ResPage.class b/target/classes/com/example/myproject/common/base/ResPage.class
index db9569e..e208933 100644
--- a/target/classes/com/example/myproject/common/base/ResPage.class
+++ b/target/classes/com/example/myproject/common/base/ResPage.class
Binary files differ
diff --git a/target/classes/com/example/myproject/common/base/Result.class b/target/classes/com/example/myproject/common/base/Result.class
index 239c90d..8492dd1 100644
--- a/target/classes/com/example/myproject/common/base/Result.class
+++ b/target/classes/com/example/myproject/common/base/Result.class
Binary files differ
diff --git a/target/classes/com/example/myproject/controller/GroupController.class b/target/classes/com/example/myproject/controller/GroupController.class
index d4a2fcb..931f773 100644
--- a/target/classes/com/example/myproject/controller/GroupController.class
+++ b/target/classes/com/example/myproject/controller/GroupController.class
Binary files differ
diff --git a/target/classes/com/example/myproject/dto/PromotionCreateDTO.class b/target/classes/com/example/myproject/dto/PromotionCreateDTO.class
index 5bd0df7..3087d39 100644
--- a/target/classes/com/example/myproject/dto/PromotionCreateDTO.class
+++ b/target/classes/com/example/myproject/dto/PromotionCreateDTO.class
Binary files differ
diff --git a/target/classes/com/example/myproject/dto/TorrentUpdateDTO.class b/target/classes/com/example/myproject/dto/TorrentUpdateDTO.class
index a7b8170..7285868 100644
--- a/target/classes/com/example/myproject/dto/TorrentUpdateDTO.class
+++ b/target/classes/com/example/myproject/dto/TorrentUpdateDTO.class
Binary files differ
diff --git a/target/classes/com/example/myproject/dto/param/AnnounceRequest.class b/target/classes/com/example/myproject/dto/param/AnnounceRequest.class
index 2e4216e..392e715 100644
--- a/target/classes/com/example/myproject/dto/param/AnnounceRequest.class
+++ b/target/classes/com/example/myproject/dto/param/AnnounceRequest.class
Binary files differ
diff --git a/target/classes/com/example/myproject/dto/param/TorrentParam.class b/target/classes/com/example/myproject/dto/param/TorrentParam.class
index 243cd75..ad8a2c5 100644
--- a/target/classes/com/example/myproject/dto/param/TorrentParam.class
+++ b/target/classes/com/example/myproject/dto/param/TorrentParam.class
Binary files differ
diff --git a/target/classes/com/example/myproject/dto/param/TorrentUploadParam.class b/target/classes/com/example/myproject/dto/param/TorrentUploadParam.class
index 4090b02..49bbc09 100644
--- a/target/classes/com/example/myproject/dto/param/TorrentUploadParam.class
+++ b/target/classes/com/example/myproject/dto/param/TorrentUploadParam.class
Binary files differ
diff --git a/target/classes/com/example/myproject/dto/vo/TorrentVO.class b/target/classes/com/example/myproject/dto/vo/TorrentVO.class
index 28ad736..fa2124e 100644
--- a/target/classes/com/example/myproject/dto/vo/TorrentVO.class
+++ b/target/classes/com/example/myproject/dto/vo/TorrentVO.class
Binary files differ
diff --git a/target/classes/com/example/myproject/entity/EntityBase.class b/target/classes/com/example/myproject/entity/EntityBase.class
index efc45df..a16c52a 100644
--- a/target/classes/com/example/myproject/entity/EntityBase.class
+++ b/target/classes/com/example/myproject/entity/EntityBase.class
Binary files differ
diff --git a/target/classes/com/example/myproject/entity/FavoriteEntity.class b/target/classes/com/example/myproject/entity/FavoriteEntity.class
index 1a00df2..a0acd8b 100644
--- a/target/classes/com/example/myproject/entity/FavoriteEntity.class
+++ b/target/classes/com/example/myproject/entity/FavoriteEntity.class
Binary files differ
diff --git a/target/classes/com/example/myproject/entity/Promotion.class b/target/classes/com/example/myproject/entity/Promotion.class
index 0a9fec9..e5df6dd 100644
--- a/target/classes/com/example/myproject/entity/Promotion.class
+++ b/target/classes/com/example/myproject/entity/Promotion.class
Binary files differ
diff --git a/target/classes/com/example/myproject/entity/VerificationToken.class b/target/classes/com/example/myproject/entity/VerificationToken.class
index 1a28089..4b1d318 100644
--- a/target/classes/com/example/myproject/entity/VerificationToken.class
+++ b/target/classes/com/example/myproject/entity/VerificationToken.class
Binary files differ
diff --git a/target/classes/com/example/myproject/service/CommentService.class b/target/classes/com/example/myproject/service/CommentService.class
index 6cac20d..04df3f8 100644
--- a/target/classes/com/example/myproject/service/CommentService.class
+++ b/target/classes/com/example/myproject/service/CommentService.class
Binary files differ
diff --git a/target/classes/com/example/myproject/service/GroupService.class b/target/classes/com/example/myproject/service/GroupService.class
index 017d39c..b1e30ce 100644
--- a/target/classes/com/example/myproject/service/GroupService.class
+++ b/target/classes/com/example/myproject/service/GroupService.class
Binary files differ
diff --git a/target/classes/com/example/myproject/service/LevelService.class b/target/classes/com/example/myproject/service/LevelService.class
index bcf326f..7846dda 100644
--- a/target/classes/com/example/myproject/service/LevelService.class
+++ b/target/classes/com/example/myproject/service/LevelService.class
Binary files differ
diff --git a/target/classes/com/example/myproject/service/UserMessageService.class b/target/classes/com/example/myproject/service/UserMessageService.class
index 73e060f..2ebaf89 100644
--- a/target/classes/com/example/myproject/service/UserMessageService.class
+++ b/target/classes/com/example/myproject/service/UserMessageService.class
Binary files differ
diff --git a/target/classes/com/example/myproject/service/serviceImpl/EmailServiceImpl.class b/target/classes/com/example/myproject/service/serviceImpl/EmailServiceImpl.class
index acff09b..17b5343 100644
--- a/target/classes/com/example/myproject/service/serviceImpl/EmailServiceImpl.class
+++ b/target/classes/com/example/myproject/service/serviceImpl/EmailServiceImpl.class
Binary files differ
diff --git a/target/classes/com/example/myproject/utils/Result.class b/target/classes/com/example/myproject/utils/Result.class
index ec42275..e5c5aa0 100644
--- a/target/classes/com/example/myproject/utils/Result.class
+++ b/target/classes/com/example/myproject/utils/Result.class
Binary files differ
diff --git a/target/classes/com/example/myproject/utils/VerifyCode.class b/target/classes/com/example/myproject/utils/VerifyCode.class
index db303a8..991e277 100644
--- a/target/classes/com/example/myproject/utils/VerifyCode.class
+++ b/target/classes/com/example/myproject/utils/VerifyCode.class
Binary files differ