Skip to content

Instantly share code, notes, and snippets.

@XNYu
Created June 27, 2018 09:03
Show Gist options
  • Select an option

  • Save XNYu/a834c97c21b82dd6e9e7da1c5f62ad74 to your computer and use it in GitHub Desktop.

Select an option

Save XNYu/a834c97c21b82dd6e9e7da1c5f62ad74 to your computer and use it in GitHub Desktop.
A simple application based on eary-rules
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="USE_RELEASE_OPTION" value="false" />
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="ruleengine" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel target="8" />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="MySQL - [email protected]" uuid="56026e0d-0082-48c5-829e-0503d71efa5a">
<driver-ref>mysql</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://10.0.13.56:3306/xiaopeng_bbs</jdbc-url>
<driver-properties>
<property name="autoReconnect" value="true" />
<property name="zeroDateTimeBehavior" value="convertToNull" />
<property name="tinyInt1isBit" value="false" />
<property name="characterEncoding" value="utf8" />
<property name="characterSetResults" value="utf8" />
<property name="yearIsDateType" value="false" />
</driver-properties>
</data-source>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<dataSource name="MySQL - [email protected]">
<database-model serializer="dbm" rdbms="MYSQL" format-version="4.9">
<root id="1">
<ServerVersion>5.7.18</ServerVersion>
<DefaultEngine>InnoDB</DefaultEngine>
<DefaultTmpEngine>InnoDB</DefaultTmpEngine>
<DefaultCasing>exact</DefaultCasing>
</root>
<schema id="2" parent="1" name="information_schema">
<Collation>utf8_general_ci</Collation>
</schema>
<schema id="3" parent="1" name="mysql">
<Collation>utf8mb4_general_ci</Collation>
</schema>
<schema id="4" parent="1" name="performance_schema">
<Collation>utf8_general_ci</Collation>
</schema>
<schema id="5" parent="1" name="sys">
<Collation>utf8_general_ci</Collation>
</schema>
<schema id="6" parent="1" name="xiaopeng_ac">
<Collation>utf8mb4_general_ci</Collation>
</schema>
<schema id="7" parent="1" name="xiaopeng_bbs">
<Current>1</Current>
<Visible>1</Visible>
<Collation>utf8mb4_general_ci</Collation>
</schema>
<schema id="8" parent="1" name="xiaopeng_cms">
<Collation>utf8_general_ci</Collation>
</schema>
<schema id="9" parent="1" name="xiaopeng_events">
<Collation>utf8_general_ci</Collation>
</schema>
<schema id="10" parent="1" name="xiaopeng_spider">
<Collation>utf8_general_ci</Collation>
</schema>
<schema id="11" parent="1" name="xiaopeng_sso">
<Collation>utf8_general_ci</Collation>
</schema>
<schema id="12" parent="1" name="xiaopeng_tongji">
<Collation>utf8_general_ci</Collation>
</schema>
<collation id="13" parent="1" name="armscii8_bin">
<Charset>armscii8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="14" parent="1" name="armscii8_general_ci">
<Charset>armscii8</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="15" parent="1" name="ascii_bin">
<Charset>ascii</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="16" parent="1" name="ascii_general_ci">
<Charset>ascii</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="17" parent="1" name="big5_bin">
<Charset>big5</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="18" parent="1" name="big5_chinese_ci">
<Charset>big5</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="19" parent="1" name="binary">
<Charset>binary</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="20" parent="1" name="cp1250_bin">
<Charset>cp1250</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="21" parent="1" name="cp1250_croatian_ci">
<Charset>cp1250</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="22" parent="1" name="cp1250_czech_cs">
<Charset>cp1250</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="23" parent="1" name="cp1250_general_ci">
<Charset>cp1250</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="24" parent="1" name="cp1250_polish_ci">
<Charset>cp1250</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="25" parent="1" name="cp1251_bin">
<Charset>cp1251</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="26" parent="1" name="cp1251_bulgarian_ci">
<Charset>cp1251</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="27" parent="1" name="cp1251_general_ci">
<Charset>cp1251</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="28" parent="1" name="cp1251_general_cs">
<Charset>cp1251</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="29" parent="1" name="cp1251_ukrainian_ci">
<Charset>cp1251</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="30" parent="1" name="cp1256_bin">
<Charset>cp1256</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="31" parent="1" name="cp1256_general_ci">
<Charset>cp1256</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="32" parent="1" name="cp1257_bin">
<Charset>cp1257</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="33" parent="1" name="cp1257_general_ci">
<Charset>cp1257</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="34" parent="1" name="cp1257_lithuanian_ci">
<Charset>cp1257</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="35" parent="1" name="cp850_bin">
<Charset>cp850</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="36" parent="1" name="cp850_general_ci">
<Charset>cp850</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="37" parent="1" name="cp852_bin">
<Charset>cp852</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="38" parent="1" name="cp852_general_ci">
<Charset>cp852</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="39" parent="1" name="cp866_bin">
<Charset>cp866</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="40" parent="1" name="cp866_general_ci">
<Charset>cp866</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="41" parent="1" name="cp932_bin">
<Charset>cp932</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="42" parent="1" name="cp932_japanese_ci">
<Charset>cp932</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="43" parent="1" name="dec8_bin">
<Charset>dec8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="44" parent="1" name="dec8_swedish_ci">
<Charset>dec8</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="45" parent="1" name="eucjpms_bin">
<Charset>eucjpms</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="46" parent="1" name="eucjpms_japanese_ci">
<Charset>eucjpms</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="47" parent="1" name="euckr_bin">
<Charset>euckr</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="48" parent="1" name="euckr_korean_ci">
<Charset>euckr</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="49" parent="1" name="gb18030_bin">
<Charset>gb18030</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="50" parent="1" name="gb18030_chinese_ci">
<Charset>gb18030</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="51" parent="1" name="gb18030_unicode_520_ci">
<Charset>gb18030</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="52" parent="1" name="gb2312_bin">
<Charset>gb2312</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="53" parent="1" name="gb2312_chinese_ci">
<Charset>gb2312</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="54" parent="1" name="gbk_bin">
<Charset>gbk</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="55" parent="1" name="gbk_chinese_ci">
<Charset>gbk</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="56" parent="1" name="geostd8_bin">
<Charset>geostd8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="57" parent="1" name="geostd8_general_ci">
<Charset>geostd8</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="58" parent="1" name="greek_bin">
<Charset>greek</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="59" parent="1" name="greek_general_ci">
<Charset>greek</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="60" parent="1" name="hebrew_bin">
<Charset>hebrew</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="61" parent="1" name="hebrew_general_ci">
<Charset>hebrew</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="62" parent="1" name="hp8_bin">
<Charset>hp8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="63" parent="1" name="hp8_english_ci">
<Charset>hp8</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="64" parent="1" name="keybcs2_bin">
<Charset>keybcs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="65" parent="1" name="keybcs2_general_ci">
<Charset>keybcs2</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="66" parent="1" name="koi8r_bin">
<Charset>koi8r</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="67" parent="1" name="koi8r_general_ci">
<Charset>koi8r</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="68" parent="1" name="koi8u_bin">
<Charset>koi8u</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="69" parent="1" name="koi8u_general_ci">
<Charset>koi8u</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="70" parent="1" name="latin1_bin">
<Charset>latin1</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="71" parent="1" name="latin1_danish_ci">
<Charset>latin1</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="72" parent="1" name="latin1_general_ci">
<Charset>latin1</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="73" parent="1" name="latin1_general_cs">
<Charset>latin1</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="74" parent="1" name="latin1_german1_ci">
<Charset>latin1</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="75" parent="1" name="latin1_german2_ci">
<Charset>latin1</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="76" parent="1" name="latin1_spanish_ci">
<Charset>latin1</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="77" parent="1" name="latin1_swedish_ci">
<Charset>latin1</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="78" parent="1" name="latin2_bin">
<Charset>latin2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="79" parent="1" name="latin2_croatian_ci">
<Charset>latin2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="80" parent="1" name="latin2_czech_cs">
<Charset>latin2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="81" parent="1" name="latin2_general_ci">
<Charset>latin2</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="82" parent="1" name="latin2_hungarian_ci">
<Charset>latin2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="83" parent="1" name="latin5_bin">
<Charset>latin5</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="84" parent="1" name="latin5_turkish_ci">
<Charset>latin5</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="85" parent="1" name="latin7_bin">
<Charset>latin7</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="86" parent="1" name="latin7_estonian_cs">
<Charset>latin7</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="87" parent="1" name="latin7_general_ci">
<Charset>latin7</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="88" parent="1" name="latin7_general_cs">
<Charset>latin7</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="89" parent="1" name="macce_bin">
<Charset>macce</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="90" parent="1" name="macce_general_ci">
<Charset>macce</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="91" parent="1" name="macroman_bin">
<Charset>macroman</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="92" parent="1" name="macroman_general_ci">
<Charset>macroman</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="93" parent="1" name="sjis_bin">
<Charset>sjis</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="94" parent="1" name="sjis_japanese_ci">
<Charset>sjis</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="95" parent="1" name="swe7_bin">
<Charset>swe7</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="96" parent="1" name="swe7_swedish_ci">
<Charset>swe7</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="97" parent="1" name="tis620_bin">
<Charset>tis620</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="98" parent="1" name="tis620_thai_ci">
<Charset>tis620</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="99" parent="1" name="ucs2_bin">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="100" parent="1" name="ucs2_croatian_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="101" parent="1" name="ucs2_czech_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="102" parent="1" name="ucs2_danish_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="103" parent="1" name="ucs2_esperanto_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="104" parent="1" name="ucs2_estonian_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="105" parent="1" name="ucs2_general_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="106" parent="1" name="ucs2_general_mysql500_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="107" parent="1" name="ucs2_german2_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="108" parent="1" name="ucs2_hungarian_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="109" parent="1" name="ucs2_icelandic_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="110" parent="1" name="ucs2_latvian_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="111" parent="1" name="ucs2_lithuanian_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="112" parent="1" name="ucs2_persian_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="113" parent="1" name="ucs2_polish_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="114" parent="1" name="ucs2_roman_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="115" parent="1" name="ucs2_romanian_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="116" parent="1" name="ucs2_sinhala_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="117" parent="1" name="ucs2_slovak_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="118" parent="1" name="ucs2_slovenian_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="119" parent="1" name="ucs2_spanish2_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="120" parent="1" name="ucs2_spanish_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="121" parent="1" name="ucs2_swedish_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="122" parent="1" name="ucs2_turkish_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="123" parent="1" name="ucs2_unicode_520_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="124" parent="1" name="ucs2_unicode_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="125" parent="1" name="ucs2_vietnamese_ci">
<Charset>ucs2</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="126" parent="1" name="ujis_bin">
<Charset>ujis</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="127" parent="1" name="ujis_japanese_ci">
<Charset>ujis</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="128" parent="1" name="utf16_bin">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="129" parent="1" name="utf16_croatian_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="130" parent="1" name="utf16_czech_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="131" parent="1" name="utf16_danish_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="132" parent="1" name="utf16_esperanto_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="133" parent="1" name="utf16_estonian_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="134" parent="1" name="utf16_general_ci">
<Charset>utf16</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="135" parent="1" name="utf16_german2_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="136" parent="1" name="utf16_hungarian_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="137" parent="1" name="utf16_icelandic_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="138" parent="1" name="utf16_latvian_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="139" parent="1" name="utf16_lithuanian_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="140" parent="1" name="utf16_persian_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="141" parent="1" name="utf16_polish_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="142" parent="1" name="utf16_roman_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="143" parent="1" name="utf16_romanian_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="144" parent="1" name="utf16_sinhala_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="145" parent="1" name="utf16_slovak_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="146" parent="1" name="utf16_slovenian_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="147" parent="1" name="utf16_spanish2_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="148" parent="1" name="utf16_spanish_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="149" parent="1" name="utf16_swedish_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="150" parent="1" name="utf16_turkish_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="151" parent="1" name="utf16_unicode_520_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="152" parent="1" name="utf16_unicode_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="153" parent="1" name="utf16_vietnamese_ci">
<Charset>utf16</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="154" parent="1" name="utf16le_bin">
<Charset>utf16le</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="155" parent="1" name="utf16le_general_ci">
<Charset>utf16le</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="156" parent="1" name="utf32_bin">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="157" parent="1" name="utf32_croatian_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="158" parent="1" name="utf32_czech_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="159" parent="1" name="utf32_danish_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="160" parent="1" name="utf32_esperanto_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="161" parent="1" name="utf32_estonian_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="162" parent="1" name="utf32_general_ci">
<Charset>utf32</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="163" parent="1" name="utf32_german2_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="164" parent="1" name="utf32_hungarian_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="165" parent="1" name="utf32_icelandic_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="166" parent="1" name="utf32_latvian_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="167" parent="1" name="utf32_lithuanian_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="168" parent="1" name="utf32_persian_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="169" parent="1" name="utf32_polish_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="170" parent="1" name="utf32_roman_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="171" parent="1" name="utf32_romanian_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="172" parent="1" name="utf32_sinhala_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="173" parent="1" name="utf32_slovak_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="174" parent="1" name="utf32_slovenian_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="175" parent="1" name="utf32_spanish2_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="176" parent="1" name="utf32_spanish_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="177" parent="1" name="utf32_swedish_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="178" parent="1" name="utf32_turkish_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="179" parent="1" name="utf32_unicode_520_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="180" parent="1" name="utf32_unicode_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="181" parent="1" name="utf32_vietnamese_ci">
<Charset>utf32</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="182" parent="1" name="utf8_bin">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="183" parent="1" name="utf8_croatian_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="184" parent="1" name="utf8_czech_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="185" parent="1" name="utf8_danish_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="186" parent="1" name="utf8_esperanto_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="187" parent="1" name="utf8_estonian_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="188" parent="1" name="utf8_general_ci">
<Charset>utf8</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="189" parent="1" name="utf8_general_mysql500_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="190" parent="1" name="utf8_german2_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="191" parent="1" name="utf8_hungarian_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="192" parent="1" name="utf8_icelandic_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="193" parent="1" name="utf8_latvian_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="194" parent="1" name="utf8_lithuanian_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="195" parent="1" name="utf8_persian_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="196" parent="1" name="utf8_polish_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="197" parent="1" name="utf8_roman_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="198" parent="1" name="utf8_romanian_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="199" parent="1" name="utf8_sinhala_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="200" parent="1" name="utf8_slovak_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="201" parent="1" name="utf8_slovenian_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="202" parent="1" name="utf8_spanish2_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="203" parent="1" name="utf8_spanish_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="204" parent="1" name="utf8_swedish_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="205" parent="1" name="utf8_turkish_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="206" parent="1" name="utf8_unicode_520_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="207" parent="1" name="utf8_unicode_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="208" parent="1" name="utf8_vietnamese_ci">
<Charset>utf8</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="209" parent="1" name="utf8mb4_bin">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="210" parent="1" name="utf8mb4_croatian_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="211" parent="1" name="utf8mb4_czech_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="212" parent="1" name="utf8mb4_danish_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="213" parent="1" name="utf8mb4_esperanto_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="214" parent="1" name="utf8mb4_estonian_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="215" parent="1" name="utf8mb4_general_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>1</DefaultForCharset>
</collation>
<collation id="216" parent="1" name="utf8mb4_german2_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="217" parent="1" name="utf8mb4_hungarian_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="218" parent="1" name="utf8mb4_icelandic_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="219" parent="1" name="utf8mb4_latvian_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="220" parent="1" name="utf8mb4_lithuanian_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="221" parent="1" name="utf8mb4_persian_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="222" parent="1" name="utf8mb4_polish_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="223" parent="1" name="utf8mb4_roman_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="224" parent="1" name="utf8mb4_romanian_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="225" parent="1" name="utf8mb4_sinhala_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="226" parent="1" name="utf8mb4_slovak_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="227" parent="1" name="utf8mb4_slovenian_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="228" parent="1" name="utf8mb4_spanish2_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="229" parent="1" name="utf8mb4_spanish_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="230" parent="1" name="utf8mb4_swedish_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="231" parent="1" name="utf8mb4_turkish_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="232" parent="1" name="utf8mb4_unicode_520_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="233" parent="1" name="utf8mb4_unicode_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<collation id="234" parent="1" name="utf8mb4_vietnamese_ci">
<Charset>utf8mb4</Charset>
<DefaultForCharset>0</DefaultForCharset>
</collation>
<table id="235" parent="7" name="auth_assignment">
<Collation>utf8_general_ci</Collation>
</table>
<table id="236" parent="7" name="auth_item">
<Collation>utf8_general_ci</Collation>
</table>
<table id="237" parent="7" name="auth_item_child">
<Collation>utf8_general_ci</Collation>
</table>
<table id="238" parent="7" name="auth_rule">
<Collation>utf8_general_ci</Collation>
</table>
<table id="239" parent="7" name="log">
<Engine>MyISAM</Engine>
<Collation>utf8_general_ci</Collation>
</table>
<table id="240" parent="7" name="menu">
<Collation>utf8_general_ci</Collation>
</table>
<table id="241" parent="7" name="migration">
<Engine>MyISAM</Engine>
<Collation>gbk_chinese_ci</Collation>
</table>
<table id="242" parent="7" name="user">
<Collation>utf8_unicode_ci</Collation>
</table>
<table id="243" parent="7" name="xp_activity_pics"/>
<table id="244" parent="7" name="xp_app"/>
<table id="245" parent="7" name="xp_app_service_click">
<Collation>utf8_general_ci</Collation>
</table>
<table id="246" parent="7" name="xp_attachment_0">
<Comment>主题、回复附件表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="247" parent="7" name="xp_city">
<Collation>utf8_general_ci</Collation>
</table>
<table id="248" parent="7" name="xp_compare">
<Collation>utf8_general_ci</Collation>
</table>
<table id="249" parent="7" name="xp_group">
<Comment>用户组</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="250" parent="7" name="xp_honor">
<Collation>utf8_general_ci</Collation>
</table>
<table id="251" parent="7" name="xp_index_class">
<Comment>用户主题、回复索引表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="252" parent="7" name="xp_index_topic">
<Collation>utf8_general_ci</Collation>
</table>
<table id="253" parent="7" name="xp_index_user">
<Comment>用户feed表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="254" parent="7" name="xp_liked_thread">
<Comment>主题点赞表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="255" parent="7" name="xp_motion_post">
<Comment>回复点赞表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="256" parent="7" name="xp_motion_thread">
<Comment>贴子点赞表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="257" parent="7" name="xp_notify">
<Collation>utf8_general_ci</Collation>
</table>
<table id="258" parent="7" name="xp_poll">
<Collation>utf8_general_ci</Collation>
</table>
<table id="259" parent="7" name="xp_polloption"/>
<table id="260" parent="7" name="xp_pollusers">
<Collation>utf8_general_ci</Collation>
</table>
<table id="261" parent="7" name="xp_post_1">
<Comment>回复表</Comment>
</table>
<table id="262" parent="7" name="xp_post_index">
<Collation>utf8_general_ci</Collation>
</table>
<table id="263" parent="7" name="xp_sensitive_words">
<Collation>utf8_general_ci</Collation>
</table>
<table id="264" parent="7" name="xp_statis_thread">
<Collation>utf8_general_ci</Collation>
</table>
<table id="265" parent="7" name="xp_subscribe">
<Collation>utf8_general_ci</Collation>
</table>
<table id="266" parent="7" name="xp_thread">
<Comment>主题表</Comment>
</table>
<table id="267" parent="7" name="xp_thread_compare">
<Comment>yesorno主题附属表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="268" parent="7" name="xp_topic">
<Comment>话题表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="269" parent="7" name="xp_topic_follow">
<Comment>关注话题的用户表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="270" parent="7" name="xp_topic_recommend">
<Comment>话题推荐表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="271" parent="7" name="xp_unusual_pic">
<Comment>异常图片表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="272" parent="7" name="xp_user">
<Comment>用户表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="273" parent="7" name="xp_user_follow">
<Comment>用户互相关注表</Comment>
<Collation>utf8_general_ci</Collation>
</table>
<table id="274" parent="7" name="xp_user_group"/>
<table id="275" parent="7" name="xp_user_notify">
<Collation>utf8_general_ci</Collation>
</table>
<table id="276" parent="7" name="xp_user_stat">
<Collation>utf8_general_ci</Collation>
</table>
<column id="277" parent="235" name="item_name">
<Position>1</Position>
<DataType>varchar(64)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="278" parent="235" name="user_id">
<Position>2</Position>
<DataType>varchar(64)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="279" parent="235" name="created_at">
<Position>3</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<key id="280" parent="235" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>item_name
user_id</ColNames>
<Primary>1</Primary>
</key>
<foreign-key id="281" parent="235" name="auth_assignment_ibfk_1">
<ColNames>item_name</ColNames>
<RefSchemaName>xiaopeng_bbs</RefSchemaName>
<RefTableName>auth_item</RefTableName>
<RefColNames>name</RefColNames>
<OnUpdate>cascade</OnUpdate>
<OnDelete>cascade</OnDelete>
</foreign-key>
<column id="282" parent="236" name="name">
<Position>1</Position>
<DataType>varchar(64)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="283" parent="236" name="type">
<Position>2</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="284" parent="236" name="description">
<Position>3</Position>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="285" parent="236" name="rule_name">
<Position>4</Position>
<DataType>varchar(64)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="286" parent="236" name="data">
<Position>5</Position>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="287" parent="236" name="created_at">
<Position>6</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="288" parent="236" name="updated_at">
<Position>7</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<index id="289" parent="236" name="type">
<ColNames>type</ColNames>
<Type>btree</Type>
</index>
<index id="290" parent="236" name="rule_name">
<ColNames>rule_name</ColNames>
<Type>btree</Type>
</index>
<key id="291" parent="236" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>name</ColNames>
<Primary>1</Primary>
</key>
<foreign-key id="292" parent="236" name="auth_item_ibfk_1">
<ColNames>rule_name</ColNames>
<RefSchemaName>xiaopeng_bbs</RefSchemaName>
<RefTableName>auth_rule</RefTableName>
<RefColNames>name</RefColNames>
<OnUpdate>cascade</OnUpdate>
<OnDelete>set-null</OnDelete>
</foreign-key>
<column id="293" parent="237" name="parent">
<Position>1</Position>
<DataType>varchar(64)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="294" parent="237" name="child">
<Position>2</Position>
<DataType>varchar(64)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<index id="295" parent="237" name="child">
<ColNames>child</ColNames>
<Type>btree</Type>
</index>
<key id="296" parent="237" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>parent
child</ColNames>
<Primary>1</Primary>
</key>
<foreign-key id="297" parent="237" name="auth_item_child_ibfk_1">
<ColNames>parent</ColNames>
<RefSchemaName>xiaopeng_bbs</RefSchemaName>
<RefTableName>auth_item</RefTableName>
<RefColNames>name</RefColNames>
<OnUpdate>cascade</OnUpdate>
<OnDelete>cascade</OnDelete>
</foreign-key>
<foreign-key id="298" parent="237" name="auth_item_child_ibfk_2">
<ColNames>child</ColNames>
<RefSchemaName>xiaopeng_bbs</RefSchemaName>
<RefTableName>auth_item</RefTableName>
<RefColNames>name</RefColNames>
<OnUpdate>cascade</OnUpdate>
<OnDelete>cascade</OnDelete>
</foreign-key>
<column id="299" parent="238" name="name">
<Position>1</Position>
<DataType>varchar(64)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="300" parent="238" name="data">
<Position>2</Position>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="301" parent="238" name="created_at">
<Position>3</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="302" parent="238" name="updated_at">
<Position>4</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<key id="303" parent="238" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>name</ColNames>
<Primary>1</Primary>
</key>
<column id="304" parent="239" name="id">
<Position>1</Position>
<DataType>int(4)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="305" parent="239" name="username">
<Position>2</Position>
<DataType>varchar(32)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="306" parent="239" name="ip">
<Position>3</Position>
<DataType>varchar(64)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="307" parent="239" name="data">
<Position>4</Position>
<DataType>varchar(64)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="308" parent="239" name="create_time">
<Position>5</Position>
<DataType>varchar(32)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<key id="309" parent="239" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="310" parent="240" name="id">
<Position>1</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="311" parent="240" name="name">
<Position>2</Position>
<DataType>varchar(128)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="312" parent="240" name="parent">
<Position>3</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="313" parent="240" name="route">
<Position>4</Position>
<DataType>varchar(255)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="314" parent="240" name="order">
<Position>5</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="315" parent="240" name="data">
<Position>6</Position>
<DataType>blob|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<index id="316" parent="240" name="parent">
<ColNames>parent</ColNames>
<Type>btree</Type>
</index>
<key id="317" parent="240" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<foreign-key id="318" parent="240" name="menu_ibfk_1">
<ColNames>parent</ColNames>
<RefSchemaName>xiaopeng_bbs</RefSchemaName>
<RefTableName>menu</RefTableName>
<RefColNames>id</RefColNames>
<OnUpdate>cascade</OnUpdate>
<OnDelete>set-null</OnDelete>
</foreign-key>
<column id="319" parent="241" name="version">
<Position>1</Position>
<DataType>varchar(180)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="320" parent="241" name="apply_time">
<Position>2</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<key id="321" parent="241" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>version</ColNames>
<Primary>1</Primary>
</key>
<column id="322" parent="242" name="id">
<Position>1</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="323" parent="242" name="username">
<Position>2</Position>
<DataType>varchar(32)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="324" parent="242" name="auth_key">
<Position>3</Position>
<DataType>varchar(32)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="325" parent="242" name="password_hash">
<Position>4</Position>
<DataType>varchar(255)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="326" parent="242" name="password_reset_token">
<Position>5</Position>
<DataType>varchar(255)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="327" parent="242" name="email">
<Position>6</Position>
<DataType>varchar(255)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="328" parent="242" name="status">
<Position>7</Position>
<DataType>smallint(6)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;10&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="329" parent="242" name="created_at">
<Position>8</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="330" parent="242" name="updated_at">
<Position>9</Position>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<key id="331" parent="242" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="332" parent="243" name="aid">
<Position>1</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="333" parent="243" name="pic">
<Position>2</Position>
<Comment>图片路径</Comment>
<DataType>varchar(128)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
<Collation>utf8_general_ci</Collation>
</column>
<column id="334" parent="243" name="status">
<Position>3</Position>
<Comment>1正常0删除</Comment>
<DataType>tinyint(1)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="335" parent="243" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>aid</ColNames>
<Primary>1</Primary>
</key>
<column id="336" parent="244" name="id">
<Position>1</Position>
<Comment>id</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="337" parent="244" name="appid">
<Position>2</Position>
<DataType>char(32)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
<Collation>utf8_general_ci</Collation>
</column>
<column id="338" parent="244" name="secret">
<Position>3</Position>
<Comment>md5 appid + salt </Comment>
<DataType>char(32)|0s</DataType>
<ColumnKind>normal</ColumnKind>
<Collation>utf8_general_ci</Collation>
</column>
<column id="339" parent="244" name="add_time">
<Position>4</Position>
<Comment>添加时间</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="340" parent="244" name="salt">
<Position>5</Position>
<Comment>随机数</Comment>
<DataType>char(32)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
<Collation>utf8_general_ci</Collation>
</column>
<key id="341" parent="244" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="342" parent="245" name="id">
<Position>1</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="343" parent="245" name="uid">
<Position>2</Position>
<Comment>用户uid</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="344" parent="245" name="type">
<Position>3</Position>
<Comment>0未点击 1 | 已点击</Comment>
<DataType>tinyint(1)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<key id="345" parent="245" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="346" parent="246" name="aid">
<Position>1</Position>
<Comment>附件ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="347" parent="246" name="tid">
<Position>2</Position>
<Comment>主题ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="348" parent="246" name="pid">
<Position>3</Position>
<Comment>回复ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="349" parent="246" name="uid">
<Position>4</Position>
<Comment>用户ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="350" parent="246" name="dateline">
<Position>5</Position>
<Comment>上传时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="351" parent="246" name="filename">
<Position>6</Position>
<Comment>原文件名</Comment>
<DataType>char(255)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="352" parent="246" name="attachment">
<Position>7</Position>
<Comment>附件路径</Comment>
<DataType>char(255)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="353" parent="246" name="isimage">
<Position>8</Position>
<Comment>附件是否为图片</Comment>
<DataType>tinyint(1) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="354" parent="246" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>aid</ColNames>
<Primary>1</Primary>
</key>
<column id="355" parent="247" name="id">
<Position>1</Position>
<Comment>主键</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="356" parent="247" name="pid">
<Position>2</Position>
<Comment>父类</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="357" parent="247" name="name">
<Position>3</Position>
<Comment>省名称</Comment>
<DataType>char(64)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="358" parent="247" name="zipcode">
<Position>4</Position>
<Comment>code</Comment>
<DataType>char(32)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="359" parent="247" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="360" parent="248" name="id">
<Position>1</Position>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="361" parent="248" name="tid">
<Position>2</Position>
<Comment>帖子ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="362" parent="248" name="subject">
<Position>3</Position>
<Comment>主题</Comment>
<DataType>char(80)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="363" parent="248" name="yes">
<Position>4</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="364" parent="248" name="no">
<Position>5</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="365" parent="248" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="366" parent="249" name="group_id">
<Position>1</Position>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="367" parent="249" name="title">
<Position>2</Position>
<Comment>群组名称</Comment>
<DataType>char(30)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="368" parent="249" name="condition">
<Position>3</Position>
<Comment>群组规则</Comment>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="369" parent="249" name="priority">
<Position>4</Position>
<Comment>规则优先级</Comment>
<DataType>tinyint(4)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="370" parent="249" name="action">
<Position>5</Position>
<Comment>满足规则的操作</Comment>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="371" parent="249" name="filename">
<Position>6</Position>
<Comment>规则保存文件名</Comment>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<key id="372" parent="249" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>group_id</ColNames>
<Primary>1</Primary>
</key>
<column id="373" parent="250" name="uid">
<Position>1</Position>
<Comment>uid</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="374" parent="250" name="type">
<Position>2</Position>
<Comment>类型 1 用户获取 帖子的赞量 | 2 用户获取 帖子的微笑量 | 3 发帖量 | 4评论量 | 5 分享量| 6 帖子点赞量 |7 话题 帖子获赞量 | 8话题 微笑量 | 9 话题发帖量 | 10 话题评论量| 11 话题帖子点赞量</Comment>
<DataType>tinyint(2) unsigned|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="375" parent="250" name="user_thread_liked_precent">
<Position>3</Position>
<Comment>用户获取 帖子的赞量</Comment>
<DataType>char(32)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="376" parent="250" name="user_thread_smiles_precent">
<Position>4</Position>
<Comment>2 用户获取 帖子的微笑量</Comment>
<DataType>char(32)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="377" parent="250" name="user_thread_thread_precent">
<Position>5</Position>
<Comment>发帖量</Comment>
<DataType>char(32)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="378" parent="250" name="user_comment_precent">
<Position>6</Position>
<Comment>评论量</Comment>
<DataType>char(32)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="379" parent="250" name="user_comment_fabulous">
<Position>7</Position>
<Comment>帖子点赞量</Comment>
<DataType>char(32)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="380" parent="250" name="user_topic">
<Position>8</Position>
<Comment>话题</Comment>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<key id="381" parent="250" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>uid</ColNames>
<Primary>1</Primary>
</key>
<column id="382" parent="251" name="tid">
<Position>1</Position>
<Comment>主题ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="383" parent="251" name="pid">
<Position>2</Position>
<Comment>回复ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="384" parent="251" name="uid">
<Position>3</Position>
<Comment>发帖ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="385" parent="251" name="category_id">
<Position>4</Position>
<Comment>话题类型</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="386" parent="251" name="type_id">
<Position>5</Position>
<Comment>主题类型</Comment>
<DataType>tinyint(6) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="387" parent="251" name="heats">
<Position>6</Position>
<Comment>热度值</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="388" parent="251" name="liked">
<Position>7</Position>
<Comment>点赞数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="389" parent="251" name="tread">
<Position>8</Position>
<Comment>点Down数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="390" parent="251" name="views">
<Position>9</Position>
<Comment>浏览数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="391" parent="251" name="replies">
<Position>10</Position>
<Comment>回复数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="392" parent="251" name="smiles">
<Position>11</Position>
<Comment>微笑数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="393" parent="251" name="sharetimes">
<Position>12</Position>
<Comment>分享数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="394" parent="251" name="dateline">
<Position>13</Position>
<Comment>发帖时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<index id="395" parent="251" name="tid">
<ColNames>tid</ColNames>
<Type>btree</Type>
</index>
<index id="396" parent="251" name="uid">
<ColNames>uid</ColNames>
<Type>btree</Type>
</index>
<index id="397" parent="251" name="category_id">
<ColNames>category_id</ColNames>
<Type>btree</Type>
</index>
<index id="398" parent="251" name="dateline">
<ColNames>dateline</ColNames>
<Type>btree</Type>
</index>
<column id="399" parent="252" name="tid">
<Position>1</Position>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="400" parent="252" name="pid">
<Position>2</Position>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="401" parent="252" name="category_id">
<Position>3</Position>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="402" parent="252" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>tid
category_id</ColNames>
<Primary>1</Primary>
</key>
<column id="403" parent="253" name="tid">
<Position>1</Position>
<Comment>主题ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="404" parent="253" name="pid">
<Position>2</Position>
<Comment>回复ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="405" parent="253" name="to_uid">
<Position>3</Position>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="406" parent="253" name="uid">
<Position>4</Position>
<Comment>发帖ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="407" parent="253" name="type_id">
<Position>5</Position>
<Comment>主题类型</Comment>
<DataType>tinyint(6) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="408" parent="253" name="dateline">
<Position>6</Position>
<Comment>发帖时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="409" parent="253" name="ext1">
<Position>7</Position>
<Comment>帖子信息</Comment>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
<Collation>utf8mb4_general_ci</Collation>
</column>
<column id="410" parent="253" name="ext2">
<Position>8</Position>
<Comment>帖子附属信息</Comment>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
<Collation>utf8mb4_general_ci</Collation>
</column>
<column id="411" parent="253" name="liked">
<Position>9</Position>
<Comment>帖子点赞数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="412" parent="253" name="views">
<Position>10</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="413" parent="253" name="replies">
<Position>11</Position>
<Comment>帖子评论数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="414" parent="253" name="sharetimes">
<Position>12</Position>
<Comment>帖子分享数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="415" parent="253" name="post_timestamp">
<Position>13</Position>
<Comment>回复时间戳</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="416" parent="253" name="post_content">
<Position>14</Position>
<Comment>最后回复内容</Comment>
<DataType>char(255)|0s</DataType>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
<Collation>utf8mb4_general_ci</Collation>
</column>
<column id="417" parent="253" name="post_uid">
<Position>15</Position>
<Comment>回复人的UID</Comment>
<DataType>char(255)|0s</DataType>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
<Collation>utf8mb4_general_ci</Collation>
</column>
<index id="418" parent="253" name="dateline">
<ColNames>dateline</ColNames>
<Type>btree</Type>
</index>
<key id="419" parent="253" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>tid
to_uid
post_timestamp</ColNames>
<Primary>1</Primary>
</key>
<column id="420" parent="254" name="uid">
<Position>1</Position>
<Comment>用户ID</Comment>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="421" parent="254" name="tid">
<Position>2</Position>
<Comment>主题ID</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="422" parent="254" name="dateline">
<Position>3</Position>
<Comment>点赞时间</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<key id="423" parent="254" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>uid
tid</ColNames>
<Primary>1</Primary>
</key>
<column id="424" parent="255" name="uid">
<Position>1</Position>
<Comment>用户ID</Comment>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="425" parent="255" name="pid">
<Position>2</Position>
<Comment>回复ID</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="426" parent="255" name="dateline">
<Position>3</Position>
<Comment>点赞时间</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="427" parent="255" name="motion">
<Position>4</Position>
<Comment>用户动作热度值&apos;heats&apos;,点赞数&apos;liked&apos;,浏览数&apos;views&apos;,回复数&apos;replies&apos;,分享数&apos;sharetimes&apos;</Comment>
<DataType>varchar(16)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<key id="428" parent="255" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>uid
pid
motion</ColNames>
<Primary>1</Primary>
</key>
<column id="429" parent="256" name="uid">
<Position>1</Position>
<Comment>用户ID</Comment>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="430" parent="256" name="tid">
<Position>2</Position>
<Comment>帖子ID</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="431" parent="256" name="dateline">
<Position>3</Position>
<Comment>点赞时间</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="432" parent="256" name="motion">
<Position>4</Position>
<Comment>用户动作热度值&apos;heats&apos;,点赞数&apos;liked&apos;,浏览数&apos;views&apos;,回复数&apos;replies&apos;,分享数&apos;sharetimes&apos;</Comment>
<DataType>varchar(16)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<key id="433" parent="256" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>uid
tid</ColNames>
<Primary>1</Primary>
</key>
<column id="434" parent="257" name="id">
<Position>1</Position>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="435" parent="257" name="type">
<Position>2</Position>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="436" parent="257" name="target_id">
<Position>3</Position>
<DataType>bigint(20) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="437" parent="257" name="target_type">
<Position>4</Position>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="438" parent="257" name="action">
<Position>5</Position>
<DataType>char(20)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="439" parent="257" name="uid">
<Position>6</Position>
<DataType>bigint(20) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="440" parent="257" name="sender">
<Position>7</Position>
<DataType>bigint(20) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="441" parent="257" name="content">
<Position>8</Position>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="442" parent="257" name="is_read">
<Position>9</Position>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;2&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="443" parent="257" name="createtime">
<Position>10</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="444" parent="257" name="updatetime">
<Position>11</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="445" parent="257" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="446" parent="258" name="id">
<Position>1</Position>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="447" parent="258" name="tid">
<Position>2</Position>
<Comment>主题id</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="448" parent="258" name="overt">
<Position>3</Position>
<Comment>是否公开投票参与人</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="449" parent="258" name="multiple">
<Position>4</Position>
<Comment>是否可以多选</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;2&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="450" parent="258" name="subject">
<Position>5</Position>
<Comment>投票标题</Comment>
<DataType>char(80)|0s</DataType>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<index id="451" parent="258" name="tid">
<ColNames>tid</ColNames>
<Type>btree</Type>
</index>
<key id="452" parent="258" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="453" parent="259" name="id">
<Position>1</Position>
<Comment>选项ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="454" parent="259" name="poll_id">
<Position>2</Position>
<DataType>int(11)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="455" parent="259" name="tid">
<Position>3</Position>
<Comment>帖子ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="456" parent="259" name="votes">
<Position>4</Position>
<Comment>票数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="457" parent="259" name="displayorder">
<Position>5</Position>
<Comment>显示顺序</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="458" parent="259" name="polloption">
<Position>6</Position>
<Comment>选项内容</Comment>
<DataType>char(80)|0s</DataType>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
<Collation>utf8_general_ci</Collation>
</column>
<column id="459" parent="259" name="createtime">
<Position>7</Position>
<Comment>创建时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="460" parent="259" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="461" parent="260" name="polloptionid">
<Position>1</Position>
<Comment>选项ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="462" parent="260" name="uid">
<Position>2</Position>
<Comment>用户ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="463" parent="260" name="createtime">
<Position>3</Position>
<Comment>投票时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<index id="464" parent="260" name="polloptionid">
<ColNames>polloptionid
uid</ColNames>
<Type>btree</Type>
</index>
<column id="465" parent="261" name="pid">
<Position>1</Position>
<Comment>回复ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="466" parent="261" name="tid">
<Position>2</Position>
<Comment>主题ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="467" parent="261" name="category_id">
<Position>3</Position>
<Comment>话题ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="468" parent="261" name="uid">
<Position>4</Position>
<Comment>用户ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="469" parent="261" name="content">
<Position>5</Position>
<Comment>回复内容</Comment>
<DataType>text|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
<Collation>utf8_general_ci</Collation>
</column>
<column id="470" parent="261" name="attachment">
<Position>6</Position>
<Comment>是否有附件</Comment>
<DataType>tinyint(1) unsigned|0s</DataType>
<DefaultExpression>&apos;2&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="471" parent="261" name="status">
<Position>7</Position>
<Comment>回复状态</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="472" parent="261" name="dateline">
<Position>8</Position>
<Comment>回复时间</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="473" parent="261" name="ptype">
<Position>9</Position>
<Comment>默认1主题回复2回复的回复</Comment>
<DataType>tinyint(1) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="474" parent="261" name="sharetimes">
<Position>10</Position>
<Comment>分享次数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="475" parent="261" name="liked">
<Position>11</Position>
<Comment>点赞次数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="476" parent="261" name="replies">
<Position>12</Position>
<Comment>回复数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="477" parent="261" name="heats">
<Position>13</Position>
<Comment>热度值</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="478" parent="261" name="tread">
<Position>14</Position>
<Comment>点Down数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="479" parent="261" name="views">
<Position>15</Position>
<Comment>浏览数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="480" parent="261" name="smiles">
<Position>16</Position>
<Comment>微笑数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="481" parent="261" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>pid</ColNames>
<Primary>1</Primary>
</key>
<column id="482" parent="262" name="pid">
<Position>1</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="483" parent="262" name="uid">
<Position>2</Position>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="484" parent="262" name="fuid">
<Position>3</Position>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="485" parent="262" name="tid">
<Position>4</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="486" parent="262" name="fpid">
<Position>5</Position>
<Comment>被回复数据id</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="487" parent="262" name="floor">
<Position>6</Position>
<Comment>楼层号</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="488" parent="262" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>pid</ColNames>
<Primary>1</Primary>
</key>
<column id="489" parent="263" name="id">
<Position>1</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="490" parent="263" name="word">
<Position>2</Position>
<Comment>敏感词</Comment>
<DataType>varchar(128)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="491" parent="263" name="type">
<Position>3</Position>
<Comment>敏感词类型1暴力</Comment>
<DataType>tinyint(1)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="492" parent="263" name="addtime">
<Position>4</Position>
<Comment>敏感词添加时间</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="493" parent="263" name="is_del">
<Position>5</Position>
<Comment>是否删除</Comment>
<DataType>tinyint(1)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="494" parent="263" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="495" parent="264" name="atom_time">
<Position>1</Position>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="496" parent="264" name="count_th">
<Position>2</Position>
<Comment>贴子总数</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="497" parent="264" name="count_to">
<Position>3</Position>
<Comment>话题总数</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="498" parent="264" name="count_to_2">
<Position>4</Position>
<Comment>自建话题数</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="499" parent="264" name="count_th_pic">
<Position>5</Position>
<Comment>带图片贴子数</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="500" parent="264" name="count_th_yn">
<Position>6</Position>
<Comment>带yes no帖子数</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="501" parent="264" name="count_th_vote">
<Position>7</Position>
<Comment>带投票贴子数</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="502" parent="264" name="count_th_all">
<Position>8</Position>
<Comment>一条帖子带有图、 yesno、 投票 三种类型</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="503" parent="264" name="count_th_pic_yn">
<Position>9</Position>
<Comment>一条贴子同时带有图片和yesno的</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="504" parent="264" name="count_th_pic_vote">
<Position>10</Position>
<Comment>一条贴子同时带有图片和投票的</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="505" parent="264" name="count_th_yn_vote">
<Position>11</Position>
<Comment>一条贴子同时带有yesno和投票的</Comment>
<DataType>int(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="506" parent="264" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>atom_time</ColNames>
<Primary>1</Primary>
</key>
<column id="507" parent="265" name="id">
<Position>1</Position>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="508" parent="265" name="uid">
<Position>2</Position>
<DataType>bigint(20) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="509" parent="265" name="target_id">
<Position>3</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="510" parent="265" name="target_type">
<Position>4</Position>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="511" parent="265" name="action">
<Position>5</Position>
<DataType>char(10)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="512" parent="265" name="createtime">
<Position>6</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<index id="513" parent="265" name="uid">
<ColNames>uid
target_id
target_type
action</ColNames>
<Unique>1</Unique>
<Type>btree</Type>
</index>
<key id="514" parent="265" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<key id="515" parent="265" name="uid">
<ColNames>uid
target_id
target_type
action</ColNames>
<UnderlyingIndexName>uid</UnderlyingIndexName>
</key>
<column id="516" parent="266" name="tid">
<Position>1</Position>
<Comment>主题ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="517" parent="266" name="posttableid">
<Position>2</Position>
<Comment>回复分表ID</Comment>
<DataType>smallint(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="518" parent="266" name="category_id">
<Position>3</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="519" parent="266" name="type_id">
<Position>4</Position>
<Comment>特殊主题,1:普通贴;2:YesOrNo;3:投票</Comment>
<DataType>tinyint(6) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="520" parent="266" name="uid">
<Position>5</Position>
<Comment>发帖人用户ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="521" parent="266" name="subject">
<Position>6</Position>
<Comment>标题</Comment>
<DataType>char(80)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
<Collation>utf8_general_ci</Collation>
</column>
<column id="522" parent="266" name="content">
<Position>7</Position>
<Comment>主题内容</Comment>
<DataType>text|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="523" parent="266" name="views">
<Position>8</Position>
<Comment>浏览次数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="524" parent="266" name="replies">
<Position>9</Position>
<Comment>回复次数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="525" parent="266" name="liked">
<Position>10</Position>
<Comment>点赞次数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="526" parent="266" name="smiles">
<Position>11</Position>
<Comment>微笑数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="527" parent="266" name="tread">
<Position>12</Position>
<Comment>点Down数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="528" parent="266" name="attachment">
<Position>13</Position>
<Comment>0:无附件 1:普通附件 2:有图片附件</Comment>
<DataType>int(11)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="529" parent="266" name="recommends">
<Position>14</Position>
<Comment>推荐指数</Comment>
<DataType>int(11)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="530" parent="266" name="recommend_add">
<Position>15</Position>
<Comment>支持人数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="531" parent="266" name="recommend_sub">
<Position>16</Position>
<Comment>反对人数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="532" parent="266" name="heats">
<Position>17</Position>
<Comment>主题热度值</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="533" parent="266" name="favtimes">
<Position>18</Position>
<Comment>主题收藏次数</Comment>
<DataType>int(11)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="534" parent="266" name="sharetimes">
<Position>19</Position>
<Comment>主题分享次数</Comment>
<DataType>int(11)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="535" parent="266" name="status">
<Position>20</Position>
<Comment>主题状态</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="536" parent="266" name="displayorder">
<Position>21</Position>
<Comment>显示顺序</Comment>
<DataType>int(11)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="537" parent="266" name="dateline">
<Position>22</Position>
<Comment>发帖时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="538" parent="266" name="updatetime">
<Position>23</Position>
<Comment>更新时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="539" parent="266" name="review">
<Position>24</Position>
<Comment>1正常 2 建议人工过滤</Comment>
<DataType>tinyint(1)|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="540" parent="266" name="review_type">
<Position>25</Position>
<Comment>1图片过滤检测 2 文字过滤检测 3 文字+图片</Comment>
<DataType>tinyint(1)|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="541" parent="266" name="is_check">
<Position>26</Position>
<Comment>1未检测 2 已检测 3发送邮件</Comment>
<DataType>tinyint(1)|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="542" parent="266" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>tid</ColNames>
<Primary>1</Primary>
</key>
<column id="543" parent="267" name="id">
<Position>1</Position>
<Comment>主题ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="544" parent="267" name="tid">
<Position>2</Position>
<DataType>int(11) unsigned|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="545" parent="267" name="uid">
<Position>3</Position>
<Comment>用户ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="546" parent="267" name="compare">
<Position>4</Position>
<Comment>1:yes|2:no</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="547" parent="267" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id
uid
compare</ColNames>
<Primary>1</Primary>
</key>
<column id="548" parent="268" name="category_id">
<Position>1</Position>
<Comment>话题ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="549" parent="268" name="pid">
<Position>2</Position>
<Comment>父级ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="550" parent="268" name="name">
<Position>3</Position>
<Comment>话题名称</Comment>
<DataType>char(30)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="551" parent="268" name="heats">
<Position>4</Position>
<Comment>主题热度值</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="552" parent="268" name="sharetimes">
<Position>5</Position>
<Comment>分享次数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="553" parent="268" name="status">
<Position>6</Position>
<Comment>话题状态[1:正常|2:删除]</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="554" parent="268" name="createtime">
<Position>7</Position>
<Comment>创建时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="555" parent="268" name="updatetime">
<Position>8</Position>
<Comment>修改时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="556" parent="268" name="describe">
<Position>9</Position>
<Comment>话题描述</Comment>
<DataType>varchar(64)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="557" parent="268" name="pic">
<Position>10</Position>
<Comment>主题封面</Comment>
<DataType>varchar(256)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="558" parent="268" name="type">
<Position>11</Position>
<Comment>话题类型[1:官方 | 2:自定义]</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="559" parent="268" name="displaysort">
<Position>12</Position>
<Comment>话题显示顺序</Comment>
<DataType>int(10) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<index id="560" parent="268" name="idx_s_t">
<ColNames>status
type</ColNames>
<Type>btree</Type>
</index>
<key id="561" parent="268" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>category_id</ColNames>
<Primary>1</Primary>
</key>
<column id="562" parent="269" name="category_id">
<Position>1</Position>
<Comment>关注分类ID</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="563" parent="269" name="uid">
<Position>2</Position>
<Comment>关注人ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="564" parent="269" name="dateline">
<Position>3</Position>
<Comment>关注时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="565" parent="269" name="type">
<Position>4</Position>
<Comment>1 关注 2 取消关注</Comment>
<DataType>tinyint(1)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="566" parent="269" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>category_id
uid</ColNames>
<Primary>1</Primary>
</key>
<column id="567" parent="270" name="category_id">
<Position>1</Position>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="568" parent="270" name="sort">
<Position>2</Position>
<Comment>排序</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="569" parent="270" name="dateline">
<Position>3</Position>
<Comment>添加时间</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="570" parent="270" name="valid">
<Position>4</Position>
<Comment>1 有效 2 无效</Comment>
<DataType>tinyint(1)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="571" parent="270" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>category_id</ColNames>
<Primary>1</Primary>
</key>
<column id="572" parent="271" name="id">
<Position>1</Position>
<Comment>ID</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="573" parent="271" name="uid">
<Position>2</Position>
<Comment>用户ID</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="574" parent="271" name="scene">
<Position>3</Position>
<Comment>场景</Comment>
<DataType>varchar(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="575" parent="271" name="scence_des">
<Position>4</Position>
<Comment>功能描述</Comment>
<DataType>varchar(30)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="576" parent="271" name="label">
<Position>5</Position>
<Comment>分类</Comment>
<DataType>varchar(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="577" parent="271" name="label_des">
<Position>6</Position>
<Comment>分类描述</Comment>
<DataType>varchar(30)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="578" parent="271" name="rate">
<Position>7</Position>
<Comment>分值 区间0-100 分值越高越接近改场景</Comment>
<DataType>varchar(50)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="579" parent="271" name="pic">
<Position>8</Position>
<Comment>图片路径</Comment>
<DataType>char(255)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="580" parent="271" name="crea_time">
<Position>9</Position>
<Comment>创建时间</Comment>
<DataType>datetime|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="581" parent="271" name="valid">
<Position>10</Position>
<Comment>违规图片是否已删除</Comment>
<DataType>tinyint(1)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<index id="582" parent="271" name="uid">
<ColNames>uid</ColNames>
<Type>btree</Type>
</index>
<key id="583" parent="271" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="584" parent="272" name="id">
<Position>1</Position>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="585" parent="272" name="username">
<Position>2</Position>
<Comment>用户昵称</Comment>
<DataType>char(40)|0s</DataType>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="586" parent="272" name="realname">
<Position>3</Position>
<Comment>真实姓名</Comment>
<DataType>char(40)|0s</DataType>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="587" parent="272" name="group_id">
<Position>4</Position>
<Comment>用户组ID</Comment>
<DataType>tinyint(6) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="588" parent="272" name="moblie">
<Position>5</Position>
<Comment>手机号码</Comment>
<DataType>bigint(20)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="589" parent="272" name="email">
<Position>6</Position>
<Comment>邮箱</Comment>
<DataType>char(40)|0s</DataType>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="590" parent="272" name="emailstatus">
<Position>7</Position>
<Comment>email是否经过验证 1=验证通过 0=未验证\nhome字段为emailcheck</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;2&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="591" parent="272" name="idcardtype">
<Position>8</Position>
<Comment>证件类型:身份证 护照 军官证等</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="592" parent="272" name="idcard">
<Position>9</Position>
<Comment>用户身份证</Comment>
<DataType>char(20)|0s</DataType>
<DefaultExpression>&apos;&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="593" parent="272" name="credits">
<Position>10</Position>
<Comment>总积分</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="594" parent="272" name="threads">
<Position>11</Position>
<Comment>用户发帖数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="595" parent="272" name="posts">
<Position>12</Position>
<Comment>用户回复数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="596" parent="272" name="smiles">
<Position>13</Position>
<Comment>微笑数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="597" parent="272" name="tread">
<Position>14</Position>
<Comment>点踩数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="598" parent="272" name="sharings">
<Position>15</Position>
<Comment>用户分享次数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="599" parent="272" name="gender">
<Position>16</Position>
<Comment>性别[1:男|2:女 | 3:未知]</Comment>
<DataType>tinyint(1) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="600" parent="272" name="birthday">
<Position>17</Position>
<Comment>用户生日</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;631123200&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="601" parent="272" name="address">
<Position>18</Position>
<Comment>用户具体住址</Comment>
<DataType>char(255)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="602" parent="272" name="onlyacceptfriendpm">
<Position>19</Position>
<Comment>是否接受消息[1:是|2:否]</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="603" parent="272" name="status">
<Position>20</Position>
<Comment>用户状态[1:正常| 2:删除]</Comment>
<DataType>tinyint(3) unsigned|0s</DataType>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="604" parent="272" name="regdate">
<Position>21</Position>
<Comment>注册时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="605" parent="272" name="createtime">
<Position>22</Position>
<Comment>创建时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="606" parent="272" name="updatetime">
<Position>23</Position>
<Comment>更新时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="607" parent="272" name="avatar">
<Position>24</Position>
<Comment>头像</Comment>
<DataType>char(255)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="608" parent="272" name="city_id">
<Position>25</Position>
<Comment>城市id</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;36&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="609" parent="272" name="province_id">
<Position>26</Position>
<Comment>省id</Comment>
<DataType>int(11)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;2&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="610" parent="272" name="sign">
<Position>27</Position>
<Comment>用户签名</Comment>
<DataType>char(64)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<column id="611" parent="272" name="show_quence">
<Position>28</Position>
<Comment>用户对外排名</Comment>
<DataType>int(11)|0s</DataType>
<ColumnKind>normal</ColumnKind>
</column>
<index id="612" parent="272" name="username">
<ColNames>username</ColNames>
<Unique>1</Unique>
<Type>btree</Type>
</index>
<index id="613" parent="272" name="uid">
<ColNames>id</ColNames>
<Type>btree</Type>
</index>
<key id="614" parent="272" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<key id="615" parent="272" name="username">
<ColNames>username</ColNames>
<UnderlyingIndexName>username</UnderlyingIndexName>
</key>
<column id="616" parent="273" name="followed_uid">
<Position>1</Position>
<Comment>被关注人ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="617" parent="273" name="uid">
<Position>2</Position>
<Comment>关注人ID</Comment>
<DataType>bigint(20) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="618" parent="273" name="dateline">
<Position>3</Position>
<Comment>关注时间</Comment>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="619" parent="273" name="type">
<Position>4</Position>
<Comment>1 关注 2取消关注</Comment>
<DataType>tinyint(1)|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="620" parent="273" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>followed_uid
uid</ColNames>
<Primary>1</Primary>
</key>
<column id="621" parent="274" name="id">
<Position>1</Position>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="622" parent="274" name="user_id">
<Position>2</Position>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="623" parent="274" name="group_id">
<Position>3</Position>
<DataType>bigint(20)|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<index id="624" parent="274" name="user">
<ColNames>user_id</ColNames>
<Type>btree</Type>
</index>
<index id="625" parent="274" name="group">
<ColNames>group_id</ColNames>
<Type>btree</Type>
</index>
<key id="626" parent="274" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<foreign-key id="627" parent="274" name="user">
<ColNames>user_id</ColNames>
<RefSchemaName>xiaopeng_bbs</RefSchemaName>
<RefTableName>xp_user</RefTableName>
<RefColNames>id</RefColNames>
<OnUpdate>cascade</OnUpdate>
<OnDelete>cascade</OnDelete>
</foreign-key>
<foreign-key id="628" parent="274" name="group">
<ColNames>group_id</ColNames>
<RefSchemaName>xiaopeng_bbs</RefSchemaName>
<RefTableName>xp_group</RefTableName>
<RefColNames>group_id</RefColNames>
<OnUpdate>cascade</OnUpdate>
<OnDelete>cascade</OnDelete>
</foreign-key>
<column id="629" parent="275" name="id">
<Position>1</Position>
<DataType>int(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
<ColumnKind>normal</ColumnKind>
</column>
<column id="630" parent="275" name="uid">
<Position>2</Position>
<DataType>bigint(20)|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="631" parent="275" name="notify_id">
<Position>3</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="632" parent="275" name="is_read">
<Position>4</Position>
<DataType>tinyint(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="633" parent="275" name="createtime">
<Position>5</Position>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="634" parent="275" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
<column id="635" parent="276" name="uid">
<Position>1</Position>
<Comment>用户ID</Comment>
<DataType>bigint(11) unsigned|0s</DataType>
<NotNull>1</NotNull>
<ColumnKind>normal</ColumnKind>
</column>
<column id="636" parent="276" name="threads">
<Position>2</Position>
<Comment>用户发帖数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="637" parent="276" name="posts">
<Position>3</Position>
<Comment>用户回复数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="638" parent="276" name="liked_thread">
<Position>4</Position>
<Comment>用户主动点赞(帖子)</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="639" parent="276" name="liked_post">
<Position>5</Position>
<Comment>用户主动点赞(评论)</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="640" parent="276" name="sharings">
<Position>6</Position>
<Comment>用户主动分享数</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="641" parent="276" name="be_liked_thread">
<Position>7</Position>
<Comment>用户获取帖子点赞量</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="642" parent="276" name="be_liked_post">
<Position>8</Position>
<Comment>用户获取评论点赞量</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<column id="643" parent="276" name="be_smile">
<Position>9</Position>
<Comment>用户获取微笑量</Comment>
<DataType>int(11) unsigned|0s</DataType>
<DefaultExpression>&apos;0&apos;</DefaultExpression>
<ColumnKind>normal</ColumnKind>
</column>
<key id="644" parent="276" name="PRIMARY">
<NameSurrogate>1</NameSurrogate>
<ColNames>uid</ColNames>
<Primary>1</Primary>
</key>
</database-model>
</dataSource>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Kotlin2JsCompilerArguments">
<option name="sourceMapEmbedSources" />
<option name="sourceMapPrefix" />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xiaopeng</groupId>
<artifactId>rule-engine</artifactId>
<version>1.0-SNAPSHOT</version>
<name>rule-engine</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-agroal</artifactId>
<version>5.3.1.Final</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-core</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mvel/mvel2 -->
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
<version>2.4.0.Final</version>
</dependency>
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-support</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-mvel</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="hibernate" name="Hibernate">
<configuration>
<datasource-map>
<unit-entry name="a.xml" value="56026e0d-0082-48c5-829e-0503d71efa5a" />
<unit-entry name="hibernate.cfg.xml" value="56026e0d-0082-48c5-829e-0503d71efa5a" />
</datasource-map>
<naming-strategy-map />
<deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/src/main/resources/hibernate.cfg.xml" />
</configuration>
</facet>
<facet type="jpa" name="JPA">
<configuration>
<setting name="validation-enabled" value="true" />
<setting name="provider-name" value="" />
<datasource-mapping>
<factory-entry name="Entities" value="56026e0d-0082-48c5-829e-0503d71efa5a" />
</datasource-mapping>
<deploymentDescriptor name="persistence.xml" url="file://$MODULE_DIR$/src/main/resources" />
</configuration>
</facet>
</component>
</module>
package com.xiaopeng;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
package com.xiaopeng;
import com.xiaopeng.POJO.XpUserEntity;
import com.xiaopeng.POJO.XpUserGroupEntity;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import java.util.LinkedList;
import java.util.List;
public class DatabaseHelper {
private static SessionFactory factory;
public DatabaseHelper() {
try{
factory = new Configuration().configure().buildSessionFactory();
}catch (Throwable ex) {
System.err.println("Failed to create sessionFactory object." + ex);
throw new ExceptionInInitializerError(ex);
}
}
//Add or update group-user-relationships into database
public void updateRelationship(LinkedList<XpUserGroupEntity> list){
Session session = factory.openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
for(XpUserGroupEntity relationship:list){
session.saveOrUpdate(relationship);
}
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}
}
//Get all users from database
public LinkedList<XpUserEntity> getAllUsers(){
Session session = factory.openSession();
Transaction tx = null;
LinkedList<XpUserEntity> list = new LinkedList<>();
try{
tx = session.beginTransaction();
List users = session.createQuery("FROM XpUserEntity").list();
list = new LinkedList < XpUserEntity > (users);
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}
return list;
}
public void updateGoups(LinkedList<XpUserEntity> userList) {
}
}
package com.xiaopeng;
import org.jeasy.rules.annotation.Action;
import org.jeasy.rules.annotation.Condition;
import org.jeasy.rules.annotation.Fact;
import org.jeasy.rules.annotation.Rule;
import com.xiaopeng.POJO.Person;
@Rule(name = "Hello World rule", description = "Always say hello world")
public class HelloWorldRule {
@Condition
public boolean when(@Fact("hello") boolean hello) {
return hello;
}
@Action
public void then() throws Exception {
System.out.println("hello world");
}
@Action
public void thent() throws Exception {
System.out.println("hello world 2");
}
}
package com.xiaopeng;
import org.jeasy.rules.api.Facts;
import org.jeasy.rules.api.Rules;
import org.jeasy.rules.api.RulesEngine;
import org.jeasy.rules.core.DefaultRulesEngine;
import org.jeasy.rules.mvel.MVELRule;
public class Launcher {
public static void main(String[] args) {
// create facts
Facts facts = new Facts();
facts.put("hello", false);
// create rules
Rules rules = new Rules();
rules.register(new HelloWorldRule());
// create a rules engine and fire rules on known facts
RulesEngine rulesEngine = new DefaultRulesEngine();
rulesEngine.fire(rules, facts);
}
}
package com.xiaopeng;
import com.xiaopeng.POJO.XpUserEntity;
import com.xiaopeng.POJO.XpUserGroupEntity;
import org.jeasy.rules.api.Facts;
import org.jeasy.rules.api.Rules;
import org.jeasy.rules.api.RulesEngine;
import org.jeasy.rules.core.DefaultRulesEngine;
import org.jeasy.rules.mvel.MVELRule;
import org.jeasy.rules.mvel.MVELRuleFactory;
import java.io.File;
import java.io.FileReader;
import java.util.LinkedList;
public class MyRulesEngine {
public MyRulesEngine() {
}
//Return file paths of all rules
public LinkedList<String> getAllRules(String path){
File file = new File(path);
if(!file.isDirectory())
{
System.out.println("Wrong Path");
return null;
}
File[] array = file.listFiles();
LinkedList<String> ans = new LinkedList<>();
for(int i=0;i<array.length;i++){
if(array[i].isFile()){
ans.add(array[i].getPath());
}else if(array[i].isDirectory()){
ans.addAll(getAllRules(array[i].getPath()));
}
}
return ans;
}
public LinkedList<XpUserGroupEntity> fireRules(LinkedList<XpUserEntity> userList, LinkedList<String> fileList){
RulesEngine rulesEngine = new DefaultRulesEngine();
Rules rules = new Rules();
for(String path:fileList){
try {
MVELRule mvelRule = MVELRuleFactory.createRuleFrom(new FileReader(path));
rules.register(mvelRule);
} catch (Exception e) {
System.out.println(e);
}
}
Facts facts = new Facts();
LinkedList<XpUserEntity> effected = new LinkedList<>();
for (XpUserEntity x : userList) {
facts.put("user", x);
facts.put("result", effected);
facts.put("relationship", x.groups);
rulesEngine.fire(rules, facts);
}
for(XpUserEntity x:effected){
}
}
public static void main(String[] args) {
MyRulesEngine re = new MyRulesEngine();
re.getAllRules("F:/sqlscripts/");
}
}
package com.xiaopeng.POJO;
public class Person {
private String name;
private int age,gender,consumption, level;
private boolean passed = false;
public boolean isPassed() {
return passed;
}
public void pass(boolean pass) {
this.passed = pass;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person(String name, int age, int gender, int level) {
this.name = name;
this.age = age;
this.gender = gender;
this.level = level;
consumption = 0;
}
public Person(String name, int age, int gender) {
this.name = name;
this.age = age;
this.gender = gender;
level = 0;
consumption = 0;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(int gender) {
this.gender = gender;
}
public void setConsumption(int consumption) {
this.consumption = consumption;
}
public void setLevel(int level) {
this.level = level;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int getGender() {
return gender;
}
public int getConsumption() {
return consumption;
}
public int getLevel() {
return level;
}
}
package com.xiaopeng.POJO;
import javax.persistence.*;
@Entity
@Table(name = "xp_group", schema = "xiaopeng_bbs", catalog = "")
public class XpGroupEntity {
private long groupId;
private String title;
private String condition;
private Byte priority;
private String action;
private String filename;
@Id
@Column(name = "group_id")
public long getGroupId() {
return groupId;
}
public void setGroupId(long groupId) {
this.groupId = groupId;
}
@Basic
@Column(name = "title")
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Basic
@Column(name = "condition")
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
@Basic
@Column(name = "priority")
public Byte getPriority() {
return priority;
}
public void setPriority(Byte priority) {
this.priority = priority;
}
@Basic
@Column(name = "action")
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
@Basic
@Column(name = "filename")
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
XpGroupEntity that = (XpGroupEntity) o;
if (groupId != that.groupId) return false;
if (title != null ? !title.equals(that.title) : that.title != null) return false;
if (condition != null ? !condition.equals(that.condition) : that.condition != null) return false;
if (priority != null ? !priority.equals(that.priority) : that.priority != null) return false;
if (action != null ? !action.equals(that.action) : that.action != null) return false;
if (filename != null ? !filename.equals(that.filename) : that.filename != null) return false;
return true;
}
@Override
public int hashCode() {
int result = (int) (groupId ^ (groupId >>> 32));
result = 31 * result + (title != null ? title.hashCode() : 0);
result = 31 * result + (condition != null ? condition.hashCode() : 0);
result = 31 * result + (priority != null ? priority.hashCode() : 0);
result = 31 * result + (action != null ? action.hashCode() : 0);
result = 31 * result + (filename != null ? filename.hashCode() : 0);
return result;
}
}
package com.xiaopeng.POJO;
import javax.persistence.*;
import java.util.LinkedList;
@Entity
@Table(name = "xp_user", schema = "xiaopeng_bbs")
public class XpUserEntity {
private long id;
private String username;
private String realname;
private Byte groupId;
private Long moblie;
private String email;
private Byte emailstatus;
private Byte idcardtype;
private String idcard;
private Integer credits;
private Integer threads;
private Integer posts;
private Integer smiles;
private Integer tread;
private Integer sharings;
private Integer gender;
private Integer birthday;
private String address;
private byte onlyacceptfriendpm;
private Byte status;
private Integer regdate;
private Integer createtime;
private Integer updatetime;
private String avatar;
private int cityId;
private int provinceId;
private String sign;
private Integer showQuence;
public LinkedList<String> groups = new LinkedList<>();
@Id
@Column(name = "id")
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Basic
@Column(name = "username")
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Basic
@Column(name = "realname")
public String getRealname() {
return realname;
}
public void setRealname(String realname) {
this.realname = realname;
}
@Basic
@Column(name = "group_id")
public Byte getGroupId() {
return groupId;
}
public void setGroupId(Byte groupId) {
this.groupId = groupId;
}
@Basic
@Column(name = "moblie")
public Long getMoblie() {
return moblie;
}
public void setMoblie(Long moblie) {
this.moblie = moblie;
}
@Basic
@Column(name = "email")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Basic
@Column(name = "emailstatus")
public Byte getEmailstatus() {
return emailstatus;
}
public void setEmailstatus(Byte emailstatus) {
this.emailstatus = emailstatus;
}
@Basic
@Column(name = "idcardtype")
public Byte getIdcardtype() {
return idcardtype;
}
public void setIdcardtype(Byte idcardtype) {
this.idcardtype = idcardtype;
}
@Basic
@Column(name = "idcard")
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
@Basic
@Column(name = "credits")
public Integer getCredits() {
return credits;
}
public void setCredits(Integer credits) {
this.credits = credits;
}
@Basic
@Column(name = "threads")
public Integer getThreads() {
return threads;
}
public void setThreads(Integer threads) {
this.threads = threads;
}
@Basic
@Column(name = "posts")
public Integer getPosts() {
return posts;
}
public void setPosts(Integer posts) {
this.posts = posts;
}
@Basic
@Column(name = "smiles")
public Integer getSmiles() {
return smiles;
}
public void setSmiles(Integer smiles) {
this.smiles = smiles;
}
@Basic
@Column(name = "tread")
public Integer getTread() {
return tread;
}
public void setTread(Integer tread) {
this.tread = tread;
}
@Basic
@Column(name = "sharings")
public Integer getSharings() {
return sharings;
}
public void setSharings(Integer sharings) {
this.sharings = sharings;
}
@Basic
@Column(name = "gender")
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
@Basic
@Column(name = "birthday")
public Integer getBirthday() {
return birthday;
}
public void setBirthday(Integer birthday) {
this.birthday = birthday;
}
@Basic
@Column(name = "address")
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Basic
@Column(name = "onlyacceptfriendpm")
public byte getOnlyacceptfriendpm() {
return onlyacceptfriendpm;
}
public void setOnlyacceptfriendpm(byte onlyacceptfriendpm) {
this.onlyacceptfriendpm = onlyacceptfriendpm;
}
@Basic
@Column(name = "status")
public Byte getStatus() {
return status;
}
public void setStatus(Byte status) {
this.status = status;
}
@Basic
@Column(name = "regdate")
public Integer getRegdate() {
return regdate;
}
public void setRegdate(Integer regdate) {
this.regdate = regdate;
}
@Basic
@Column(name = "createtime")
public Integer getCreatetime() {
return createtime;
}
public void setCreatetime(Integer createtime) {
this.createtime = createtime;
}
@Basic
@Column(name = "updatetime")
public Integer getUpdatetime() {
return updatetime;
}
public void setUpdatetime(Integer updatetime) {
this.updatetime = updatetime;
}
@Basic
@Column(name = "avatar")
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
@Basic
@Column(name = "city_id")
public int getCityId() {
return cityId;
}
public void setCityId(int cityId) {
this.cityId = cityId;
}
@Basic
@Column(name = "province_id")
public int getProvinceId() {
return provinceId;
}
public void setProvinceId(int provinceId) {
this.provinceId = provinceId;
}
@Basic
@Column(name = "sign")
public String getSign() {
return sign;
}
public void setSign(String sign) {
this.sign = sign;
}
@Basic
@Column(name = "show_quence")
public Integer getShowQuence() {
return showQuence;
}
public void setShowQuence(Integer showQuence) {
this.showQuence = showQuence;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
XpUserEntity that = (XpUserEntity) o;
if (id != that.id) return false;
if (onlyacceptfriendpm != that.onlyacceptfriendpm) return false;
if (cityId != that.cityId) return false;
if (provinceId != that.provinceId) return false;
if (username != null ? !username.equals(that.username) : that.username != null) return false;
if (realname != null ? !realname.equals(that.realname) : that.realname != null) return false;
if (groupId != null ? !groupId.equals(that.groupId) : that.groupId != null) return false;
if (moblie != null ? !moblie.equals(that.moblie) : that.moblie != null) return false;
if (email != null ? !email.equals(that.email) : that.email != null) return false;
if (emailstatus != null ? !emailstatus.equals(that.emailstatus) : that.emailstatus != null) return false;
if (idcardtype != null ? !idcardtype.equals(that.idcardtype) : that.idcardtype != null) return false;
if (idcard != null ? !idcard.equals(that.idcard) : that.idcard != null) return false;
if (credits != null ? !credits.equals(that.credits) : that.credits != null) return false;
if (threads != null ? !threads.equals(that.threads) : that.threads != null) return false;
if (posts != null ? !posts.equals(that.posts) : that.posts != null) return false;
if (smiles != null ? !smiles.equals(that.smiles) : that.smiles != null) return false;
if (tread != null ? !tread.equals(that.tread) : that.tread != null) return false;
if (sharings != null ? !sharings.equals(that.sharings) : that.sharings != null) return false;
if (gender != null ? !gender.equals(that.gender) : that.gender != null) return false;
if (birthday != null ? !birthday.equals(that.birthday) : that.birthday != null) return false;
if (address != null ? !address.equals(that.address) : that.address != null) return false;
if (status != null ? !status.equals(that.status) : that.status != null) return false;
if (regdate != null ? !regdate.equals(that.regdate) : that.regdate != null) return false;
if (createtime != null ? !createtime.equals(that.createtime) : that.createtime != null) return false;
if (updatetime != null ? !updatetime.equals(that.updatetime) : that.updatetime != null) return false;
if (avatar != null ? !avatar.equals(that.avatar) : that.avatar != null) return false;
if (sign != null ? !sign.equals(that.sign) : that.sign != null) return false;
if (showQuence != null ? !showQuence.equals(that.showQuence) : that.showQuence != null) return false;
return true;
}
@Override
public int hashCode() {
int result = (int) (id ^ (id >>> 32));
result = 31 * result + (username != null ? username.hashCode() : 0);
result = 31 * result + (realname != null ? realname.hashCode() : 0);
result = 31 * result + (groupId != null ? groupId.hashCode() : 0);
result = 31 * result + (moblie != null ? moblie.hashCode() : 0);
result = 31 * result + (email != null ? email.hashCode() : 0);
result = 31 * result + (emailstatus != null ? emailstatus.hashCode() : 0);
result = 31 * result + (idcardtype != null ? idcardtype.hashCode() : 0);
result = 31 * result + (idcard != null ? idcard.hashCode() : 0);
result = 31 * result + (credits != null ? credits.hashCode() : 0);
result = 31 * result + (threads != null ? threads.hashCode() : 0);
result = 31 * result + (posts != null ? posts.hashCode() : 0);
result = 31 * result + (smiles != null ? smiles.hashCode() : 0);
result = 31 * result + (tread != null ? tread.hashCode() : 0);
result = 31 * result + (sharings != null ? sharings.hashCode() : 0);
result = 31 * result + (gender != null ? gender.hashCode() : 0);
result = 31 * result + (birthday != null ? birthday.hashCode() : 0);
result = 31 * result + (address != null ? address.hashCode() : 0);
result = 31 * result + (int) onlyacceptfriendpm;
result = 31 * result + (status != null ? status.hashCode() : 0);
result = 31 * result + (regdate != null ? regdate.hashCode() : 0);
result = 31 * result + (createtime != null ? createtime.hashCode() : 0);
result = 31 * result + (updatetime != null ? updatetime.hashCode() : 0);
result = 31 * result + (avatar != null ? avatar.hashCode() : 0);
result = 31 * result + cityId;
result = 31 * result + provinceId;
result = 31 * result + (sign != null ? sign.hashCode() : 0);
result = 31 * result + (showQuence != null ? showQuence.hashCode() : 0);
return result;
}
}
package com.xiaopeng.POJO;
import javax.persistence.*;
@Entity
@Table(name = "xp_user_group", schema = "xiaopeng_bbs", catalog = "")
public class XpUserGroupEntity {
private long id;
private long userId;
private long groupId;
@Id
@Column(name = "id")
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Basic
@Column(name = "user_id")
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
@Basic
@Column(name = "group_id")
public long getGroupId() {
return groupId;
}
public void setGroupId(long groupId) {
this.groupId = groupId;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
XpUserGroupEntity that = (XpUserGroupEntity) o;
// if (id != that.id) return false;
if (userId != that.userId) return false;
if (groupId != that.groupId) return false;
return true;
}
@Override
public int hashCode() {
int result = (int) (id ^ (id >>> 32));
result = 31 * result + (int) (userId ^ (userId >>> 32));
result = 31 * result + (int) (groupId ^ (groupId >>> 32));
return result;
}
}
package com.xiaopeng.rulesTest;
import com.xiaopeng.POJO.Person;
import org.jeasy.rules.annotation.*;
@Rule
public class AgeRule {
public int age;
AgeRule(int age) {
this.age = age;
}
@Condition
public boolean age(@Fact("Person") Person person){
return person.getAge() < this.age;
}
@Action
public void print(@Fact("Person") Person person) {
System.out.println(person.getName()+"'s age is"+person.getAge()+", is under "+ this.age);
person.pass(true);
}
@Priority
public int getPriority() {
return 0;
}
}
package com.xiaopeng.rulesTest;
import com.xiaopeng.POJO.Person;
import org.jeasy.rules.api.Facts;
import org.jeasy.rules.api.Rule;
import org.jeasy.rules.api.Rules;
import org.jeasy.rules.api.RulesEngine;
import org.jeasy.rules.core.DefaultRulesEngine;
import org.jeasy.rules.core.RulesEngineParameters;
import java.util.ArrayList;
public class Launcher {
public static void main(String[] args) {
RulesEngineParameters rulesEngineParameters = new RulesEngineParameters().skipOnFirstAppliedRule(true);
RulesEngine rulesEngine = new DefaultRulesEngine(rulesEngineParameters);
Rules rules = new Rules();
rules.register(new AgeRule(30));
Person a = new Person("a",20);
Person b = new Person("b",29);
Person c = new Person("c",33);
ArrayList<Person> list = new ArrayList<>();
list.add(a);
list.add(b);
list.add(c);
ArrayList<Person> l = new ArrayList<>();
Facts facts = new Facts();
for(Person p: list){
facts.put("Person",p);
// rulesEngine.fireRules();
rulesEngine.fire(rules, facts);
if(p.isPassed())
l.add(p);
}
for(Person p:l)
System.out.println(p.getName()+p.getAge());
}
}
package com.xiaopeng;
import java.io.FileReader;
import java.util.*;
import com.xiaopeng.POJO.XpUserEntity;
import com.xiaopeng.POJO.XpUserGroupEntity;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.jeasy.rules.api.Facts;
import org.jeasy.rules.api.Rules;
import org.jeasy.rules.api.RulesEngine;
import org.jeasy.rules.core.DefaultRulesEngine;
import org.jeasy.rules.core.RulesEngineParameters;
import org.jeasy.rules.mvel.MVELRule;
import org.jeasy.rules.mvel.MVELRuleFactory;
public class testHibernate {
private static SessionFactory factory;
public LinkedList<XpUserEntity> getAllUsers(){
Session session = factory.openSession();
Transaction tx = null;
LinkedList<XpUserEntity> list = new LinkedList<>();
try{
tx = session.beginTransaction();
List users = session.createQuery("FROM XpUserEntity").list();
list = new LinkedList < XpUserEntity > (users);
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}
return list;
}
public void randomUpdate(LinkedList<XpUserEntity> list){
Session session = factory.openSession();
Transaction tx = null;
Random random = new Random();
try{
session.clear();
tx = session.beginTransaction();
for(XpUserEntity user:list){
int gender = random.nextInt(3)+1;
int posts = random.nextInt(100);
int threads = random.nextInt(10);
int smiles = random.nextInt(8);
user.setGender(gender);
session.update(user);
}
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
System.out.println("Finished");
}
}
public static void main(String[] args) {
try{
factory = new Configuration().configure().buildSessionFactory();
}catch (Throwable ex) {
System.err.println("Failed to create sessionFactory object." + ex);
throw new ExceptionInInitializerError(ex);
}
testHibernate t = new testHibernate();
LinkedList<XpUserEntity> list = t.getAllUsers();
// RulesEngineParameters rulesEngineParameters = new RulesEngineParameters().skipOnFirstAppliedRule(true);
RulesEngine rulesEngine = new DefaultRulesEngine();
Rules rules = new Rules();
MyRulesEngine mre = new MyRulesEngine();
LinkedList<String> rulesList = mre.getAllRules("F:/rules/");
for(String rulepath:rulesList){
try {
System.out.println(rulepath);
MVELRule mvelRule = MVELRuleFactory.createRuleFrom(new FileReader(rulepath));
rules.register(mvelRule);
} catch (Exception e) {
System.out.println(e);
}
}
Facts facts = new Facts();
for (XpUserEntity x : list) {
facts.put("user", x);
facts.put("relationship", x.groups);
rulesEngine.fire(rules, facts);
}
for(XpUserEntity x:list){
if(x.groups.size()>0){
System.out.println(x.getUsername());
System.out.println(x.getPosts());
for(String s:x.groups)
System.out.println(s);
}
}
System.out.println(l.size());
System.out.println("Finish");
}
//
}
/**
* The MIT License
*
* Copyright (c) 2017, Mahmoud Ben Hassine ([email protected])
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package fizzbuzz;
import org.jeasy.rules.annotation.*;
@Rule
public class BuzzRule {
@Condition
public boolean isBuzz(@Fact("number") Integer number) {
return number % 7 == 0;
}
@Action
public void printBuzz() {
System.out.print("buzz");
}
@Priority
public int getPriority() {
return 2;
}
}
/**
* The MIT License
*
* Copyright (c) 2017, Mahmoud Ben Hassine ([email protected])
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package fizzbuzz;
/*
* source: http://examples.oreilly.com/jenut/FizzBuzz.java
*/
public class FizzBuzz { // Everything in Java is a class
public static void main(String[] args) { // Every program must have main()
for(int i = 1; i <= 100; i++) { // count from 1 to 100
if (((i % 5) == 0) && ((i % 7) == 0)) // A multiple of both?
System.out.print("fizzbuzz");
else if ((i % 5) == 0) System.out.print("fizz"); // else a multiple of 5?
else if ((i % 7) == 0) System.out.print("buzz"); // else a multiple of 7?
else System.out.print(i); // else just print it
System.out.println();
}
System.out.println();
}
}
/**
* The MIT License
*
* Copyright (c) 2017, Mahmoud Ben Hassine ([email protected])
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package fizzbuzz;
import org.jeasy.rules.support.UnitRuleGroup;
public class FizzBuzzRule extends UnitRuleGroup {
public FizzBuzzRule(Object... rules) {
for (Object rule : rules) {
addRule(rule);
}
}
@Override
public int getPriority() {
return 0;
}
}
/**
* The MIT License
*
* Copyright (c) 2017, Mahmoud Ben Hassine ([email protected])
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package fizzbuzz;
import org.jeasy.rules.api.Facts;
import org.jeasy.rules.api.Rules;
import org.jeasy.rules.api.RulesEngine;
import org.jeasy.rules.core.DefaultRulesEngine;
import org.jeasy.rules.core.RulesEngineParameters;
public class FizzBuzzWithEasyRules {
public static void main(String[] args) {
// create rules engine
RulesEngineParameters parameters = new RulesEngineParameters().skipOnFirstAppliedRule(true);
RulesEngine fizzBuzzEngine = new DefaultRulesEngine(parameters);
// create rules
Rules rules = new Rules();
rules.register(new FizzRule());
rules.register(new BuzzRule());
rules.register(new FizzBuzzRule(new FizzRule(), new BuzzRule()));
rules.register(new NonFizzBuzzRule());
// fire rules
Facts facts = new Facts();
for (int i = 1; i <= 100; i++) {
facts.put("number", i);
fizzBuzzEngine.fire(rules, facts);
System.out.println();
}
}
}
/**
* The MIT License
*
* Copyright (c) 2017, Mahmoud Ben Hassine ([email protected])
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package fizzbuzz;
import org.jeasy.rules.annotation.*;
@Rule
public class FizzRule {
@Condition
public boolean isFizz(@Fact("number") Integer number) {
return number % 5 == 0;
}
@Action
public void printFizz() {
System.out.print("fizz");
}
@Priority
public int getPriority() {
return 1;
}
}
/**
* The MIT License
*
* Copyright (c) 2017, Mahmoud Ben Hassine ([email protected])
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package fizzbuzz;
import org.jeasy.rules.annotation.*;
@Rule
public class NonFizzBuzzRule {
@Condition
public boolean isNotFizzNorBuzz(@Fact("number") Integer number) {
// can return true, because this is the latest rule to trigger according to assigned priorities
// and in which case, the number is not fizz nor buzz
return number % 5 != 0 || number % 7 != 0;
}
@Action
public void printInput(@Fact("number") Integer number) {
System.out.print(number);
}
@Priority
public int getPriority() {
return 3;
}
}
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
#log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
name: "alcohol rule"
description: "children are not allowed to buy alcohol"
priority: 2
condition: "(person.isAdult() == false && person.getGender()==1 )|| person.getGender == 0"
actions:
- "System.out.println(\"Shop: Sorry, you are not allowed to buy alcohol,\" +person.getName());"
- "person.setChild(true);"
/**
* The MIT License
*
* Copyright (c) 2017, Mahmoud Ben Hassine ([email protected])
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package shop;
import org.jeasy.rules.api.Facts;
import org.jeasy.rules.api.Rules;
import org.jeasy.rules.api.RulesEngine;
import org.jeasy.rules.core.DefaultRulesEngine;
import org.jeasy.rules.mvel.MVELRule;
import org.jeasy.rules.mvel.MVELRuleFactory;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class Launcher {
public static void main(String[] args) throws FileNotFoundException {
//create a person instance (fact)
Person tom = new Person("Tom", 14);
tom.setGender(1);
Person jerry = new Person("Jerry",19);
jerry.setGender(0);
Facts facts = new Facts();
// create rules
MVELRule ageRule = new MVELRule()
.name("age rule")
.description("Check if person's age is > 18 and marks the person as adult")
.priority(1)
.when("person.age > 18")
.then("person.setAdult(true);");
MVELRule alcoholRule = MVELRuleFactory.createRuleFrom(new FileReader("src/main/java/shop/alcohol-rule.yml"));
// create a rule set
Rules rules = new Rules();
rules.register(ageRule);
rules.register(alcoholRule);
//create a default rules engine and fire rules on known facts
RulesEngine rulesEngine = new DefaultRulesEngine();
System.out.println("Tom & Jerry: Hi! can I have some Vodka please?");
int i=0;
facts.put("person", tom);
rulesEngine.fire(rules, facts);
facts.put("person", jerry);
rulesEngine.fire(rules, facts);
}
}
/**
* The MIT License
*
* Copyright (c) 2017, Mahmoud Ben Hassine ([email protected])
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package shop;
public class Person {
private String name;
private int age;
private boolean adult;
private int gender;
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public boolean isChild() {
return child;
}
public void setChild(boolean child) {
this.child = child;
}
public boolean child;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public boolean isAdult() {
return adult;
}
public void setAdult(boolean adult) {
this.adult = adult;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", adult=" + adult +
'}';
}
}
import java.util.HashMap;
public class testeVar {
}
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="connection.url">jdbc:mysql://10.0.13.56:3306/xiaopeng_bbs</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">xpmotors</property>
<property name="connection.password">chengzi0109</property>
<mapping class="com.xiaopeng.POJO.XpUserEntity"/>
<mapping class="com.xiaopeng.POJO.XpGroupEntity"/>
<mapping class="com.xiaopeng.POJO.XpUserGroupEntity"/>
<!-- DB schema will be updated if needed -->
<!-- <property name="hbm2ddl.auto">update</property> -->
</session-factory>
</hibernate-configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment