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>ç§åæ”¶è—è¡¨</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>种åè¡¨</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>主键</Comment>
- <DasType>bigint|0s</DasType>
- <NotNull>1</NotNull>
- <Position>1</Position>
- </column>
- <column id="408" parent="300" name="user_id">
- <Comment>用户ID</Comment>
- <DasType>bigint|0s</DasType>
- <NotNull>1</NotNull>
- <Position>2</Position>
- </column>
- <column id="409" parent="300" name="seed_id">
- <Comment>种åID</Comment>
- <DasType>bigint|0s</DasType>
- <NotNull>1</NotNull>
- <Position>3</Position>
- </column>
- <column id="410" parent="300" name="create_time">
- <Comment>收藏时间</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>种åID</Comment>
- <DasType>bigint|0s</DasType>
- <NotNull>1</NotNull>
- <Position>1</Position>
- </column>
- <column id="580" parent="315" name="info_hash">
- <Comment>种åä¿¡æ¯å“ˆå¸Œ</Comment>
- <DasType>varchar(255)|0s</DasType>
- <NotNull>1</NotNull>
- <Position>2</Position>
- </column>
- <column id="581" parent="315" name="file_name">
- <Comment>ç§åæ–‡ä»¶å</Comment>
- <DasType>varchar(255)|0s</DasType>
- <NotNull>1</NotNull>
- <Position>3</Position>
- </column>
- <column id="582" parent="315" name="uploader">
- <Comment>ä¸Šä¼ è€…</Comment>
- <DasType>varchar(255)|0s</DasType>
- <NotNull>1</NotNull>
- <Position>4</Position>
- </column>
- <column id="583" parent="315" name="create_time">
- <Comment>ä¸Šä¼ æ—¶é—´</Comment>
- <DasType>datetime|0s</DasType>
- <DefaultExpression>CURRENT_TIMESTAMP</DefaultExpression>
- <Position>5</Position>
- </column>
- <column id="584" parent="315" name="update_time">
- <Comment>æ›´æ–°æ—¶é—´</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>ç§åæ–‡ä»¶å¤§å°</Comment>
- <DasType>bigint|0s</DasType>
- <NotNull>1</NotNull>
- <Position>7</Position>
- </column>
- <column id="586" parent="315" name="title">
- <Comment>ç§åæ ‡é¢˜</Comment>
- <DasType>varchar(255)|0s</DasType>
- <NotNull>1</NotNull>
- <Position>8</Position>
- </column>
- <column id="587" parent="315" name="description">
- <Comment>ç§åæè¿°</Comment>
- <DasType>text|0s</DasType>
- <Position>9</Position>
- </column>
- <column id="588" parent="315" name="tags">
- <Comment>ç§åæ ‡ç¾</Comment>
- <DasType>varchar(255)|0s</DasType>
- <Position>10</Position>
- </column>
- <column id="589" parent="315" name="category">
- <Comment>种ååˆ†ç±»</Comment>
- <DasType>varchar(255)|0s</DasType>
- <Position>11</Position>
- </column>
- <column id="590" parent="315" name="image_url">
- <Comment>种åå°é¢å›¾URL</Comment>
- <DasType>varchar(255)|0s</DasType>
- <Position>12</Position>
- </column>
- <column id="591" parent="315" name="leechers">
- <Comment>下载次数</Comment>
- <DasType>int|0s</DasType>
- <DefaultExpression>0</DefaultExpression>
- <Position>13</Position>
- </column>
- <column id="592" parent="315" name="seeders">
- <Comment>做种数</Comment>
- <DasType>int|0s</DasType>
- <DefaultExpression>0</DefaultExpression>
- <Position>14</Position>
- </column>
- <column id="593" parent="315" name="comments">
- <Comment>评论数</Comment>
- <DasType>int|0s</DasType>
- <DefaultExpression>0</DefaultExpression>
- <Position>15</Position>
- </column>
- <column id="594" parent="315" name="views">
- <Comment>浏览次数</Comment>
- <DasType>int|0s</DasType>
- <DefaultExpression>0</DefaultExpression>
- <Position>16</Position>
- </column>
- <column id="595" parent="315" name="hits">
- <Comment>点击次数</Comment>
- <DasType>int|0s</DasType>
- <DefaultExpression>0</DefaultExpression>
- <Position>17</Position>
- </column>
- <column id="596" parent="315" name="promotion_time_type">
- <Comment>促销时间类型</Comment>
- <DasType>int|0s</DasType>
- <DefaultExpression>0</DefaultExpression>
- <Position>18</Position>
- </column>
- <column id="597" parent="315" name="promotion_until">
- <Comment>ä¿ƒé”€æˆªæ¢æ—¥æœŸ</Comment>
- <DasType>datetime|0s</DasType>
- <Position>19</Position>
- </column>
- <column id="598" parent="315" name="torrent_file">
- <Comment>ç§åæ–‡ä»¶ï¼ˆäºŒè¿›åˆ¶ï¼‰</Comment>
- <DasType>longblob|0s</DasType>
- <Position>20</Position>
- </column>
- <column id="599" parent="315" name="is_deleted">
- <Comment>æ˜¯å¦åˆ é™¤</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">{
- "associatedIndex": 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">{
- "keyToString": {
- "ASKED_ADD_EXTERNAL_FILES": "true",
- "JUnit.UserControllerTest.executor": "Run",
- "JUnit.UserControllerTest.testUpdateUserAvatar.executor": "Run",
- "JUnit.UserControllerTest.testUploadUserAvatar.executor": "Run",
- "RequestMappingsPanelOrder0": "0",
- "RequestMappingsPanelOrder1": "1",
- "RequestMappingsPanelWidth0": "75",
- "RequestMappingsPanelWidth1": "75",
- "RunOnceActivity.OpenProjectViewOnStart": "true",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "RunOnceActivity.git.unshallow": "true",
- "Spring Boot.MyProjectApplication.executor": "Run",
- "git-widget-placeholder": "完成pt与bt交互、补充图片资源",
- "ignore.virus.scanning.warn.message": "true",
- "kotlin-language-version-configured": "true",
- "last_opened_file_path": "D:/Desktop/echo后端/echo-backend/images",
- "node.js.detected.package.eslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.tslint": "(autodetect)",
- "nodejs_package_manager_path": "npm",
- "settings.editor.selected.configurable": "project.propVCSSupport.DirectoryMappings",
- "vue.rearranger.settings.migration": "true",
- "应用程序.MyProjectApplication.executor": "Run"
- },
- "keyToStringList": {
- "DatabaseDriversLRU": [
- "mysql_aurora"
- ]
- }
-}</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">{
+ "associatedIndex": 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">{
+ "keyToString": {
+ "ASKED_ADD_EXTERNAL_FILES": "true",
+ "JUnit.UserControllerTest.executor": "Run",
+ "JUnit.UserControllerTest.testUpdateUserAvatar.executor": "Run",
+ "JUnit.UserControllerTest.testUploadUserAvatar.executor": "Run",
+ "RequestMappingsPanelOrder0": "0",
+ "RequestMappingsPanelOrder1": "1",
+ "RequestMappingsPanelWidth0": "75",
+ "RequestMappingsPanelWidth1": "75",
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.git.unshallow": "true",
+ "Spring Boot.MyProjectApplication.executor": "Run",
+ "git-widget-placeholder": "完成pt与bt交互、补充图片资源",
+ "ignore.virus.scanning.warn.message": "true",
+ "kotlin-language-version-configured": "true",
+ "last_opened_file_path": "D:/Desktop/echo后端/echo-backend/images",
+ "node.js.detected.package.eslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "settings.editor.selected.configurable": "project.propVCSSupport.DirectoryMappings",
+ "vue.rearranger.settings.migration": "true",
+ "应用程序.MyProjectApplication.executor": "Run"
+ },
+ "keyToStringList": {
+ "DatabaseDriversLRU": [
+ "mysql_aurora"
+ ]
+ }
+ }</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