Browse Source

first commit

suochencheng 6 năm trước cách đây
commit
a0ec31ee6d
100 tập tin đã thay đổi với 25370 bổ sung0 xóa
  1. 6 0
      .gitignore
  2. 6 0
      README.md
  3. 28 0
      build.sh
  4. 2022 0
      log.txt
  5. 1046 0
      pom.xml
  6. 10 0
      runConfigurations/Install_Dependencies.xml
  7. 75 0
      runConfigurations/Tomcat.xml
  8. 12 0
      runConfigurations/Vue_Build.xml
  9. 12 0
      runConfigurations/Vue_Server.xml
  10. 621 0
      src/main/java/com/izouma/awesomeadmin/constant/AppConstant.java
  11. 36 0
      src/main/java/com/izouma/awesomeadmin/constant/RongConstant.java
  12. 17 0
      src/main/java/com/izouma/awesomeadmin/container/DateConverter.java
  13. 26 0
      src/main/java/com/izouma/awesomeadmin/container/Lifecycle.java
  14. 70 0
      src/main/java/com/izouma/awesomeadmin/container/StartupListener.java
  15. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/AlertMessageMapper.java
  16. 367 0
      src/main/java/com/izouma/awesomeadmin/dao/AlertMessageMapper.xml
  17. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/AlipayTempMapper.java
  18. 527 0
      src/main/java/com/izouma/awesomeadmin/dao/AlipayTempMapper.xml
  19. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/AppVersionMapper.java
  20. 440 0
      src/main/java/com/izouma/awesomeadmin/dao/AppVersionMapper.xml
  21. 36 0
      src/main/java/com/izouma/awesomeadmin/dao/AppealInfoMapper.java
  22. 398 0
      src/main/java/com/izouma/awesomeadmin/dao/AppealInfoMapper.xml
  23. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/BannerInfoMapper.java
  24. 505 0
      src/main/java/com/izouma/awesomeadmin/dao/BannerInfoMapper.xml
  25. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/BindGameMapper.java
  26. 460 0
      src/main/java/com/izouma/awesomeadmin/dao/BindGameMapper.xml
  27. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/BonusRecordMapper.java
  28. 523 0
      src/main/java/com/izouma/awesomeadmin/dao/BonusRecordMapper.xml
  29. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/ChannelInfoMapper.java
  30. 482 0
      src/main/java/com/izouma/awesomeadmin/dao/ChannelInfoMapper.xml
  31. 27 0
      src/main/java/com/izouma/awesomeadmin/dao/CommonQueryMapper.java
  32. 189 0
      src/main/java/com/izouma/awesomeadmin/dao/CommonQueryMapper.xml
  33. 27 0
      src/main/java/com/izouma/awesomeadmin/dao/CommonQuerySqlServerMapper.java
  34. 182 0
      src/main/java/com/izouma/awesomeadmin/dao/CommonQuerySqlServerMapper.xml
  35. 37 0
      src/main/java/com/izouma/awesomeadmin/dao/CompetitionSeasonMapper.java
  36. 685 0
      src/main/java/com/izouma/awesomeadmin/dao/CompetitionSeasonMapper.xml
  37. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/CustomerServiceMapper.java
  38. 459 0
      src/main/java/com/izouma/awesomeadmin/dao/CustomerServiceMapper.xml
  39. 36 0
      src/main/java/com/izouma/awesomeadmin/dao/DataSourceInfoMapper.java
  40. 327 0
      src/main/java/com/izouma/awesomeadmin/dao/DataSourceInfoMapper.xml
  41. 51 0
      src/main/java/com/izouma/awesomeadmin/dao/DepartInfoMapper.java
  42. 341 0
      src/main/java/com/izouma/awesomeadmin/dao/DepartInfoMapper.xml
  43. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/GameInfoMapper.java
  44. 610 0
      src/main/java/com/izouma/awesomeadmin/dao/GameInfoMapper.xml
  45. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/GenCodeMapper.java
  46. 265 0
      src/main/java/com/izouma/awesomeadmin/dao/GenCodeMapper.xml
  47. 43 0
      src/main/java/com/izouma/awesomeadmin/dao/HouseInfoMapper.java
  48. 1018 0
      src/main/java/com/izouma/awesomeadmin/dao/HouseInfoMapper.xml
  49. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/HouseLevelMapper.java
  50. 618 0
      src/main/java/com/izouma/awesomeadmin/dao/HouseLevelMapper.xml
  51. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/MemberCoinMapper.java
  52. 523 0
      src/main/java/com/izouma/awesomeadmin/dao/MemberCoinMapper.xml
  53. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/MemberCoinTixianMapper.java
  54. 704 0
      src/main/java/com/izouma/awesomeadmin/dao/MemberCoinTixianMapper.xml
  55. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/MemberHouseCardMapper.java
  56. 512 0
      src/main/java/com/izouma/awesomeadmin/dao/MemberHouseCardMapper.xml
  57. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/MemberTicketMapper.java
  58. 487 0
      src/main/java/com/izouma/awesomeadmin/dao/MemberTicketMapper.xml
  59. 37 0
      src/main/java/com/izouma/awesomeadmin/dao/PayCodeInfoMapper.java
  60. 465 0
      src/main/java/com/izouma/awesomeadmin/dao/PayCodeInfoMapper.xml
  61. 42 0
      src/main/java/com/izouma/awesomeadmin/dao/PayCodeOrderMapper.java
  62. 694 0
      src/main/java/com/izouma/awesomeadmin/dao/PayCodeOrderMapper.xml
  63. 38 0
      src/main/java/com/izouma/awesomeadmin/dao/PayCodeStockMapper.java
  64. 562 0
      src/main/java/com/izouma/awesomeadmin/dao/PayCodeStockMapper.xml
  65. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/PhoneInfoMapper.java
  66. 415 0
      src/main/java/com/izouma/awesomeadmin/dao/PhoneInfoMapper.xml
  67. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/PlatformIncomeRecordMapper.java
  68. 505 0
      src/main/java/com/izouma/awesomeadmin/dao/PlatformIncomeRecordMapper.xml
  69. 53 0
      src/main/java/com/izouma/awesomeadmin/dao/PlayerInfoMapper.java
  70. 1667 0
      src/main/java/com/izouma/awesomeadmin/dao/PlayerInfoMapper.xml
  71. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/PopNoticeMapper.java
  72. 356 0
      src/main/java/com/izouma/awesomeadmin/dao/PopNoticeMapper.xml
  73. 34 0
      src/main/java/com/izouma/awesomeadmin/dao/PowerInfoMapper.java
  74. 224 0
      src/main/java/com/izouma/awesomeadmin/dao/PowerInfoMapper.xml
  75. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/ProductInfoMapper.java
  76. 470 0
      src/main/java/com/izouma/awesomeadmin/dao/ProductInfoMapper.xml
  77. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/QueryConfigMapper.java
  78. 363 0
      src/main/java/com/izouma/awesomeadmin/dao/QueryConfigMapper.xml
  79. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/RechargeRecordMapper.java
  80. 482 0
      src/main/java/com/izouma/awesomeadmin/dao/RechargeRecordMapper.xml
  81. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/RecommenderLogMapper.java
  82. 422 0
      src/main/java/com/izouma/awesomeadmin/dao/RecommenderLogMapper.xml
  83. 26 0
      src/main/java/com/izouma/awesomeadmin/dao/RongYunTokenMapper.java
  84. 95 0
      src/main/java/com/izouma/awesomeadmin/dao/RongYunTokenMapper.xml
  85. 51 0
      src/main/java/com/izouma/awesomeadmin/dao/SuperUserMapper.java
  86. 88 0
      src/main/java/com/izouma/awesomeadmin/dao/SuperUserMapper.xml
  87. 14 0
      src/main/java/com/izouma/awesomeadmin/dao/SysAppTokenMapper.java
  88. 18 0
      src/main/java/com/izouma/awesomeadmin/dao/SysAppTokenMapper.xml
  89. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/SysDataruleMapper.java
  90. 153 0
      src/main/java/com/izouma/awesomeadmin/dao/SysDataruleMapper.xml
  91. 34 0
      src/main/java/com/izouma/awesomeadmin/dao/SysMenuMapper.java
  92. 386 0
      src/main/java/com/izouma/awesomeadmin/dao/SysMenuMapper.xml
  93. 47 0
      src/main/java/com/izouma/awesomeadmin/dao/SysRoleMapper.java
  94. 372 0
      src/main/java/com/izouma/awesomeadmin/dao/SysRoleMapper.xml
  95. 37 0
      src/main/java/com/izouma/awesomeadmin/dao/SystemNoticeMapper.java
  96. 670 0
      src/main/java/com/izouma/awesomeadmin/dao/SystemNoticeMapper.xml
  97. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/SystemVariableMapper.java
  98. 348 0
      src/main/java/com/izouma/awesomeadmin/dao/SystemVariableMapper.xml
  99. 34 0
      src/main/java/com/izouma/awesomeadmin/dao/TableFieldMapper.java
  100. 494 0
      src/main/java/com/izouma/awesomeadmin/dao/TableFieldMapper.xml

+ 6 - 0
.gitignore

@@ -0,0 +1,6 @@
+.vscode
+.DS_Store
+.idea
+node_modules/
+/target
+*.iml

+ 6 - 0
README.md

@@ -0,0 +1,6 @@
+# 后台项目模版 C版本猿人电竞
+* IDEA 直接打开项目
+* 复制 runConfigurations 文件夹至 .idea 文件夹下
+* 运行 Install Dependencies
+* 同时运行 Tomcat 和 Vue Server
+* 访问 [http://localhost:8081](http://localhost:8081)

+ 28 - 0
build.sh

@@ -0,0 +1,28 @@
+#!/bin/bash
+
+while getopts "n" arg #选项后面的冒号表示该选项需要参数
+do
+        case $arg in
+             n)
+                node=1
+                ;;
+        esac
+done
+
+rm -rf src/main/webapp/static/*
+rm -rf src/main/webapp/WEB-INF/html/admin.html
+git checkout .
+git pull
+
+if ! [ ! $node ]
+then
+    (cd src/main/vue && npm run build)
+fi
+
+mvn package
+
+/usr/local/tomcat/quanmingdianjing/bin/shutdown.sh -force
+rm -rf /var/www/quanmingdianjing
+mv target/awesome-admin /var/www/quanmingdianjing
+ln -s /var/www/files /var/www/quanmingdianjing/files
+/usr/local/tomcat/quanmingdianjing/bin/startup.sh

+ 2022 - 0
log.txt

@@ -0,0 +1,2022 @@
+[2019-01-30 15:27:16] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 15:28:06] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 15:29:25] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 15:37:45] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 15:38:10] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 15:39:10] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 15:40:52] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:17:55] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:19:17] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:21:02] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:22:04] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:23:48] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:24:14] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:24:24] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:25:43] [WARN ] - SQL State '08007' of Exception tested by statusOnException() implies that the database is invalid, and the pool should refill itself with fresh Connections.
+com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
+	at com.mysql.jdbc.Util.getInstance(Util.java:384)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
+	at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:5086)
+	at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:1033)
+	at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:294)
+	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:853)
+	at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:830)
+	at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:125)
+	at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:227)
+	at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:319)
+	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94)
+	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+[2019-01-30 16:25:43] [WARN ] - A ConnectionTest has failed, reporting that all previously acquired Connections are likely invalid. The pool will be reset.
+[2019-01-30 16:25:43] [WARN ] - [c3p0] A PooledConnection that has already signalled a Connection error is still in use!
+[2019-01-30 16:25:43] [WARN ] - [c3p0] Another error has occurred [ com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. ] which will not be reported to listeners!
+com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
+	at com.mysql.jdbc.Util.getInstance(Util.java:384)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
+	at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1321)
+	at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1313)
+	at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5311)
+	at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:1059)
+	at org.springframework.jdbc.datasource.DataSourceTransactionManager.doCleanupAfterCompletion(DataSourceTransactionManager.java:324)
+	at org.springframework.transaction.support.AbstractPlatformTransactionManager.cleanupAfterCompletion(AbstractPlatformTransactionManager.java:1016)
+	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:883)
+	at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:830)
+	at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:125)
+	at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:227)
+	at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:319)
+	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94)
+	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
+
+The last packet successfully received from the server was 77,876 milliseconds ago.  The last packet sent successfully to the server was 6 milliseconds ago.
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
+	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1127)
+	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3715)
+	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3604)
+	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4155)
+	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
+	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
+	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2832)
+	at com.mysql.jdbc.ConnectionImpl.rollbackNoChecks(ConnectionImpl.java:5189)
+	at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:5072)
+	at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:1033)
+	at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:294)
+	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:853)
+	... 23 more
+Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
+	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3161)
+	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3615)
+	... 33 more
+[2019-01-30 16:25:43] [WARN ] - A ConnectionTest has failed, reporting that all previously acquired Connections are likely invalid. The pool will be reset.
+[2019-01-30 16:25:43] [WARN ] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener@134f8ef6] to process 'after' execution for test: method [public void VideoProcessTest.testRecognition()], instance [VideoProcessTest@5a90265a], exception [null]
+org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
+	at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:297)
+	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:853)
+	at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:830)
+	at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:125)
+	at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:227)
+	at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:319)
+	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94)
+	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
+	at com.mysql.jdbc.Util.getInstance(Util.java:384)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
+	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
+	at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:5086)
+	at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:1033)
+	at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:294)
+	... 24 more
+[2019-01-30 16:26:22] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:27:47] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:28:13] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:33:29] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:34:00] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:34:54] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:36:46] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:37:55] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:39:45] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:40:38] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:41:16] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:42:12] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:42:30] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:43:23] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:43:58] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:44:51] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:46:30] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:48:36] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:49:32] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:50:33] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:52:33] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:52:53] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:53:28] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:55:33] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:56:40] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 16:57:25] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 17:07:02] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 17:08:33] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 17:09:29] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:49:38] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:50:00] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:50:37] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:54:13] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:54:58] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:56:15] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:56:47] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:57:17] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:58:33] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 18:59:40] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:05:03] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:05:51] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:06:15] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:06:54] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:07:37] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:08:16] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:12:35] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:16:19] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:18:24] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:20:18] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:21:15] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:21:39] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:23:07] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:24:13] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:26:29] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:27:02] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:27:36] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:28:25] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:28:41] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-30 19:29:33] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 01:08:03] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 01:09:40] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 01:17:13] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 01:18:36] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 01:21:18] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 01:22:46] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 09:29:50] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 09:31:05] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 09:31:29] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 09:31:46] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 09:33:51] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 09:42:23] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 10:38:14] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 11:30:25] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 11:32:29] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 11:57:45] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 11:58:54] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 12:05:38] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 12:06:38] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 12:11:08] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 12:12:08] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 12:12:58] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 12:17:10] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 14:58:02] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 15:03:02] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: libopencv_java401.dylib
+[2019-01-31 15:03:02] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5c41d037] to prepare test instance [VideoProcessTest@2234078]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: libopencv_java401.dylib
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: libopencv_java401.dylib
+	at java.lang.Runtime.load0(Runtime.java:806)
+	at java.lang.System.load(System.java:1086)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:53)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 38 more
+[2019-01-31 15:06:40] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no libopencv_java401 in java.library.path
+[2019-01-31 15:06:40] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5c41d037] to prepare test instance [VideoProcessTest@2234078]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no libopencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: java.lang.UnsatisfiedLinkError: no libopencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:53)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 38 more
+[2019-01-31 15:07:16] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+[2019-01-31 15:07:16] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5c41d037] to prepare test instance [VideoProcessTest@2234078]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:53)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 38 more
+[2019-01-31 15:08:03] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+[2019-01-31 15:08:03] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5c41d037] to prepare test instance [VideoProcessTest@2234078]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:53)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 38 more
+[2019-01-31 15:09:42] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: Directory separator should not appear in library name: /Library/Java/Extensions/libopencv_java401.so
+[2019-01-31 15:09:42] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5c41d037] to prepare test instance [VideoProcessTest@2234078]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: Directory separator should not appear in library name: /Library/Java/Extensions/libopencv_java401.so
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: java.lang.UnsatisfiedLinkError: Directory separator should not appear in library name: /Library/Java/Extensions/libopencv_java401.so
+	at java.lang.Runtime.loadLibrary0(Runtime.java:867)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:53)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 38 more
+[2019-01-31 15:10:16] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 15:11:07] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 15:15:23] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 15:17:26] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 15:22:03] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 15:24:32] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+[2019-01-31 15:24:32] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@554c4eaa] to prepare test instance [VideoProcessTest@29fd8e67]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: java.lang.UnsatisfiedLinkError: no libopencv_java401.so in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:53)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 38 more
+[2019-01-31 15:26:54] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-01-31 15:26:54] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@554c4eaa] to prepare test instance [VideoProcessTest@29fd8e67]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:53)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 38 more
+[2019-01-31 15:29:59] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 15:30:39] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 21:47:25] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-01-31 21:47:25] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@577f9109] to prepare test instance [VideoProcessTest@4303b7f0]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [/Users/drew/Projects/Java/shouyoudianjing/target/classes/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:54)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 38 more
+[2019-01-31 22:05:05] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:06:23] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:25:56] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:27:06] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:34:27] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:45:50] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:46:51] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:47:56] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:50:47] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:52:08] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:52:56] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:54:31] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 22:55:53] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 23:01:00] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 23:14:25] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-01-31 23:15:11] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-02-19 11:02:29] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:02:29] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:65)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:03:20] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:03:20] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:07:22] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:07:22] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:08:05] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:08:05] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:08:59] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:08:59] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:10:46] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:10:46] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:14:02] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+[2019-02-19 11:14:02] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:67)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:15:31] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:15:31] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:17:32] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:17:32] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:18:35] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+[2019-02-19 11:18:35] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:67)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:19:48] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.8.0_141\bin\tesseract.dll: Can't find dependent libraries
+[2019-02-19 11:19:48] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.8.0_141\bin\tesseract.dll: Can't find dependent libraries
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.8.0_141\bin\tesseract.dll: Can't find dependent libraries
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.8.0_141\bin\tesseract.dll: Can't find dependent libraries
+	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
+	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:67)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:21:21] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+[2019-02-19 11:21:21] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no tesseract in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:67)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:24:46] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:24:46] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:25:07] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:25:07] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:25:45] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+[2019-02-19 11:25:45] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:66)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-19 11:26:21] [WARN ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Tesseract-OCR\tesseract.dll: Can't find dependent libraries
+[2019-02-19 11:26:21] [ERROR] - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@e8fadb0] to prepare test instance [UserServiceTest@6d64b553]
+java.lang.IllegalStateException: Failed to load ApplicationContext
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+	at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'videoNotifyServiceImpl': Unsatisfied dependency expressed through field 'videoRecognitionService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Tesseract-OCR\tesseract.dll: Can't find dependent libraries
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
+	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1225)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
+	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
+	at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+	... 24 more
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoRecognitionServiceImpl' defined in file [D:\projects\shouyoudianjing\target\classes\com\izouma\awesomeadmin\service\impl\VideoRecognitionServiceImpl.class]: Instantiation of bean failed; nested exception is java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Tesseract-OCR\tesseract.dll: Can't find dependent libraries
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1116)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1060)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
+	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
+	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136)
+	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
+	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
+	... 40 more
+Caused by: java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\Tesseract-OCR\tesseract.dll: Can't find dependent libraries
+	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
+	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
+	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
+	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
+	at java.lang.System.loadLibrary(System.java:1122)
+	at com.izouma.awesomeadmin.service.impl.VideoRecognitionServiceImpl.<clinit>(VideoRecognitionServiceImpl.java:67)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
+	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
+	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
+	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1108)
+	... 51 more
+[2019-02-28 18:54:49] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-02-28 18:55:34] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-02-28 18:57:07] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-02-28 18:58:51] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-02-28 19:01:34] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-02-28 19:01:54] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-26 09:33:03] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-26 09:34:08] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-26 09:55:43] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-27 17:04:19] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-27 17:05:02] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-27 17:06:26] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-27 17:06:54] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 15:59:17] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 16:00:26] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 16:02:40] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 16:03:46] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 16:29:40] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 17:03:30] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 17:13:39] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 17:14:41] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 17:22:59] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 17:23:06] [WARN ] - [Client]Unable to execute HTTP request: SocketException
+[2019-03-28 17:24:25] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 17:26:19] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 17:26:45] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-28 17:27:12] [WARN ] - [Client]Unable to execute HTTP request: SocketException
+[2019-03-28 17:27:54] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-29 09:48:49] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-29 09:50:25] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-29 09:52:17] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-29 09:53:18] [WARN ] - [Client]Unable to execute HTTP request: UnknownHost
+[2019-03-29 09:53:18] [WARN ] - [Client]Unable to execute HTTP request: UnknownHost
+[2019-03-29 09:53:19] [WARN ] - [Client]Unable to execute HTTP request: UnknownHost
+[2019-03-29 09:53:22] [WARN ] - [Client]Unable to execute HTTP request: UnknownHost
+[2019-03-29 09:53:22] [ERROR] - OSS上传异常:
+com.aliyun.oss.ClientException: UnknownHost
+	at com.aliyun.oss.common.utils.ExceptionFactory.createNetworkException(ExceptionFactory.java:68)
+	at com.aliyun.oss.common.comm.DefaultServiceClient.sendRequestCore(DefaultServiceClient.java:67)
+	at com.aliyun.oss.common.comm.ServiceClient.sendRequestImpl(ServiceClient.java:121)
+	at com.aliyun.oss.common.comm.ServiceClient.sendRequest(ServiceClient.java:67)
+	at com.aliyun.oss.internal.OSSOperation.send(OSSOperation.java:89)
+	at com.aliyun.oss.internal.OSSOperation.doOperation(OSSOperation.java:130)
+	at com.aliyun.oss.internal.OSSOperation.doOperation(OSSOperation.java:108)
+	at com.aliyun.oss.internal.OSSObjectOperation.writeObjectInternal(OSSObjectOperation.java:574)
+	at com.aliyun.oss.internal.OSSObjectOperation.putObject(OSSObjectOperation.java:119)
+	at com.aliyun.oss.OSSClient.putObject(OSSClient.java:412)
+	at com.aliyun.oss.OSSClient.putObject(OSSClient.java:399)
+	at com.izouma.awesomeadmin.service.OSSFileService.upload(OSSFileService.java:50)
+	at com.izouma.awesomeadmin.util.VideoProcessTool.uploadImage(VideoProcessTool.java:343)
+	at com.izouma.awesomeadmin.util.VideoProcessTool.processVideo(VideoProcessTool.java:72)
+	at VideoProcessTest.testVideo(VideoProcessTest.java:30)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
+	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
+	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
+	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
+	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
+	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
+	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
+	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
+	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
+Caused by: java.net.UnknownHostException: microball.oss-cn-hangzhou.aliyuncs.com
+	at java.net.InetAddress.getAllByName0(InetAddress.java:1280)
+	at java.net.InetAddress.getAllByName(InetAddress.java:1192)
+	at java.net.InetAddress.getAllByName(InetAddress.java:1126)
+	at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
+	at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:262)
+	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:161)
+	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
+	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
+	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
+	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
+	at com.aliyun.oss.common.comm.DefaultServiceClient.sendRequestCore(DefaultServiceClient.java:64)
+	... 41 more
+[2019-03-29 11:01:00] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-29 11:01:24] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-29 11:06:47] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-29 11:07:56] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.
+[2019-03-29 11:09:13] [WARN ] - Bad pool size config, start 3 < min 5. Using 5 as start.

+ 1046 - 0
pom.xml

@@ -0,0 +1,1046 @@
+<?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.izouma</groupId>
+    <artifactId>awesome-admin</artifactId>
+    <version>1.0.0</version>
+    <packaging>war</packaging>
+
+    <name>awesome-admin</name>
+    <url>http://www.izouma.com</url>
+
+    <!-- 项目属性 -->
+    <properties>
+        <!-- other libs -->
+        <lib.path>${basedir}/src/main/webapp/WEB-INF/lib</lib.path>
+        <!-- main version setting -->
+        <spring.version>4.3.5.RELEASE</spring.version>
+        <validator.version>5.4.0.Final</validator.version>
+        <mybatis.version>3.3.1</mybatis.version>
+        <mybatis-spring.version>1.2.2</mybatis-spring.version>
+        <druid.version>1.0.31</druid.version>
+        <ehcache.version>2.6.11</ehcache.version>
+        <ehcache-web.version>2.0.4</ehcache-web.version>
+        <shiro.version>1.4.0</shiro.version>
+        <sitemesh.version>2.4.2</sitemesh.version>
+        <activiti.version>5.22.0</activiti.version>
+
+        <!-- tools version setting -->
+        <slf4j.version>1.7.25</slf4j.version>
+        <log4j.version>1.2.17</log4j.version>
+        <commons-io.version>2.4</commons-io.version>
+        <commons-codec.version>1.9</commons-codec.version>
+        <commons-fileupload.version>1.3.1</commons-fileupload.version>
+        <commons-beanutils.version>1.9.1</commons-beanutils.version>
+        <jackson.version>2.8.6</jackson.version>
+        <fastjson.version>1.1.40</fastjson.version>
+        <xstream.version>1.4.9</xstream.version>
+        <dozer.version>5.5.1</dozer.version>
+        <poi.version>3.9</poi.version>
+        <freemarker.version>2.3.25-incubating</freemarker.version>
+        <quartz.version>2.2.3</quartz.version>
+        <ckfinder.version>2.3</ckfinder.version>
+
+        <guava.version>20.0</guava.version>
+        <commons-lang3.version>3.5</commons-lang3.version>
+        <commons-text.version>1.3</commons-text.version>
+        <commons-collections.version>4.1</commons-collections.version>
+
+        <!-- jdbc driver setting -->
+        <mysql.driver.version>5.1.30</mysql.driver.version>
+        <sqlserver.driver.version>4.0.0</sqlserver.driver.version>
+        <oracle.driver.version>10.2.0.4.0</oracle.driver.version>
+        <mssql.driver.version>1.3.1</mssql.driver.version>
+
+        <!-- environment setting -->
+        <jdk.version>1.8</jdk.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <downloadSources>true</downloadSources>
+
+    </properties>
+    <!-- 设定仓库 -->
+    <!--<repositories>-->
+    <!--<repository>-->
+    <!--<id>central-repos</id>-->
+    <!--<name>Central Repository</name>-->
+    <!--<url>http://maven.aliyun.com/nexus/content/groups/public/</url>-->
+    <!--<releases>-->
+    <!--<enabled>true</enabled>-->
+    <!--</releases>-->
+    <!--<snapshots>-->
+    <!--<enabled>false</enabled>-->
+    <!--</snapshots>-->
+    <!--</repository>-->
+
+    <!--<repository>-->
+    <!--<id>central-repos2</id>-->
+    <!--<name>Central Repository 2</name>-->
+    <!--<url>http://mvnrepo.code.taobao.org/nexus/content/repositories/snapshots/</url>-->
+    <!--<releases>-->
+    <!--<enabled>true</enabled>-->
+    <!--</releases>-->
+    <!--<snapshots>-->
+    <!--<enabled>false</enabled>-->
+    <!--</snapshots>-->
+    <!--</repository>-->
+
+    <!--<repository>-->
+    <!--<id>springsource-repos</id>-->
+    <!--<name>SpringSource Repository</name>-->
+    <!--<url>http://mvnrepo.code.taobao.org/nexus/content/repositories/releases/</url>-->
+    <!--<releases>-->
+    <!--<enabled>true</enabled>-->
+    <!--</releases>-->
+    <!--<snapshots>-->
+    <!--<enabled>false</enabled>-->
+    <!--</snapshots>-->
+    <!--</repository>-->
+    <!---->
+    <!--<repository>-->
+    <!--<id>bitwalker.user-agent-utils.mvn.repo</id>-->
+    <!--<url>https://nexus.jackpinetech.com/nexus/content/groups/public</url>-->
+    <!--&lt;!&ndash; use snapshot version &ndash;&gt;-->
+    <!--<snapshots>-->
+    <!--<updatePolicy>always</updatePolicy>-->
+    <!--</snapshots>-->
+    <!--</repository>-->
+    <!--</repositories>-->
+    <build>
+        <finalName>awesome-admin</finalName>
+        <resources>
+            <resource>
+                <directory>src/main/java</directory>
+                <filtering>true</filtering>
+                <includes>
+                    <include>**/*.xml</include>
+                    <include>**/*.properties</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>${jdk.version}</source>
+                    <target>${jdk.version}</target>
+                    <compilerArgs>
+                        <!--<arg>-Dfile.encoding=UTF-8</arg>-->
+                    </compilerArgs>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <skip>true</skip>
+                    <testFailureIgnore>true</testFailureIgnore>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <!-- 依赖项定义 -->
+    <dependencies>
+        <!-- SPRING begin -->
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-core</artifactId>
+            <version>${spring.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-beans</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context-support</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-aop</artifactId>
+            <version>${spring.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-tx</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-expression</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+
+        <!-- spring orm -->
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-orm</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-jdbc</artifactId>
+            <version>${spring.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>c3p0</groupId>
+                    <artifactId>c3p0</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- spring websocket-->
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-websocket</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-messaging</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+
+        <!-- bean validate -->
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>${validator.version}</version>
+        </dependency>
+        <!-- SPRING end -->
+
+        <!-- AOP begin -->
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjrt</artifactId>
+            <version>1.7.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjweaver</artifactId>
+            <version>1.7.4</version>
+        </dependency>
+        <dependency>
+            <groupId>cglib</groupId>
+            <artifactId>cglib</artifactId>
+            <version>3.1</version>
+        </dependency>
+        <!-- AOP end -->
+
+        <!-- PERSISTENCE begin -->
+
+        <!-- MyBatis -->
+        <dependency>
+            <groupId>org.mybatis</groupId>
+            <artifactId>mybatis</artifactId>
+            <version>${mybatis.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis</groupId>
+            <artifactId>mybatis-spring</artifactId>
+            <version>${mybatis-spring.version}</version>
+        </dependency>
+
+        <!-- connection pool -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>${druid.version}</version>
+        </dependency>
+
+        <!-- jdbc driver -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>${mysql.driver.version}</version>
+        </dependency>
+        <!--<dependency>-->
+        <!--<groupId>com.microsoft.sqlserver</groupId>-->
+        <!--<artifactId>sqljdbc4</artifactId>-->
+        <!--<version>${sqlserver.driver.version}</version>-->
+        <!--</dependency>-->
+        <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/sqljdbc4 -->
+        <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>mssql-jdbc</artifactId>
+            <version>6.4.0.jre8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.mchange</groupId>
+            <artifactId>c3p0</artifactId>
+            <version>0.9.5.2</version>
+        </dependency>
+
+        <!-- WEB begin -->
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-web</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-webmvc</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-oxm</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>opensymphony</groupId>
+            <artifactId>sitemesh</artifactId>
+            <version>${sitemesh.version}</version>
+        </dependency>
+        <!--<dependency>-->
+        <!--<groupId>taglibs</groupId>-->
+        <!--<artifactId>standard</artifactId>-->
+        <!--<version>1.1.2</version>-->
+        <!--<type>jar</type>-->
+        <!--</dependency>-->
+
+
+        <dependency>
+            <groupId>javax</groupId>
+            <artifactId>javaee-api</artifactId>
+            <version>7.0</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>jstl</artifactId>
+            <version>1.2</version>
+            <type>jar</type>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet.jsp</groupId>
+            <artifactId>jsp-api</artifactId>
+            <version>2.1</version>
+            <scope>provided</scope>
+        </dependency>
+        <!--  <dependency>
+             <groupId>javax.servlet</groupId>
+             <artifactId>javax.servlet-api</artifactId>
+             <version>3.0.1</version>
+             <scope>provided</scope>
+         </dependency>
+         <dependency>
+             <groupId>javax.servlet.jsp</groupId>
+             <artifactId>jsp-api</artifactId>
+             <version>2.2</version>
+             <scope>provided</scope>
+         </dependency>-->
+
+        <dependency>
+            <groupId>net.sf.ehcache</groupId>
+            <artifactId>ehcache-core</artifactId>
+            <version>${ehcache.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jgroups</groupId>
+            <artifactId>jgroups</artifactId>
+            <version>3.6.6.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>redis.clients</groupId>
+            <artifactId>jedis</artifactId>
+            <version>2.8.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+            <version>2.4.2</version>
+        </dependency>
+        <dependency>
+            <groupId>de.ruedigermoeller</groupId>
+            <artifactId>fst</artifactId>
+            <version>2.42</version>
+        </dependency>
+        <dependency>
+            <groupId>com.esotericsoftware</groupId>
+            <artifactId>kryo-shaded</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+        <!-- CACHE end -->
+
+        <!-- SECURITY begin -->
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-core</artifactId>
+            <version>${shiro.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-spring</artifactId>
+            <version>${shiro.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-cas</artifactId>
+            <version>${shiro.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-web</artifactId>
+            <version>${shiro.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-ehcache</artifactId>
+            <version>${shiro.version}</version>
+        </dependency>
+        <!-- SECURITY end -->
+
+        <!-- Activiti -->
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-engine</artifactId>
+            <version>${activiti.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-spring</artifactId>
+            <version>${activiti.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-explorer</artifactId>
+            <version>${activiti.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>vaadin</artifactId>
+                    <groupId>com.vaadin</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>dcharts-widget</artifactId>
+                    <groupId>org.vaadin.addons</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>activiti-simple-workflow</artifactId>
+                    <groupId>org.activiti</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-modeler</artifactId>
+            <version>${activiti.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-rest</artifactId>
+            <version>${activiti.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-diagram-rest</artifactId>
+            <version>${activiti.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-json-converter</artifactId>
+            <version>${activiti.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-cxf</artifactId>
+            <version>${activiti.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>xerces</groupId>
+            <artifactId>xercesImpl</artifactId>
+            <version>2.11.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-api</artifactId>
+            <version>2.7.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-frontend-jaxws</artifactId>
+            <version>2.7.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-transports-http-jetty</artifactId>
+            <version>2.7.6</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-transports-http</artifactId>
+            <version>2.7.6</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-impl</artifactId>
+            <version>2.2.11</version>
+        </dependency>
+
+
+        <!-- LOGGING begin -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <!-- common-logging 实际调用slf4j -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <!-- java.util.logging 实际调用slf4j -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jul-to-slf4j</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>${log4j.version}</version>
+        </dependency>
+        <!-- LOGGING end -->
+
+        <!-- GENERAL UTILS begin -->
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>${commons-io.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>${commons-codec.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <version>${commons-fileupload.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils</artifactId>
+            <version>${commons-beanutils.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-text</artifactId>
+            <version>${commons-text.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-collections4</artifactId>
+            <version>${commons-collections.version}</version>
+        </dependency>
+
+
+        <!-- jackson json -->
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.module</groupId>
+            <artifactId>jackson-module-jaxb-annotations</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+
+        <!-- fastjson json-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>${fastjson.version}</version>
+        </dependency>
+
+        <!-- xstream xml -->
+        <dependency>
+            <groupId>com.thoughtworks.xstream</groupId>
+            <artifactId>xstream</artifactId>
+            <version>${xstream.version}</version>
+        </dependency>
+
+        <!-- pojo copy -->
+        <dependency>
+            <groupId>net.sf.dozer</groupId>
+            <artifactId>dozer</artifactId>
+            <version>${dozer.version}</version>
+        </dependency>
+
+        <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j -->
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+            <version>2.5.1</version>
+        </dependency>
+
+
+        <!-- template engine -->
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+            <version>${freemarker.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.ibeetl</groupId>
+            <artifactId>beetl</artifactId>
+            <version>2.7.5</version>
+        </dependency>
+
+        <!-- email -->
+        <dependency>
+            <groupId>javax.mail</groupId>
+            <artifactId>mail</artifactId>
+            <version>1.4.7</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.activation</groupId>
+            <artifactId>activation</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+
+        <!-- poi office -->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>${poi.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>${poi.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml-schemas</artifactId>
+            <version>${poi.version}</version>
+        </dependency>
+
+        <!-- image util -->
+        <dependency>
+            <groupId>com.drewnoakes</groupId>
+            <artifactId>metadata-extractor</artifactId>
+            <version>2.10.1</version>
+        </dependency>
+
+        <!-- 条形码、二维码生成  -->
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+            <version>3.3.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>batik</groupId>
+            <artifactId>batik-util</artifactId>
+            <version>1.6-1</version>
+        </dependency>
+
+        <!-- quartz -->
+        <dependency>
+            <groupId>org.quartz-scheduler</groupId>
+            <artifactId>quartz</artifactId>
+            <version>${quartz.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>c3p0</groupId>
+                    <artifactId>c3p0</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.quartz-scheduler</groupId>
+            <artifactId>quartz-jobs</artifactId>
+            <version>${quartz.version}</version>
+        </dependency>
+
+        <!--&lt;!&ndash; 中文分词 &ndash;&gt;-->
+        <!--<dependency>-->
+        <!--<groupId>org.wltea</groupId>-->
+        <!--<artifactId>analyzer</artifactId>-->
+        <!--<version>2012_u6</version>-->
+        <!--</dependency>-->
+        <!-- GENERAL UTILS end -->
+
+        <!-- sigar -->
+        <!-- https://mvnrepository.com/artifact/org.fusesource/sigar -->
+        <dependency>
+            <groupId>org.fusesource</groupId>
+            <artifactId>sigar</artifactId>
+            <version>1.6.4</version>
+        </dependency>
+        <!-- CKFinder begin -->
+        <dependency>
+            <groupId>net.coobird</groupId>
+            <artifactId>thumbnailator</artifactId>
+            <version>0.4.8</version>
+        </dependency>
+        <!--<dependency>-->
+        <!--<groupId>com.ckfinder</groupId>-->
+        <!--<artifactId>apache-ant-zip</artifactId>-->
+        <!--<version>${ckfinder.version}</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+        <!--<groupId>com.ckfinder</groupId>-->
+        <!--<artifactId>ckfinder</artifactId>-->
+        <!--<version>${ckfinder.version}</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+        <!--<groupId>com.ckfinder</groupId>-->
+        <!--<artifactId>ckfinderplugin-fileeditor</artifactId>-->
+        <!--<version>${ckfinder.version}</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+        <!--<groupId>com.ckfinder</groupId>-->
+        <!--<artifactId>ckfinderplugin-imageresize</artifactId>-->
+        <!--<version>${ckfinder.version}</version>-->
+        <!--</dependency>-->
+        <!-- CKFinder end -->
+
+        <!-- Echarts图表依赖包开始 -->
+        <!-- https://mvnrepository.com/artifact/com.github.abel533/ECharts -->
+        <dependency>
+            <groupId>com.github.abel533</groupId>
+            <artifactId>ECharts</artifactId>
+            <version>3.0.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.6.2</version>
+        </dependency>
+        <!-- Echarts图表依赖包结束 -->
+
+        <!-- TEST begin -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <!-- TEST end -->
+        <dependency>
+            <groupId>eu.bitwalker</groupId>
+            <artifactId>UserAgentUtils</artifactId>
+            <version>1.20</version>
+        </dependency>
+
+        <!--httpcore -->
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4.4</version>
+        </dependency>
+
+
+        <!-- swagger-springmvc -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.7.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.7.0</version>
+        </dependency>
+        <!-- swagger-springmvc -->
+
+        <!--httpclient -->
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.2</version>
+        </dependency>
+
+        <!-- UTILS begin -->
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>${guava.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>${commons-lang3.version}</version>
+        </dependency>
+        <!-- UTILS end -->
+
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.0.6</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
+            <version>1.1.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-vod</artifactId>
+            <version>2.2.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>2.0.6</version>
+        </dependency>
+
+        <dependency>
+            <groupId>aopalliance</groupId>
+            <artifactId>aopalliance</artifactId>
+            <version>1.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>dom4j</groupId>
+            <artifactId>dom4j</artifactId>
+            <version>1.6.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.sf.ezmorph</groupId>
+            <artifactId>ezmorph</artifactId>
+            <version>1.0.6</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jboss.logging</groupId>
+            <artifactId>jboss-logging</artifactId>
+            <version>3.3.0.Final</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jboss</groupId>
+            <artifactId>jboss-vfs</artifactId>
+            <version>3.2.12.Final</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jdom</groupId>
+            <artifactId>jdom</artifactId>
+            <version>1.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.jettison</groupId>
+            <artifactId>jettison</artifactId>
+            <version>1.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.sf.json-lib</groupId>
+            <artifactId>json-lib</artifactId>
+            <classifier>jdk15</classifier>
+            <version>2.4</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.json</groupId>
+            <artifactId>json</artifactId>
+            <version>20160810</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.drewnoakes</groupId>
+            <artifactId>metadata-extractor</artifactId>
+            <version>2.10.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.coobird</groupId>
+            <artifactId>thumbnailator</artifactId>
+            <version>0.4.8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.adobe.xmp</groupId>
+            <artifactId>xmpcore</artifactId>
+            <version>5.1.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>xpp3</groupId>
+            <artifactId>xpp3_min</artifactId>
+            <version>1.1.4c</version>
+        </dependency>
+
+        <!--<dependency>-->
+        <!--<groupId>org.apache.velocity</groupId>-->
+        <!--<artifactId>velocity-engine-core</artifactId>-->
+        <!--<version>2.0</version>-->
+        <!--</dependency>-->
+        <!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity -->
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity</artifactId>
+            <version>1.7</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-tools</artifactId>
+            <version>2.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fasterxml.uuid</groupId>
+            <artifactId>java-uuid-generator</artifactId>
+            <version>3.1.3</version>
+        </dependency>
+        <!--<dependency>-->
+        <!--<groupId>com.baidu</groupId>-->
+        <!--<artifactId>ueditor</artifactId>-->
+        <!--<version>1.1.2</version>-->
+        <!--<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ueditor-1.1.2.jar</systemPath>-->
+        <!--</dependency>-->
+
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-api</artifactId>
+            <version>0.10.1</version>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-impl</artifactId>
+            <version>0.10.1</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-jackson</artifactId>
+            <version>0.10.1</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>3.3.49.ALL</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.java.dev.jna</groupId>
+            <artifactId>jna</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.jpush.api</groupId>
+            <artifactId>jpush-client</artifactId>
+            <version>3.3.10</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.bytedeco</groupId>
+            <artifactId>javacv-platform</artifactId>
+            <version>1.4.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bytedeco.javacpp-presets</groupId>
+            <artifactId>opencv-platform</artifactId>
+            <version>4.0.1-1.4.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bytedeco.javacpp-presets</groupId>
+            <artifactId>ffmpeg-platform</artifactId>
+            <version>4.1-1.4.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bytedeco.javacpp-presets</groupId>
+            <artifactId>tesseract-platform</artifactId>
+            <version>4.0.0-1.4.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bytedeco.javacpp-presets</groupId>
+            <artifactId>leptonica-platform</artifactId>
+            <version>1.77.0-1.4.4</version>
+        </dependency>
+
+
+        <!--httpclient-->
+        <dependency>
+            <groupId>com.github.kevinsawicki</groupId>
+            <artifactId>http-request</artifactId>
+            <version>6.0</version>
+        </dependency>
+
+    </dependencies>
+
+</project>

+ 10 - 0
runConfigurations/Install_Dependencies.xml

@@ -0,0 +1,10 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="Install Dependencies" type="js.build_tools.npm" factoryName="npm">
+    <package-json value="$PROJECT_DIR$/src/main/vue/package.json" />
+    <command value="install" />
+    <arguments value="-verbose" />
+    <node-interpreter value="project" />
+    <envs />
+    <method />
+  </configuration>
+</component>

+ 75 - 0
runConfigurations/Tomcat.xml

@@ -0,0 +1,75 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="Tomcat" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.5.30" ALTERNATIVE_JRE_ENABLED="false">
+    <option name="OPEN_IN_BROWSER" value="false" />
+    <option name="UPDATE_ON_FRAME_DEACTIVATION" value="true" />
+    <option name="UPDATING_POLICY" value="redeploy-artifacts" />
+    <deployment>
+      <artifact name="awesome-admin:war exploded">
+        <settings>
+          <option name="CONTEXT_PATH" value="/" />
+        </settings>
+      </artifact>
+    </deployment>
+    <server-settings>
+      <option name="BASE_DIRECTORY_NAME" value="Unnamed_awesome-admin" />
+    </server-settings>
+    <predefined_log_file id="Tomcat" enabled="true" />
+    <predefined_log_file id="Tomcat Catalina" enabled="true" />
+    <predefined_log_file id="Tomcat Manager" enabled="false" />
+    <predefined_log_file id="Tomcat Host Manager" enabled="false" />
+    <predefined_log_file id="Tomcat Localhost Access" enabled="false" />
+    <RunnerSettings RunnerId="Debug">
+      <option name="DEBUG_PORT" value="51593" />
+    </RunnerSettings>
+    <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
+      <option name="USE_ENV_VARIABLES" value="true" />
+      <STARTUP>
+        <option name="USE_DEFAULT" value="true" />
+        <option name="SCRIPT" value="" />
+        <option name="VM_PARAMETERS" value="" />
+        <option name="PROGRAM_PARAMETERS" value="" />
+      </STARTUP>
+      <SHUTDOWN>
+        <option name="USE_DEFAULT" value="true" />
+        <option name="SCRIPT" value="" />
+        <option name="VM_PARAMETERS" value="" />
+        <option name="PROGRAM_PARAMETERS" value="" />
+      </SHUTDOWN>
+    </ConfigurationWrapper>
+    <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
+      <option name="USE_ENV_VARIABLES" value="true" />
+      <STARTUP>
+        <option name="USE_DEFAULT" value="true" />
+        <option name="SCRIPT" value="" />
+        <option name="VM_PARAMETERS" value="" />
+        <option name="PROGRAM_PARAMETERS" value="" />
+      </STARTUP>
+      <SHUTDOWN>
+        <option name="USE_DEFAULT" value="true" />
+        <option name="SCRIPT" value="" />
+        <option name="VM_PARAMETERS" value="" />
+        <option name="PROGRAM_PARAMETERS" value="" />
+      </SHUTDOWN>
+    </ConfigurationWrapper>
+    <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
+      <option name="USE_ENV_VARIABLES" value="true" />
+      <STARTUP>
+        <option name="USE_DEFAULT" value="true" />
+        <option name="SCRIPT" value="" />
+        <option name="VM_PARAMETERS" value="" />
+        <option name="PROGRAM_PARAMETERS" value="" />
+      </STARTUP>
+      <SHUTDOWN>
+        <option name="USE_DEFAULT" value="true" />
+        <option name="SCRIPT" value="" />
+        <option name="VM_PARAMETERS" value="" />
+        <option name="PROGRAM_PARAMETERS" value="" />
+      </SHUTDOWN>
+    </ConfigurationWrapper>
+    <method>
+      <option name="BuildArtifacts" enabled="true">
+        <artifact name="awesome-admin:war exploded" />
+      </option>
+    </method>
+  </configuration>
+</component>

+ 12 - 0
runConfigurations/Vue_Build.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="Vue Build" type="js.build_tools.npm" factoryName="npm">
+    <package-json value="$PROJECT_DIR$/src/main/vue/package.json" />
+    <command value="run" />
+    <scripts>
+      <script value="build" />
+    </scripts>
+    <node-interpreter value="project" />
+    <envs />
+    <method />
+  </configuration>
+</component>

+ 12 - 0
runConfigurations/Vue_Server.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="Vue Server" type="js.build_tools.npm" factoryName="npm">
+    <package-json value="$PROJECT_DIR$/src/main/vue/package.json" />
+    <command value="run" />
+    <scripts>
+      <script value="dev" />
+    </scripts>
+    <node-interpreter value="project" />
+    <envs />
+    <method />
+  </configuration>
+</component>

+ 621 - 0
src/main/java/com/izouma/awesomeadmin/constant/AppConstant.java

@@ -0,0 +1,621 @@
+package com.izouma.awesomeadmin.constant;
+
+/**
+ * <p>
+ * app常量
+ * </p>
+ */
+public interface AppConstant {
+
+
+//    /**
+//     * 商户号
+//     */
+//    String MCH_ID = "1379284802";
+//
+//    /**
+//     * 子商户号
+//     */
+//    String SUB_MCH_ID = "";
+//
+//    /**
+//     * 商户密钥
+//     */
+//    String MCH_SECRET = "R4q0yoo5GXh9A3CDiKJ6v7hgiE0aT0rM";
+
+    /**
+     * 货币类型
+     */
+    String FEE_TYPE = "CNY";
+
+    /**
+     * 交易类型 扫码
+     */
+    String TRADE_TYPE_NATIVE = "NATIVE";
+
+    /**
+     * 交易类型 公众号H5
+     */
+    String TRADE_TYPE_JSAPI = "JSAPI";
+
+    /**
+     * 交易类型 APP
+     */
+    String TRADE_TYPE_APP = "APP";
+
+    /**
+     * 设备号 PC网页或公众号内支付请传"WEB"
+     */
+    String DEVICE_INFO = "WEB";
+
+//    /**
+//     * 标题
+//     */
+//    String BODY = "工蜂家服产品";
+//
+//    /**
+//     * 标题
+//     */
+//    String BODY_RECHARGE = "工蜂家服充值";
+//
+//    /**
+//     * 通知地址
+//     */
+//    String NOTIFY_URL = "http://www.gfjiafu.com/wxpay/notify";
+//
+//    /**
+//     * 通知地址
+//     */
+//    String GXNOTIFY_URL = "http://www.gfjiafu.com/GXwxpay/notify";
+//
+//    /**
+//     * 通知地址
+//     */
+//    String NOTIFY_URL_RECHARGE = "http://www.gfjiafu.com/wxpay/notifyRecharge";
+//
+//    /**
+//     * 商户名称
+//     */
+//    String SEND_NAME = "工蜂家服";
+
+    String PAGE = "page";
+
+
+    public interface PayMode {
+
+        /**
+         * 支付宝
+         */
+        Integer ALIPAY = 0;
+
+        /**
+         * 微信
+         */
+        Integer WEI_XIN = 1;
+
+        /**
+         * 电子币
+         */
+        Integer COIN = 2;
+    }
+
+    /**
+     * 充值类型
+     */
+    public interface RechargeType {
+
+        /**
+         * 支付宝
+         */
+        Integer ALIPAY = 0;
+
+        /**
+         * 微信
+         */
+        Integer WEI_XIN = 1;
+
+        /**
+         * 后台管理员
+         */
+        Integer ADMIN = 2;
+
+
+        /**
+         * 其他
+         */
+        Integer OTHER = 3;
+    }
+
+    public interface InergralUpdateType {
+
+        /**
+         * 产品抵扣
+         */
+        Integer DISCOUNT = 0;
+
+        /**
+         * 任务
+         */
+        Integer TASK = 1;
+
+        /**
+         * 充值
+         */
+        Integer RECHARGE = 2;
+    }
+
+    public interface OrderStatus {
+
+        /**
+         * 下单,待付款
+         */
+        Integer NO_PAY = 0;
+
+        /**
+         * 支付完成,待上传原图、代发货
+         */
+        Integer PAY_OVER = 1;
+
+        /**
+         * 待修图、已发货
+         */
+        Integer WAIT_REPAIR = 2;
+
+        /**
+         * 修图完成待验收、
+         */
+        Integer ACCEPT = 3;
+
+        /**
+         * 验收不通过,待返修
+         */
+        Integer REWORK = 4;
+
+
+        /**
+         * 验收完成待评论、已收货待评论
+         */
+        Integer FINISH = 5;
+
+        /**
+         * 结束
+         */
+        Integer END = 6;
+
+
+        /**
+         * 退款中
+         */
+        Integer REFUNDING = 7;
+
+        /**
+         * 已经取消
+         */
+        Integer CANCEL = 8;
+
+
+        /**
+         * 退款失败
+         */
+        Integer REFUND_FAIL = 9;
+
+        /**
+         * 退款成功
+         */
+        Integer REFUND_SUCCESS = 10;
+
+
+    }
+
+    /**
+     * <p>货币类型。</p>
+     *
+     * @author 姓名 <br />
+     * 更新履历 <br />
+     * 日期 : 姓名: 更新内容<br />
+     * @version 1.0
+     */
+    public interface CoinType {
+
+        /**
+         * 充值
+         */
+        Integer RECHARGE = 0;
+
+        /**
+         * 消费/加入房间
+         */
+        Integer CONSUMPTION = 1;
+
+        /**
+         * 兑换
+         */
+        Integer EXCHANGE = 2;
+
+        /**
+         * 提现
+         */
+        Integer CASH = 3;
+
+        /**
+         * 税收
+         */
+        Integer TAXES = 4;
+
+
+        /**
+         * 销售
+         */
+        Integer SALE = 5;
+
+        /**
+         * 返还
+         */
+        Integer FAN_HUAN = 6;
+
+
+        /**
+         * 退款
+         */
+        Integer REFUND = 7;
+
+        /**
+         * 赠送
+         */
+        Integer SONG = 8;
+
+        /**
+         * 奖励
+         */
+        Integer BONUS = 9;
+
+    }
+
+    public interface Aliapi {
+
+        /**
+         * 交易创建,等待买家付款
+         */
+        String WAIT_BUYER_PAY = "WAIT_BUYER_PAY";
+
+        /**
+         * 未付款交易超时关闭,或支付完成后全额退款
+         */
+        String TRADE_CLOSED = "TRADE_CLOSED";
+
+        /**
+         * 交易支付成功
+         */
+        String TRADE_SUCCESS = "TRADE_SUCCESS";
+
+        /**
+         * 交易结束,不可退款
+         */
+        String TRADE_FINISHED = "TRADE_FINISHED";
+
+        /**
+         * typeFlag, 购买,订单付款
+         */
+        Integer BUY = 0;
+
+        /**
+         * typeFlag,充值
+         */
+        Integer RECHARGE = 1;
+
+        /**
+         * 押金
+         */
+        Integer CASH_PLEDGE = 2;
+
+    }
+
+    /**
+     * 商品类型
+     */
+    public interface ProductType {
+
+        /**
+         * 充值
+         */
+        Integer RECHARGE = 0;
+
+        /**
+         * 消费
+         */
+        Integer CONSUMPTION = 1;
+    }
+
+    /**
+     * 房间状态
+     */
+    public interface HouseStatus {
+
+        /**
+         * 等待
+         */
+        Integer WAIT = 0;
+
+        /**
+         * 准备
+         */
+        Integer READY = 1;
+
+        /**
+         * 开始
+         */
+        Integer START = 2;
+
+        /**
+         * 结束
+         */
+        Integer END = 3;
+
+        /**
+         * 结算
+         */
+        Integer SETTLEMENT = 4;
+
+        /**
+         * 关闭
+         */
+        Integer CLOSE = 5;
+
+        /**
+         * 解析完成
+         */
+        Integer ANALYSIS = 8;
+
+    }
+
+    /**
+     * 玩家状态
+     */
+    public interface PlayerStatus {
+        /**
+         * 加入
+         */
+        Integer JOIN = 0;
+
+        /**
+         * 准备
+         */
+        Integer READY = 1;
+
+        /**
+         * 开始
+         */
+        Integer START = 2;
+
+        /**
+         * 结束
+         */
+        Integer END = 3;
+
+        /**
+         * 结算
+         */
+        Integer SETTLEMENT = 4;
+
+        /**
+         * 领取奖励
+         */
+        Integer RECEIVE = 5;
+
+        /**
+         * 未比赛
+         */
+        Integer NO_MATCH = 6;
+
+        /**
+         * 比赛超时
+         */
+        Integer OVERTIME = 7;
+
+        /**
+         * 解析完成
+         */
+        Integer PROCESSED = 8;
+
+        /**
+         * 解析失败
+         */
+        Integer PROCESSED_FAIL = 9;
+
+    }
+
+    /**
+     * 审核类型
+     */
+    public interface ExamineType {
+        /**
+         * 未参赛
+         */
+        Integer NO_MATCH = 0;
+
+        /**
+         * 自动审核
+         */
+        Integer AUTO = 1;
+
+        /**
+         * 手动审核
+         */
+        Integer MANUAL = 2;
+    }
+
+
+    /**
+     * 系统通知类型
+     */
+    public interface NoticeType {
+        /**
+         * 未参赛
+         */
+        Integer NO_MATCH = 0;
+
+        /**
+         * 比赛结果
+         */
+        Integer RESULT = 1;
+
+        /**
+         * 奖金领取
+         */
+        Integer RECEIVE = 2;
+
+        /**
+         * 赛季奖金
+         */
+        Integer SEASON_BONUS = 3;
+
+        /**
+         * 比赛解析失败
+         */
+        Integer FAIL = 4;
+
+        /**
+         * 比赛超时
+         */
+        Integer OVERTIME = 5;
+
+
+        /**
+         * 分润
+         */
+        Integer FEN_RUN = 6;
+
+
+    }
+
+    /**
+     * 赛季状态
+     */
+    public interface SeasonStatus {
+        /**
+         * 准备中
+         */
+        Integer READY = 0;
+
+        /**
+         * 进行中
+         */
+        Integer START = 1;
+
+        /**
+         * 结算中
+         */
+        Integer SETTLEMENT = 2;
+        /**
+         * 结束
+         */
+        Integer END = 3;
+
+    }
+
+    /**
+     * 奖牌
+     */
+    public interface Medals {
+        /**
+         * 金牌
+         */
+        String GOLD = "gold";
+
+        /**
+         * 金牌积分
+         */
+        Integer GOLD_SCORE = 10;
+
+        /**
+         * 银牌
+         */
+        String SILVER = "silver";
+
+        /**
+         * 银牌积分
+         */
+        Integer SILVER_SCORE = 5;
+
+        /**
+         * 铜牌
+         */
+        String BRONZE = "bronze";
+
+        /**
+         * 铜牌积分
+         */
+        Integer BRONZE_SCORE = 2;
+
+        /**
+         * 白金牌
+         */
+        String PLATINUM = "platinum";
+
+        /**
+         * 白金牌积分
+         */
+        Integer PLATINUM_SCORE = 15;
+
+
+    }
+
+    public interface PayCodeType {
+
+        /**
+         * 微信
+         */
+        String wechat = "wechat";
+        /**
+         * 支付宝
+         */
+        String alipay = "alipay";
+        /**
+         * 云闪付
+         */
+        String cloud_flash = "cloud_flash";
+        /**
+         * 银联
+         */
+        String union_pay = "union_pay";
+        /**
+         * 微信实时
+         */
+        String wechat_real_time = "wechat_real_time";
+        /**
+         * 淘宝
+         */
+        String taobao = "taobao";
+        /**
+         * 信用卡
+         */
+        String credit_card = "credit_card";
+
+
+    }
+
+    public interface PayCodeOrderStatus {
+
+        /**
+         * 待支付
+         */
+        int wait_pay = 0;
+        /**
+         * 成功
+         */
+        int success = 1;
+
+        /**
+         * 取消
+         */
+        int cancel = 2;
+
+        /**
+         * 退款
+         */
+        int refund = 3;
+
+
+    }
+
+}

+ 36 - 0
src/main/java/com/izouma/awesomeadmin/constant/RongConstant.java

@@ -0,0 +1,36 @@
+package com.izouma.awesomeadmin.constant;
+
+/**
+ * 
+ * <p>
+ * 融云常量
+ * </p>
+ */
+public interface RongConstant {
+
+    /**
+     * 验证码模板
+     */
+    String VERIFY_TEMPLATEID = "fMsDXJ0Y4pCbrtN4a66JGx";
+
+    /**
+     * 通知模板
+     */
+    String NOTIFY_TEMPLATEID = "a6ZrRkr3AKqaDMizqPhFEi";
+
+    /**
+     * 提交订单
+     */
+    String TI_JIAO_DIN_DAN   = "0Q3R5Enjk_58Ycq-XEqAQt";
+
+    /**
+     * 派送订单
+     */
+    String PAI_SONG_DIN_DAN  = "e5daKayLkqi8WJnckJguke";
+
+    /**
+     * 通用
+     */
+    String COMMON_TEMPLATEID = "e8kzeKB5Ahx9Vnm7tPESn3";
+
+}

+ 17 - 0
src/main/java/com/izouma/awesomeadmin/container/DateConverter.java

@@ -0,0 +1,17 @@
+package com.izouma.awesomeadmin.container;
+
+import org.springframework.core.convert.converter.Converter;
+
+import java.util.Date;
+
+public class DateConverter implements Converter<String, Date> {
+    @Override
+    public Date convert(String source) {
+        try {
+            return new Date(Long.valueOf(source));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}

+ 26 - 0
src/main/java/com/izouma/awesomeadmin/container/Lifecycle.java

@@ -0,0 +1,26 @@
+package com.izouma.awesomeadmin.container;
+
+/**
+ * 启动项,可在容器启动时加载
+ * @author Administrator
+ *
+ */
+public interface Lifecycle {
+	/**
+	 * 启动初始化
+	 * @return
+	 */
+	boolean init();
+	
+	/**
+	 * 启动项信息
+	 * @return
+	 */
+	String getItemInfo();
+	
+	/**
+	 * 关闭
+	 * @return
+	 */
+	boolean close();	
+}

+ 70 - 0
src/main/java/com/izouma/awesomeadmin/container/StartupListener.java

@@ -0,0 +1,70 @@
+package com.izouma.awesomeadmin.container;
+
+import com.izouma.awesomeadmin.util.Const;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * 启动监听方法
+ *
+ * @author OnceMad
+ */
+public class StartupListener implements ServletContextListener {
+
+    private static List<Lifecycle> startups = new LinkedList<Lifecycle>();
+
+    static {
+        //startups.add(new PhotoCheckWorker());
+    }
+
+
+    @Override
+    public void contextInitialized(ServletContextEvent sce) {
+
+        System.out.println("==================context Initialized=====================");
+
+        for (Lifecycle lifecycle : startups) {
+            System.out.print(lifecycle.getItemInfo() + " is start ");
+            if (lifecycle.init()) {
+                System.out.println(" successfully.");
+            } else {
+                System.out.println(" fail.");
+            }
+        }
+
+        initConst();
+
+
+        System.out.println("============context Initialized successfully===============");
+    }
+
+
+    @Override
+    public void contextDestroyed(ServletContextEvent sce) {
+
+        System.out.println("==================context Destroyed=====================");
+
+        for (Lifecycle lifecycle : startups) {
+            System.out.print(lifecycle.getItemInfo() + " is close ");
+            if (lifecycle.close()) {
+                System.out.println(" successfully.");
+            } else {
+                System.out.println(" fail.");
+            }
+        }
+
+    }
+
+
+    private void initConst() {
+
+        Const con = new Const();
+        con.initData();
+        System.out.println("============init const successfully===============");
+    }
+
+
+}

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/AlertMessageMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.AlertMessage;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.AlertMessageMapper")
+public interface AlertMessageMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(AlertMessage record);
+
+    AlertMessage selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(AlertMessage record);
+
+    List<AlertMessage> queryAllAlertMessage(AlertMessage record);
+
+    List<AlertMessage> queryAlertMessageByPage(Map<String, Object> parameter);
+
+    int delete(AlertMessage record);
+
+    AlertMessage queryAlertMessage(AlertMessage record);
+
+    List<AlertMessage> query(AlertMessage record);
+}
+

+ 367 - 0
src/main/java/com/izouma/awesomeadmin/dao/AlertMessageMapper.xml

@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.AlertMessageMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.AlertMessage" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+                                <result column="update_user" property="updateUser" jdbcType="VARCHAR" />
+                                <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+                                <result column="create_user" property="createUser" jdbcType="VARCHAR" />
+                                <result column="name" property="name" jdbcType="VARCHAR" />
+                                <result column="remark" property="remark" jdbcType="VARCHAR" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+        <trim  suffixOverrides="," >
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            name,
+
+            remark,
+
+            </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from alert_message
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from alert_message
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.AlertMessage" useGeneratedKeys="true" keyProperty="id">
+        insert into alert_message
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="updateTime!= null" >
+                update_time,
+            </if>
+                <if test="updateUser!= null" >
+                update_user,
+            </if>
+                <if test="createTime!= null" >
+                create_time,
+            </if>
+                <if test="createUser!= null" >
+                create_user,
+            </if>
+                <if test="name!= null" >
+                name,
+            </if>
+                <if test="remark!= null" >
+                remark,
+            </if>
+            </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+                    <if test="id != null" >
+                #{id,jdbcType=INTEGER},
+            </if>
+                    <if test="delFlag != null" >
+                #{delFlag,jdbcType=CHAR},
+            </if>
+                    <if test="updateTime != null" >
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="updateUser != null" >
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="createTime != null" >
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="createUser != null" >
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="name != null" >
+                #{name,jdbcType=VARCHAR},
+            </if>
+                    <if test="remark != null" >
+                #{remark,jdbcType=VARCHAR},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.AlertMessage" >
+        update alert_message
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="updateTime != null" >
+               update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="updateUser != null" >
+               update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="createTime != null" >
+               create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="createUser != null" >
+               create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="name != null" >
+               name= #{name,jdbcType=VARCHAR},
+            </if>
+                     <if test="remark != null" >
+               remark= #{remark,jdbcType=VARCHAR},
+            </if>
+                 </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryAlertMessageByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AlertMessage">
+        select <include refid="Base_Column_List"/> from alert_message
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+                    <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and  id = #{record.id}
+            </if>
+                     <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and  del_flag = #{record.delFlag}
+            </if>
+                     <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and  update_time = #{record.updateTime}
+            </if>
+                     <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and  update_user = #{record.updateUser}
+            </if>
+                     <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and  create_time = #{record.createTime}
+            </if>
+                     <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and  create_user = #{record.createUser}
+            </if>
+                     <if test="record.name != null and !&quot;&quot;.equals(record.name)">
+                and  name = #{record.name}
+            </if>
+                     <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and  remark = #{record.remark}
+            </if>
+                  <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+             <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                    OR  name LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  remark LIKE concat('%',#{record.searchKey},'%')
+                                                             </trim>
+         </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllAlertMessage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AlertMessage">
+        select <include refid="Base_Column_List"/> from alert_message
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and  id = #{id}
+            </if>
+                    <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and  del_flag = #{delFlag}
+            </if>
+                    <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and  update_time = #{updateTime}
+            </if>
+                    <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and  update_user = #{updateUser}
+            </if>
+                    <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and  create_time = #{createTime}
+            </if>
+                    <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and  create_user = #{createUser}
+            </if>
+                    <if test="name != null and !&quot;&quot;.equals(name)">
+                and  name = #{name}
+            </if>
+                    <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and  remark = #{remark}
+            </if>
+                    <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                OR  name LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  remark LIKE concat('%',#{searchKey},'%')
+                                                                                        </trim>
+            </if>
+<if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+    <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+        <choose>
+            <when test="item.indexOf('like') != -1">
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        concat('%',#{itemDetail},'%')
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </when>
+            <otherwise>
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        #{itemDetail}
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </otherwise>
+        </choose>
+
+
+    </foreach>
+
+
+</if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryAlertMessage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AlertMessage">
+        select <include refid="Base_Column_List"/> from alert_message
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+                     <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+                     <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+                     <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+                     <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+                     <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+                     <if test="name != null and !&quot;&quot;.equals(name)">
+                and name = #{name}
+            </if>
+                     <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE alert_message SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AlertMessage">
+        select <include refid="Base_Column_List"/> from alert_message
+        <where>
+            and del_flag = 'N'
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/AlipayTempMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.AlipayTemp;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.AlipayTempMapper")
+public interface AlipayTempMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(AlipayTemp record);
+
+    AlipayTemp selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(AlipayTemp record);
+
+    List<AlipayTemp> queryAllAlipayTemp(AlipayTemp record);
+
+    List<AlipayTemp> queryAlipayTempByPage(Map<String, Object> parameter);
+
+    int delete(String id);
+
+    AlipayTemp queryAlipayTemp(AlipayTemp record);
+
+    List<AlipayTemp> query(AlipayTemp record);
+}
+

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 527 - 0
src/main/java/com/izouma/awesomeadmin/dao/AlipayTempMapper.xml


+ 35 - 0
src/main/java/com/izouma/awesomeadmin/dao/AppVersionMapper.java

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.AppVersion;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.AppVersionMapper")
+public interface AppVersionMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(AppVersion record);
+
+    AppVersion selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(AppVersion record);
+
+    List<AppVersion> queryAllAppVersion(AppVersion record);
+
+    List<AppVersion> queryAppVersionByPage(Map<String, Object> parameter);
+
+    int delete(AppVersion record);
+
+    AppVersion queryAppVersion(AppVersion record);
+
+    List<AppVersion> query(AppVersion record);
+    /*generatedEnd*/
+
+}
+

+ 440 - 0
src/main/java/com/izouma/awesomeadmin/dao/AppVersionMapper.xml

@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.AppVersionMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.AppVersion">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="android_version" property="androidVersion" jdbcType="VARCHAR"/>
+        <result column="android_url" property="androidUrl" jdbcType="VARCHAR"/>
+        <result column="android_size" property="androidSize" jdbcType="VARCHAR"/>
+        <result column="ios_version" property="iosVersion" jdbcType="VARCHAR"/>
+        <result column="ios_url" property="iosUrl" jdbcType="VARCHAR"/>
+        <result column="ios_size" property="iosSize" jdbcType="VARCHAR"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, android_version, android_url, android_size, ios_version, ios_url, ios_size        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM app_version
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM app_version
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.AppVersion" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO app_version
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="androidVersion!= null">
+                android_version,
+            </if>
+            <if test="androidUrl!= null">
+                android_url,
+            </if>
+            <if test="androidSize!= null">
+                android_size,
+            </if>
+            <if test="iosVersion!= null">
+                ios_version,
+            </if>
+            <if test="iosUrl!= null">
+                ios_url,
+            </if>
+            <if test="iosSize!= null">
+                ios_size,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="androidVersion != null">
+                #{androidVersion,jdbcType=VARCHAR},
+            </if>
+            <if test="androidUrl != null">
+                #{androidUrl,jdbcType=VARCHAR},
+            </if>
+            <if test="androidSize != null">
+                #{androidSize,jdbcType=VARCHAR},
+            </if>
+            <if test="iosVersion != null">
+                #{iosVersion,jdbcType=VARCHAR},
+            </if>
+            <if test="iosUrl != null">
+                #{iosUrl,jdbcType=VARCHAR},
+            </if>
+            <if test="iosSize != null">
+                #{iosSize,jdbcType=VARCHAR},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.AppVersion">
+        UPDATE app_version
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="androidVersion != null">
+                android_version= #{androidVersion,jdbcType=VARCHAR},
+            </if>
+            <if test="androidUrl != null">
+                android_url= #{androidUrl,jdbcType=VARCHAR},
+            </if>
+            <if test="androidSize != null">
+                android_size= #{androidSize,jdbcType=VARCHAR},
+            </if>
+            <if test="iosVersion != null">
+                ios_version= #{iosVersion,jdbcType=VARCHAR},
+            </if>
+            <if test="iosUrl != null">
+                ios_url= #{iosUrl,jdbcType=VARCHAR},
+            </if>
+            <if test="iosSize != null">
+                ios_size= #{iosSize,jdbcType=VARCHAR},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryAppVersionByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AppVersion">
+        SELECT <include refid="Base_Column_List"/> FROM app_version
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.androidVersion != null and !&quot;&quot;.equals(record.androidVersion)">
+                AND android_version = #{record.androidVersion}
+            </if>
+            <if test="record.androidUrl != null and !&quot;&quot;.equals(record.androidUrl)">
+                AND android_url = #{record.androidUrl}
+            </if>
+            <if test="record.androidSize != null and !&quot;&quot;.equals(record.androidSize)">
+                AND android_size = #{record.androidSize}
+            </if>
+            <if test="record.iosVersion != null and !&quot;&quot;.equals(record.iosVersion)">
+                AND ios_version = #{record.iosVersion}
+            </if>
+            <if test="record.iosUrl != null and !&quot;&quot;.equals(record.iosUrl)">
+                AND ios_url = #{record.iosUrl}
+            </if>
+            <if test="record.iosSize != null and !&quot;&quot;.equals(record.iosSize)">
+                AND ios_size = #{record.iosSize}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR android_version LIKE concat('%',#{record.searchKey},'%')
+                    OR android_url LIKE concat('%',#{record.searchKey},'%')
+                    OR android_size LIKE concat('%',#{record.searchKey},'%')
+                    OR ios_version LIKE concat('%',#{record.searchKey},'%')
+                    OR ios_url LIKE concat('%',#{record.searchKey},'%')
+                    OR ios_size LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllAppVersion" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AppVersion">
+        SELECT <include refid="Base_Column_List"/> FROM app_version
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="androidVersion != null and !&quot;&quot;.equals(androidVersion)">
+                AND android_version = #{androidVersion}
+            </if>
+            <if test="androidUrl != null and !&quot;&quot;.equals(androidUrl)">
+                AND android_url = #{androidUrl}
+            </if>
+            <if test="androidSize != null and !&quot;&quot;.equals(androidSize)">
+                AND android_size = #{androidSize}
+            </if>
+            <if test="iosVersion != null and !&quot;&quot;.equals(iosVersion)">
+                AND ios_version = #{iosVersion}
+            </if>
+            <if test="iosUrl != null and !&quot;&quot;.equals(iosUrl)">
+                AND ios_url = #{iosUrl}
+            </if>
+            <if test="iosSize != null and !&quot;&quot;.equals(iosSize)">
+                AND ios_size = #{iosSize}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR android_version LIKE concat('%',#{searchKey},'%')
+                    OR android_url LIKE concat('%',#{searchKey},'%')
+                    OR android_size LIKE concat('%',#{searchKey},'%')
+                    OR ios_version LIKE concat('%',#{searchKey},'%')
+                    OR ios_url LIKE concat('%',#{searchKey},'%')
+                    OR ios_size LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAppVersion" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AppVersion">
+        SELECT <include refid="Base_Column_List"/> FROM app_version
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="androidVersion != null and !&quot;&quot;.equals(androidVersion)">
+                AND android_version = #{androidVersion}
+            </if>
+            <if test="androidUrl != null and !&quot;&quot;.equals(androidUrl)">
+                AND android_url = #{androidUrl}
+            </if>
+            <if test="androidSize != null and !&quot;&quot;.equals(androidSize)">
+                AND android_size = #{androidSize}
+            </if>
+            <if test="iosVersion != null and !&quot;&quot;.equals(iosVersion)">
+                AND ios_version = #{iosVersion}
+            </if>
+            <if test="iosUrl != null and !&quot;&quot;.equals(iosUrl)">
+                AND ios_url = #{iosUrl}
+            </if>
+            <if test="iosSize != null and !&quot;&quot;.equals(iosSize)">
+                AND ios_size = #{iosSize}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE app_version SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AppVersion">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM app_version
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+</mapper>
+

+ 36 - 0
src/main/java/com/izouma/awesomeadmin/dao/AppealInfoMapper.java

@@ -0,0 +1,36 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.model.AppealInfo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.AppealInfoMapper")
+public interface AppealInfoMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(AppealInfo record);
+
+    AppealInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(AppealInfo record);
+
+    List<AppealInfo> queryAllAppealInfo(AppealInfo record);
+
+    List<AppealInfo> queryAppealInfoByPage(Map<String, Object> parameter);
+
+    int delete(AppealInfo record);
+
+    AppealInfo queryAppealInfo(AppealInfo record);
+
+    List<AppealInfo> query(AppealInfo record);
+    /*generatedEnd*/
+
+}
+

+ 398 - 0
src/main/java/com/izouma/awesomeadmin/dao/AppealInfoMapper.xml

@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.AppealInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.AppealInfo">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="player_info_id" property="playerInfoId" jdbcType="INTEGER"/>
+        <result column="competition_id" property="competitionId" jdbcType="INTEGER"/>
+        <result column="house_id" property="houseId" jdbcType="INTEGER"/>
+        <result column="pic" property="pic" jdbcType="VARCHAR"/>
+        <result column="status" property="status" jdbcType="INTEGER"/>
+        <result column="points" property="points" jdbcType="INTEGER"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, user_id, player_info_id, competition_id, house_id, pic, status, points, create_time        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM appeal_info
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM appeal_info
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.AppealInfo" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO appeal_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="playerInfoId!= null">
+                player_info_id,
+            </if>
+            <if test="competitionId!= null">
+                competition_id,
+            </if>
+            <if test="houseId!= null">
+                house_id,
+            </if>
+            <if test="pic!= null">
+                pic,
+            </if>
+            <if test="status!= null">
+                status,
+            </if>
+            <if test="points!= null">
+                points,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="playerInfoId != null">
+                #{playerInfoId,jdbcType=INTEGER},
+            </if>
+            <if test="competitionId != null">
+                #{competitionId,jdbcType=INTEGER},
+            </if>
+            <if test="houseId != null">
+                #{houseId,jdbcType=INTEGER},
+            </if>
+            <if test="pic != null">
+                #{pic,jdbcType=VARCHAR},
+            </if>
+            <if test="status != null">
+                #{status,jdbcType=INTEGER},
+            </if>
+            <if test="points != null">
+                #{points,jdbcType=INTEGER},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.AppealInfo">
+        UPDATE appeal_info
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="playerInfoId != null">
+                player_info_id= #{playerInfoId,jdbcType=INTEGER},
+            </if>
+            <if test="competitionId != null">
+                competition_id= #{competitionId,jdbcType=INTEGER},
+            </if>
+            <if test="houseId != null">
+                house_id= #{houseId,jdbcType=INTEGER},
+            </if>
+            <if test="pic != null">
+                pic= #{pic,jdbcType=VARCHAR},
+            </if>
+            <if test="status != null">
+                status= #{status,jdbcType=INTEGER},
+            </if>
+            <if test="points != null">
+                points= #{points,jdbcType=INTEGER},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryAppealInfoByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AppealInfo">
+        SELECT <include refid="Base_Column_List"/> FROM appeal_info
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                AND user_id = #{record.userId}
+            </if>
+            <if test="record.playerInfoId != null and !&quot;&quot;.equals(record.playerInfoId)">
+                AND player_info_id = #{record.playerInfoId}
+            </if>
+            <if test="record.competitionId != null and !&quot;&quot;.equals(record.competitionId)">
+                AND competition_id = #{record.competitionId}
+            </if>
+            <if test="record.houseId != null and !&quot;&quot;.equals(record.houseId)">
+                AND house_id = #{record.houseId}
+            </if>
+            <if test="record.pic != null and !&quot;&quot;.equals(record.pic)">
+                AND pic = #{record.pic}
+            </if>
+            <if test="record.status != null and !&quot;&quot;.equals(record.status)">
+                AND status = #{record.status}
+            </if>
+            <if test="record.points != null and !&quot;&quot;.equals(record.points)">
+                AND points = #{record.points}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR player_info_id LIKE concat('%',#{record.searchKey},'%')
+                    OR competition_id LIKE concat('%',#{record.searchKey},'%')
+                    OR house_id LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllAppealInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AppealInfo">
+        SELECT <include refid="Base_Column_List"/> FROM appeal_info
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                AND user_id = #{userId}
+            </if>
+            <if test="playerInfoId != null and !&quot;&quot;.equals(playerInfoId)">
+                AND player_info_id = #{playerInfoId}
+            </if>
+            <if test="competitionId != null and !&quot;&quot;.equals(competitionId)">
+                AND competition_id = #{competitionId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                AND house_id = #{houseId}
+            </if>
+            <if test="pic != null and !&quot;&quot;.equals(pic)">
+                AND pic = #{pic}
+            </if>
+            <if test="status != null and !&quot;&quot;.equals(status)">
+                AND status = #{status}
+            </if>
+            <if test="points != null and !&quot;&quot;.equals(points)">
+                AND points = #{points}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR user_id LIKE concat('%',#{searchKey},'%')
+                    OR player_info_id LIKE concat('%',#{searchKey},'%')
+                    OR competition_id LIKE concat('%',#{searchKey},'%')
+                    OR house_id LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAppealInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AppealInfo">
+        SELECT <include refid="Base_Column_List"/> FROM appeal_info
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                AND user_id = #{userId}
+            </if>
+            <if test="playerInfoId != null and !&quot;&quot;.equals(playerInfoId)">
+                AND player_info_id = #{playerInfoId}
+            </if>
+            <if test="competitionId != null and !&quot;&quot;.equals(competitionId)">
+                AND competition_id = #{competitionId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                AND house_id = #{houseId}
+            </if>
+            <if test="pic != null and !&quot;&quot;.equals(pic)">
+                AND pic = #{pic}
+            </if>
+            <if test="status != null and !&quot;&quot;.equals(status)">
+                AND status = #{status}
+            </if>
+            <if test="points != null and !&quot;&quot;.equals(points)">
+                AND points = #{points}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE appeal_info SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.AppealInfo">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM appeal_info
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/BannerInfoMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.BannerInfo;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.BannerInfoMapper")
+public interface BannerInfoMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(BannerInfo record);
+
+    BannerInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(BannerInfo record);
+
+    List<BannerInfo> queryAllBannerInfo(BannerInfo record);
+
+    List<BannerInfo> queryBannerInfoByPage(Map<String, Object> parameter);
+
+    int delete(BannerInfo record);
+
+    BannerInfo queryBannerInfo(BannerInfo record);
+
+    List<BannerInfo> query(BannerInfo record);
+}
+

+ 505 - 0
src/main/java/com/izouma/awesomeadmin/dao/BannerInfoMapper.xml

@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.BannerInfoMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.BannerInfo" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+                                <result column="update_user" property="updateUser" jdbcType="VARCHAR" />
+                                <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+                                <result column="create_user" property="createUser" jdbcType="VARCHAR" />
+                                <result column="location" property="location" jdbcType="VARCHAR" />
+                                <result column="title" property="title" jdbcType="VARCHAR" />
+                                <result column="subtitle" property="subtitle" jdbcType="VARCHAR" />
+                                <result column="url" property="url" jdbcType="VARCHAR" />
+                                <result column="image_url" property="imageUrl" jdbcType="VARCHAR" />
+                                <result column="remark" property="remark" jdbcType="VARCHAR" />
+                                <result column="rank" property="rank" jdbcType="INTEGER" />
+                                <result column="type_flag" property="typeFlag" jdbcType="INTEGER" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+        <trim  suffixOverrides="," >
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            location,
+
+            title,
+
+            subtitle,
+
+            url,
+
+            image_url,
+
+            remark,
+
+            rank,
+
+            type_flag,
+
+            </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from banner_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from banner_info
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.BannerInfo" useGeneratedKeys="true" keyProperty="id">
+        insert into banner_info
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="updateTime!= null" >
+                update_time,
+            </if>
+                <if test="updateUser!= null" >
+                update_user,
+            </if>
+                <if test="createTime!= null" >
+                create_time,
+            </if>
+                <if test="createUser!= null" >
+                create_user,
+            </if>
+                <if test="location!= null" >
+                location,
+            </if>
+                <if test="title!= null" >
+                title,
+            </if>
+                <if test="subtitle!= null" >
+                subtitle,
+            </if>
+                <if test="url!= null" >
+                url,
+            </if>
+                <if test="imageUrl!= null" >
+                image_url,
+            </if>
+                <if test="remark!= null" >
+                remark,
+            </if>
+                <if test="rank!= null" >
+                rank,
+            </if>
+                <if test="typeFlag!= null" >
+                type_flag,
+            </if>
+            </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+                    <if test="id != null" >
+                #{id,jdbcType=INTEGER},
+            </if>
+                    <if test="delFlag != null" >
+                #{delFlag,jdbcType=CHAR},
+            </if>
+                    <if test="updateTime != null" >
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="updateUser != null" >
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="createTime != null" >
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="createUser != null" >
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="location != null" >
+                #{location,jdbcType=VARCHAR},
+            </if>
+                    <if test="title != null" >
+                #{title,jdbcType=VARCHAR},
+            </if>
+                    <if test="subtitle != null" >
+                #{subtitle,jdbcType=VARCHAR},
+            </if>
+                    <if test="url != null" >
+                #{url,jdbcType=VARCHAR},
+            </if>
+                    <if test="imageUrl != null" >
+                #{imageUrl,jdbcType=VARCHAR},
+            </if>
+                    <if test="remark != null" >
+                #{remark,jdbcType=VARCHAR},
+            </if>
+                    <if test="rank != null" >
+                #{rank,jdbcType=INTEGER},
+            </if>
+                    <if test="typeFlag != null" >
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.BannerInfo" >
+        update banner_info
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="updateTime != null" >
+               update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="updateUser != null" >
+               update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="createTime != null" >
+               create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="createUser != null" >
+               create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="location != null" >
+               location= #{location,jdbcType=VARCHAR},
+            </if>
+                     <if test="title != null" >
+               title= #{title,jdbcType=VARCHAR},
+            </if>
+                     <if test="subtitle != null" >
+               subtitle= #{subtitle,jdbcType=VARCHAR},
+            </if>
+                     <if test="url != null" >
+               url= #{url,jdbcType=VARCHAR},
+            </if>
+                     <if test="imageUrl != null" >
+               image_url= #{imageUrl,jdbcType=VARCHAR},
+            </if>
+                     <if test="remark != null" >
+               remark= #{remark,jdbcType=VARCHAR},
+            </if>
+                     <if test="rank != null" >
+               rank= #{rank,jdbcType=INTEGER},
+            </if>
+                     <if test="typeFlag != null" >
+               type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+                 </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryBannerInfoByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.BannerInfo">
+        select <include refid="Base_Column_List"/> from banner_info
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+                    <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and  id = #{record.id}
+            </if>
+                     <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and  del_flag = #{record.delFlag}
+            </if>
+                     <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and  update_time = #{record.updateTime}
+            </if>
+                     <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and  update_user = #{record.updateUser}
+            </if>
+                     <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and  create_time = #{record.createTime}
+            </if>
+                     <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and  create_user = #{record.createUser}
+            </if>
+                     <if test="record.location != null and !&quot;&quot;.equals(record.location)">
+                and  location = #{record.location}
+            </if>
+                     <if test="record.title != null and !&quot;&quot;.equals(record.title)">
+                and  title = #{record.title}
+            </if>
+                     <if test="record.subtitle != null and !&quot;&quot;.equals(record.subtitle)">
+                and  subtitle = #{record.subtitle}
+            </if>
+                     <if test="record.url != null and !&quot;&quot;.equals(record.url)">
+                and  url = #{record.url}
+            </if>
+                     <if test="record.imageUrl != null and !&quot;&quot;.equals(record.imageUrl)">
+                and  image_url = #{record.imageUrl}
+            </if>
+                     <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and  remark = #{record.remark}
+            </if>
+                     <if test="record.rank != null and !&quot;&quot;.equals(record.rank)">
+                and  rank = #{record.rank}
+            </if>
+                     <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                and  type_flag = #{record.typeFlag}
+            </if>
+                  <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+             <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                    OR  location LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  title LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  subtitle LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  url LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  image_url LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  remark LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  rank LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  type_flag LIKE concat('%',#{record.searchKey},'%')
+                                                             </trim>
+         </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllBannerInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.BannerInfo">
+        select <include refid="Base_Column_List"/> from banner_info
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and  id = #{id}
+            </if>
+                    <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and  del_flag = #{delFlag}
+            </if>
+                    <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and  update_time = #{updateTime}
+            </if>
+                    <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and  update_user = #{updateUser}
+            </if>
+                    <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and  create_time = #{createTime}
+            </if>
+                    <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and  create_user = #{createUser}
+            </if>
+                    <if test="location != null and !&quot;&quot;.equals(location)">
+                and  location = #{location}
+            </if>
+                    <if test="title != null and !&quot;&quot;.equals(title)">
+                and  title = #{title}
+            </if>
+                    <if test="subtitle != null and !&quot;&quot;.equals(subtitle)">
+                and  subtitle = #{subtitle}
+            </if>
+                    <if test="url != null and !&quot;&quot;.equals(url)">
+                and  url = #{url}
+            </if>
+                    <if test="imageUrl != null and !&quot;&quot;.equals(imageUrl)">
+                and  image_url = #{imageUrl}
+            </if>
+                    <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and  remark = #{remark}
+            </if>
+                    <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and  rank = #{rank}
+            </if>
+                    <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and  type_flag = #{typeFlag}
+            </if>
+                    <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                OR  location LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  title LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  subtitle LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  url LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  image_url LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  remark LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  rank LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  type_flag LIKE concat('%',#{searchKey},'%')
+                                                                                        </trim>
+            </if>
+<if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+    <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+        <choose>
+            <when test="item.indexOf('like') != -1">
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        concat('%',#{itemDetail},'%')
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </when>
+            <otherwise>
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        #{itemDetail}
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </otherwise>
+        </choose>
+
+
+    </foreach>
+
+
+</if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryBannerInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.BannerInfo">
+        select <include refid="Base_Column_List"/> from banner_info
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+                     <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+                     <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+                     <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+                     <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+                     <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+                     <if test="location != null and !&quot;&quot;.equals(location)">
+                and location = #{location}
+            </if>
+                     <if test="title != null and !&quot;&quot;.equals(title)">
+                and title = #{title}
+            </if>
+                     <if test="subtitle != null and !&quot;&quot;.equals(subtitle)">
+                and subtitle = #{subtitle}
+            </if>
+                     <if test="url != null and !&quot;&quot;.equals(url)">
+                and url = #{url}
+            </if>
+                     <if test="imageUrl != null and !&quot;&quot;.equals(imageUrl)">
+                and image_url = #{imageUrl}
+            </if>
+                     <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+                     <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+                     <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE banner_info SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.BannerInfo">
+        select <include refid="Base_Column_List"/> from banner_info
+        <where>
+            and del_flag = 'N'
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/BindGameMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.BindGame;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.BindGameMapper")
+public interface BindGameMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(BindGame record);
+
+    BindGame selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(BindGame record);
+
+    List<BindGame> queryAllBindGame(BindGame record);
+
+    List<BindGame> queryBindGameByPage(Map<String, Object> parameter);
+
+    int delete(BindGame record);
+
+    BindGame queryBindGame(BindGame record);
+
+    List<BindGame> query(BindGame record);
+}
+

+ 460 - 0
src/main/java/com/izouma/awesomeadmin/dao/BindGameMapper.xml

@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.BindGameMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.BindGame">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="game_id" property="gameId" jdbcType="INTEGER"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="nick_name" property="nickName" jdbcType="VARCHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="use_flag" property="useFlag" jdbcType="CHAR"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            game_id,
+
+            user_id,
+
+            nick_name,
+
+            remark,
+
+            use_flag,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from bind_game
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from bind_game
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.BindGame" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into bind_game
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="gameId!= null">
+                game_id,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="nickName!= null">
+                nick_name,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="useFlag!= null">
+                use_flag,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="nickName != null">
+                #{nickName,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="useFlag != null">
+                #{useFlag,jdbcType=CHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.BindGame">
+        update bind_game
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                game_id= #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="nickName != null">
+                nick_name= #{nickName,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="useFlag != null">
+                use_flag= #{useFlag,jdbcType=CHAR},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryBindGameByPage" parameterType="java.util.Map" resultMap="PageBindGameResult">
+        select
+        <include refid="Base_Column_List"/>
+        from bind_game
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and game_id = #{record.gameId}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and user_id = #{record.userId}
+            </if>
+            <if test="record.nickName != null and !&quot;&quot;.equals(record.nickName)">
+                and nick_name = #{record.nickName}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.useFlag != null and !&quot;&quot;.equals(record.useFlag)">
+                and use_flag = #{record.useFlag}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_id LIKE concat('%',#{record.searchKey},'%')
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR nick_name LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR use_flag LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllBindGame" parameterType="java.util.Map" resultMap="PageBindGameResult">
+        select
+        <include refid="Base_Column_List"/>
+        from bind_game
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="nickName != null and !&quot;&quot;.equals(nickName)">
+                and nick_name = #{nickName}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                and use_flag = #{useFlag}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_id LIKE concat('%',#{searchKey},'%')
+                    OR user_id LIKE concat('%',#{searchKey},'%')
+                    OR nick_name LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR use_flag LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryBindGame" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.BindGame">
+        select
+        <include refid="Base_Column_List"/>
+        from bind_game
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="nickName != null and !&quot;&quot;.equals(nickName)">
+                and nick_name = #{nickName}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                and use_flag = #{useFlag}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE bind_game SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.BindGame">
+        select
+        <include refid="Base_Column_List"/>
+        from bind_game
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+
+    <resultMap id="PageBindGameResult" type="com.izouma.awesomeadmin.model.BindGame" extends="BaseResultMap">
+
+        <association property="userInfo"
+                     javaType="com.izouma.awesomeadmin.model.UserInfo"
+                     select="com.izouma.awesomeadmin.dao.UserInfoMapper.querySingleUserInfo"
+                     column="{ id = user_id }"/>
+
+        <association property="gameInfo"
+                     javaType="com.izouma.awesomeadmin.model.GameInfo"
+                     select="com.izouma.awesomeadmin.dao.GameInfoMapper.queryGameInfo"
+                     column="{ id = game_id }"/>
+
+    </resultMap>
+
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/BonusRecordMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.BonusRecord;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.BonusRecordMapper")
+public interface BonusRecordMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(BonusRecord record);
+
+    BonusRecord selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(BonusRecord record);
+
+    List<BonusRecord> queryAllBonusRecord(BonusRecord record);
+
+    List<BonusRecord> queryBonusRecordByPage(Map<String, Object> parameter);
+
+    int delete(BonusRecord record);
+
+    BonusRecord queryBonusRecord(BonusRecord record);
+
+    List<BonusRecord> query(BonusRecord record);
+}
+

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 523 - 0
src/main/java/com/izouma/awesomeadmin/dao/BonusRecordMapper.xml


+ 35 - 0
src/main/java/com/izouma/awesomeadmin/dao/ChannelInfoMapper.java

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.ChannelInfo;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.ChannelInfoMapper")
+public interface ChannelInfoMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(ChannelInfo record);
+
+    ChannelInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(ChannelInfo record);
+
+    List<ChannelInfo> queryAllChannelInfo(ChannelInfo record);
+
+    List<ChannelInfo> queryChannelInfoByPage(Map<String, Object> parameter);
+
+    int delete(ChannelInfo record);
+
+    ChannelInfo queryChannelInfo(ChannelInfo record);
+
+    List<ChannelInfo> query(ChannelInfo record);
+    /*generatedEnd*/
+
+}
+

+ 482 - 0
src/main/java/com/izouma/awesomeadmin/dao/ChannelInfoMapper.xml

@@ -0,0 +1,482 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.ChannelInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.ChannelInfo">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="name" property="name" jdbcType="VARCHAR"/>
+        <result column="version_no" property="versionNo" jdbcType="VARCHAR"/>
+        <result column="url" property="url" jdbcType="VARCHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="ratio" property="ratio" jdbcType="INTEGER"/>
+        <result column="ratio2" property="ratio2" jdbcType="INTEGER"/>
+        <result column="channel_ratio" property="channelRatio" jdbcType="INTEGER"/>
+        <result column="channel_manager" property="channelManager" jdbcType="INTEGER"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, name, version_no, url, remark, ratio, ratio2, channel_ratio, channel_manager        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM channel_info
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM channel_info
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.ChannelInfo" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO channel_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="name!= null">
+                name,
+            </if>
+            <if test="versionNo!= null">
+                version_no,
+            </if>
+            <if test="url!= null">
+                url,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="ratio!= null">
+                ratio,
+            </if>
+            <if test="ratio2!= null">
+                ratio2,
+            </if>
+            <if test="channelRatio!= null">
+                channel_ratio,
+            </if>
+            <if test="channelManager!= null">
+                channel_manager,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="name != null">
+                #{name,jdbcType=VARCHAR},
+            </if>
+            <if test="versionNo != null">
+                #{versionNo,jdbcType=VARCHAR},
+            </if>
+            <if test="url != null">
+                #{url,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="ratio != null">
+                #{ratio,jdbcType=INTEGER},
+            </if>
+            <if test="ratio2 != null">
+                #{ratio2,jdbcType=INTEGER},
+            </if>
+            <if test="channelRatio != null">
+                #{channelRatio,jdbcType=INTEGER},
+            </if>
+            <if test="channelManager != null">
+                #{channelManager,jdbcType=INTEGER},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.ChannelInfo">
+        UPDATE channel_info
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="name != null">
+                name= #{name,jdbcType=VARCHAR},
+            </if>
+            <if test="versionNo != null">
+                version_no= #{versionNo,jdbcType=VARCHAR},
+            </if>
+            <if test="url != null">
+                url= #{url,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="ratio != null">
+                ratio= #{ratio,jdbcType=INTEGER},
+            </if>
+            <if test="ratio2 != null">
+                ratio2= #{ratio2,jdbcType=INTEGER},
+            </if>
+            <if test="channelRatio != null">
+                channel_ratio= #{channelRatio,jdbcType=INTEGER},
+            </if>
+            <if test="channelManager != null">
+                channel_manager= #{channelManager,jdbcType=INTEGER},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryChannelInfoByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ChannelInfo">
+        SELECT <include refid="Base_Column_List"/> FROM channel_info
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.name != null and !&quot;&quot;.equals(record.name)">
+                AND name = #{record.name}
+            </if>
+            <if test="record.versionNo != null and !&quot;&quot;.equals(record.versionNo)">
+                AND version_no = #{record.versionNo}
+            </if>
+            <if test="record.url != null and !&quot;&quot;.equals(record.url)">
+                AND url = #{record.url}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                AND remark = #{record.remark}
+            </if>
+            <if test="record.ratio != null and !&quot;&quot;.equals(record.ratio)">
+                AND ratio = #{record.ratio}
+            </if>
+            <if test="record.ratio2 != null and !&quot;&quot;.equals(record.ratio2)">
+                AND ratio2 = #{record.ratio2}
+            </if>
+            <if test="record.channelRatio != null and !&quot;&quot;.equals(record.channelRatio)">
+                AND channel_ratio = #{record.channelRatio}
+            </if>
+            <if test="record.channelManager != null and !&quot;&quot;.equals(record.channelManager)">
+                AND channel_manager = #{record.channelManager}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR name LIKE concat('%',#{record.searchKey},'%')
+                    OR version_no LIKE concat('%',#{record.searchKey},'%')
+                    OR url LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR ratio LIKE concat('%',#{record.searchKey},'%')
+                    OR ratio2 LIKE concat('%',#{record.searchKey},'%')
+                    OR channel_ratio LIKE concat('%',#{record.searchKey},'%')
+                    OR channel_manager LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllChannelInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ChannelInfo">
+        SELECT <include refid="Base_Column_List"/> FROM channel_info
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="name != null and !&quot;&quot;.equals(name)">
+                AND name = #{name}
+            </if>
+            <if test="versionNo != null and !&quot;&quot;.equals(versionNo)">
+                AND version_no = #{versionNo}
+            </if>
+            <if test="url != null and !&quot;&quot;.equals(url)">
+                AND url = #{url}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="ratio != null and !&quot;&quot;.equals(ratio)">
+                AND ratio = #{ratio}
+            </if>
+            <if test="ratio2 != null and !&quot;&quot;.equals(ratio2)">
+                AND ratio2 = #{ratio2}
+            </if>
+            <if test="channelRatio != null and !&quot;&quot;.equals(channelRatio)">
+                AND channel_ratio = #{channelRatio}
+            </if>
+            <if test="channelManager != null and !&quot;&quot;.equals(channelManager)">
+                AND channel_manager = #{channelManager}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR name LIKE concat('%',#{searchKey},'%')
+                    OR version_no LIKE concat('%',#{searchKey},'%')
+                    OR url LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR ratio LIKE concat('%',#{searchKey},'%')
+                    OR ratio2 LIKE concat('%',#{searchKey},'%')
+                    OR channel_ratio LIKE concat('%',#{searchKey},'%')
+                    OR channel_manager LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryChannelInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ChannelInfo">
+        SELECT <include refid="Base_Column_List"/> FROM channel_info
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="name != null and !&quot;&quot;.equals(name)">
+                AND name = #{name}
+            </if>
+            <if test="versionNo != null and !&quot;&quot;.equals(versionNo)">
+                AND version_no = #{versionNo}
+            </if>
+            <if test="url != null and !&quot;&quot;.equals(url)">
+                AND url = #{url}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="ratio != null and !&quot;&quot;.equals(ratio)">
+                AND ratio = #{ratio}
+            </if>
+            <if test="ratio2 != null and !&quot;&quot;.equals(ratio2)">
+                AND ratio2 = #{ratio2}
+            </if>
+            <if test="channelRatio != null and !&quot;&quot;.equals(channelRatio)">
+                AND channel_ratio = #{channelRatio}
+            </if>
+            <if test="channelManager != null and !&quot;&quot;.equals(channelManager)">
+                AND channel_manager = #{channelManager}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE channel_info SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ChannelInfo">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM channel_info
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+</mapper>
+

+ 27 - 0
src/main/java/com/izouma/awesomeadmin/dao/CommonQueryMapper.java

@@ -0,0 +1,27 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.datasource.DataSource;
+import com.izouma.awesomeadmin.model.CommonQuery;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+@DataSource("dataSource")
+@Repository("com.izouma.awesomeadmin.dao.CommonQueryMapper")
+public interface CommonQueryMapper {
+
+
+    List<Map> getTableListByPage(Map<String, Object> parameter);
+
+    List<Map> getTableListAll(CommonQuery record);
+
+    Map selectByPrimaryKey(CommonQuery record);
+
+
+    int insertSelective(Map<String, Object> parameter);
+
+    int updateByPrimaryKeySelective(Map<String, Object> parameter);
+
+    int delete(CommonQuery record);
+}

+ 189 - 0
src/main/java/com/izouma/awesomeadmin/dao/CommonQueryMapper.xml

@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.CommonQueryMapper">
+
+
+    <select id="getTableListByPage" resultType="java.util.Map">
+
+        SELECT * FROM ${record.tableName}
+        <where>
+            and (del_flag = 'N' or del_flag = '0')
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <foreach item="item" index="index" collection="record.searchColumn.split('_,')">
+                        OR ${item} LIKE concat('%',#{record.searchKey},'%')
+                    </foreach>
+                </trim>
+            </if>
+
+
+        </where>
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+            order by
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+
+        </if>
+
+    </select>
+
+    <select id="getTableListAll" resultType="java.util.Map">
+
+        SELECT * FROM ${tableName}
+        <where>
+            and (del_flag = 'N' or del_flag = '0')
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <foreach item="item" index="index" collection="searchColumn.split('_,')">
+                        OR ${item} LIKE concat('%',#{searchKey},'%')
+                    </foreach>
+                </trim>
+            </if>
+
+        </where>
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+            order by
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+
+        </if>
+
+    </select>
+
+
+    <select id="selectByPrimaryKey" resultType="java.util.Map" parameterType="java.util.Map">
+        select
+        *
+        from ${tableName}
+        where id = #{primaryKey,jdbcType=INTEGER}
+    </select>
+
+    <insert id="insertSelective" parameterType="java.util.Map" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into ${tableName}
+
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+
+            <foreach item="item" index="index" collection="formData.keys">
+                <if test="formData[item]!= null">
+                    ${item},
+                </if>
+            </foreach>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+
+            <foreach item="item" index="index" collection="formData.keys">
+                <if test="formData[item]!= null">
+                    #{formData[${item}]},
+                </if>
+            </foreach>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="java.util.Map">
+        update ${tableName}
+        <set>
+
+            <foreach item="item" index="index" collection="formData.keys">
+                <if test="formData[item]!= null">
+                    ${item} = #{formData[${item}]},
+                </if>
+            </foreach>
+
+        </set>
+        where id = #{primaryKey,jdbcType=INTEGER}
+    </update>
+
+    <update id="delete">
+        UPDATE ${tableName} SET del_flag = 'Y'
+        <where>
+            AND id = #{primaryKey}
+        </where>
+    </update>
+</mapper>

+ 27 - 0
src/main/java/com/izouma/awesomeadmin/dao/CommonQuerySqlServerMapper.java

@@ -0,0 +1,27 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.datasource.DataSource;
+import com.izouma.awesomeadmin.model.CommonQuery;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+@DataSource("dataSource")
+@Repository("com.izouma.awesomeadmin.dao.CommonQuerySqlServerMapper")
+public interface CommonQuerySqlServerMapper {
+
+    List<Map> getTableListByPage(Map<String, Object> parameter);
+
+    List<Map> getTableListAll(CommonQuery record);
+
+    Map selectByPrimaryKey(CommonQuery record);
+
+
+    int insertSelective(Map<String, Object> parameter);
+
+    int updateByPrimaryKeySelective(Map<String, Object> parameter);
+
+
+    int delete(CommonQuery record);
+}

+ 182 - 0
src/main/java/com/izouma/awesomeadmin/dao/CommonQuerySqlServerMapper.xml

@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.CommonQuerySqlServerMapper">
+
+
+    <select id="getTableListByPage" resultType="java.util.Map">
+
+        SELECT * FROM ${record.tableName}
+        <where>
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <foreach item="item" index="index" collection="record.searchColumn.split('_,')">
+                        OR ${item} LIKE concat('%',#{record.searchKey},'%')
+                    </foreach>
+                </trim>
+            </if>
+
+        </where>
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+            order by
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+
+        </if>
+
+    </select>
+
+    <select id="getTableListAll" resultType="java.util.Map">
+
+        SELECT * FROM ${tableName}
+        <where>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <foreach item="item" index="index" collection="searchColumn.split('_,')">
+                        OR ${item} LIKE concat('%',#{searchKey},'%')
+                    </foreach>
+                </trim>
+            </if>
+
+        </where>
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+            order by
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+
+        </if>
+
+    </select>
+
+    <select id="selectByPrimaryKey" resultType="java.util.Map" parameterType="java.util.Map">
+        select
+        *
+        from ${tableName}
+        where id = #{primaryKey,jdbcType=INTEGER}
+    </select>
+
+    <insert id="insertSelective" parameterType="java.util.Map" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into ${tableName}
+
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+
+            <foreach item="item" index="index" collection="formData.keys">
+                <if test="formData[item]!= null">
+                    ${item},
+                </if>
+            </foreach>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+
+            <foreach item="item" index="index" collection="formData.keys">
+                <if test="formData[item]!= null">
+                    #{formData[${item}]},
+                </if>
+            </foreach>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="java.util.Map">
+        update ${tableName}
+        <set>
+
+            <foreach item="item" index="index" collection="formData.keys">
+                <if test="formData[item]!= null">
+                    ${item} = #{formData[${item}]},
+                </if>
+            </foreach>
+
+        </set>
+        where id = #{primaryKey,jdbcType=INTEGER}
+    </update>
+
+    <delete id="delete">
+        delete from ${tableName}
+        where id = #{primaryKey,jdbcType=INTEGER}
+    </delete>
+</mapper>

+ 37 - 0
src/main/java/com/izouma/awesomeadmin/dao/CompetitionSeasonMapper.java

@@ -0,0 +1,37 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.CompetitionSeason;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.CompetitionSeasonMapper")
+public interface CompetitionSeasonMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(CompetitionSeason record);
+
+    CompetitionSeason selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(CompetitionSeason record);
+
+    List<CompetitionSeason> queryAllCompetitionSeason(CompetitionSeason record);
+
+    List<CompetitionSeason> queryCompetitionSeasonByPage(Map<String, Object> parameter);
+
+    int delete(CompetitionSeason record);
+
+    CompetitionSeason queryCompetitionSeason(CompetitionSeason record);
+
+    CompetitionSeason queryStartCompetitionSeason(CompetitionSeason record);
+
+    List<CompetitionSeason> query(CompetitionSeason record);
+
+    int addBonus(CompetitionSeason addBonus);
+}
+

+ 685 - 0
src/main/java/com/izouma/awesomeadmin/dao/CompetitionSeasonMapper.xml

@@ -0,0 +1,685 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.CompetitionSeasonMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.CompetitionSeason">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="season" property="season" jdbcType="VARCHAR"/>
+        <result column="short_name" property="shortName" jdbcType="VARCHAR"/>
+        <result column="begin_time" property="beginTime" jdbcType="TIMESTAMP"/>
+        <result column="end_time" property="endTime" jdbcType="TIMESTAMP"/>
+        <result column="bonus" property="bonus" jdbcType="DECIMAL"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="rank" property="rank" jdbcType="INTEGER"/>
+        <result column="status_flag" property="statusFlag" jdbcType="INTEGER"/>
+        <result column="game_id" property="gameId" jdbcType="INTEGER"/>
+        <result column="first_ratio" property="firstRatio" jdbcType="DECIMAL"/>
+        <result column="second_ratio" property="secondRatio" jdbcType="DECIMAL"/>
+        <result column="third_ratio" property="thirdRatio" jdbcType="DECIMAL"/>
+        <result column="bonus_paid" property="bonusPaid" jdbcType="DECIMAL"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            season,
+
+            short_name,
+
+            begin_time,
+
+            end_time,
+
+            bonus,
+
+            remark,
+
+            rank,
+
+            status_flag,
+
+            game_id,
+
+            first_ratio,
+
+            second_ratio,
+
+            third_ratio,
+
+            bonus_paid,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from competition_season
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from competition_season
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.CompetitionSeason" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into competition_season
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="season!= null">
+                season,
+            </if>
+            <if test="shortName!= null">
+                short_name,
+            </if>
+            <if test="beginTime!= null">
+                begin_time,
+            </if>
+            <if test="endTime!= null">
+                end_time,
+            </if>
+            <if test="bonus!= null">
+                bonus,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="rank!= null">
+                rank,
+            </if>
+            <if test="statusFlag!= null">
+                status_flag,
+            </if>
+            <if test="gameId!= null">
+                game_id,
+            </if>
+            <if test="firstRatio!= null">
+                first_ratio,
+            </if>
+            <if test="secondRatio!= null">
+                second_ratio,
+            </if>
+            <if test="thirdRatio!= null">
+                third_ratio,
+            </if>
+            <if test="bonusPaid!= null">
+                bonus_paid,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="season != null">
+                #{season,jdbcType=VARCHAR},
+            </if>
+            <if test="shortName != null">
+                #{shortName,jdbcType=VARCHAR},
+            </if>
+            <if test="beginTime != null">
+                #{beginTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="endTime != null">
+                #{endTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="bonus != null">
+                #{bonus,jdbcType=DECIMAL},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="statusFlag != null">
+                #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="gameId != null">
+                #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="firstRatio != null">
+                #{firstRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="secondRatio != null">
+                #{secondRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="thirdRatio != null">
+                #{thirdRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="bonusPaid != null">
+                #{bonusPaid,jdbcType=DECIMAL},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.CompetitionSeason">
+        update competition_season
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="season != null">
+                season= #{season,jdbcType=VARCHAR},
+            </if>
+            <if test="shortName != null">
+                short_name= #{shortName,jdbcType=VARCHAR},
+            </if>
+            <if test="beginTime != null">
+                begin_time= #{beginTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="endTime != null">
+                end_time= #{endTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="bonus != null">
+                bonus= #{bonus,jdbcType=DECIMAL},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                rank= #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="statusFlag != null">
+                status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="gameId != null">
+                game_id= #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="firstRatio != null">
+                first_ratio= #{firstRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="secondRatio != null">
+                second_ratio= #{secondRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="thirdRatio != null">
+                third_ratio= #{thirdRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="bonusPaid != null">
+                bonus_paid= #{bonusPaid,jdbcType=DECIMAL},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <update id="addBonus" parameterType="com.izouma.awesomeadmin.model.CompetitionSeason">
+        update competition_season
+        <set>
+            <if test="bonus != null">
+                bonus = bonus + #{bonus,jdbcType=DECIMAL},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryCompetitionSeasonByPage" parameterType="java.util.Map"
+            resultMap="PageCompetitionSeasonResult">
+        select
+        <include refid="Base_Column_List"/>
+        from competition_season
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.season != null and !&quot;&quot;.equals(record.season)">
+                and season = #{record.season}
+            </if>
+            <if test="record.shortName != null and !&quot;&quot;.equals(record.shortName)">
+                and short_name = #{record.shortName}
+            </if>
+            <if test="record.beginTime != null and !&quot;&quot;.equals(record.beginTime)">
+                and begin_time = #{record.beginTime}
+            </if>
+            <if test="record.endTime != null and !&quot;&quot;.equals(record.endTime)">
+                and end_time = #{record.endTime}
+            </if>
+            <if test="record.bonus != null and !&quot;&quot;.equals(record.bonus)">
+                and bonus = #{record.bonus}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.rank != null and !&quot;&quot;.equals(record.rank)">
+                and rank = #{record.rank}
+            </if>
+            <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                and status_flag = #{record.statusFlag}
+            </if>
+            <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and game_id = #{record.gameId}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR season LIKE concat('%',#{record.searchKey},'%')
+                    OR short_name LIKE concat('%',#{record.searchKey},'%')
+                    OR bonus LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR rank LIKE concat('%',#{record.searchKey},'%')
+                    OR status_flag LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllCompetitionSeason" parameterType="java.util.Map"
+            resultMap="PageCompetitionSeasonResult">
+        select
+        <include refid="Base_Column_List"/>
+        from competition_season
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="season != null and !&quot;&quot;.equals(season)">
+                and season = #{season}
+            </if>
+            <if test="shortName != null and !&quot;&quot;.equals(shortName)">
+                and short_name = #{shortName}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and end_time = #{endTime}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and bonus = #{bonus}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR season LIKE concat('%',#{searchKey},'%')
+                    OR short_name LIKE concat('%',#{searchKey},'%')
+                    OR bonus LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR rank LIKE concat('%',#{searchKey},'%')
+                    OR status_flag LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryCompetitionSeason" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.CompetitionSeason">
+        select
+        <include refid="Base_Column_List"/>
+        from competition_season
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="season != null and !&quot;&quot;.equals(season)">
+                and season = #{season}
+            </if>
+            <if test="shortName != null and !&quot;&quot;.equals(shortName)">
+                and short_name = #{shortName}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and end_time = #{endTime}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and bonus = #{bonus}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+
+
+        </where>
+        LIMIT 1
+    </select>
+    <select id="queryStartCompetitionSeason" parameterType="java.util.Map"
+            resultMap="RankCompetitionSeasonResult">
+        select
+        <include refid="Base_Column_List"/>
+        ,
+        #{userId} as user_id
+
+        from competition_season
+        <where>
+            and del_flag = 'N'
+            and status_flag = 1
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="season != null and !&quot;&quot;.equals(season)">
+                and season = #{season}
+            </if>
+            <if test="shortName != null and !&quot;&quot;.equals(shortName)">
+                and short_name = #{shortName}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and end_time = #{endTime}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and bonus = #{bonus}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE competition_season SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.CompetitionSeason">
+        select
+        <include refid="Base_Column_List"/>
+        from competition_season
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+
+
+    <resultMap id="PageCompetitionSeasonResult" type="com.izouma.awesomeadmin.model.CompetitionSeason"
+               extends="BaseResultMap">
+
+        <association property="gameInfo"
+                     javaType="com.izouma.awesomeadmin.model.GameInfo"
+                     select="com.izouma.awesomeadmin.dao.GameInfoMapper.queryGameInfo"
+                     column="{ id = game_id }"/>
+
+    </resultMap>
+
+    <resultMap id="RankCompetitionSeasonResult" type="com.izouma.awesomeadmin.model.CompetitionSeason"
+               extends="BaseResultMap">
+
+        <association property="playerInfo"
+                     javaType="com.izouma.awesomeadmin.model.PlayerInfo"
+                     select="com.izouma.awesomeadmin.dao.PlayerInfoMapper.seasonUserRank"
+                     column="{ gameId = game_id, userId = user_id, seasonId = id }"/>
+
+    </resultMap>
+
+</mapper>
+

+ 35 - 0
src/main/java/com/izouma/awesomeadmin/dao/CustomerServiceMapper.java

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.CustomerService;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.CustomerServiceMapper")
+public interface CustomerServiceMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(CustomerService record);
+
+    CustomerService selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(CustomerService record);
+
+    List<CustomerService> queryAllCustomerService(CustomerService record);
+
+    List<CustomerService> queryCustomerServiceByPage(Map<String, Object> parameter);
+
+    int delete(CustomerService record);
+
+    CustomerService queryCustomerService(CustomerService record);
+
+    List<CustomerService> query(CustomerService record);
+    /*generatedEnd*/
+
+}
+

+ 459 - 0
src/main/java/com/izouma/awesomeadmin/dao/CustomerServiceMapper.xml

@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.CustomerServiceMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.CustomerService">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="service_name" property="serviceName" jdbcType="VARCHAR"/>
+        <result column="qq" property="qq" jdbcType="VARCHAR"/>
+        <result column="telephone" property="telephone" jdbcType="VARCHAR"/>
+        <result column="wchat" property="wchat" jdbcType="VARCHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="icon" property="icon" jdbcType="VARCHAR"/>
+        <result column="channel" property="channel" jdbcType="INTEGER"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, service_name, qq, telephone, wchat, remark, icon, channel        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM customer_service
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM customer_service
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.CustomerService" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO customer_service
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="serviceName!= null">
+                service_name,
+            </if>
+            <if test="qq!= null">
+                qq,
+            </if>
+            <if test="telephone!= null">
+                telephone,
+            </if>
+            <if test="wchat!= null">
+                wchat,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="icon!= null">
+                icon,
+            </if>
+            <if test="channel!= null">
+                channel,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="serviceName != null">
+                #{serviceName,jdbcType=VARCHAR},
+            </if>
+            <if test="qq != null">
+                #{qq,jdbcType=VARCHAR},
+            </if>
+            <if test="telephone != null">
+                #{telephone,jdbcType=VARCHAR},
+            </if>
+            <if test="wchat != null">
+                #{wchat,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="icon != null">
+                #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="channel != null">
+                #{channel,jdbcType=INTEGER},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.CustomerService">
+        UPDATE customer_service
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="serviceName != null">
+                service_name= #{serviceName,jdbcType=VARCHAR},
+            </if>
+            <if test="qq != null">
+                qq= #{qq,jdbcType=VARCHAR},
+            </if>
+            <if test="telephone != null">
+                telephone= #{telephone,jdbcType=VARCHAR},
+            </if>
+            <if test="wchat != null">
+                wchat= #{wchat,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="icon != null">
+                icon= #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="channel != null">
+                channel= #{channel,jdbcType=INTEGER},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryCustomerServiceByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.CustomerService">
+        SELECT <include refid="Base_Column_List"/> FROM customer_service
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.serviceName != null and !&quot;&quot;.equals(record.serviceName)">
+                AND service_name = #{record.serviceName}
+            </if>
+            <if test="record.qq != null and !&quot;&quot;.equals(record.qq)">
+                AND qq = #{record.qq}
+            </if>
+            <if test="record.telephone != null and !&quot;&quot;.equals(record.telephone)">
+                AND telephone = #{record.telephone}
+            </if>
+            <if test="record.wchat != null and !&quot;&quot;.equals(record.wchat)">
+                AND wchat = #{record.wchat}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                AND remark = #{record.remark}
+            </if>
+            <if test="record.icon != null and !&quot;&quot;.equals(record.icon)">
+                AND icon = #{record.icon}
+            </if>
+            <if test="record.channel != null and !&quot;&quot;.equals(record.channel)">
+                AND channel = #{record.channel}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR service_name LIKE concat('%',#{record.searchKey},'%')
+                    OR qq LIKE concat('%',#{record.searchKey},'%')
+                    OR telephone LIKE concat('%',#{record.searchKey},'%')
+                    OR wchat LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR channel LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllCustomerService" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.CustomerService">
+        SELECT <include refid="Base_Column_List"/> FROM customer_service
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="serviceName != null and !&quot;&quot;.equals(serviceName)">
+                AND service_name = #{serviceName}
+            </if>
+            <if test="qq != null and !&quot;&quot;.equals(qq)">
+                AND qq = #{qq}
+            </if>
+            <if test="telephone != null and !&quot;&quot;.equals(telephone)">
+                AND telephone = #{telephone}
+            </if>
+            <if test="wchat != null and !&quot;&quot;.equals(wchat)">
+                AND wchat = #{wchat}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                AND icon = #{icon}
+            </if>
+            <if test="channel != null and !&quot;&quot;.equals(channel)">
+                AND channel = #{channel}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR service_name LIKE concat('%',#{searchKey},'%')
+                    OR qq LIKE concat('%',#{searchKey},'%')
+                    OR telephone LIKE concat('%',#{searchKey},'%')
+                    OR wchat LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR channel LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryCustomerService" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.CustomerService">
+        SELECT <include refid="Base_Column_List"/> FROM customer_service
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="serviceName != null and !&quot;&quot;.equals(serviceName)">
+                AND service_name = #{serviceName}
+            </if>
+            <if test="qq != null and !&quot;&quot;.equals(qq)">
+                AND qq = #{qq}
+            </if>
+            <if test="telephone != null and !&quot;&quot;.equals(telephone)">
+                AND telephone = #{telephone}
+            </if>
+            <if test="wchat != null and !&quot;&quot;.equals(wchat)">
+                AND wchat = #{wchat}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                AND icon = #{icon}
+            </if>
+            <if test="channel != null and !&quot;&quot;.equals(channel)">
+                AND channel = #{channel}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE customer_service SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.CustomerService">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM customer_service
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+</mapper>
+

+ 36 - 0
src/main/java/com/izouma/awesomeadmin/dao/DataSourceInfoMapper.java

@@ -0,0 +1,36 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.model.DataSourceInfo;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Dao接口
+ */
+@Component
+@Repository("com.zoumaframe.dao.DataSourceInfoMapper")
+public interface DataSourceInfoMapper {
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(DataSourceInfo record);
+
+    DataSourceInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(DataSourceInfo record);
+
+    List<DataSourceInfo> queryAllDataSourceInfo(DataSourceInfo record);
+
+    List<DataSourceInfo> queryDataSourceInfoByPage(Map<String, Object> parameter);
+
+    int delete(String id);
+
+    DataSourceInfo queryDataSourceInfo(DataSourceInfo record);
+
+    List<DataSourceInfo> query(DataSourceInfo record);
+}
+

+ 327 - 0
src/main/java/com/izouma/awesomeadmin/dao/DataSourceInfoMapper.xml

@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.DataSourceInfoMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.DataSourceInfo" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="code" property="code" jdbcType="VARCHAR" />
+                                <result column="database_type" property="databaseType" jdbcType="VARCHAR" />
+                                <result column="url" property="url" jdbcType="VARCHAR" />
+                                <result column="username" property="username" jdbcType="VARCHAR" />
+                                <result column="password" property="password" jdbcType="VARCHAR" />
+                                <result column="database_name" property="databaseName" jdbcType="VARCHAR" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+        <trim  suffixOverrides="," >
+            id,
+
+            del_flag,
+
+            code,
+
+            database_type,
+
+            url,
+
+            username,
+
+            password,
+
+            database_name,
+
+            </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from sys_data_source_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from sys_data_source_info
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.DataSourceInfo" useGeneratedKeys="true" keyProperty="id">
+        insert into sys_data_source_info
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="code!= null" >
+                code,
+            </if>
+                <if test="databaseType!= null" >
+                database_type,
+            </if>
+                <if test="url!= null" >
+                url,
+            </if>
+                <if test="username!= null" >
+                username,
+            </if>
+                <if test="password!= null" >
+                password,
+            </if>
+                <if test="databaseName!= null" >
+                database_name,
+            </if>
+            </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+                    <if test="id != null" >
+                #{id,jdbcType=INTEGER},
+            </if>
+                    <if test="delFlag != null" >
+                #{delFlag,jdbcType=CHAR},
+            </if>
+                    <if test="code != null" >
+                #{code,jdbcType=VARCHAR},
+            </if>
+                    <if test="databaseType != null" >
+                #{databaseType,jdbcType=VARCHAR},
+            </if>
+                    <if test="url != null" >
+                #{url,jdbcType=VARCHAR},
+            </if>
+                    <if test="username != null" >
+                #{username,jdbcType=VARCHAR},
+            </if>
+                    <if test="password != null" >
+                #{password,jdbcType=VARCHAR},
+            </if>
+                    <if test="databaseName != null" >
+                #{databaseName,jdbcType=VARCHAR},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.DataSourceInfo" >
+        update sys_data_source_info
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="code != null" >
+               code= #{code,jdbcType=VARCHAR},
+            </if>
+                     <if test="databaseType != null" >
+               database_type= #{databaseType,jdbcType=VARCHAR},
+            </if>
+                     <if test="url != null" >
+               url= #{url,jdbcType=VARCHAR},
+            </if>
+                     <if test="username != null" >
+               username= #{username,jdbcType=VARCHAR},
+            </if>
+                     <if test="password != null" >
+               password= #{password,jdbcType=VARCHAR},
+            </if>
+                     <if test="databaseName != null" >
+               database_name= #{databaseName,jdbcType=VARCHAR},
+            </if>
+                 </set>
+        where id = #{id,jdbcType=INTEGER}
+    </update>
+    <select id="queryDataSourceInfoByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.DataSourceInfo">
+        select <include refid="Base_Column_List"/> from sys_data_source_info
+        <where>
+            and del_flag = 'N'
+                    <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and  id = #{record.id}
+            </if>
+                     <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and  del_flag = #{record.delFlag}
+            </if>
+                     <if test="record.code != null and !&quot;&quot;.equals(record.code)">
+                and  code = #{record.code}
+            </if>
+                     <if test="record.databaseType != null and !&quot;&quot;.equals(record.databaseType)">
+                and  database_type = #{record.databaseType}
+            </if>
+                     <if test="record.url != null and !&quot;&quot;.equals(record.url)">
+                and  url = #{record.url}
+            </if>
+                     <if test="record.username != null and !&quot;&quot;.equals(record.username)">
+                and  username = #{record.username}
+            </if>
+                     <if test="record.password != null and !&quot;&quot;.equals(record.password)">
+                and  password = #{record.password}
+            </if>
+                     <if test="record.databaseName != null and !&quot;&quot;.equals(record.databaseName)">
+                and  database_name = #{record.databaseName}
+            </if>
+                  <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+             <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                OR  code LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  database_type LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  url LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  username LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  password LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  database_name LIKE concat('%',#{record.searchKey},'%')
+                                                             </trim>
+         </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by id desc
+    </select>
+    <select id="queryAllDataSourceInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.DataSourceInfo">
+        select <include refid="Base_Column_List"/> from sys_data_source_info
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and  id = #{id}
+            </if>
+                    <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and  del_flag = #{delFlag}
+            </if>
+                    <if test="code != null and !&quot;&quot;.equals(code)">
+                and  code = #{code}
+            </if>
+                    <if test="databaseType != null and !&quot;&quot;.equals(databaseType)">
+                and  database_type = #{databaseType}
+            </if>
+                    <if test="url != null and !&quot;&quot;.equals(url)">
+                and  url = #{url}
+            </if>
+                    <if test="username != null and !&quot;&quot;.equals(username)">
+                and  username = #{username}
+            </if>
+                    <if test="password != null and !&quot;&quot;.equals(password)">
+                and  password = #{password}
+            </if>
+                    <if test="databaseName != null and !&quot;&quot;.equals(databaseName)">
+                and  database_name = #{databaseName}
+            </if>
+                    <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                OR  code LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  database_type LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  url LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  username LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  password LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  database_name LIKE concat('%',#{searchKey},'%')
+                                                                                        </trim>
+            </if>
+<if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+    <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+        <choose>
+            <when test="item.indexOf('like') != -1">
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        concat('%',#{itemDetail},'%')
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </when>
+            <otherwise>
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        #{itemDetail}
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </otherwise>
+        </choose>
+
+
+    </foreach>
+
+
+</if>
+        </where>
+        order by id desc
+    </select>
+    <select id="queryDataSourceInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.DataSourceInfo">
+        select <include refid="Base_Column_List"/> from sys_data_source_info
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+                     <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+                     <if test="code != null and !&quot;&quot;.equals(code)">
+                and code = #{code}
+            </if>
+                     <if test="databaseType != null and !&quot;&quot;.equals(databaseType)">
+                and database_type = #{databaseType}
+            </if>
+                     <if test="url != null and !&quot;&quot;.equals(url)">
+                and url = #{url}
+            </if>
+                     <if test="username != null and !&quot;&quot;.equals(username)">
+                and username = #{username}
+            </if>
+                     <if test="password != null and !&quot;&quot;.equals(password)">
+                and password = #{password}
+            </if>
+                     <if test="databaseName != null and !&quot;&quot;.equals(databaseName)">
+                and database_name = #{databaseName}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE sys_data_source_info SET del_flag = 'Y'
+        <where>
+            AND id = #{id}
+        </where>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.DataSourceInfo">
+        select <include refid="Base_Column_List"/> from sys_data_source_info
+        <where>
+            and del_flag = 'N'
+                                                                                                                                                                                                                                                    </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 51 - 0
src/main/java/com/izouma/awesomeadmin/dao/DepartInfoMapper.java

@@ -0,0 +1,51 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.izouma.awesomeadmin.model.UserInfo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import com.izouma.awesomeadmin.model.DepartInfo;
+
+/**
+ * depart_info Dao接口
+ * Thu Apr 26 10:56:37 CST 2018  Suo Chen Cheng
+ */
+@Repository("com.izouma.awesomeadmin.dao.DepartInfoMapper")
+public interface DepartInfoMapper {
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(DepartInfo record);
+
+    DepartInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(DepartInfo record);
+
+    List<DepartInfo> queryAllDepartInfo(DepartInfo record);
+
+    List<DepartInfo> queryDepartInfosByPage(Map<String, Object> parameter);
+
+    int delete(String id);
+
+    DepartInfo queryDepartInfo(DepartInfo record);
+
+    List<DepartInfo> findPower(DepartInfo record);
+
+    List<DepartInfo> getParentList(Integer id);
+
+    List<DepartInfo> selectByPrimaryKeys(String ids);
+
+    List<DepartInfo> getUserDeparts(@Param("userId") Integer userId);
+
+    int setUserDeparts(@Param("userId") Integer userId, @Param("departs") List<String> departs);
+
+    int clearUserDeparts(@Param("userId") Integer userId);
+
+    String getUserDepartId(Integer id);
+
+    List<UserInfo> getDepartUsers(Integer departId);
+}
+

+ 341 - 0
src/main/java/com/izouma/awesomeadmin/dao/DepartInfoMapper.xml

@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.DepartInfoMapper" >
+	<resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.DepartInfo" >
+		<id column="id" property="id" jdbcType="INTEGER" />
+		<result column="depart_name" property="departName" jdbcType="VARCHAR" />
+		<result column="parent_id" property="parentId" jdbcType="INTEGER" />
+		<result column="all_parent_id" property="allParentId" jdbcType="VARCHAR" />
+		<result column="description" property="description" jdbcType="VARCHAR" />
+		<result column="depart_code" property="departCode" jdbcType="VARCHAR" />
+		<result column="org_code" property="orgCode" jdbcType="VARCHAR" />
+		<result column="type" property="type" jdbcType="INTEGER" />
+		<result column="remark" property="remark" jdbcType="VARCHAR" />
+		<result column="sort" property="sort" jdbcType="INTEGER" />
+		<result column="del_flag" property="delFlag" jdbcType="CHAR" />
+		<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+		<result column="permission" property="permission" jdbcType="VARCHAR" />
+	</resultMap>
+	<sql id="Base_Column_List" >
+		 id, depart_name, parent_id, all_parent_id, description, depart_code, org_code, type, remark, sort, del_flag, create_time, permission
+	</sql>
+	<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+		select
+		<include refid="Base_Column_List" />
+		from sys_depart
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<select id="selectByPrimaryKeys" resultMap="BaseResultMap" parameterType="java.lang.String" >
+		select
+		<include refid="Base_Column_List" />
+		from sys_depart
+		where FIND_IN_SET(id, #{ids,jdbcType=INTEGER}) and del_flag = 'N'
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from sys_depart
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.DepartInfo" useGeneratedKeys="true" keyProperty="id">
+		insert into sys_depart
+		<trim prefix="(" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				id,	
+			</if>
+			<if test="departName != null" >
+				depart_name,	
+			</if>
+			<if test="parentId != null" >
+				parent_id,	
+			</if>
+			<if test="allParentId != null" >
+				all_parent_id,	
+			</if>
+			<if test="description != null" >
+				description,	
+			</if>
+			<if test="departCode != null" >
+				depart_code,	
+			</if>
+			<if test="orgCode != null" >
+				org_code,	
+			</if>
+			<if test="type != null" >
+				type,	
+			</if>
+			<if test="remark != null" >
+				remark,	
+			</if>
+			<if test="sort != null" >
+				sort,
+			</if>
+			<if test="delFlag != null" >
+				del_flag,	
+			</if>
+			<if test="createTime != null" >
+				create_time,	
+			</if>
+			<if test="permission != null" >
+				permission,	
+			</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				#{id,jdbcType=INTEGER},	
+			</if>
+			<if test="departName != null" >
+				#{departName,jdbcType=VARCHAR},	
+			</if>
+			<if test="parentId != null" >
+				#{parentId,jdbcType=INTEGER},	
+			</if>
+			<if test="allParentId != null" >
+				#{allParentId,jdbcType=VARCHAR},	
+			</if>
+			<if test="description != null" >
+				#{description,jdbcType=VARCHAR},	
+			</if>
+			<if test="departCode != null" >
+				#{departCode,jdbcType=VARCHAR},	
+			</if>
+			<if test="orgCode != null" >
+				#{orgCode,jdbcType=VARCHAR},	
+			</if>
+			<if test="type != null" >
+				#{type,jdbcType=INTEGER},	
+			</if>
+			<if test="remark != null" >
+				#{remark,jdbcType=VARCHAR},	
+			</if>
+			<if test="sort != null" >
+				#{sort,jdbcType=INTEGER},
+			</if>
+			<if test="delFlag != null" >
+				#{delFlag,jdbcType=CHAR},	
+			</if>
+			<if test="createTime != null" >
+				#{createTime,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="permission != null" >
+				#{permission,jdbcType=VARCHAR},	
+			</if>
+		</trim>
+	</insert>
+	<update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.DepartInfo" >
+		UPDATE sys_depart
+		<set >
+			<if test="departName != null" >
+				depart_name = #{departName,jdbcType=VARCHAR},	
+			</if>
+			<if test="parentId != null" >
+				parent_id = #{parentId,jdbcType=INTEGER},	
+			</if>
+			<if test="allParentId != null" >
+				all_parent_id = #{allParentId,jdbcType=VARCHAR},	
+			</if>
+			<if test="description != null" >
+				description = #{description,jdbcType=VARCHAR},	
+			</if>
+			<if test="departCode != null" >
+				depart_code = #{departCode,jdbcType=VARCHAR},	
+			</if>
+			<if test="orgCode != null" >
+				org_code = #{orgCode,jdbcType=VARCHAR},	
+			</if>
+			<if test="type != null" >
+				type = #{type,jdbcType=INTEGER},	
+			</if>
+			<if test="remark != null" >
+				remark = #{remark,jdbcType=VARCHAR},	
+			</if>
+			<if test="sort != null" >
+				sort = #{sort,jdbcType=INTEGER},
+			</if>
+			<if test="delFlag != null" >
+				del_flag = #{delFlag,jdbcType=CHAR},	
+			</if>
+			<if test="createTime != null" >
+				create_time = #{createTime,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="permission != null" >
+				permission = #{permission,jdbcType=VARCHAR},	
+			</if>
+		</set>
+		where id = #{id,jdbcType=INTEGER}
+	</update>
+	<select id="queryDepartInfosByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.DepartInfo">
+		select <include refid="Base_Column_List"/> from sys_depart
+		<where>
+			and del_flag = 'N'
+			<if test="record.id != null and !&quot;&quot;.equals(record.id)">
+				and id = #{record.id}	
+			</if>
+			<if test="record.departName != null and !&quot;&quot;.equals(record.departName)">
+				and depart_name = #{record.departName}	
+			</if>
+			<if test="record.parentId != null and !&quot;&quot;.equals(record.parentId)">
+				and parent_id = #{record.parentId}	
+			</if>
+			<if test="record.allParentId != null and !&quot;&quot;.equals(record.allParentId)">
+				and all_parent_id = #{record.allParentId}	
+			</if>
+			<if test="record.description != null and !&quot;&quot;.equals(record.description)">
+				and description = #{record.description}	
+			</if>
+			<if test="record.departCode != null and !&quot;&quot;.equals(record.departCode)">
+				and depart_code = #{record.departCode}	
+			</if>
+			<if test="record.orgCode != null and !&quot;&quot;.equals(record.orgCode)">
+				and org_code = #{record.orgCode}	
+			</if>
+			<if test="record.type != null and !&quot;&quot;.equals(record.type)">
+				and type = #{record.type}	
+			</if>
+			<if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+				and remark = #{record.remark}	
+			</if>
+			<if test="record.sort != null and !&quot;&quot;.equals(record.sort)">
+				and sort = #{record.sort}
+			</if>
+			<if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+				and del_flag = #{record.delFlag}	
+			</if>
+			<if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+				and create_time = #{record.createTime}	
+			</if>
+			<if test="record.permission != null and !&quot;&quot;.equals(record.permission)">
+				and permission = #{record.permission}	
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryAllDepartInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.DepartInfo">
+		select <include refid="Base_Column_List"/> from sys_depart
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="departName != null and !&quot;&quot;.equals(departName)">
+				and depart_name = #{departName}	
+			</if>
+			<if test="parentId != null and !&quot;&quot;.equals(parentId)">
+				and parent_id = #{parentId}	
+			</if>
+			<if test="allParentId != null and !&quot;&quot;.equals(allParentId)">
+				and all_parent_id = #{allParentId}	
+			</if>
+			<if test="description != null and !&quot;&quot;.equals(description)">
+				and description = #{description}	
+			</if>
+			<if test="departCode != null and !&quot;&quot;.equals(departCode)">
+				and depart_code = #{departCode}	
+			</if>
+			<if test="orgCode != null and !&quot;&quot;.equals(orgCode)">
+				and org_code = #{orgCode}	
+			</if>
+			<if test="type != null and !&quot;&quot;.equals(type)">
+				and type = #{type}	
+			</if>
+			<if test="remark != null and !&quot;&quot;.equals(remark)">
+				and remark = #{remark}	
+			</if>
+			<if test="sort != null and !&quot;&quot;.equals(sort)">
+				and sort = #{sort}
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+			<if test="createTime != null and !&quot;&quot;.equals(createTime)">
+				and create_time = #{createTime}	
+			</if>
+			<if test="permission != null and !&quot;&quot;.equals(permission)">
+				and permission = #{permission}	
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryDepartInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.DepartInfo">
+		select <include refid="Base_Column_List"/> from sys_depart
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="departName != null and !&quot;&quot;.equals(departName)">
+				and depart_name = #{departName}	
+			</if>
+			<if test="parentId != null and !&quot;&quot;.equals(parentId)">
+				and parent_id = #{parentId}	
+			</if>
+			<if test="allParentId != null and !&quot;&quot;.equals(allParentId)">
+				and all_parent_id = #{allParentId}	
+			</if>
+			<if test="description != null and !&quot;&quot;.equals(description)">
+				and description = #{description}	
+			</if>
+			<if test="departCode != null and !&quot;&quot;.equals(departCode)">
+				and depart_code = #{departCode}	
+			</if>
+			<if test="orgCode != null and !&quot;&quot;.equals(orgCode)">
+				and org_code = #{orgCode}	
+			</if>
+			<if test="type != null and !&quot;&quot;.equals(type)">
+				and type = #{type}	
+			</if>
+			<if test="remark != null and !&quot;&quot;.equals(remark)">
+				and remark = #{remark}	
+			</if>
+			<if test="sort != null and !&quot;&quot;.equals(sort)">
+				and sort = #{sort}
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+			<if test="createTime != null and !&quot;&quot;.equals(createTime)">
+				and create_time = #{createTime}	
+			</if>
+			<if test="permission != null and !&quot;&quot;.equals(permission)">
+				and permission = #{permission}	
+			</if>
+		</where>
+		LIMIT 1
+	</select>
+    <select id="findPower" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.DepartInfo">
+		select * from sys_depart where all_parent_id  LIKE '${allParentId}%'  and id=  #{parentId}
+	</select>
+    <update id="delete">
+		UPDATE sys_depart SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+
+	<select id="getParentList" resultType="departInfo" parameterType="integer">
+	    SELECT * from sys_depart WHERE FIND_IN_SET(id,(SELECT all_parent_id from sys_depart WHERE id  = #{id})) AND del_flag = 'N'
+	</select>
+
+	<select id="getUserDeparts" resultType="com.izouma.awesomeadmin.model.DepartInfo">
+		select
+		<include refid="Base_Column_List" />
+		from sys_depart
+		where id in (select depart_id from sys_user_depart where user_id = #{userId})
+		and del_flag = 'N'
+	</select>
+    <insert id="setUserDeparts">
+		insert into sys_user_depart (user_id, depart_id)
+		values
+		<foreach collection="departs" item="departId" separator=",">
+			(#{userId}, #{departId})
+		</foreach>
+	</insert>
+	<delete id="clearUserDeparts">
+		delete from sys_user_depart where user_id = #{userId}
+	</delete>
+	<select id="getUserDepartId" resultType="java.lang.String">
+		SELECT group_concat(depart_id) FROM sys_user_depart WHERE user_id = #{id}
+	</select>
+	<select id="getDepartUsers" resultType="com.izouma.awesomeadmin.model.UserInfo">
+		select * from sys_user where id in (select user_id from sys_user_depart where depart_id = #{departId}) and del_flag = 'N'
+	</select>
+</mapper>
+

+ 35 - 0
src/main/java/com/izouma/awesomeadmin/dao/GameInfoMapper.java

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.GameInfo;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.GameInfoMapper")
+public interface GameInfoMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(GameInfo record);
+
+    GameInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(GameInfo record);
+
+    List<GameInfo> queryAllGameInfo(GameInfo record);
+
+    List<GameInfo> queryGameInfoByPage(Map<String, Object> parameter);
+
+    int delete(GameInfo record);
+
+    GameInfo queryGameInfo(GameInfo record);
+
+    List<GameInfo> query(GameInfo record);
+
+    List<GameInfo> getGameInfoSeasonsList(GameInfo record);
+}
+

+ 610 - 0
src/main/java/com/izouma/awesomeadmin/dao/GameInfoMapper.xml

@@ -0,0 +1,610 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.GameInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.GameInfo">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="game_name" property="gameName" jdbcType="VARCHAR"/>
+        <result column="type_flag" property="typeFlag" jdbcType="INTEGER"/>
+        <result column="icon" property="icon" jdbcType="VARCHAR"/>
+        <result column="rank" property="rank" jdbcType="INTEGER"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="use_flag" property="useFlag" jdbcType="CHAR"/>
+        <result column="short_name" property="shortName" jdbcType="VARCHAR"/>
+        <result column="profile" property="profile" jdbcType="VARCHAR"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            game_name,
+
+            type_flag,
+
+            icon,
+
+            rank,
+
+            remark,
+
+            use_flag,
+            short_name,
+            profile,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from game_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from game_info
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.GameInfo" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into game_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="gameName!= null">
+                game_name,
+            </if>
+            <if test="typeFlag!= null">
+                type_flag,
+            </if>
+            <if test="icon!= null">
+                icon,
+            </if>
+            <if test="rank!= null">
+                rank,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="useFlag!= null">
+                use_flag,
+            </if>
+            <if test="shortName!= null">
+                short_name,
+            </if>
+            <if test="profile!= null">
+                profile,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameName != null">
+                #{gameName,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="icon != null">
+                #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="useFlag != null">
+                #{useFlag,jdbcType=CHAR},
+            </if>
+            <if test="shortName != null">
+                #{shortName,jdbcType=VARCHAR},
+            </if>
+            <if test="profile != null">
+                #{profile,jdbcType=VARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.GameInfo">
+        update game_info
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameName != null">
+                game_name= #{gameName,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="icon != null">
+                icon= #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                rank= #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="useFlag != null">
+                use_flag= #{useFlag,jdbcType=CHAR},
+            </if>
+            <if test="shortName != null">
+                short_name = #{shortName,jdbcType=VARCHAR},
+            </if>
+            <if test="profile != null">
+                profile= #{profile,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryGameInfoByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GameInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from game_info
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.gameName != null and !&quot;&quot;.equals(record.gameName)">
+                and game_name = #{record.gameName}
+            </if>
+            <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                and type_flag = #{record.typeFlag}
+            </if>
+            <if test="record.icon != null and !&quot;&quot;.equals(record.icon)">
+                and icon = #{record.icon}
+            </if>
+            <if test="record.rank != null and !&quot;&quot;.equals(record.rank)">
+                and rank = #{record.rank}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.useFlag != null and !&quot;&quot;.equals(record.useFlag)">
+                and use_flag = #{record.useFlag}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_name LIKE concat('%',#{record.searchKey},'%')
+                    OR type_flag LIKE concat('%',#{record.searchKey},'%')
+                    OR icon LIKE concat('%',#{record.searchKey},'%')
+                    OR rank LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR use_flag LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllGameInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GameInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from game_info
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameName != null and !&quot;&quot;.equals(gameName)">
+                and game_name = #{gameName}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                and use_flag = #{useFlag}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_name LIKE concat('%',#{searchKey},'%')
+                    OR type_flag LIKE concat('%',#{searchKey},'%')
+                    OR icon LIKE concat('%',#{searchKey},'%')
+                    OR rank LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR use_flag LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="getGameInfoSeasonsList" parameterType="java.util.Map"
+            resultMap="SeasonResult">
+        select
+        <include refid="Base_Column_List"/>
+        ,
+        #{userId}  as user_id
+        from game_info
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameName != null and !&quot;&quot;.equals(gameName)">
+                and game_name = #{gameName}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                and use_flag = #{useFlag}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_name LIKE concat('%',#{searchKey},'%')
+                    OR type_flag LIKE concat('%',#{searchKey},'%')
+                    OR icon LIKE concat('%',#{searchKey},'%')
+                    OR rank LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR use_flag LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryGameInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GameInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from game_info
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameName != null and !&quot;&quot;.equals(gameName)">
+                and game_name = #{gameName}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                and use_flag = #{useFlag}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE game_info SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GameInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from game_info
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+
+    <resultMap id="SeasonResult" type="com.izouma.awesomeadmin.model.GameInfo" extends="BaseResultMap">
+
+        <association property="competitionSeason"
+                     javaType="com.izouma.awesomeadmin.model.CompetitionSeason"
+                     select="com.izouma.awesomeadmin.dao.CompetitionSeasonMapper.queryStartCompetitionSeason"
+                     column="{ gameId = id , userId = user_id}"/>
+
+    </resultMap>
+
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/GenCodeMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Repository;
+
+import com.izouma.awesomeadmin.model.GenCode;
+
+/**
+ * gen_code_model Dao接口
+ * Fri May 04 15:57:06 CST 2018  Suo Chen Cheng
+ */ 
+@Repository("com.izouma.awesomeadmin.dao.GenCodeModelMapper")
+public interface GenCodeMapper {
+
+	int deleteByPrimaryKey(Integer id);
+
+	int insertSelective(GenCode record);
+
+	GenCode selectByPrimaryKey(Integer id);
+
+	int updateByPrimaryKeySelective(GenCode record);
+
+	List <GenCode> queryAllGenCode(GenCode record);
+
+	List <GenCode> queryGenCodeByPage(Map <String, Object> parameter);
+
+	int delete(String id);
+
+	GenCode queryGenCode(GenCode record);
+}
+

+ 265 - 0
src/main/java/com/izouma/awesomeadmin/dao/GenCodeMapper.xml

@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.GenCodeMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.GenCode">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="tableName" property="tableName" jdbcType="VARCHAR"/>
+        <result column="className" property="className" jdbcType="VARCHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="genTable" property="genTable" jdbcType="BIT"/>
+        <result column="genClass" property="genClass" jdbcType="BIT"/>
+        <result column="genList" property="genList" jdbcType="BIT"/>
+        <result column="genForm" property="genForm" jdbcType="BIT"/>
+        <result column="field_id" property="fieldId" jdbcType="VARCHAR"/>
+        <result column="gen_json" property="genJson" jdbcType="VARCHAR"/>
+        <result column="del_flag" property="delFlag" jdbcType="VARCHAR"/>
+        <result column="type_flag" property="typeFlag" jdbcType="VARCHAR"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+		 id, tableName, className, remark, genTable, genClass,
+		 genList, genForm, field_id, gen_json, del_flag, type_flag
+	</sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_gen_code
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+		delete from sys_gen_code
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.GenCode" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into sys_gen_code
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="tableName != null">
+                tableName,
+            </if>
+            <if test="className != null">
+                className,
+            </if>
+            <if test="remark != null">
+                remark,
+            </if>
+            <if test="genTable != null">
+                genTable,
+            </if>
+            <if test="genClass != null">
+                genClass,
+            </if>
+            <if test="genList != null">
+                genList,
+            </if>
+            <if test="genForm != null">
+                genForm,
+            </if>
+            <if test="fieldId != null">
+                field_id,
+            </if>
+            <if test="genJson != null">
+                gen_json,
+            </if>
+            <if test="typeFlag != null">
+                type_flag,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="tableName != null">
+                #{tableName,jdbcType=VARCHAR},
+            </if>
+            <if test="className != null">
+                #{className,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="genTable != null">
+                #{genTable,jdbcType=BIT},
+            </if>
+            <if test="genClass != null">
+                #{genClass,jdbcType=BIT},
+            </if>
+            <if test="genList != null">
+                #{genList,jdbcType=BIT},
+            </if>
+            <if test="genForm != null">
+                #{genForm,jdbcType=BIT},
+            </if>
+            <if test="fieldId != null">
+                #{fieldId,jdbcType=VARCHAR},
+            </if>
+            <if test="genJson != null">
+                #{genJson,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=VARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.GenCode">
+        update sys_gen_code
+        <set>
+            <if test="tableName != null">
+                tableName = #{tableName,jdbcType=VARCHAR},
+            </if>
+            <if test="className != null">
+                className = #{className,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                remark = #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="genTable != null">
+                genTable = #{genTable,jdbcType=BIT},
+            </if>
+            <if test="genClass != null">
+                genClass = #{genClass,jdbcType=BIT},
+            </if>
+            <if test="genList != null">
+                genList = #{genList,jdbcType=BIT},
+            </if>
+            <if test="genForm != null">
+                genForm = #{genForm,jdbcType=BIT},
+            </if>
+            <if test="fieldId != null">
+                field_id = #{fieldId,jdbcType=VARCHAR},
+            </if>
+            <if test="genJson != null">
+                gen_json = #{genJson,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                type_flag = #{typeFlag,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where id = #{id,jdbcType=INTEGER}
+    </update>
+    <select id="queryGenCodeByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GenCode">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_gen_code
+        <where>
+            and del_flag = 'N'
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.tableName != null and !&quot;&quot;.equals(record.tableName)">
+                and tableName = #{record.tableName}
+            </if>
+            <if test="record.className != null and !&quot;&quot;.equals(record.className)">
+                and className = #{record.className}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.genTable != null and !&quot;&quot;.equals(record.genTable)">
+                and genTable = #{record.genTable}
+            </if>
+            <if test="record.genClass != null and !&quot;&quot;.equals(record.genClass)">
+                and genClass = #{record.genClass}
+            </if>
+            <if test="record.genList != null and !&quot;&quot;.equals(record.genList)">
+                and genList = #{record.genList}
+            </if>
+            <if test="record.genForm != null and !&quot;&quot;.equals(record.genForm)">
+                and genForm = #{record.genForm}
+            </if>
+            <if test="record.fieldId != null and !&quot;&quot;.equals(record.fieldId)">
+                and field_id = #{record.fieldId}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR tableName LIKE concat('%',#{record.searchKey},'%')
+                    OR className LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR type_flag LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+        </where>
+        order by id desc
+    </select>
+    <select id="queryAllGenCode" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GenCode">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_gen_code
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="tableName != null and !&quot;&quot;.equals(tableName)">
+                and tableName = #{tableName}
+            </if>
+            <if test="className != null and !&quot;&quot;.equals(className)">
+                and className = #{className}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="genTable != null and !&quot;&quot;.equals(genTable)">
+                and genTable = #{genTable}
+            </if>
+            <if test="genClass != null and !&quot;&quot;.equals(genClass)">
+                and genClass = #{genClass}
+            </if>
+            <if test="genList != null and !&quot;&quot;.equals(genList)">
+                and genList = #{genList}
+            </if>
+            <if test="genForm != null and !&quot;&quot;.equals(genForm)">
+                and genForm = #{genForm}
+            </if>
+            <if test="fieldId != null and !&quot;&quot;.equals(fieldId)">
+                and field_id = #{fieldId}
+            </if>
+        </where>
+        order by id desc
+    </select>
+    <select id="queryGenCode" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GenCode">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_gen_code
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="tableName != null and !&quot;&quot;.equals(tableName)">
+                and tableName = #{tableName}
+            </if>
+            <if test="className != null and !&quot;&quot;.equals(className)">
+                and className = #{className}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="genTable != null and !&quot;&quot;.equals(genTable)">
+                and genTable = #{genTable}
+            </if>
+            <if test="genClass != null and !&quot;&quot;.equals(genClass)">
+                and genClass = #{genClass}
+            </if>
+            <if test="genList != null and !&quot;&quot;.equals(genList)">
+                and genList = #{genList}
+            </if>
+            <if test="genForm != null and !&quot;&quot;.equals(genForm)">
+                and genForm = #{genForm}
+            </if>
+            <if test="fieldId != null and !&quot;&quot;.equals(fieldId)">
+                and field_id = #{fieldId}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE sys_gen_code SET del_flag = 'Y'
+        <where>
+            AND id = #{id}
+        </where>
+    </update>
+</mapper>
+

+ 43 - 0
src/main/java/com/izouma/awesomeadmin/dao/HouseInfoMapper.java

@@ -0,0 +1,43 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.HouseInfo;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.HouseInfoMapper")
+public interface HouseInfoMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(HouseInfo record);
+
+    HouseInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(HouseInfo record);
+
+    List<HouseInfo> queryAllHouseInfo(HouseInfo record);
+
+    List<HouseInfo> queryHouseInfoByPage(Map<String, Object> parameter);
+
+    int delete(HouseInfo record);
+
+    HouseInfo queryHouseInfo(HouseInfo record);
+
+    List<HouseInfo> query(HouseInfo record);
+
+    int joinHouseInfo(HouseInfo record);
+
+    HouseInfo getHouseInfoPlayerNum(Integer valueOf);
+
+    List<HouseInfo> autoBeginHouseInfo(HouseInfo record);
+
+    List<HouseInfo> autoEndHouseInfo(HouseInfo record);
+
+    int updateToAnalysis(HouseInfo record);
+}
+

+ 1018 - 0
src/main/java/com/izouma/awesomeadmin/dao/HouseInfoMapper.xml

@@ -0,0 +1,1018 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.HouseInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.HouseInfo">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="house_name" property="houseName" jdbcType="VARCHAR"/>
+        <result column="house_abstract" property="houseAbstract" jdbcType="VARCHAR"/>
+        <result column="icon" property="icon" jdbcType="VARCHAR"/>
+        <result column="house_code" property="houseCode" jdbcType="VARCHAR"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="house_type" property="houseType" jdbcType="INTEGER"/>
+        <result column="house_level" property="houseLevel" jdbcType="VARCHAR"/>
+        <result column="game_id" property="gameId" jdbcType="INTEGER"/>
+        <result column="status_flag" property="statusFlag" jdbcType="INTEGER"/>
+        <result column="recommend_flag" property="recommendFlag" jdbcType="CHAR"/>
+        <result column="rank" property="rank" jdbcType="INTEGER"/>
+        <result column="use_flag" property="useFlag" jdbcType="CHAR"/>
+        <result column="game_house_id" property="gameHouseId" jdbcType="VARCHAR"/>
+        <result column="game_house_password" property="gameHousePassword" jdbcType="VARCHAR"/>
+        <result column="begin_time" property="beginTime" jdbcType="TIMESTAMP"/>
+        <result column="end_time" property="endTime" jdbcType="TIMESTAMP"/>
+        <result column="match_name" property="matchName" jdbcType="VARCHAR"/>
+        <result column="player_number" property="playerNumber" jdbcType="INTEGER"/>
+        <result column="bonus" property="bonus" jdbcType="DECIMAL"/>
+        <result column="season_id" property="seasonId" jdbcType="INTEGER"/>
+        <result column="video" property="video" jdbcType="VARCHAR"/>
+        <result column="max_number" property="maxNumber" jdbcType="INTEGER"/>
+        <result column="score_type" property="scoreType" jdbcType="INTEGER"/>
+        <result column="killnumber" property="killnumber" jdbcType="INTEGER"/>
+        <result column="service_id" property="serviceId" jdbcType="INTEGER"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            house_name,
+
+            house_abstract,
+
+            icon,
+
+            house_code,
+
+            user_id,
+
+            house_type,
+
+            house_level,
+
+            game_id,
+
+            status_flag,
+
+            recommend_flag,
+
+            rank,
+
+            use_flag,
+
+            game_house_id,
+
+            game_house_password,
+
+            begin_time,
+
+            end_time,
+
+            match_name,
+
+            player_number,
+
+            bonus,
+
+            season_id,
+
+            video,
+
+            max_number,
+
+            score_type,
+            killnumber,
+            service_id,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from house_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <select id="getHouseInfoPlayerNum" resultMap="BaseResultMap" parameterType="java.util.Map">
+        select
+        <include refid="Base_Column_List"/>
+        from house_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from house_info
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.HouseInfo" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into house_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="houseName!= null">
+                house_name,
+            </if>
+            <if test="houseAbstract!= null">
+                house_abstract,
+            </if>
+            <if test="icon!= null">
+                icon,
+            </if>
+            <if test="houseCode!= null">
+                house_code,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="houseType!= null">
+                house_type,
+            </if>
+            <if test="houseLevel!= null">
+                house_level,
+            </if>
+            <if test="gameId!= null">
+                game_id,
+            </if>
+            <if test="statusFlag!= null">
+                status_flag,
+            </if>
+            <if test="recommendFlag!= null">
+                recommend_flag,
+            </if>
+            <if test="rank!= null">
+                rank,
+            </if>
+            <if test="useFlag!= null">
+                use_flag,
+            </if>
+            <if test="gameHouseId!= null">
+                game_house_id,
+            </if>
+            <if test="gameHousePassword!= null">
+                game_house_password,
+            </if>
+            <if test="beginTime!= null">
+                begin_time,
+            </if>
+            <if test="endTime!= null">
+                end_time,
+            </if>
+            <if test="matchName!= null">
+                match_name,
+            </if>
+            <if test="playerNumber!= null">
+                player_number,
+            </if>
+            <if test="bonus!= null">
+                bonus,
+            </if>
+            <if test="seasonId!= null">
+                season_id,
+            </if>
+            <if test="video!= null">
+                video,
+            </if>
+            <if test="maxNumber!= null">
+                max_number,
+            </if>
+            <if test="scoreType!= null">
+                score_type,
+            </if>
+            <if test="killnumber!= null">
+                killnumber,
+            </if>
+            <if test="serviceId!= null">
+                service_id,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="houseName != null">
+                #{houseName,jdbcType=VARCHAR},
+            </if>
+            <if test="houseAbstract != null">
+                #{houseAbstract,jdbcType=VARCHAR},
+            </if>
+            <if test="icon != null">
+                #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="houseCode != null">
+                #{houseCode,jdbcType=VARCHAR},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="houseType != null">
+                #{houseType,jdbcType=INTEGER},
+            </if>
+            <if test="houseLevel != null">
+                #{houseLevel,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="statusFlag != null">
+                #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="recommendFlag != null">
+                #{recommendFlag,jdbcType=CHAR},
+            </if>
+            <if test="rank != null">
+                #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="useFlag != null">
+                #{useFlag,jdbcType=CHAR},
+            </if>
+            <if test="gameHouseId != null">
+                #{gameHouseId,jdbcType=VARCHAR},
+            </if>
+            <if test="gameHousePassword != null">
+                #{gameHousePassword,jdbcType=VARCHAR},
+            </if>
+            <if test="beginTime != null">
+                #{beginTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="endTime != null">
+                #{endTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="matchName != null">
+                #{matchName,jdbcType=VARCHAR},
+            </if>
+            <if test="playerNumber != null">
+                #{playerNumber,jdbcType=INTEGER},
+            </if>
+            <if test="bonus != null">
+                #{bonus,jdbcType=DECIMAL},
+            </if>
+            <if test="seasonId != null">
+                #{seasonId,jdbcType=INTEGER},
+            </if>
+            <if test="video != null">
+                #{video,jdbcType=VARCHAR},
+            </if>
+            <if test="maxNumber != null">
+                #{maxNumber,jdbcType=INTEGER},
+            </if>
+            <if test="scoreType != null">
+                #{scoreType,jdbcType=INTEGER},
+            </if>
+            <if test="killnumber != null">
+                #{killnumber,jdbcType=INTEGER},
+            </if>
+            <if test="serviceId != null">
+                #{serviceId,jdbcType=INTEGER},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.HouseInfo">
+        update house_info
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="houseName != null">
+                house_name= #{houseName,jdbcType=VARCHAR},
+            </if>
+            <if test="houseAbstract != null">
+                house_abstract= #{houseAbstract,jdbcType=VARCHAR},
+            </if>
+            <if test="icon != null">
+                icon= #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="houseCode != null">
+                house_code= #{houseCode,jdbcType=VARCHAR},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="houseType != null">
+                house_type= #{houseType,jdbcType=INTEGER},
+            </if>
+            <if test="houseLevel != null">
+                house_level= #{houseLevel,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                game_id= #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="statusFlag != null">
+                status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="recommendFlag != null">
+                recommend_flag= #{recommendFlag,jdbcType=CHAR},
+            </if>
+            <if test="rank != null">
+                rank= #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="useFlag != null">
+                use_flag= #{useFlag,jdbcType=CHAR},
+            </if>
+            <if test="gameHouseId != null">
+                game_house_id= #{gameHouseId,jdbcType=VARCHAR},
+            </if>
+            <if test="gameHousePassword != null">
+                game_house_password= #{gameHousePassword,jdbcType=VARCHAR},
+            </if>
+            <if test="beginTime != null">
+                begin_time= #{beginTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="endTime != null">
+                end_time= #{endTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="matchName != null">
+                match_name= #{matchName,jdbcType=VARCHAR},
+            </if>
+            <if test="playerNumber != null">
+                player_number= #{playerNumber,jdbcType=INTEGER},
+            </if>
+            <if test="bonus != null">
+                bonus= #{bonus,jdbcType=DECIMAL},
+            </if>
+            <if test="seasonId != null">
+                season_id= #{seasonId,jdbcType=INTEGER},
+            </if>
+            <if test="video != null">
+                video= #{video,jdbcType=VARCHAR},
+            </if>
+            <if test="maxNumber != null">
+                max_number= #{maxNumber,jdbcType=INTEGER},
+            </if>
+            <if test="scoreType != null">
+                score_type= #{scoreType,jdbcType=INTEGER},
+            </if>
+            <if test="killnumber != null">
+                killnumber= #{killnumber,jdbcType=INTEGER},
+            </if>
+            <if test="serviceId != null">
+                service_id= #{serviceId,jdbcType=INTEGER},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <update id="joinHouseInfo" parameterType="com.izouma.awesomeadmin.model.HouseInfo">
+        update house_info
+        <set>
+
+            player_number = ifnull(player_number, 0) + #{playerNumber},
+            bonus = ifnull(bonus, 0) + #{bonus},
+        </set>
+        where
+        id = #{id,jdbcType=INTEGER}
+    </update>
+
+    <sql id="Recommender_rank">
+    , (
+            CASE
+            WHEN user_id IN (
+                SELECT
+                    id
+                FROM
+                    sys_user
+                WHERE
+                    del_flag = 'N'
+                AND recommender = #{record.myUserId}
+            ) THEN
+                1
+            WHEN user_id = #{record.myUserId} THEN
+                1
+            WHEN user_id = #{record.recommender} THEN
+                1
+            ELSE
+                0
+            END
+        ) AS recommender_rank
+    </sql>
+
+    <select id="queryHouseInfoByPage" parameterType="java.util.Map"
+            resultMap="PageHouseInfoResult">
+        select
+        <include refid="Base_Column_List"/>
+        <if test="record.myUserId != null and !&quot;&quot;.equals(record.myUserId)">
+            <include refid="Recommender_rank"/>
+        </if>
+
+        from house_info
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.houseName != null and !&quot;&quot;.equals(record.houseName)">
+                and house_name = #{record.houseName}
+            </if>
+            <if test="record.houseAbstract != null and !&quot;&quot;.equals(record.houseAbstract)">
+                and house_abstract = #{record.houseAbstract}
+            </if>
+            <if test="record.icon != null and !&quot;&quot;.equals(record.icon)">
+                and icon = #{record.icon}
+            </if>
+            <if test="record.houseCode != null and !&quot;&quot;.equals(record.houseCode)">
+                and house_code = #{record.houseCode}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and user_id = #{record.userId}
+            </if>
+            <if test="record.houseType != null and !&quot;&quot;.equals(record.houseType)">
+                and house_type = #{record.houseType}
+            </if>
+            <if test="record.houseLevel != null and !&quot;&quot;.equals(record.houseLevel)">
+                and house_level = #{record.houseLevel}
+            </if>
+            <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and game_id = #{record.gameId}
+            </if>
+            <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                and status_flag = #{record.statusFlag}
+            </if>
+            <if test="record.statusStr != null and !&quot;&quot;.equals(record.statusStr)">
+                and status_flag in (${record.statusStr})
+            </if>
+            <if test="record.recommendFlag != null and !&quot;&quot;.equals(record.recommendFlag)">
+                and recommend_flag = #{record.recommendFlag}
+            </if>
+            <if test="record.rank != null and !&quot;&quot;.equals(record.rank)">
+                and rank = #{record.rank}
+            </if>
+            <if test="record.useFlag != null and !&quot;&quot;.equals(record.useFlag)">
+                and use_flag = #{record.useFlag}
+            </if>
+            <if test="record.gameHouseId != null and !&quot;&quot;.equals(record.gameHouseId)">
+                and game_house_id = #{record.gameHouseId}
+            </if>
+            <if test="record.gameHousePassword != null and !&quot;&quot;.equals(record.gameHousePassword)">
+                and game_house_password = #{record.gameHousePassword}
+            </if>
+            <if test="record.beginTime != null and !&quot;&quot;.equals(record.beginTime)">
+                and begin_time = #{record.beginTime}
+            </if>
+            <if test="record.endTime != null and !&quot;&quot;.equals(record.endTime)">
+                and end_time = #{record.endTime}
+            </if>
+            <if test="record.matchName != null and !&quot;&quot;.equals(record.matchName)">
+                and match_name = #{record.matchName}
+            </if>
+            <if test="record.playerNumber != null and !&quot;&quot;.equals(record.playerNumber)">
+                and player_number = #{record.playerNumber}
+            </if>
+            <if test="record.bonus != null and !&quot;&quot;.equals(record.bonus)">
+                and bonus = #{record.bonus}
+            </if>
+            <if test="record.seasonId != null and !&quot;&quot;.equals(record.seasonId)">
+                and season_id = #{record.seasonId}
+            </if>
+            <if test="record.video != null and !&quot;&quot;.equals(record.video)">
+                and video = #{record.video}
+            </if>
+            <if test="record.scoreType != null and !&quot;&quot;.equals(record.scoreType)">
+                and score_type = #{record.scoreType}
+            </if>
+            <if test="record.killnumber != null and !&quot;&quot;.equals(record.killnumber)">
+                and killnumber = #{record.killnumber}
+            </if>
+            <if test="record.serviceId != null and !&quot;&quot;.equals(record.serviceId)">
+                and service_id = #{record.serviceId}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR house_name LIKE concat('%',#{record.searchKey},'%')
+                    OR house_abstract LIKE concat('%',#{record.searchKey},'%')
+                    OR house_code LIKE concat('%',#{record.searchKey},'%')
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR game_house_id LIKE concat('%',#{record.searchKey},'%')
+                    OR game_house_password LIKE concat('%',#{record.searchKey},'%')
+                    OR match_name LIKE concat('%',#{record.searchKey},'%')
+                    OR bonus LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.myUserId != null and !&quot;&quot;.equals(record.myUserId)">
+            status_flag , recommender_rank desc ,
+        </if>
+
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllHouseInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.HouseInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from house_info
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="houseName != null and !&quot;&quot;.equals(houseName)">
+                and house_name = #{houseName}
+            </if>
+            <if test="houseAbstract != null and !&quot;&quot;.equals(houseAbstract)">
+                and house_abstract = #{houseAbstract}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="houseCode != null and !&quot;&quot;.equals(houseCode)">
+                and house_code = #{houseCode}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="houseType != null and !&quot;&quot;.equals(houseType)">
+                and house_type = #{houseType}
+            </if>
+            <if test="houseLevel != null and !&quot;&quot;.equals(houseLevel)">
+                and house_level = #{houseLevel}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="statusStr != null and !&quot;&quot;.equals(statusStr)">
+                and status_flag in (${statusStr})
+            </if>
+            <if test="recommendFlag != null and !&quot;&quot;.equals(recommendFlag)">
+                and recommend_flag = #{recommendFlag}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                and use_flag = #{useFlag}
+            </if>
+            <if test="gameHouseId != null and !&quot;&quot;.equals(gameHouseId)">
+                and game_house_id = #{gameHouseId}
+            </if>
+            <if test="gameHousePassword != null and !&quot;&quot;.equals(gameHousePassword)">
+                and game_house_password = #{gameHousePassword}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and end_time = #{endTime}
+            </if>
+            <if test="matchName != null and !&quot;&quot;.equals(matchName)">
+                and match_name = #{matchName}
+            </if>
+            <if test="playerNumber != null and !&quot;&quot;.equals(playerNumber)">
+                and player_number = #{playerNumber}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and bonus = #{bonus}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+            <if test="video != null and !&quot;&quot;.equals(video)">
+                and video = #{video}
+            </if>
+
+            <if test="scoreType != null and !&quot;&quot;.equals(scoreType)">
+                and score_type = #{scoreType}
+            </if>
+            <if test="killnumber != null and !&quot;&quot;.equals(killnumber)">
+                and killnumber = #{killnumber}
+            </if>
+
+            <if test="serviceId != null and !&quot;&quot;.equals(serviceId)">
+                and service_id = #{serviceId}
+            </if>
+
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR house_name LIKE concat('%',#{searchKey},'%')
+                    OR house_abstract LIKE concat('%',#{searchKey},'%')
+                    OR house_code LIKE concat('%',#{searchKey},'%')
+                    OR user_id LIKE concat('%',#{searchKey},'%')
+                    OR game_house_id LIKE concat('%',#{searchKey},'%')
+                    OR match_name LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryHouseInfo" parameterType="java.util.Map" resultMap="OneHouseInfoResult">
+        select
+        <include refid="Base_Column_List"/>
+        from house_info
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="houseName != null and !&quot;&quot;.equals(houseName)">
+                and house_name = #{houseName}
+            </if>
+            <if test="houseAbstract != null and !&quot;&quot;.equals(houseAbstract)">
+                and house_abstract = #{houseAbstract}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="houseCode != null and !&quot;&quot;.equals(houseCode)">
+                and house_code = #{houseCode}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="houseType != null and !&quot;&quot;.equals(houseType)">
+                and house_type = #{houseType}
+            </if>
+            <if test="houseLevel != null and !&quot;&quot;.equals(houseLevel)">
+                and house_level = #{houseLevel}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="statusStr != null and !&quot;&quot;.equals(statusStr)">
+                and status_flag in (${statusStr})
+            </if>
+            <if test="recommendFlag != null and !&quot;&quot;.equals(recommendFlag)">
+                and recommend_flag = #{recommendFlag}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                and use_flag = #{useFlag}
+            </if>
+            <if test="gameHouseId != null and !&quot;&quot;.equals(gameHouseId)">
+                and game_house_id = #{gameHouseId}
+            </if>
+            <if test="gameHousePassword != null and !&quot;&quot;.equals(gameHousePassword)">
+                and game_house_password = #{gameHousePassword}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and end_time = #{endTime}
+            </if>
+            <if test="matchName != null and !&quot;&quot;.equals(matchName)">
+                and match_name = #{matchName}
+            </if>
+            <if test="playerNumber != null and !&quot;&quot;.equals(playerNumber)">
+                and player_number = #{playerNumber}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and bonus = #{bonus}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+            <if test="video != null and !&quot;&quot;.equals(video)">
+                and video = #{video}
+            </if>
+
+            <if test="scoreType != null and !&quot;&quot;.equals(scoreType)">
+                and score_type = #{scoreType}
+            </if>
+            <if test="killnumber != null and !&quot;&quot;.equals(killnumber)">
+                and killnumber = #{killnumber}
+            </if>
+            <if test="serviceId != null and !&quot;&quot;.equals(serviceId)">
+                and service_id = #{serviceId}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE house_info SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <update id="updateToAnalysis">
+        UPDATE house_info
+        SET house_info.status_flag = 8
+        WHERE
+            house_info.del_flag = 'N'
+        AND house_info.status_flag = 3
+        AND (
+            SELECT
+                COUNT(player_info.id)
+            FROM
+                player_info
+            WHERE
+                player_info.del_flag = 'N'
+            AND player_info.house_id = house_info.id
+            AND player_info.status_flag = 3
+        ) = 0
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.HouseInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from house_info
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+
+    <select id="autoBeginHouseInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.HouseInfo">
+        SELECT
+            *
+        FROM
+            `house_info`
+        WHERE
+            del_flag = 'N'
+        AND use_flag = 'Y'
+        AND status_flag = 0
+        AND (
+            <![CDATA[ player_number >= max_number ]]>
+            OR DATE_SUB(
+                CURRENT_TIMESTAMP(),
+                INTERVAL 9 MINUTE
+            )  <![CDATA[>=]]> create_time
+        )
+    </select>
+
+    <select id="autoEndHouseInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.HouseInfo">
+        SELECT
+            *
+        FROM
+            `house_info`
+        WHERE
+        del_flag = 'N'
+        AND use_flag = 'Y'
+        AND status_flag = 2
+        AND (DATE_SUB(
+        CURRENT_TIMESTAMP (),
+        INTERVAL 30 MINUTE
+        ) <![CDATA[ >= ]]> begin_time
+
+        OR (
+		(
+			SELECT
+				COUNT(player_info.id)
+			FROM
+				player_info
+			WHERE
+				player_info.del_flag = 'N'
+			AND player_info.house_id = house_info.id
+			AND player_info.status_flag = 2
+		) = 0
+		AND DATE_SUB(
+			CURRENT_TIMESTAMP (),
+			INTERVAL 4 MINUTE
+		) <![CDATA[ >= ]]> begin_time
+	)
+	)
+
+    </select>
+
+    <resultMap id="OneHouseInfoResult" type="com.izouma.awesomeadmin.model.HouseInfo" extends="BaseResultMap">
+
+        <association property="houseLevelInfo"
+                     javaType="com.izouma.awesomeadmin.model.HouseLevel"
+                     select="com.izouma.awesomeadmin.dao.HouseLevelMapper.queryHouseLevel"
+                     column="{ id = house_level }"/>
+
+        <association property="customerService"
+                     javaType="com.izouma.awesomeadmin.model.CustomerService"
+                     select="com.izouma.awesomeadmin.dao.CustomerServiceMapper.queryCustomerService"
+                     column="{ id = service_id }"/>
+
+    </resultMap>
+
+    <resultMap id="PageHouseInfoResult" type="com.izouma.awesomeadmin.model.HouseInfo" extends="BaseResultMap">
+
+        <association property="houseLevelInfo"
+                     javaType="com.izouma.awesomeadmin.model.HouseLevel"
+                     select="com.izouma.awesomeadmin.dao.HouseLevelMapper.queryHouseLevel"
+                     column="{ id = house_level }"/>
+        <association property="gameInfo"
+                     javaType="com.izouma.awesomeadmin.model.GameInfo"
+                     select="com.izouma.awesomeadmin.dao.GameInfoMapper.queryGameInfo"
+                     column="{ id = game_id }"/>
+
+    </resultMap>
+
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/HouseLevelMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.HouseLevel;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.HouseLevelMapper")
+public interface HouseLevelMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(HouseLevel record);
+
+    HouseLevel selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(HouseLevel record);
+
+    List<HouseLevel> queryAllHouseLevel(HouseLevel record);
+
+    List<HouseLevel> queryHouseLevelByPage(Map<String, Object> parameter);
+
+    int delete(HouseLevel record);
+
+    HouseLevel queryHouseLevel(HouseLevel record);
+
+    List<HouseLevel> query(HouseLevel record);
+}
+

+ 618 - 0
src/main/java/com/izouma/awesomeadmin/dao/HouseLevelMapper.xml

@@ -0,0 +1,618 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.HouseLevelMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.HouseLevel">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="level_name" property="levelName" jdbcType="VARCHAR"/>
+        <result column="max_number" property="maxNumber" jdbcType="INTEGER"/>
+        <result column="min_number" property="minNumber" jdbcType="INTEGER"/>
+        <result column="icon" property="icon" jdbcType="VARCHAR"/>
+        <result column="rank" property="rank" jdbcType="INTEGER"/>
+        <result column="entry_coin" property="entryCoin" jdbcType="DECIMAL"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="first_ratio" property="firstRatio" jdbcType="DECIMAL"/>
+        <result column="second_ratio" property="secondRatio" jdbcType="DECIMAL"/>
+        <result column="third_ratio" property="thirdRatio" jdbcType="DECIMAL"/>
+        <result column="fee_ratio" property="feeRatio" jdbcType="DECIMAL"/>
+        <result column="pool_ratio" property="poolRatio" jdbcType="DECIMAL"/>
+        <result column="avg_ratio" property="avgRatio" jdbcType="DECIMAL"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            level_name,
+
+            max_number,
+
+            min_number,
+
+            icon,
+
+            rank,
+
+            entry_coin,
+
+            remark,
+
+            first_ratio,
+
+            second_ratio,
+
+            third_ratio,
+
+            fee_ratio,
+
+            pool_ratio,
+            avg_ratio,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from house_level
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from house_level
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.HouseLevel" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into house_level
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="levelName!= null">
+                level_name,
+            </if>
+            <if test="maxNumber!= null">
+                max_number,
+            </if>
+            <if test="minNumber!= null">
+                min_number,
+            </if>
+            <if test="icon!= null">
+                icon,
+            </if>
+            <if test="rank!= null">
+                rank,
+            </if>
+            <if test="entryCoin!= null">
+                entry_coin,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="firstRatio!= null">
+                first_ratio,
+            </if>
+            <if test="secondRatio!= null">
+                second_ratio,
+            </if>
+            <if test="thirdRatio!= null">
+                third_ratio,
+            </if>
+            <if test="feeRatio!= null">
+                fee_ratio,
+            </if>
+            <if test="poolRatio!= null">
+                pool_ratio,
+            </if>
+            <if test="avgRatio!= null">
+                avg_ratio,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="levelName != null">
+                #{levelName,jdbcType=VARCHAR},
+            </if>
+            <if test="maxNumber != null">
+                #{maxNumber,jdbcType=INTEGER},
+            </if>
+            <if test="minNumber != null">
+                #{minNumber,jdbcType=INTEGER},
+            </if>
+            <if test="icon != null">
+                #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="entryCoin != null">
+                #{entryCoin,jdbcType=DECIMAL},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="firstRatio != null">
+                #{firstRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="secondRatio != null">
+                #{secondRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="thirdRatio != null">
+                #{thirdRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="feeRatio != null">
+                #{feeRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="poolRatio != null">
+                #{poolRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="avgRatio != null">
+                #{avgRatio,jdbcType=DECIMAL},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.HouseLevel">
+        update house_level
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="levelName != null">
+                level_name= #{levelName,jdbcType=VARCHAR},
+            </if>
+            <if test="maxNumber != null">
+                max_number= #{maxNumber,jdbcType=INTEGER},
+            </if>
+            <if test="minNumber != null">
+                min_number= #{minNumber,jdbcType=INTEGER},
+            </if>
+            <if test="icon != null">
+                icon= #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                rank= #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="entryCoin != null">
+                entry_coin= #{entryCoin,jdbcType=DECIMAL},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="firstRatio != null">
+                first_ratio= #{firstRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="secondRatio != null">
+                second_ratio= #{secondRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="thirdRatio != null">
+                third_ratio= #{thirdRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="feeRatio != null">
+                fee_ratio= #{feeRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="poolRatio != null">
+                pool_ratio= #{poolRatio,jdbcType=DECIMAL},
+            </if>
+            <if test="avgRatio != null">
+                avg_ratio= #{avgRatio,jdbcType=DECIMAL},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryHouseLevelByPage" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.HouseLevel">
+        select
+        <include refid="Base_Column_List"/>
+        from house_level
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.levelName != null and !&quot;&quot;.equals(record.levelName)">
+                and level_name = #{record.levelName}
+            </if>
+            <if test="record.maxNumber != null and !&quot;&quot;.equals(record.maxNumber)">
+                and max_number = #{record.maxNumber}
+            </if>
+            <if test="record.minNumber != null and !&quot;&quot;.equals(record.minNumber)">
+                and min_number = #{record.minNumber}
+            </if>
+            <if test="record.icon != null and !&quot;&quot;.equals(record.icon)">
+                and icon = #{record.icon}
+            </if>
+            <if test="record.rank != null and !&quot;&quot;.equals(record.rank)">
+                and rank = #{record.rank}
+            </if>
+            <if test="record.entryCoin != null and !&quot;&quot;.equals(record.entryCoin)">
+                and entry_coin = #{record.entryCoin}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.firstRatio != null and !&quot;&quot;.equals(record.firstRatio)">
+                and first_ratio = #{record.firstRatio}
+            </if>
+            <if test="record.secondRatio != null and !&quot;&quot;.equals(record.secondRatio)">
+                and second_ratio = #{record.secondRatio}
+            </if>
+            <if test="record.thirdRatio != null and !&quot;&quot;.equals(record.thirdRatio)">
+                and third_ratio = #{record.thirdRatio}
+            </if>
+            <if test="record.feeRatio != null and !&quot;&quot;.equals(record.feeRatio)">
+                and fee_ratio = #{record.feeRatio}
+            </if>
+            <if test="record.poolRatio != null and !&quot;&quot;.equals(record.poolRatio)">
+                and pool_ratio = #{record.poolRatio}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR level_name LIKE concat('%',#{record.searchKey},'%')
+                    OR max_number LIKE concat('%',#{record.searchKey},'%')
+                    OR min_number LIKE concat('%',#{record.searchKey},'%')
+                    OR icon LIKE concat('%',#{record.searchKey},'%')
+                    OR rank LIKE concat('%',#{record.searchKey},'%')
+                    OR entry_coin LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR first_ratio LIKE concat('%',#{record.searchKey},'%')
+                    OR second_ratio LIKE concat('%',#{record.searchKey},'%')
+                    OR third_ratio LIKE concat('%',#{record.searchKey},'%')
+                    OR fee_ratio LIKE concat('%',#{record.searchKey},'%')
+                    OR pool_ratio LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllHouseLevel" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.HouseLevel">
+        select
+        <include refid="Base_Column_List"/>
+        from house_level
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="levelName != null and !&quot;&quot;.equals(levelName)">
+                and level_name = #{levelName}
+            </if>
+            <if test="maxNumber != null and !&quot;&quot;.equals(maxNumber)">
+                and max_number = #{maxNumber}
+            </if>
+            <if test="minNumber != null and !&quot;&quot;.equals(minNumber)">
+                and min_number = #{minNumber}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="entryCoin != null and !&quot;&quot;.equals(entryCoin)">
+                and entry_coin = #{entryCoin}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="firstRatio != null and !&quot;&quot;.equals(firstRatio)">
+                and first_ratio = #{firstRatio}
+            </if>
+            <if test="secondRatio != null and !&quot;&quot;.equals(secondRatio)">
+                and second_ratio = #{secondRatio}
+            </if>
+            <if test="thirdRatio != null and !&quot;&quot;.equals(thirdRatio)">
+                and third_ratio = #{thirdRatio}
+            </if>
+            <if test="feeRatio != null and !&quot;&quot;.equals(feeRatio)">
+                and fee_ratio = #{feeRatio}
+            </if>
+            <if test="poolRatio != null and !&quot;&quot;.equals(poolRatio)">
+                and pool_ratio = #{poolRatio}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR level_name LIKE concat('%',#{searchKey},'%')
+                    OR max_number LIKE concat('%',#{searchKey},'%')
+                    OR min_number LIKE concat('%',#{searchKey},'%')
+                    OR icon LIKE concat('%',#{searchKey},'%')
+                    OR rank LIKE concat('%',#{searchKey},'%')
+                    OR entry_coin LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR first_ratio LIKE concat('%',#{searchKey},'%')
+                    OR second_ratio LIKE concat('%',#{searchKey},'%')
+                    OR third_ratio LIKE concat('%',#{searchKey},'%')
+                    OR fee_ratio LIKE concat('%',#{searchKey},'%')
+                    OR pool_ratio LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryHouseLevel" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.HouseLevel">
+        select
+        <include refid="Base_Column_List"/>
+        from house_level
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="levelName != null and !&quot;&quot;.equals(levelName)">
+                and level_name = #{levelName}
+            </if>
+            <if test="maxNumber != null and !&quot;&quot;.equals(maxNumber)">
+                and max_number = #{maxNumber}
+            </if>
+            <if test="minNumber != null and !&quot;&quot;.equals(minNumber)">
+                and min_number = #{minNumber}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="entryCoin != null and !&quot;&quot;.equals(entryCoin)">
+                and entry_coin = #{entryCoin}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="firstRatio != null and !&quot;&quot;.equals(firstRatio)">
+                and first_ratio = #{firstRatio}
+            </if>
+            <if test="secondRatio != null and !&quot;&quot;.equals(secondRatio)">
+                and second_ratio = #{secondRatio}
+            </if>
+            <if test="thirdRatio != null and !&quot;&quot;.equals(thirdRatio)">
+                and third_ratio = #{thirdRatio}
+            </if>
+            <if test="feeRatio != null and !&quot;&quot;.equals(feeRatio)">
+                and fee_ratio = #{feeRatio}
+            </if>
+            <if test="poolRatio != null and !&quot;&quot;.equals(poolRatio)">
+                and pool_ratio = #{poolRatio}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE house_level SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.HouseLevel">
+        select
+        <include refid="Base_Column_List"/>
+        from house_level
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/MemberCoinMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.MemberCoin;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.MemberCoinMapper")
+public interface MemberCoinMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(MemberCoin record);
+
+    MemberCoin selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(MemberCoin record);
+
+    List<MemberCoin> queryAllMemberCoin(MemberCoin record);
+
+    List<MemberCoin> queryMemberCoinByPage(Map<String, Object> parameter);
+
+    int delete(MemberCoin record);
+
+    MemberCoin queryMemberCoin(MemberCoin record);
+
+    List<MemberCoin> query(MemberCoin record);
+}
+

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 523 - 0
src/main/java/com/izouma/awesomeadmin/dao/MemberCoinMapper.xml


+ 35 - 0
src/main/java/com/izouma/awesomeadmin/dao/MemberCoinTixianMapper.java

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.MemberCoinTixian;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.MemberCoinTixianMapper")
+public interface MemberCoinTixianMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(MemberCoinTixian record);
+
+    MemberCoinTixian selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(MemberCoinTixian record);
+
+    List<MemberCoinTixian> queryAllMemberCoinTixian(MemberCoinTixian record);
+
+    List<MemberCoinTixian> queryMemberCoinTixianByPage(Map<String, Object> parameter);
+
+    int delete(MemberCoinTixian record);
+
+    MemberCoinTixian queryMemberCoinTixian(MemberCoinTixian record);
+
+    List<MemberCoinTixian> query(MemberCoinTixian record);
+
+    int tixianNum(MemberCoinTixian record);
+}
+

+ 704 - 0
src/main/java/com/izouma/awesomeadmin/dao/MemberCoinTixianMapper.xml

@@ -0,0 +1,704 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.MemberCoinTixianMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.MemberCoinTixian">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="money" property="money" jdbcType="DECIMAL"/>
+        <result column="status_flag" property="statusFlag" jdbcType="INTEGER"/>
+        <result column="fee" property="fee" jdbcType="DECIMAL"/>
+        <result column="net_amount" property="netAmount" jdbcType="DECIMAL"/>
+        <result column="deal_user" property="dealUser" jdbcType="VARCHAR"/>
+        <result column="deal_time" property="dealTime" jdbcType="TIMESTAMP"/>
+        <result column="wechat" property="wechat" jdbcType="VARCHAR"/>
+        <result column="alipay" property="alipay" jdbcType="VARCHAR"/>
+        <result column="bank_card" property="bankCard" jdbcType="VARCHAR"/>
+        <result column="bank_name" property="bankName" jdbcType="VARCHAR"/>
+        <result column="open_name" property="openName" jdbcType="VARCHAR"/>
+        <result column="type_flag" property="typeFlag" jdbcType="INTEGER"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="tixian_code" property="tixianCode" jdbcType="VARCHAR"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            user_id,
+
+            money,
+
+            status_flag,
+
+            fee,
+
+            net_amount,
+
+            deal_user,
+
+            deal_time,
+
+            wechat,
+
+            alipay,
+
+            bank_card,
+
+            bank_name,
+
+            open_name,
+
+            type_flag,
+
+            remark,
+
+            tixian_code,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from member_coin_tixian
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from member_coin_tixian
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.MemberCoinTixian" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into member_coin_tixian
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="money!= null">
+                money,
+            </if>
+            <if test="statusFlag!= null">
+                status_flag,
+            </if>
+            <if test="fee!= null">
+                fee,
+            </if>
+            <if test="netAmount!= null">
+                net_amount,
+            </if>
+            <if test="dealUser!= null">
+                deal_user,
+            </if>
+            <if test="dealTime!= null">
+                deal_time,
+            </if>
+            <if test="wechat!= null">
+                wechat,
+            </if>
+            <if test="alipay!= null">
+                alipay,
+            </if>
+            <if test="bankCard!= null">
+                bank_card,
+            </if>
+            <if test="bankName!= null">
+                bank_name,
+            </if>
+            <if test="openName!= null">
+                open_name,
+            </if>
+            <if test="typeFlag!= null">
+                type_flag,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="tixianCode!= null">
+                tixian_code,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="money != null">
+                #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="statusFlag != null">
+                #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="fee != null">
+                #{fee,jdbcType=DECIMAL},
+            </if>
+            <if test="netAmount != null">
+                #{netAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="dealUser != null">
+                #{dealUser,jdbcType=VARCHAR},
+            </if>
+            <if test="dealTime != null">
+                #{dealTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="wechat != null">
+                #{wechat,jdbcType=VARCHAR},
+            </if>
+            <if test="alipay != null">
+                #{alipay,jdbcType=VARCHAR},
+            </if>
+            <if test="bankCard != null">
+                #{bankCard,jdbcType=VARCHAR},
+            </if>
+            <if test="bankName != null">
+                #{bankName,jdbcType=VARCHAR},
+            </if>
+            <if test="openName != null">
+                #{openName,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="tixianCode != null">
+                #{tixianCode,jdbcType=VARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.MemberCoinTixian">
+        update member_coin_tixian
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="money != null">
+                money= #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="statusFlag != null">
+                status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="fee != null">
+                fee= #{fee,jdbcType=DECIMAL},
+            </if>
+            <if test="netAmount != null">
+                net_amount= #{netAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="dealUser != null">
+                deal_user= #{dealUser,jdbcType=VARCHAR},
+            </if>
+            <if test="dealTime != null">
+                deal_time= #{dealTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="wechat != null">
+                wechat= #{wechat,jdbcType=VARCHAR},
+            </if>
+            <if test="alipay != null">
+                alipay= #{alipay,jdbcType=VARCHAR},
+            </if>
+            <if test="bankCard != null">
+                bank_card= #{bankCard,jdbcType=VARCHAR},
+            </if>
+            <if test="bankName != null">
+                bank_name= #{bankName,jdbcType=VARCHAR},
+            </if>
+            <if test="openName != null">
+                open_name= #{openName,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="tixianCode != null">
+                tixian_code= #{tixianCode,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryMemberCoinTixianByPage" parameterType="java.util.Map"
+            resultMap="PageResult">
+        select
+        <include refid="Base_Column_List"/>
+        from member_coin_tixian
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and user_id = #{record.userId}
+            </if>
+            <if test="record.money != null and !&quot;&quot;.equals(record.money)">
+                and money = #{record.money}
+            </if>
+            <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                and status_flag = #{record.statusFlag}
+            </if>
+            <if test="record.fee != null and !&quot;&quot;.equals(record.fee)">
+                and fee = #{record.fee}
+            </if>
+            <if test="record.netAmount != null and !&quot;&quot;.equals(record.netAmount)">
+                and net_amount = #{record.netAmount}
+            </if>
+            <if test="record.dealUser != null and !&quot;&quot;.equals(record.dealUser)">
+                and deal_user = #{record.dealUser}
+            </if>
+            <if test="record.dealTime != null and !&quot;&quot;.equals(record.dealTime)">
+                and deal_time = #{record.dealTime}
+            </if>
+            <if test="record.wechat != null and !&quot;&quot;.equals(record.wechat)">
+                and wechat = #{record.wechat}
+            </if>
+            <if test="record.alipay != null and !&quot;&quot;.equals(record.alipay)">
+                and alipay = #{record.alipay}
+            </if>
+            <if test="record.bankCard != null and !&quot;&quot;.equals(record.bankCard)">
+                and bank_card = #{record.bankCard}
+            </if>
+            <if test="record.bankName != null and !&quot;&quot;.equals(record.bankName)">
+                and bank_name = #{record.bankName}
+            </if>
+            <if test="record.openName != null and !&quot;&quot;.equals(record.openName)">
+                and open_name = #{record.openName}
+            </if>
+            <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                and type_flag = #{record.typeFlag}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.tixianCode != null and !&quot;&quot;.equals(record.tixianCode)">
+                and tixian_code = #{record.tixianCode}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR money LIKE concat('%',#{record.searchKey},'%')
+                    OR status_flag LIKE concat('%',#{record.searchKey},'%')
+                    OR fee LIKE concat('%',#{record.searchKey},'%')
+                    OR net_amount LIKE concat('%',#{record.searchKey},'%')
+                    OR deal_user LIKE concat('%',#{record.searchKey},'%')
+                    OR deal_time LIKE concat('%',#{record.searchKey},'%')
+                    OR wechat LIKE concat('%',#{record.searchKey},'%')
+                    OR alipay LIKE concat('%',#{record.searchKey},'%')
+                    OR bank_card LIKE concat('%',#{record.searchKey},'%')
+                    OR bank_name LIKE concat('%',#{record.searchKey},'%')
+                    OR open_name LIKE concat('%',#{record.searchKey},'%')
+                    OR type_flag LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR tixian_code LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllMemberCoinTixian" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.MemberCoinTixian">
+        select
+        <include refid="Base_Column_List"/>
+        from member_coin_tixian
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                and money = #{money}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="fee != null and !&quot;&quot;.equals(fee)">
+                and fee = #{fee}
+            </if>
+            <if test="netAmount != null and !&quot;&quot;.equals(netAmount)">
+                and net_amount = #{netAmount}
+            </if>
+            <if test="dealUser != null and !&quot;&quot;.equals(dealUser)">
+                and deal_user = #{dealUser}
+            </if>
+            <if test="dealTime != null and !&quot;&quot;.equals(dealTime)">
+                and deal_time = #{dealTime}
+            </if>
+            <if test="wechat != null and !&quot;&quot;.equals(wechat)">
+                and wechat = #{wechat}
+            </if>
+            <if test="alipay != null and !&quot;&quot;.equals(alipay)">
+                and alipay = #{alipay}
+            </if>
+            <if test="bankCard != null and !&quot;&quot;.equals(bankCard)">
+                and bank_card = #{bankCard}
+            </if>
+            <if test="bankName != null and !&quot;&quot;.equals(bankName)">
+                and bank_name = #{bankName}
+            </if>
+            <if test="openName != null and !&quot;&quot;.equals(openName)">
+                and open_name = #{openName}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="tixianCode != null and !&quot;&quot;.equals(tixianCode)">
+                and tixian_code = #{tixianCode}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR user_id LIKE concat('%',#{searchKey},'%')
+                    OR money LIKE concat('%',#{searchKey},'%')
+                    OR status_flag LIKE concat('%',#{searchKey},'%')
+                    OR fee LIKE concat('%',#{searchKey},'%')
+                    OR net_amount LIKE concat('%',#{searchKey},'%')
+                    OR deal_user LIKE concat('%',#{searchKey},'%')
+                    OR deal_time LIKE concat('%',#{searchKey},'%')
+                    OR wechat LIKE concat('%',#{searchKey},'%')
+                    OR alipay LIKE concat('%',#{searchKey},'%')
+                    OR bank_card LIKE concat('%',#{searchKey},'%')
+                    OR bank_name LIKE concat('%',#{searchKey},'%')
+                    OR open_name LIKE concat('%',#{searchKey},'%')
+                    OR type_flag LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR tixian_code LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryMemberCoinTixian" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.MemberCoinTixian">
+        select
+        <include refid="Base_Column_List"/>
+        from member_coin_tixian
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                and money = #{money}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="fee != null and !&quot;&quot;.equals(fee)">
+                and fee = #{fee}
+            </if>
+            <if test="netAmount != null and !&quot;&quot;.equals(netAmount)">
+                and net_amount = #{netAmount}
+            </if>
+            <if test="dealUser != null and !&quot;&quot;.equals(dealUser)">
+                and deal_user = #{dealUser}
+            </if>
+            <if test="dealTime != null and !&quot;&quot;.equals(dealTime)">
+                and deal_time = #{dealTime}
+            </if>
+            <if test="wechat != null and !&quot;&quot;.equals(wechat)">
+                and wechat = #{wechat}
+            </if>
+            <if test="alipay != null and !&quot;&quot;.equals(alipay)">
+                and alipay = #{alipay}
+            </if>
+            <if test="bankCard != null and !&quot;&quot;.equals(bankCard)">
+                and bank_card = #{bankCard}
+            </if>
+            <if test="bankName != null and !&quot;&quot;.equals(bankName)">
+                and bank_name = #{bankName}
+            </if>
+            <if test="openName != null and !&quot;&quot;.equals(openName)">
+                and open_name = #{openName}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="tixianCode != null and !&quot;&quot;.equals(tixianCode)">
+                and tixian_code = #{tixianCode}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE member_coin_tixian SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberCoinTixian">
+        select
+        <include refid="Base_Column_List"/>
+        from member_coin_tixian
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+
+    <select id="tixianNum" parameterType="java.util.Map" resultType="java.lang.Integer">
+        SELECT
+        COUNT(member_coin_tixian.id)
+        FROM
+        member_coin_tixian
+        <where>
+            and del_flag = 'N'
+            and TO_DAYS(create_time) = TO_DAYS(NOW())
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+
+        </where>
+    </select>
+
+
+    <resultMap id="PageResult" type="com.izouma.awesomeadmin.model.MemberCoinTixian" extends="BaseResultMap">
+
+        <association property="userInfo"
+                     javaType="com.izouma.awesomeadmin.model.UserInfo"
+                     select="com.izouma.awesomeadmin.dao.UserInfoMapper.querySingleUserInfo"
+                     column="{ id = user_id }"/>
+
+    </resultMap>
+
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/MemberHouseCardMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.MemberHouseCard;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.MemberHouseCardMapper")
+public interface MemberHouseCardMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(MemberHouseCard record);
+
+    MemberHouseCard selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(MemberHouseCard record);
+
+    List<MemberHouseCard> queryAllMemberHouseCard(MemberHouseCard record);
+
+    List<MemberHouseCard> queryMemberHouseCardByPage(Map<String, Object> parameter);
+
+    int delete(MemberHouseCard record);
+
+    MemberHouseCard queryMemberHouseCard(MemberHouseCard record);
+
+    List<MemberHouseCard> query(MemberHouseCard record);
+}
+

+ 512 - 0
src/main/java/com/izouma/awesomeadmin/dao/MemberHouseCardMapper.xml

@@ -0,0 +1,512 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.MemberHouseCardMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.MemberHouseCard" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+                                <result column="update_user" property="updateUser" jdbcType="VARCHAR" />
+                                <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+                                <result column="create_user" property="createUser" jdbcType="VARCHAR" />
+                                <result column="game_id" property="gameId" jdbcType="INTEGER" />
+                                <result column="house_id" property="houseId" jdbcType="INTEGER" />
+                                <result column="user_id" property="userId" jdbcType="INTEGER" />
+                                <result column="remark" property="remark" jdbcType="VARCHAR" />
+                                <result column="type_flag" property="typeFlag" jdbcType="INTEGER" />
+                                <result column="money" property="money" jdbcType="DECIMAL" />
+                                <result column="balance" property="balance" jdbcType="DECIMAL" />
+                                <result column="season_id" property="seasonId" jdbcType="INTEGER" />
+                                <result column="player_id" property="playerId" jdbcType="INTEGER" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+        <trim  suffixOverrides="," >
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            game_id,
+
+            house_id,
+
+            user_id,
+
+            remark,
+
+            type_flag,
+
+            money,
+
+            balance,
+
+            season_id,
+
+            player_id,
+
+            </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from member_house_card
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from member_house_card
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.MemberHouseCard" useGeneratedKeys="true" keyProperty="id">
+        insert into member_house_card
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="updateTime!= null" >
+                update_time,
+            </if>
+                <if test="updateUser!= null" >
+                update_user,
+            </if>
+                <if test="createTime!= null" >
+                create_time,
+            </if>
+                <if test="createUser!= null" >
+                create_user,
+            </if>
+                <if test="gameId!= null" >
+                game_id,
+            </if>
+                <if test="houseId!= null" >
+                house_id,
+            </if>
+                <if test="userId!= null" >
+                user_id,
+            </if>
+                <if test="remark!= null" >
+                remark,
+            </if>
+                <if test="typeFlag!= null" >
+                type_flag,
+            </if>
+                <if test="money!= null" >
+                money,
+            </if>
+                <if test="balance!= null" >
+                balance,
+            </if>
+                <if test="seasonId!= null" >
+                season_id,
+            </if>
+                <if test="playerId!= null" >
+                player_id,
+            </if>
+            </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+                    <if test="id != null" >
+                #{id,jdbcType=INTEGER},
+            </if>
+                    <if test="delFlag != null" >
+                #{delFlag,jdbcType=CHAR},
+            </if>
+                    <if test="updateTime != null" >
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="updateUser != null" >
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="createTime != null" >
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="createUser != null" >
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="gameId != null" >
+                #{gameId,jdbcType=INTEGER},
+            </if>
+                    <if test="houseId != null" >
+                #{houseId,jdbcType=INTEGER},
+            </if>
+                    <if test="userId != null" >
+                #{userId,jdbcType=INTEGER},
+            </if>
+                    <if test="remark != null" >
+                #{remark,jdbcType=VARCHAR},
+            </if>
+                    <if test="typeFlag != null" >
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+                    <if test="money != null" >
+                #{money,jdbcType=DECIMAL},
+            </if>
+                    <if test="balance != null" >
+                #{balance,jdbcType=DECIMAL},
+            </if>
+                    <if test="seasonId != null" >
+                #{seasonId,jdbcType=INTEGER},
+            </if>
+                    <if test="playerId != null" >
+                #{playerId,jdbcType=INTEGER},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.MemberHouseCard" >
+        update member_house_card
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="updateTime != null" >
+               update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="updateUser != null" >
+               update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="createTime != null" >
+               create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="createUser != null" >
+               create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="gameId != null" >
+               game_id= #{gameId,jdbcType=INTEGER},
+            </if>
+                     <if test="houseId != null" >
+               house_id= #{houseId,jdbcType=INTEGER},
+            </if>
+                     <if test="userId != null" >
+               user_id= #{userId,jdbcType=INTEGER},
+            </if>
+                     <if test="remark != null" >
+               remark= #{remark,jdbcType=VARCHAR},
+            </if>
+                     <if test="typeFlag != null" >
+               type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+                     <if test="money != null" >
+               money= #{money,jdbcType=DECIMAL},
+            </if>
+                     <if test="balance != null" >
+               balance= #{balance,jdbcType=DECIMAL},
+            </if>
+                     <if test="seasonId != null" >
+               season_id= #{seasonId,jdbcType=INTEGER},
+            </if>
+                     <if test="playerId != null" >
+               player_id= #{playerId,jdbcType=INTEGER},
+            </if>
+                 </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryMemberHouseCardByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberHouseCard">
+        select <include refid="Base_Column_List"/> from member_house_card
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+                    <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and  id = #{record.id}
+            </if>
+                     <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and  del_flag = #{record.delFlag}
+            </if>
+                     <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and  update_time = #{record.updateTime}
+            </if>
+                     <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and  update_user = #{record.updateUser}
+            </if>
+                     <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and  create_time = #{record.createTime}
+            </if>
+                     <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and  create_user = #{record.createUser}
+            </if>
+                     <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and  game_id = #{record.gameId}
+            </if>
+                     <if test="record.houseId != null and !&quot;&quot;.equals(record.houseId)">
+                and  house_id = #{record.houseId}
+            </if>
+                     <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and  user_id = #{record.userId}
+            </if>
+                     <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and  remark = #{record.remark}
+            </if>
+                     <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                and  type_flag = #{record.typeFlag}
+            </if>
+                     <if test="record.money != null and !&quot;&quot;.equals(record.money)">
+                and  money = #{record.money}
+            </if>
+                     <if test="record.balance != null and !&quot;&quot;.equals(record.balance)">
+                and  balance = #{record.balance}
+            </if>
+                     <if test="record.seasonId != null and !&quot;&quot;.equals(record.seasonId)">
+                and  season_id = #{record.seasonId}
+            </if>
+                     <if test="record.playerId != null and !&quot;&quot;.equals(record.playerId)">
+                and  player_id = #{record.playerId}
+            </if>
+                  <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+             <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       OR  remark LIKE concat('%',#{record.searchKey},'%')
+                                                                                                                                                                                                                                                                                                                                                                                                  </trim>
+         </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllMemberHouseCard" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberHouseCard">
+        select <include refid="Base_Column_List"/> from member_house_card
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and  id = #{id}
+            </if>
+                    <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and  del_flag = #{delFlag}
+            </if>
+                    <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and  update_time = #{updateTime}
+            </if>
+                    <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and  update_user = #{updateUser}
+            </if>
+                    <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and  create_time = #{createTime}
+            </if>
+                    <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and  create_user = #{createUser}
+            </if>
+                    <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and  game_id = #{gameId}
+            </if>
+                    <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and  house_id = #{houseId}
+            </if>
+                    <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and  user_id = #{userId}
+            </if>
+                    <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and  remark = #{remark}
+            </if>
+                    <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and  type_flag = #{typeFlag}
+            </if>
+                    <if test="money != null and !&quot;&quot;.equals(money)">
+                and  money = #{money}
+            </if>
+                    <if test="balance != null and !&quot;&quot;.equals(balance)">
+                and  balance = #{balance}
+            </if>
+                    <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and  season_id = #{seasonId}
+            </if>
+                    <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and  player_id = #{playerId}
+            </if>
+                    <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                OR  remark LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </trim>
+            </if>
+<if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+    <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+        <choose>
+            <when test="item.indexOf('like') != -1">
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        concat('%',#{itemDetail},'%')
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </when>
+            <otherwise>
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        #{itemDetail}
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </otherwise>
+        </choose>
+
+
+    </foreach>
+
+
+</if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryMemberHouseCard" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberHouseCard">
+        select <include refid="Base_Column_List"/> from member_house_card
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+                     <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+                     <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+                     <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+                     <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+                     <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+                     <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+                     <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+                     <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+                     <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+                     <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+                     <if test="money != null and !&quot;&quot;.equals(money)">
+                and money = #{money}
+            </if>
+                     <if test="balance != null and !&quot;&quot;.equals(balance)">
+                and balance = #{balance}
+            </if>
+                     <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+                     <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and player_id = #{playerId}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE member_house_card SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberHouseCard">
+        select <include refid="Base_Column_List"/> from member_house_card
+        <where>
+            and del_flag = 'N'
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 35 - 0
src/main/java/com/izouma/awesomeadmin/dao/MemberTicketMapper.java

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.MemberTicket;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.MemberTicketMapper")
+public interface MemberTicketMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(MemberTicket record);
+
+    MemberTicket selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(MemberTicket record);
+
+    List<MemberTicket> queryAllMemberTicket(MemberTicket record);
+
+    List<MemberTicket> queryMemberTicketByPage(Map<String, Object> parameter);
+
+    int delete(MemberTicket record);
+
+    MemberTicket queryMemberTicket(MemberTicket record);
+
+    List<MemberTicket> query(MemberTicket record);
+    /*generatedEnd*/
+
+}
+

+ 487 - 0
src/main/java/com/izouma/awesomeadmin/dao/MemberTicketMapper.xml

@@ -0,0 +1,487 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.MemberTicketMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.MemberTicket">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="game_id" property="gameId" jdbcType="INTEGER"/>
+        <result column="house_id" property="houseId" jdbcType="INTEGER"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="type_flag" property="typeFlag" jdbcType="INTEGER"/>
+        <result column="money" property="money" jdbcType="DECIMAL"/>
+        <result column="balance" property="balance" jdbcType="DECIMAL"/>
+        <result column="season_id" property="seasonId" jdbcType="INTEGER"/>
+        <result column="player_id" property="playerId" jdbcType="INTEGER"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, game_id, house_id, user_id, remark, type_flag, money, balance, season_id, player_id        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM member_ticket
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM member_ticket
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.MemberTicket" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO member_ticket
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="gameId!= null">
+                game_id,
+            </if>
+            <if test="houseId!= null">
+                house_id,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="typeFlag!= null">
+                type_flag,
+            </if>
+            <if test="money!= null">
+                money,
+            </if>
+            <if test="balance!= null">
+                balance,
+            </if>
+            <if test="seasonId!= null">
+                season_id,
+            </if>
+            <if test="playerId!= null">
+                player_id,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="houseId != null">
+                #{houseId,jdbcType=INTEGER},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="money != null">
+                #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="balance != null">
+                #{balance,jdbcType=DECIMAL},
+            </if>
+            <if test="seasonId != null">
+                #{seasonId,jdbcType=INTEGER},
+            </if>
+            <if test="playerId != null">
+                #{playerId,jdbcType=INTEGER},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.MemberTicket">
+        UPDATE member_ticket
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                game_id= #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="houseId != null">
+                house_id= #{houseId,jdbcType=INTEGER},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="money != null">
+                money= #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="balance != null">
+                balance= #{balance,jdbcType=DECIMAL},
+            </if>
+            <if test="seasonId != null">
+                season_id= #{seasonId,jdbcType=INTEGER},
+            </if>
+            <if test="playerId != null">
+                player_id= #{playerId,jdbcType=INTEGER},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryMemberTicketByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberTicket">
+        SELECT <include refid="Base_Column_List"/> FROM member_ticket
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                AND game_id = #{record.gameId}
+            </if>
+            <if test="record.houseId != null and !&quot;&quot;.equals(record.houseId)">
+                AND house_id = #{record.houseId}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                AND user_id = #{record.userId}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                AND remark = #{record.remark}
+            </if>
+            <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                AND type_flag = #{record.typeFlag}
+            </if>
+            <if test="record.money != null and !&quot;&quot;.equals(record.money)">
+                AND money = #{record.money}
+            </if>
+            <if test="record.balance != null and !&quot;&quot;.equals(record.balance)">
+                AND balance = #{record.balance}
+            </if>
+            <if test="record.seasonId != null and !&quot;&quot;.equals(record.seasonId)">
+                AND season_id = #{record.seasonId}
+            </if>
+            <if test="record.playerId != null and !&quot;&quot;.equals(record.playerId)">
+                AND player_id = #{record.playerId}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllMemberTicket" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberTicket">
+        SELECT <include refid="Base_Column_List"/> FROM member_ticket
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                AND game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                AND house_id = #{houseId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                AND user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                AND type_flag = #{typeFlag}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                AND money = #{money}
+            </if>
+            <if test="balance != null and !&quot;&quot;.equals(balance)">
+                AND balance = #{balance}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                AND season_id = #{seasonId}
+            </if>
+            <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                AND player_id = #{playerId}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryMemberTicket" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberTicket">
+        SELECT <include refid="Base_Column_List"/> FROM member_ticket
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                AND game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                AND house_id = #{houseId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                AND user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                AND type_flag = #{typeFlag}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                AND money = #{money}
+            </if>
+            <if test="balance != null and !&quot;&quot;.equals(balance)">
+                AND balance = #{balance}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                AND season_id = #{seasonId}
+            </if>
+            <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                AND player_id = #{playerId}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE member_ticket SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.MemberTicket">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM member_ticket
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+</mapper>
+

+ 37 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeInfoMapper.java

@@ -0,0 +1,37 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.PayCodeInfo;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.PayCodeInfoMapper")
+public interface PayCodeInfoMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(PayCodeInfo record);
+
+    PayCodeInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(PayCodeInfo record);
+
+    List<PayCodeInfo> queryAllPayCodeInfo(PayCodeInfo record);
+
+    List<PayCodeInfo> queryPayCodeInfoByPage(Map<String, Object> parameter);
+
+    int delete(PayCodeInfo record);
+
+    PayCodeInfo queryPayCodeInfo(PayCodeInfo record);
+
+    List<PayCodeInfo> query(PayCodeInfo record);
+    /*generatedEnd*/
+
+    int autoOvertime(PayCodeInfo record);
+
+}
+

+ 465 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeInfoMapper.xml

@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.PayCodeInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.PayCodeInfo">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="code_name" property="codeName" jdbcType="VARCHAR"/>
+        <result column="pay_type" property="payType" jdbcType="VARCHAR"/>
+        <result column="image" property="image" jdbcType="VARCHAR"/>
+        <result column="limit_money" property="limitMoney" jdbcType="DECIMAL"/>
+        <result column="use_flag" property="useFlag" jdbcType="CHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="auto_timeover" property="autoTimeover" jdbcType="CHAR"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, code_name, pay_type, image, limit_money, use_flag, remark, auto_timeover        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_info
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM pay_code_info
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PayCodeInfo" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO pay_code_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="codeName!= null">
+                code_name,
+            </if>
+            <if test="payType!= null">
+                pay_type,
+            </if>
+            <if test="image!= null">
+                image,
+            </if>
+            <if test="limitMoney!= null">
+                limit_money,
+            </if>
+            <if test="useFlag!= null">
+                use_flag,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="autoTimeover!= null">
+                auto_timeover,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="codeName != null">
+                #{codeName,jdbcType=VARCHAR},
+            </if>
+            <if test="payType != null">
+                #{payType,jdbcType=VARCHAR},
+            </if>
+            <if test="image != null">
+                #{image,jdbcType=VARCHAR},
+            </if>
+            <if test="limitMoney != null">
+                #{limitMoney,jdbcType=DECIMAL},
+            </if>
+            <if test="useFlag != null">
+                #{useFlag,jdbcType=CHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="autoTimeover != null">
+                #{autoTimeover,jdbcType=CHAR},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.PayCodeInfo">
+        UPDATE pay_code_info
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="codeName != null">
+                code_name= #{codeName,jdbcType=VARCHAR},
+            </if>
+            <if test="payType != null">
+                pay_type= #{payType,jdbcType=VARCHAR},
+            </if>
+            <if test="image != null">
+                image= #{image,jdbcType=VARCHAR},
+            </if>
+            <if test="limitMoney != null">
+                limit_money= #{limitMoney,jdbcType=DECIMAL},
+            </if>
+            <if test="useFlag != null">
+                use_flag= #{useFlag,jdbcType=CHAR},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="autoTimeover != null">
+                auto_timeover= #{autoTimeover,jdbcType=CHAR},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryPayCodeInfoByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeInfo">
+        SELECT <include refid="Base_Column_List"/> FROM pay_code_info
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.codeName != null and !&quot;&quot;.equals(record.codeName)">
+                AND code_name = #{record.codeName}
+            </if>
+            <if test="record.payType != null and !&quot;&quot;.equals(record.payType)">
+                AND pay_type = #{record.payType}
+            </if>
+            <if test="record.image != null and !&quot;&quot;.equals(record.image)">
+                AND image = #{record.image}
+            </if>
+            <if test="record.limitMoney != null and !&quot;&quot;.equals(record.limitMoney)">
+                AND limit_money = #{record.limitMoney}
+            </if>
+            <if test="record.useFlag != null and !&quot;&quot;.equals(record.useFlag)">
+                AND use_flag = #{record.useFlag}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                AND remark = #{record.remark}
+            </if>
+            <if test="record.autoTimeover != null and !&quot;&quot;.equals(record.autoTimeover)">
+                AND auto_timeover = #{record.autoTimeover}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR code_name LIKE concat('%',#{record.searchKey},'%')
+                    OR pay_type LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR auto_timeover LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllPayCodeInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeInfo">
+        SELECT <include refid="Base_Column_List"/> FROM pay_code_info
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="codeName != null and !&quot;&quot;.equals(codeName)">
+                AND code_name = #{codeName}
+            </if>
+            <if test="payType != null and !&quot;&quot;.equals(payType)">
+                AND pay_type = #{payType}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                AND image = #{image}
+            </if>
+            <if test="limitMoney != null and !&quot;&quot;.equals(limitMoney)">
+                AND limit_money = #{limitMoney}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                AND use_flag = #{useFlag}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="autoTimeover != null and !&quot;&quot;.equals(autoTimeover)">
+                AND auto_timeover = #{autoTimeover}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR code_name LIKE concat('%',#{searchKey},'%')
+                    OR pay_type LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR auto_timeover LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryPayCodeInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeInfo">
+        SELECT <include refid="Base_Column_List"/> FROM pay_code_info
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="codeName != null and !&quot;&quot;.equals(codeName)">
+                AND code_name = #{codeName}
+            </if>
+            <if test="payType != null and !&quot;&quot;.equals(payType)">
+                AND pay_type = #{payType}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                AND image = #{image}
+            </if>
+            <if test="limitMoney != null and !&quot;&quot;.equals(limitMoney)">
+                AND limit_money = #{limitMoney}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                AND use_flag = #{useFlag}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="autoTimeover != null and !&quot;&quot;.equals(autoTimeover)">
+                AND auto_timeover = #{autoTimeover}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE pay_code_info SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeInfo">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_info
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+
+    <update id="autoOvertime" parameterType="com.izouma.awesomeadmin.model.PayCodeInfo">
+        UPDATE pay_code_info
+        SET use_flag = 'N'
+        WHERE
+            del_flag = 'N'
+        AND use_flag = 'Y'
+        AND auto_timeover = 'Y'
+    </update>
+
+</mapper>
+

+ 42 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeOrderMapper.java

@@ -0,0 +1,42 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.math.BigDecimal;
+import java.util.*;
+
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.PayCodeOrder;
+
+
+/**
+ * Dao接口
+ */
+@Repository("com.zoumaframe.dao.PayCodeOrderMapper")
+public interface PayCodeOrderMapper {
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(PayCodeOrder record);
+
+    PayCodeOrder selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(PayCodeOrder record);
+
+    List<PayCodeOrder> queryAllPayCodeOrder(PayCodeOrder record);
+
+    List<PayCodeOrder> queryPayCodeOrderByPage(Map<String, Object> parameter);
+
+    int delete(PayCodeOrder record);
+
+    PayCodeOrder queryPayCodeOrder(PayCodeOrder record);
+
+    List<PayCodeOrder> query(PayCodeOrder record);
+
+    /*generatedEnd*/
+    List<PayCodeOrder> queryAutoCancelPayCodeOrderList(PayCodeOrder record);
+
+    List<PayCodeOrder> queryReportPayCodeOrder(PayCodeOrder record);
+
+    BigDecimal getTotalPayMoney(PayCodeOrder record);
+}
+

+ 694 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeOrderMapper.xml

@@ -0,0 +1,694 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.PayCodeOrderMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.PayCodeOrder">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="order_code" property="orderCode" jdbcType="VARCHAR"/>
+        <result column="type_flag" property="typeFlag" jdbcType="INTEGER"/>
+        <result column="code_id" property="codeId" jdbcType="INTEGER"/>
+        <result column="stock_id" property="stockId" jdbcType="INTEGER"/>
+        <result column="pay_type" property="payType" jdbcType="VARCHAR"/>
+        <result column="money" property="money" jdbcType="DECIMAL"/>
+        <result column="pay_money" property="payMoney" jdbcType="DECIMAL"/>
+        <result column="status_flag" property="statusFlag" jdbcType="INTEGER"/>
+        <result column="pay_time" property="payTime" jdbcType="TIMESTAMP"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="product_id" property="productId" jdbcType="INTEGER"/>
+        <result column="channel" property="channel" jdbcType="INTEGER"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, order_code, type_flag,
+        code_id, stock_id, pay_type, money, pay_money, status_flag, pay_time, user_id, remark,
+        product_id,channel        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_order
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM pay_code_order
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PayCodeOrder" useGeneratedKeys="true"
+            keyProperty="id">
+        INSERT INTO pay_code_order
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="orderCode!= null">
+                order_code,
+            </if>
+            <if test="typeFlag!= null">
+                type_flag,
+            </if>
+            <if test="codeId!= null">
+                code_id,
+            </if>
+            <if test="stockId!= null">
+                stock_id,
+            </if>
+            <if test="payType!= null">
+                pay_type,
+            </if>
+            <if test="money!= null">
+                money,
+            </if>
+            <if test="payMoney!= null">
+                pay_money,
+            </if>
+            <if test="statusFlag!= null">
+                status_flag,
+            </if>
+            <if test="payTime!= null">
+                pay_time,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="productId!= null">
+                product_id,
+            </if>
+            <if test="channel!= null">
+                channel,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="orderCode != null">
+                #{orderCode,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="codeId != null">
+                #{codeId,jdbcType=INTEGER},
+            </if>
+            <if test="stockId != null">
+                #{stockId,jdbcType=INTEGER},
+            </if>
+            <if test="payType != null">
+                #{payType,jdbcType=VARCHAR},
+            </if>
+            <if test="money != null">
+                #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="payMoney != null">
+                #{payMoney,jdbcType=DECIMAL},
+            </if>
+            <if test="statusFlag != null">
+                #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="payTime != null">
+                #{payTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="productId != null">
+                #{productId,jdbcType=INTEGER},
+            </if>
+            <if test="channel != null">
+                #{channel,jdbcType=INTEGER},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.PayCodeOrder">
+        UPDATE pay_code_order
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="orderCode != null">
+                order_code= #{orderCode,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="codeId != null">
+                code_id= #{codeId,jdbcType=INTEGER},
+            </if>
+            <if test="stockId != null">
+                stock_id= #{stockId,jdbcType=INTEGER},
+            </if>
+            <if test="payType != null">
+                pay_type= #{payType,jdbcType=VARCHAR},
+            </if>
+            <if test="money != null">
+                money= #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="payMoney != null">
+                pay_money= #{payMoney,jdbcType=DECIMAL},
+            </if>
+            <if test="statusFlag != null">
+                status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="payTime != null">
+                pay_time= #{payTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="productId != null">
+                product_id= #{productId,jdbcType=INTEGER},
+            </if>
+            <if test="channel != null">
+                channel= #{channel,jdbcType=INTEGER},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryPayCodeOrderByPage" parameterType="java.util.Map"
+            resultMap="PagePayCodeOrderResult">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_order
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.orderCode != null and !&quot;&quot;.equals(record.orderCode)">
+                AND order_code = #{record.orderCode}
+            </if>
+            <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                AND type_flag = #{record.typeFlag}
+            </if>
+            <if test="record.codeId != null and !&quot;&quot;.equals(record.codeId)">
+                AND code_id = #{record.codeId}
+            </if>
+            <if test="record.stockId != null and !&quot;&quot;.equals(record.stockId)">
+                AND stock_id = #{record.stockId}
+            </if>
+            <if test="record.payType != null and !&quot;&quot;.equals(record.payType)">
+                AND pay_type = #{record.payType}
+            </if>
+            <if test="record.money != null and !&quot;&quot;.equals(record.money)">
+                AND money = #{record.money}
+            </if>
+            <if test="record.payMoney != null and !&quot;&quot;.equals(record.payMoney)">
+                AND pay_money = #{record.payMoney}
+            </if>
+            <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                AND status_flag = #{record.statusFlag}
+            </if>
+            <if test="record.payTime != null and !&quot;&quot;.equals(record.payTime)">
+                AND pay_time = #{record.payTime}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                AND user_id = #{record.userId}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                AND remark = #{record.remark}
+            </if>
+            <if test="record.productId != null and !&quot;&quot;.equals(record.productId)">
+                AND product_id = #{record.productId}
+            </if>
+            <if test="record.channel != null and !&quot;&quot;.equals(record.channel)">
+                AND channel = #{record.channel}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR order_code LIKE concat('%',#{record.searchKey},'%')
+                    OR code_id LIKE concat('%',#{record.searchKey},'%')
+                    OR stock_id LIKE concat('%',#{record.searchKey},'%')
+                    OR money LIKE concat('%',#{record.searchKey},'%')
+                    OR pay_money LIKE concat('%',#{record.searchKey},'%')
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+
+                    OR code_id IN (
+                    SELECT
+                    id
+                    FROM
+                    pay_code_info
+                    WHERE
+                    del_flag = 'N'
+                    AND code_name LIKE concat('%',#{record.searchKey},'%')
+                    )
+                    AND stock_id IN (
+                    SELECT
+                    id
+                    FROM
+                    pay_code_stock
+                    WHERE
+                    del_flag = 'N'
+                    AND NAME LIKE concat('%',#{record.searchKey},'%')
+                    )
+
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllPayCodeOrder" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.PayCodeOrder">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_order
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="orderCode != null and !&quot;&quot;.equals(orderCode)">
+                AND order_code = #{orderCode}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                AND type_flag = #{typeFlag}
+            </if>
+            <if test="codeId != null and !&quot;&quot;.equals(codeId)">
+                AND code_id = #{codeId}
+            </if>
+            <if test="stockId != null and !&quot;&quot;.equals(stockId)">
+                AND stock_id = #{stockId}
+            </if>
+            <if test="payType != null and !&quot;&quot;.equals(payType)">
+                AND pay_type = #{payType}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                AND money = #{money}
+            </if>
+            <if test="payMoney != null and !&quot;&quot;.equals(payMoney)">
+                AND pay_money = #{payMoney}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                AND status_flag = #{statusFlag}
+            </if>
+            <if test="payTime != null and !&quot;&quot;.equals(payTime)">
+                AND pay_time = #{payTime}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                AND user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="productId != null and !&quot;&quot;.equals(productId)">
+                AND product_id = #{productId}
+            </if>
+            <if test="channel != null and !&quot;&quot;.equals(channel)">
+                AND channel = #{channel}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR order_code LIKE concat('%',#{searchKey},'%')
+                    OR type_flag LIKE concat('%',#{searchKey},'%')
+                    OR code_id LIKE concat('%',#{searchKey},'%')
+                    OR stock_id LIKE concat('%',#{searchKey},'%')
+                    OR pay_type LIKE concat('%',#{searchKey},'%')
+                    OR money LIKE concat('%',#{searchKey},'%')
+                    OR pay_money LIKE concat('%',#{searchKey},'%')
+                    OR status_flag LIKE concat('%',#{searchKey},'%')
+                    OR pay_time LIKE concat('%',#{searchKey},'%')
+                    OR user_id LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+    <select id="queryReportPayCodeOrder" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.PayCodeOrder">
+       SELECT
+        channel,
+        SUM(money) AS money
+    FROM
+        pay_code_order
+    WHERE
+        del_flag = 'N'
+    AND status_flag = 1
+        <if test="searchBeginTime != null and !&quot;&quot;.equals(searchBeginTime)">
+            and pay_time  <![CDATA[ >= ]]> #{searchBeginTime}
+        </if>
+        <if test="searchEndTime != null and !&quot;&quot;.equals(searchEndTime)">
+            and pay_time  <![CDATA[ <= ]]> #{searchEndTime}
+        </if>
+    GROUP BY
+        channel
+    </select>
+    <select id="queryAutoCancelPayCodeOrderList" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.PayCodeOrder">
+        SELECT
+        *
+        FROM pay_code_order
+        <where>
+            AND del_flag = 'N'
+            AND status_flag = 0
+            AND DATE_SUB(
+            CURRENT_TIMESTAMP (),
+            INTERVAL 30 MINUTE
+            ) <![CDATA[ >= ]]>  create_time
+        </where>
+    </select>
+
+    <select id="queryPayCodeOrder" parameterType="java.util.Map"
+            resultMap="OnePayCodeOrderResult">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_order
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="orderCode != null and !&quot;&quot;.equals(orderCode)">
+                AND order_code = #{orderCode}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                AND type_flag = #{typeFlag}
+            </if>
+            <if test="codeId != null and !&quot;&quot;.equals(codeId)">
+                AND code_id = #{codeId}
+            </if>
+            <if test="stockId != null and !&quot;&quot;.equals(stockId)">
+                AND stock_id = #{stockId}
+            </if>
+            <if test="payType != null and !&quot;&quot;.equals(payType)">
+                AND pay_type = #{payType}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                AND money = #{money}
+            </if>
+            <if test="payMoney != null and !&quot;&quot;.equals(payMoney)">
+                AND pay_money = #{payMoney}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                AND status_flag = #{statusFlag}
+            </if>
+            <if test="payTime != null and !&quot;&quot;.equals(payTime)">
+                AND pay_time = #{payTime}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                AND user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="productId != null and !&quot;&quot;.equals(productId)">
+                AND product_id = #{productId}
+            </if>
+            <if test="channel != null and !&quot;&quot;.equals(channel)">
+                AND channel = #{channel}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE pay_code_order SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeOrder">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_order
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+
+
+    <select id="getTotalPayMoney" parameterType="java.util.Map"
+            resultType="decimal">
+        SELECT
+        SUM(pay_money) AS money
+        FROM
+        pay_code_order
+        WHERE
+        del_flag = 'N'
+        AND status_flag = 1
+        <if test="codeId != null and !&quot;&quot;.equals(codeId)">
+            and code_id  = #{codeId}
+        </if>
+        <if test="stockId != null and !&quot;&quot;.equals(stockId)">
+            and stock_id = #{stockId}
+        </if>
+        <if test="searchBeginTime != null and !&quot;&quot;.equals(searchBeginTime)">
+            and pay_time  <![CDATA[ >= ]]> #{searchBeginTime}
+        </if>
+        <if test="searchEndTime != null and !&quot;&quot;.equals(searchEndTime)">
+            and pay_time  <![CDATA[ <= ]]> #{searchEndTime}
+        </if>
+
+    </select>
+
+    <resultMap id="PagePayCodeOrderResult" type="com.izouma.awesomeadmin.model.PayCodeOrder" extends="BaseResultMap">
+
+        <association property="productInfo"
+                     javaType="com.izouma.awesomeadmin.model.ProductInfo"
+                     select="com.izouma.awesomeadmin.dao.ProductInfoMapper.queryProductInfo"
+                     column="{ id = product_id }"/>
+    </resultMap>
+
+    <resultMap id="OnePayCodeOrderResult" type="com.izouma.awesomeadmin.model.PayCodeOrder" extends="BaseResultMap">
+
+        <association property="productInfo"
+                     javaType="com.izouma.awesomeadmin.model.ProductInfo"
+                     select="com.izouma.awesomeadmin.dao.ProductInfoMapper.queryProductInfo"
+                     column="{ id = product_id }"/>
+        <association property="payCodeInfo"
+                     javaType="com.izouma.awesomeadmin.model.PayCodeInfo"
+                     select="com.izouma.awesomeadmin.dao.PayCodeInfoMapper.queryPayCodeInfo"
+                     column="{ id = code_id }"/>
+        <association property="payCodeStock"
+                     javaType="com.izouma.awesomeadmin.model.PayCodeStock"
+                     select="com.izouma.awesomeadmin.dao.PayCodeStockMapper.queryPayCodeStock"
+                     column="{ id = stock_id }"/>
+    </resultMap>
+
+</mapper>
+

+ 38 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeStockMapper.java

@@ -0,0 +1,38 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.PayCodeStock;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.PayCodeStockMapper")
+public interface PayCodeStockMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(PayCodeStock record);
+
+    PayCodeStock selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(PayCodeStock record);
+
+    List<PayCodeStock> queryAllPayCodeStock(PayCodeStock record);
+
+    List<PayCodeStock> queryPayCodeStockByPage(Map<String, Object> parameter);
+
+    int delete(PayCodeStock record);
+
+    PayCodeStock queryPayCodeStock(PayCodeStock record);
+
+    List<PayCodeStock> query(PayCodeStock record);
+    /*generatedEnd*/
+    List<PayCodeStock> queryPayCodeStockAllUsedMoney(PayCodeStock record);
+    List<PayCodeStock> queryPayCodeStockAllUsedPayType(PayCodeStock record);
+
+    List<PayCodeStock> queryAllUsedPayCodeStock(PayCodeStock record);
+}
+

+ 562 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeStockMapper.xml

@@ -0,0 +1,562 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.PayCodeStockMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.PayCodeStock">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="code_id" property="codeId" jdbcType="INTEGER"/>
+        <result column="pay_type" property="payType" jdbcType="VARCHAR"/>
+        <result column="money" property="money" jdbcType="DECIMAL"/>
+        <result column="amount" property="amount" jdbcType="INTEGER"/>
+        <result column="use_flag" property="useFlag" jdbcType="CHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="name" property="name" jdbcType="VARCHAR"/>
+        <result column="regenerate" property="regenerate" jdbcType="CHAR"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, code_id, pay_type, money, amount, use_flag, remark, name, regenerate        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_stock
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM pay_code_stock
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PayCodeStock" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO pay_code_stock
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="codeId!= null">
+                code_id,
+            </if>
+            <if test="payType!= null">
+                pay_type,
+            </if>
+            <if test="money!= null">
+                money,
+            </if>
+            <if test="amount!= null">
+                amount,
+            </if>
+            <if test="useFlag!= null">
+                use_flag,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="name!= null">
+                name,
+            </if>
+            <if test="regenerate!= null">
+                regenerate,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="codeId != null">
+                #{codeId,jdbcType=INTEGER},
+            </if>
+            <if test="payType != null">
+                #{payType,jdbcType=VARCHAR},
+            </if>
+            <if test="money != null">
+                #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="amount != null">
+                #{amount,jdbcType=INTEGER},
+            </if>
+            <if test="useFlag != null">
+                #{useFlag,jdbcType=CHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="name != null">
+                #{name,jdbcType=VARCHAR},
+            </if>
+            <if test="regenerate != null">
+                #{regenerate,jdbcType=CHAR},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.PayCodeStock">
+        UPDATE pay_code_stock
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="codeId != null">
+                code_id= #{codeId,jdbcType=INTEGER},
+            </if>
+            <if test="payType != null">
+                pay_type= #{payType,jdbcType=VARCHAR},
+            </if>
+            <if test="money != null">
+                money= #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="amount != null">
+                amount= #{amount,jdbcType=INTEGER},
+            </if>
+            <if test="useFlag != null">
+                use_flag= #{useFlag,jdbcType=CHAR},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="name != null">
+                name= #{name,jdbcType=VARCHAR},
+            </if>
+            <if test="regenerate != null">
+                regenerate= #{regenerate,jdbcType=CHAR},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryPayCodeStockByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeStock">
+        SELECT <include refid="Base_Column_List"/> FROM pay_code_stock
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.codeId != null and !&quot;&quot;.equals(record.codeId)">
+                AND code_id = #{record.codeId}
+            </if>
+            <if test="record.payType != null and !&quot;&quot;.equals(record.payType)">
+                AND pay_type = #{record.payType}
+            </if>
+            <if test="record.money != null and !&quot;&quot;.equals(record.money)">
+                AND money = #{record.money}
+            </if>
+            <if test="record.amount != null and !&quot;&quot;.equals(record.amount)">
+                AND amount = #{record.amount}
+            </if>
+            <if test="record.useFlag != null and !&quot;&quot;.equals(record.useFlag)">
+                AND use_flag = #{record.useFlag}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                AND remark = #{record.remark}
+            </if>
+            <if test="record.name != null and !&quot;&quot;.equals(record.name)">
+                AND name = #{record.name}
+            </if>
+            <if test="record.regenerate != null and !&quot;&quot;.equals(record.regenerate)">
+                AND regenerate = #{record.regenerate}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR name LIKE concat('%',#{record.searchKey},'%')
+                    OR regenerate LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllPayCodeStock" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeStock">
+        SELECT <include refid="Base_Column_List"/> FROM pay_code_stock
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="codeId != null and !&quot;&quot;.equals(codeId)">
+                AND code_id = #{codeId}
+            </if>
+            <if test="payType != null and !&quot;&quot;.equals(payType)">
+                AND pay_type = #{payType}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                AND money = #{money}
+            </if>
+            <if test="amount != null and !&quot;&quot;.equals(amount)">
+                AND amount = #{amount}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                AND use_flag = #{useFlag}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="name != null and !&quot;&quot;.equals(name)">
+                AND name = #{name}
+            </if>
+            <if test="regenerate != null and !&quot;&quot;.equals(regenerate)">
+                AND regenerate = #{regenerate}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR name LIKE concat('%',#{searchKey},'%')
+                    OR regenerate LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryPayCodeStockAllUsedMoney" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeStock">
+       SELECT
+            DISTINCT money
+        FROM
+            pay_code_stock
+        WHERE
+            del_flag = 'N'
+        AND use_flag = 'Y'
+       <![CDATA[ AND amount > 0 ]]>
+        AND code_id IN (
+            SELECT
+                id
+            FROM
+                pay_code_info
+            WHERE
+                del_flag = 'N'
+            AND use_flag = 'Y'
+        )
+        ORDER BY
+        money
+    </select>
+
+    <select id="queryPayCodeStockAllUsedPayType" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeStock">
+       SELECT
+            DISTINCT pay_type
+        FROM
+            pay_code_stock
+        WHERE
+            del_flag = 'N'
+        AND use_flag = 'Y'
+       <![CDATA[ AND amount > 0 ]]>
+        AND code_id IN (
+            SELECT
+                id
+            FROM
+                pay_code_info
+            WHERE
+                del_flag = 'N'
+            AND use_flag = 'Y'
+        )
+        <if test="money != null and !&quot;&quot;.equals(money)">
+            AND money = #{money}
+        </if>
+
+        ORDER BY
+        pay_type
+    </select>
+    <select id="queryAllUsedPayCodeStock" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeStock">
+       SELECT
+            *
+        FROM
+            pay_code_stock
+        WHERE
+            del_flag = 'N'
+        AND use_flag = 'Y'
+       <![CDATA[ AND amount > 0 ]]>
+        AND code_id IN (
+            SELECT
+                id
+            FROM
+                pay_code_info
+            WHERE
+                del_flag = 'N'
+            AND use_flag = 'Y'
+        )
+        <if test="codeId != null and !&quot;&quot;.equals(codeId)">
+            AND code_id = #{codeId}
+        </if>
+        <if test="payType != null and !&quot;&quot;.equals(payType)">
+            AND pay_type = #{payType}
+        </if>
+        <if test="money != null and !&quot;&quot;.equals(money)">
+            AND money = #{money}
+        </if>
+        <if test="amount != null and !&quot;&quot;.equals(amount)">
+            AND amount = #{amount}
+        </if>
+        <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+            AND use_flag = #{useFlag}
+        </if>
+        <if test="remark != null and !&quot;&quot;.equals(remark)">
+            AND remark = #{remark}
+        </if>
+        <if test="name != null and !&quot;&quot;.equals(name)">
+            AND name = #{name}
+        </if>
+
+    </select>
+
+
+    <select id="queryPayCodeStock" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeStock">
+        SELECT <include refid="Base_Column_List"/> FROM pay_code_stock
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="codeId != null and !&quot;&quot;.equals(codeId)">
+                AND code_id = #{codeId}
+            </if>
+            <if test="payType != null and !&quot;&quot;.equals(payType)">
+                AND pay_type = #{payType}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                AND money = #{money}
+            </if>
+            <if test="amount != null and !&quot;&quot;.equals(amount)">
+                AND amount = #{amount}
+            </if>
+            <if test="useFlag != null and !&quot;&quot;.equals(useFlag)">
+                AND use_flag = #{useFlag}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="name != null and !&quot;&quot;.equals(name)">
+                AND name = #{name}
+            </if>
+            <if test="regenerate != null and !&quot;&quot;.equals(regenerate)">
+                AND regenerate = #{regenerate}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE pay_code_stock SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PayCodeStock">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pay_code_stock
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+</mapper>
+

+ 35 - 0
src/main/java/com/izouma/awesomeadmin/dao/PhoneInfoMapper.java

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.PhoneInfo;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.PhoneInfoMapper")
+public interface PhoneInfoMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(PhoneInfo record);
+
+    PhoneInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(PhoneInfo record);
+
+    List<PhoneInfo> queryAllPhoneInfo(PhoneInfo record);
+
+    List<PhoneInfo> queryPhoneInfoByPage(Map<String, Object> parameter);
+
+    int delete(PhoneInfo record);
+
+    PhoneInfo queryPhoneInfo(PhoneInfo record);
+
+    List<PhoneInfo> query(PhoneInfo record);
+    /*generatedEnd*/
+
+}
+

+ 415 - 0
src/main/java/com/izouma/awesomeadmin/dao/PhoneInfoMapper.xml

@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.PhoneInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.PhoneInfo">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="phone" property="phone" jdbcType="VARCHAR"/>
+        <result column="image" property="image" jdbcType="VARCHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="rank" property="rank" jdbcType="INTEGER"/>
+        <result column="icon" property="icon" jdbcType="VARCHAR"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, phone, image, remark, rank, icon        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM phone_info
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM phone_info
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PhoneInfo" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO phone_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="phone!= null">
+                phone,
+            </if>
+            <if test="image!= null">
+                image,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="rank!= null">
+                rank,
+            </if>
+            <if test="icon!= null">
+                icon,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="phone != null">
+                #{phone,jdbcType=VARCHAR},
+            </if>
+            <if test="image != null">
+                #{image,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="icon != null">
+                #{icon,jdbcType=VARCHAR},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.PhoneInfo">
+        UPDATE phone_info
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="phone != null">
+                phone= #{phone,jdbcType=VARCHAR},
+            </if>
+            <if test="image != null">
+                image= #{image,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                rank= #{rank,jdbcType=INTEGER},
+            </if>
+            <if test="icon != null">
+                icon= #{icon,jdbcType=VARCHAR},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryPhoneInfoByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PhoneInfo">
+        SELECT <include refid="Base_Column_List"/> FROM phone_info
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.phone != null and !&quot;&quot;.equals(record.phone)">
+                AND phone = #{record.phone}
+            </if>
+            <if test="record.image != null and !&quot;&quot;.equals(record.image)">
+                AND image = #{record.image}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                AND remark = #{record.remark}
+            </if>
+            <if test="record.rank != null and !&quot;&quot;.equals(record.rank)">
+                AND rank = #{record.rank}
+            </if>
+            <if test="record.icon != null and !&quot;&quot;.equals(record.icon)">
+                AND icon = #{record.icon}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR phone LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR rank LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllPhoneInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PhoneInfo">
+        SELECT <include refid="Base_Column_List"/> FROM phone_info
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="phone != null and !&quot;&quot;.equals(phone)">
+                AND phone = #{phone}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                AND image = #{image}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                AND rank = #{rank}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                AND icon = #{icon}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR phone LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR rank LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryPhoneInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PhoneInfo">
+        SELECT <include refid="Base_Column_List"/> FROM phone_info
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="phone != null and !&quot;&quot;.equals(phone)">
+                AND phone = #{phone}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                AND image = #{image}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                AND rank = #{rank}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                AND icon = #{icon}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE phone_info SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PhoneInfo">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM phone_info
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/PlatformIncomeRecordMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.PlatformIncomeRecord;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.PlatformIncomeRecordMapper")
+public interface PlatformIncomeRecordMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(PlatformIncomeRecord record);
+
+    PlatformIncomeRecord selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(PlatformIncomeRecord record);
+
+    List<PlatformIncomeRecord> queryAllPlatformIncomeRecord(PlatformIncomeRecord record);
+
+    List<PlatformIncomeRecord> queryPlatformIncomeRecordByPage(Map<String, Object> parameter);
+
+    int delete(PlatformIncomeRecord record);
+
+    PlatformIncomeRecord queryPlatformIncomeRecord(PlatformIncomeRecord record);
+
+    List<PlatformIncomeRecord> query(PlatformIncomeRecord record);
+}
+

+ 505 - 0
src/main/java/com/izouma/awesomeadmin/dao/PlatformIncomeRecordMapper.xml

@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.PlatformIncomeRecordMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.PlatformIncomeRecord" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+                                <result column="update_user" property="updateUser" jdbcType="VARCHAR" />
+                                <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+                                <result column="create_user" property="createUser" jdbcType="VARCHAR" />
+                                <result column="game_id" property="gameId" jdbcType="INTEGER" />
+                                <result column="house_id" property="houseId" jdbcType="INTEGER" />
+                                <result column="user_id" property="userId" jdbcType="INTEGER" />
+                                <result column="remark" property="remark" jdbcType="VARCHAR" />
+                                <result column="money" property="money" jdbcType="DECIMAL" />
+                                <result column="status_flag" property="statusFlag" jdbcType="INTEGER" />
+                                <result column="season_id" property="seasonId" jdbcType="INTEGER" />
+                                <result column="player_id" property="playerId" jdbcType="INTEGER" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+        <trim  suffixOverrides="," >
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            game_id,
+
+            house_id,
+
+            user_id,
+
+            remark,
+
+            money,
+
+            status_flag,
+
+            season_id,
+
+            player_id,
+
+            </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from platform_income_record
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from platform_income_record
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PlatformIncomeRecord" useGeneratedKeys="true" keyProperty="id">
+        insert into platform_income_record
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="updateTime!= null" >
+                update_time,
+            </if>
+                <if test="updateUser!= null" >
+                update_user,
+            </if>
+                <if test="createTime!= null" >
+                create_time,
+            </if>
+                <if test="createUser!= null" >
+                create_user,
+            </if>
+                <if test="gameId!= null" >
+                game_id,
+            </if>
+                <if test="houseId!= null" >
+                house_id,
+            </if>
+                <if test="userId!= null" >
+                user_id,
+            </if>
+                <if test="remark!= null" >
+                remark,
+            </if>
+                <if test="money!= null" >
+                money,
+            </if>
+                <if test="statusFlag!= null" >
+                status_flag,
+            </if>
+                <if test="seasonId!= null" >
+                season_id,
+            </if>
+                <if test="playerId!= null" >
+                player_id,
+            </if>
+            </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+                    <if test="id != null" >
+                #{id,jdbcType=INTEGER},
+            </if>
+                    <if test="delFlag != null" >
+                #{delFlag,jdbcType=CHAR},
+            </if>
+                    <if test="updateTime != null" >
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="updateUser != null" >
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="createTime != null" >
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="createUser != null" >
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="gameId != null" >
+                #{gameId,jdbcType=INTEGER},
+            </if>
+                    <if test="houseId != null" >
+                #{houseId,jdbcType=INTEGER},
+            </if>
+                    <if test="userId != null" >
+                #{userId,jdbcType=INTEGER},
+            </if>
+                    <if test="remark != null" >
+                #{remark,jdbcType=VARCHAR},
+            </if>
+                    <if test="money != null" >
+                #{money,jdbcType=DECIMAL},
+            </if>
+                    <if test="statusFlag != null" >
+                #{statusFlag,jdbcType=INTEGER},
+            </if>
+                    <if test="seasonId != null" >
+                #{seasonId,jdbcType=INTEGER},
+            </if>
+                    <if test="playerId != null" >
+                #{playerId,jdbcType=INTEGER},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.PlatformIncomeRecord" >
+        update platform_income_record
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="updateTime != null" >
+               update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="updateUser != null" >
+               update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="createTime != null" >
+               create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="createUser != null" >
+               create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="gameId != null" >
+               game_id= #{gameId,jdbcType=INTEGER},
+            </if>
+                     <if test="houseId != null" >
+               house_id= #{houseId,jdbcType=INTEGER},
+            </if>
+                     <if test="userId != null" >
+               user_id= #{userId,jdbcType=INTEGER},
+            </if>
+                     <if test="remark != null" >
+               remark= #{remark,jdbcType=VARCHAR},
+            </if>
+                     <if test="money != null" >
+               money= #{money,jdbcType=DECIMAL},
+            </if>
+                     <if test="statusFlag != null" >
+               status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+                     <if test="seasonId != null" >
+               season_id= #{seasonId,jdbcType=INTEGER},
+            </if>
+                     <if test="playerId != null" >
+               player_id= #{playerId,jdbcType=INTEGER},
+            </if>
+                 </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryPlatformIncomeRecordByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlatformIncomeRecord">
+        select <include refid="Base_Column_List"/> from platform_income_record
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+                    <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and  id = #{record.id}
+            </if>
+                     <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and  del_flag = #{record.delFlag}
+            </if>
+                     <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and  update_time = #{record.updateTime}
+            </if>
+                     <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and  update_user = #{record.updateUser}
+            </if>
+                     <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and  create_time = #{record.createTime}
+            </if>
+                     <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and  create_user = #{record.createUser}
+            </if>
+                     <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and  game_id = #{record.gameId}
+            </if>
+                     <if test="record.houseId != null and !&quot;&quot;.equals(record.houseId)">
+                and  house_id = #{record.houseId}
+            </if>
+                     <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and  user_id = #{record.userId}
+            </if>
+                     <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and  remark = #{record.remark}
+            </if>
+                     <if test="record.money != null and !&quot;&quot;.equals(record.money)">
+                and  money = #{record.money}
+            </if>
+                     <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                and  status_flag = #{record.statusFlag}
+            </if>
+                     <if test="record.seasonId != null and !&quot;&quot;.equals(record.seasonId)">
+                and  season_id = #{record.seasonId}
+            </if>
+                     <if test="record.playerId != null and !&quot;&quot;.equals(record.playerId)">
+                and  player_id = #{record.playerId}
+            </if>
+                  <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+             <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                    OR  game_id LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  house_id LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  user_id LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  remark LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  money LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  status_flag LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  season_id LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  player_id LIKE concat('%',#{record.searchKey},'%')
+                                                             </trim>
+         </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllPlatformIncomeRecord" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlatformIncomeRecord">
+        select <include refid="Base_Column_List"/> from platform_income_record
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and  id = #{id}
+            </if>
+                    <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and  del_flag = #{delFlag}
+            </if>
+                    <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and  update_time = #{updateTime}
+            </if>
+                    <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and  update_user = #{updateUser}
+            </if>
+                    <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and  create_time = #{createTime}
+            </if>
+                    <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and  create_user = #{createUser}
+            </if>
+                    <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and  game_id = #{gameId}
+            </if>
+                    <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and  house_id = #{houseId}
+            </if>
+                    <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and  user_id = #{userId}
+            </if>
+                    <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and  remark = #{remark}
+            </if>
+                    <if test="money != null and !&quot;&quot;.equals(money)">
+                and  money = #{money}
+            </if>
+                    <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and  status_flag = #{statusFlag}
+            </if>
+                    <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and  season_id = #{seasonId}
+            </if>
+                    <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and  player_id = #{playerId}
+            </if>
+                    <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                OR  game_id LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  house_id LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  user_id LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  remark LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  money LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  status_flag LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  season_id LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  player_id LIKE concat('%',#{searchKey},'%')
+                                                                                        </trim>
+            </if>
+<if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+    <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+        <choose>
+            <when test="item.indexOf('like') != -1">
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        concat('%',#{itemDetail},'%')
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </when>
+            <otherwise>
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        #{itemDetail}
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </otherwise>
+        </choose>
+
+
+    </foreach>
+
+
+</if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryPlatformIncomeRecord" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlatformIncomeRecord">
+        select <include refid="Base_Column_List"/> from platform_income_record
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+                     <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+                     <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+                     <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+                     <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+                     <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+                     <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+                     <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+                     <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+                     <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+                     <if test="money != null and !&quot;&quot;.equals(money)">
+                and money = #{money}
+            </if>
+                     <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+                     <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+                     <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and player_id = #{playerId}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE platform_income_record SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlatformIncomeRecord">
+        select <include refid="Base_Column_List"/> from platform_income_record
+        <where>
+            and del_flag = 'N'
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 53 - 0
src/main/java/com/izouma/awesomeadmin/dao/PlayerInfoMapper.java

@@ -0,0 +1,53 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+
+import com.izouma.awesomeadmin.datasource.DataSource;
+import com.izouma.awesomeadmin.model.HouseInfo;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.PlayerInfo;
+
+
+/**
+ * Dao接口
+ */
+@Repository("com.zoumaframe.dao.PlayerInfoMapper")
+public interface PlayerInfoMapper {
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(PlayerInfo record);
+
+    PlayerInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(PlayerInfo record);
+
+    List<PlayerInfo> queryAllPlayerInfo(PlayerInfo record);
+
+    List<PlayerInfo> queryPlayerInfoByPage(Map<String, Object> parameter);
+
+    int delete(PlayerInfo record);
+
+    PlayerInfo queryPlayerInfo(PlayerInfo record);
+
+    List<PlayerInfo> query(PlayerInfo record);
+
+    List<PlayerInfo> queryPlayerInfoRankByPage(Map<String, Object> parameter);
+
+    List<PlayerInfo> queryPlayerInfoSeasonRankPageByPage(Map<String, Object> parameter);
+
+    int userRank(PlayerInfo record);
+
+    int endNum(PlayerInfo record);
+
+    PlayerInfo seasonUserRank(PlayerInfo record);
+
+    List<PlayerInfo> queryNoStartPlayer(HouseInfo record);
+
+    int overTimePlayer(PlayerInfo record);
+
+    List<PlayerInfo> querySettlementPlayer(PlayerInfo record);
+
+    PlayerInfo queryErrorPlayerInfo(Integer userId);
+}
+

+ 1667 - 0
src/main/java/com/izouma/awesomeadmin/dao/PlayerInfoMapper.xml

@@ -0,0 +1,1667 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.PlayerInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.PlayerInfo">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="game_id" property="gameId" jdbcType="INTEGER"/>
+        <result column="house_id" property="houseId" jdbcType="INTEGER"/>
+        <result column="join_time" property="joinTime" jdbcType="TIMESTAMP"/>
+        <result column="principal" property="principal" jdbcType="DECIMAL"/>
+        <result column="bonus" property="bonus" jdbcType="DECIMAL"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="image" property="image" jdbcType="VARCHAR"/>
+        <result column="kill_number" property="killNumber" jdbcType="INTEGER"/>
+        <result column="ranking" property="ranking" jdbcType="INTEGER"/>
+        <result column="begin_time" property="beginTime" jdbcType="TIMESTAMP"/>
+        <result column="end_time" property="endTime" jdbcType="TIMESTAMP"/>
+        <result column="status_flag" property="statusFlag" jdbcType="INTEGER"/>
+        <result column="examine_user" property="examineUser" jdbcType="VARCHAR"/>
+        <result column="examine_time" property="examineTime" jdbcType="TIMESTAMP"/>
+        <result column="examine_type" property="examineType" jdbcType="INTEGER"/>
+        <result column="video" property="video" jdbcType="VARCHAR"/>
+        <result column="live_time" property="liveTime" jdbcType="VARCHAR"/>
+        <result column="game_type" property="gameType" jdbcType="VARCHAR"/>
+        <result column="season_id" property="seasonId" jdbcType="INTEGER"/>
+        <result column="house_rank" property="houseRank" jdbcType="INTEGER"/>
+        <result column="score" property="score" jdbcType="FLOAT"/>
+        <result column="medal" property="medal" jdbcType="VARCHAR"/>
+        <result column="played" property="played" jdbcType="BIT"/>
+        <result column="result_error" property="resultError" jdbcType="BIT"/>
+        <result column="data_error" property="dataError" jdbcType="BIT"/>
+        <result column="kill3time" property="kill3time" jdbcType="INTEGER"/>
+        <result column="needkill" property="needkill" jdbcType="INTEGER"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            game_id,
+
+            house_id,
+
+            join_time,
+
+            principal,
+
+            bonus,
+
+            user_id,
+
+            remark,
+
+            image,
+
+            kill_number,
+
+            ranking,
+
+            begin_time,
+
+            end_time,
+
+            status_flag,
+
+            examine_user,
+
+            examine_time,
+
+            examine_type,
+
+            video,
+
+            live_time,
+
+            game_type,
+
+            season_id,
+
+            house_rank,
+
+            score,
+
+            medal,
+
+            played,
+
+            result_error,
+
+            data_error,
+
+            kill3time,
+
+            needkill,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from player_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from player_info
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PlayerInfo" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into player_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="gameId!= null">
+                game_id,
+            </if>
+            <if test="houseId!= null">
+                house_id,
+            </if>
+            <if test="joinTime!= null">
+                join_time,
+            </if>
+            <if test="principal!= null">
+                principal,
+            </if>
+            <if test="bonus!= null">
+                bonus,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="image!= null">
+                image,
+            </if>
+            <if test="killNumber!= null">
+                kill_number,
+            </if>
+            <if test="ranking!= null">
+                ranking,
+            </if>
+            <if test="beginTime!= null">
+                begin_time,
+            </if>
+            <if test="endTime!= null">
+                end_time,
+            </if>
+            <if test="statusFlag!= null">
+                status_flag,
+            </if>
+            <if test="examineUser!= null">
+                examine_user,
+            </if>
+            <if test="examineTime!= null">
+                examine_time,
+            </if>
+            <if test="examineType!= null">
+                examine_type,
+            </if>
+            <if test="video!= null">
+                video,
+            </if>
+            <if test="liveTime!= null">
+                live_time,
+            </if>
+            <if test="gameType!= null">
+                game_type,
+            </if>
+            <if test="seasonId!= null">
+                season_id,
+            </if>
+            <if test="houseRank!= null">
+                house_rank,
+            </if>
+            <if test="score!= null">
+                score,
+            </if>
+            <if test="medal!= null">
+                medal,
+            </if>
+            <if test="played!= null">
+                played,
+            </if>
+            <if test="kill3time!= null">
+                kill3time,
+            </if>
+            <if test="needkill!= null">
+                needkill,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="houseId != null">
+                #{houseId,jdbcType=INTEGER},
+            </if>
+            <if test="joinTime != null">
+                #{joinTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="principal != null">
+                #{principal,jdbcType=DECIMAL},
+            </if>
+            <if test="bonus != null">
+                #{bonus,jdbcType=DECIMAL},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="image != null">
+                #{image,jdbcType=VARCHAR},
+            </if>
+            <if test="killNumber != null">
+                #{killNumber,jdbcType=INTEGER},
+            </if>
+            <if test="ranking != null">
+                #{ranking,jdbcType=INTEGER},
+            </if>
+            <if test="beginTime != null">
+                #{beginTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="endTime != null">
+                #{endTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="statusFlag != null">
+                #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="examineUser != null">
+                #{examineUser,jdbcType=VARCHAR},
+            </if>
+            <if test="examineTime != null">
+                #{examineTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="examineType != null">
+                #{examineType,jdbcType=INTEGER},
+            </if>
+            <if test="video != null">
+                #{video,jdbcType=VARCHAR},
+            </if>
+            <if test="liveTime != null">
+                #{liveTime,jdbcType=VARCHAR},
+            </if>
+            <if test="gameType != null">
+                #{gameType,jdbcType=VARCHAR},
+            </if>
+            <if test="seasonId != null">
+                #{seasonId,jdbcType=INTEGER},
+            </if>
+            <if test="houseRank != null">
+                #{houseRank,jdbcType=INTEGER},
+            </if>
+            <if test="score != null">
+                #{score,jdbcType=FLOAT},
+            </if>
+            <if test="medal != null">
+                #{medal},
+            </if>
+            <if test="played!= null">
+                #{played,jdbcType=BIT},
+            </if>
+            <if test="kill3time!= null">
+                #{kill3time},
+            </if>
+            <if test="needkill!= null">
+                #{needkill},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.PlayerInfo">
+        update player_info
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                game_id= #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="houseId != null">
+                house_id= #{houseId,jdbcType=INTEGER},
+            </if>
+            <if test="joinTime != null">
+                join_time= #{joinTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="principal != null">
+                principal= #{principal,jdbcType=DECIMAL},
+            </if>
+            <if test="bonus != null">
+                bonus= #{bonus,jdbcType=DECIMAL},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="image != null">
+                image= #{image,jdbcType=VARCHAR},
+            </if>
+            <if test="killNumber != null">
+                kill_number= #{killNumber,jdbcType=INTEGER},
+            </if>
+            <if test="ranking != null">
+                ranking= #{ranking,jdbcType=INTEGER},
+            </if>
+            <if test="beginTime != null">
+                begin_time= #{beginTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="endTime != null">
+                end_time= #{endTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="statusFlag != null">
+                status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="examineUser != null">
+                examine_user= #{examineUser,jdbcType=VARCHAR},
+            </if>
+            <if test="examineTime != null">
+                examine_time= #{examineTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="examineType != null">
+                examine_type= #{examineType,jdbcType=INTEGER},
+            </if>
+            <if test="video != null">
+                video= #{video,jdbcType=VARCHAR},
+            </if>
+            <if test="liveTime != null">
+                live_time= #{liveTime,jdbcType=VARCHAR},
+            </if>
+            <if test="gameType != null">
+                game_type= #{gameType,jdbcType=VARCHAR},
+            </if>
+            <if test="seasonId != null">
+                season_id= #{seasonId,jdbcType=INTEGER},
+            </if>
+            <if test="houseRank != null">
+                house_rank= #{houseRank,jdbcType=INTEGER},
+            </if>
+            <if test="score != null">
+                score= #{score,jdbcType=INTEGER},
+            </if>
+            <if test="medal != null">
+                medal= #{medal},
+            </if>
+            <if test="played != null">
+                played = #{played,jdbcType=BIT},
+            </if>
+            <if test="resultError != null">
+                result_error = #{resultError,jdbcType=BIT},
+            </if>
+            <if test="dataError != null">
+                data_error = #{dataError,jdbcType=BIT},
+            </if>
+            <if test="kill3time != null">
+                kill3time = #{kill3time},
+            </if>
+            <if test="needkill != null">
+                needkill = #{needkill},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryPlayerInfoByPage" parameterType="java.util.Map"
+            resultMap="PagePlayerInfoAllResult">
+        select
+        <include refid="Base_Column_List"/>
+        from player_info
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and game_id = #{record.gameId}
+            </if>
+            <if test="record.houseId != null and !&quot;&quot;.equals(record.houseId)">
+                and house_id = #{record.houseId}
+            </if>
+            <if test="record.joinTime != null and !&quot;&quot;.equals(record.joinTime)">
+                and join_time = #{record.joinTime}
+            </if>
+            <if test="record.principal != null and !&quot;&quot;.equals(record.principal)">
+                and principal = #{record.principal}
+            </if>
+            <if test="record.bonus != null and !&quot;&quot;.equals(record.bonus)">
+                and bonus = #{record.bonus}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and user_id = #{record.userId}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.image != null and !&quot;&quot;.equals(record.image)">
+                and image = #{record.image}
+            </if>
+            <if test="record.killNumber != null and !&quot;&quot;.equals(record.killNumber)">
+                and kill_number = #{record.killNumber}
+            </if>
+            <if test="record.ranking != null and !&quot;&quot;.equals(record.ranking)">
+                and ranking = #{record.ranking}
+            </if>
+            <if test="record.beginTime != null and !&quot;&quot;.equals(record.beginTime)">
+                and begin_time = #{record.beginTime}
+            </if>
+            <if test="record.endTime != null and !&quot;&quot;.equals(record.endTime)">
+                and end_time = #{record.endTime}
+            </if>
+            <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                and status_flag = #{record.statusFlag}
+            </if>
+            <if test="record.examineUser != null and !&quot;&quot;.equals(record.examineUser)">
+                and examine_user = #{record.examineUser}
+            </if>
+            <if test="record.examineTime != null and !&quot;&quot;.equals(record.examineTime)">
+                and examine_time = #{record.examineTime}
+            </if>
+            <if test="record.examineType != null and !&quot;&quot;.equals(record.examineType)">
+                and examine_type = #{record.examineType}
+            </if>
+            <if test="record.video != null and !&quot;&quot;.equals(record.video)">
+                and video = #{record.video}
+            </if>
+            <if test="record.liveTime != null and !&quot;&quot;.equals(record.liveTime)">
+                and live_time = #{record.liveTime}
+            </if>
+            <if test="record.gameType != null and !&quot;&quot;.equals(record.gameType)">
+                and game_type = #{record.gameType}
+            </if>
+            <if test="record.seasonId != null and !&quot;&quot;.equals(record.seasonId)">
+                and season_id = #{record.seasonId}
+            </if>
+            <if test="record.medal != null and !&quot;&quot;.equals(record.medal)">
+                and medal = #{record.medal}
+            </if>
+            <if test="record.played != null and !&quot;&quot;.equals(record.played)">
+                and played = #{record.played}
+            </if>
+            <if test="record.needkill != null and !&quot;&quot;.equals(record.needkill)">
+                and needkill = #{record.needkill}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_id LIKE concat('%',#{record.searchKey},'%')
+                    OR house_id LIKE concat('%',#{record.searchKey},'%')
+                    OR join_time LIKE concat('%',#{record.searchKey},'%')
+                    OR principal LIKE concat('%',#{record.searchKey},'%')
+                    OR bonus LIKE concat('%',#{record.searchKey},'%')
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR image LIKE concat('%',#{record.searchKey},'%')
+                    OR kill_number LIKE concat('%',#{record.searchKey},'%')
+                    OR ranking LIKE concat('%',#{record.searchKey},'%')
+                    OR begin_time LIKE concat('%',#{record.searchKey},'%')
+                    OR end_time LIKE concat('%',#{record.searchKey},'%')
+                    OR status_flag LIKE concat('%',#{record.searchKey},'%')
+                    OR examine_user LIKE concat('%',#{record.searchKey},'%')
+                    OR examine_time LIKE concat('%',#{record.searchKey},'%')
+                    OR examine_type LIKE concat('%',#{record.searchKey},'%')
+                    OR video LIKE concat('%',#{record.searchKey},'%')
+                    OR live_time LIKE concat('%',#{record.searchKey},'%')
+                    OR game_type LIKE concat('%',#{record.searchKey},'%')
+                    OR season_id LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryPlayerInfoRankByPage" parameterType="java.util.Map"
+            resultMap="PagePlayerInfoResult">
+        select
+        <include refid="Base_Column_List"/>
+        from player_info
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and game_id = #{record.gameId}
+            </if>
+            <if test="record.houseId != null and !&quot;&quot;.equals(record.houseId)">
+                and house_id = #{record.houseId}
+            </if>
+            <if test="record.joinTime != null and !&quot;&quot;.equals(record.joinTime)">
+                and join_time = #{record.joinTime}
+            </if>
+            <if test="record.principal != null and !&quot;&quot;.equals(record.principal)">
+                and principal = #{record.principal}
+            </if>
+            <if test="record.bonus != null and !&quot;&quot;.equals(record.bonus)">
+                and bonus = #{record.bonus}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and user_id = #{record.userId}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.image != null and !&quot;&quot;.equals(record.image)">
+                and image = #{record.image}
+            </if>
+            <if test="record.killNumber != null and !&quot;&quot;.equals(record.killNumber)">
+                and kill_number = #{record.killNumber}
+            </if>
+            <if test="record.ranking != null and !&quot;&quot;.equals(record.ranking)">
+                and ranking = #{record.ranking}
+            </if>
+            <if test="record.beginTime != null and !&quot;&quot;.equals(record.beginTime)">
+                and begin_time = #{record.beginTime}
+            </if>
+            <if test="record.endTime != null and !&quot;&quot;.equals(record.endTime)">
+                and end_time = #{record.endTime}
+            </if>
+            <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                and status_flag = #{record.statusFlag}
+            </if>
+            <if test="record.examineUser != null and !&quot;&quot;.equals(record.examineUser)">
+                and examine_user = #{record.examineUser}
+            </if>
+            <if test="record.examineTime != null and !&quot;&quot;.equals(record.examineTime)">
+                and examine_time = #{record.examineTime}
+            </if>
+            <if test="record.examineType != null and !&quot;&quot;.equals(record.examineType)">
+                and examine_type = #{record.examineType}
+            </if>
+            <if test="record.video != null and !&quot;&quot;.equals(record.video)">
+                and video = #{record.video}
+            </if>
+            <if test="record.liveTime != null and !&quot;&quot;.equals(record.liveTime)">
+                and live_time = #{record.liveTime}
+            </if>
+            <if test="record.gameType != null and !&quot;&quot;.equals(record.gameType)">
+                and game_type = #{record.gameType}
+            </if>
+            <if test="record.seasonId != null and !&quot;&quot;.equals(record.seasonId)">
+                and season_id = #{record.seasonId}
+            </if>
+            <if test="record.medal != null and !&quot;&quot;.equals(record.medal)">
+                and medal = #{record.medal}
+            </if>
+            <if test="record.played != null and !&quot;&quot;.equals(record.played)">
+                and played = #{record.played}
+            </if>
+            <if test="record.needkill != null and !&quot;&quot;.equals(record.needkill)">
+                and needkill = #{record.needkill}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_id LIKE concat('%',#{record.searchKey},'%')
+                    OR house_id LIKE concat('%',#{record.searchKey},'%')
+                    OR join_time LIKE concat('%',#{record.searchKey},'%')
+                    OR principal LIKE concat('%',#{record.searchKey},'%')
+                    OR bonus LIKE concat('%',#{record.searchKey},'%')
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR image LIKE concat('%',#{record.searchKey},'%')
+                    OR kill_number LIKE concat('%',#{record.searchKey},'%')
+                    OR ranking LIKE concat('%',#{record.searchKey},'%')
+                    OR begin_time LIKE concat('%',#{record.searchKey},'%')
+                    OR end_time LIKE concat('%',#{record.searchKey},'%')
+                    OR status_flag LIKE concat('%',#{record.searchKey},'%')
+                    OR examine_user LIKE concat('%',#{record.searchKey},'%')
+                    OR examine_time LIKE concat('%',#{record.searchKey},'%')
+                    OR examine_type LIKE concat('%',#{record.searchKey},'%')
+                    OR video LIKE concat('%',#{record.searchKey},'%')
+                    OR live_time LIKE concat('%',#{record.searchKey},'%')
+                    OR game_type LIKE concat('%',#{record.searchKey},'%')
+                    OR season_id LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+        IFNULL(house_rank, 999), id
+    </select>
+    <select id="queryPlayerInfoSeasonRankPageByPage" parameterType="java.util.Map"
+            resultMap="PagePlayerInfoResult">
+
+        SELECT
+        game_id,
+        user_id,
+        season_id,
+        bonus,
+        (
+        SELECT
+        COUNT(1)
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND ranking = 1
+        AND medal = 'platinum'
+        AND user_id = p.user_id
+        AND season_id = p.season_id
+        AND game_id = p.game_id
+        ) AS platinum,
+        (
+        SELECT
+        COUNT(1)
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND house_rank = 1
+        AND medal = 'gold'
+        AND user_id = p.user_id
+        AND season_id = p.season_id
+        AND game_id = p.game_id
+        ) AS gold,
+        (
+        SELECT
+        COUNT(1)
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND medal = 'silver'
+        AND user_id = p.user_id
+        AND season_id = p.season_id
+        AND game_id = p.game_id
+        ) AS silver,
+        (
+        SELECT
+        COUNT(1)
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND medal = 'bronze'
+        AND user_id = p.user_id
+        AND season_id = p.season_id
+        AND game_id = p.game_id
+        ) AS bronze,
+        @curRank :=
+        IF (
+        @prevRank = bonus,
+        @curRank,
+        @incRank
+        ) AS rank,
+        @incRank := @incRank + 1,
+        @prevRank := bonus
+        FROM
+        (
+        SELECT
+        game_id,
+        user_id,
+        season_id,
+        SUM(IFNULL(bonus, 0)) AS bonus
+        FROM
+        player_info
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and game_id = #{record.gameId}
+            </if>
+            <if test="record.houseId != null and !&quot;&quot;.equals(record.houseId)">
+                and house_id = #{record.houseId}
+            </if>
+            <if test="record.joinTime != null and !&quot;&quot;.equals(record.joinTime)">
+                and join_time = #{record.joinTime}
+            </if>
+            <if test="record.principal != null and !&quot;&quot;.equals(record.principal)">
+                and principal = #{record.principal}
+            </if>
+            <if test="record.bonus != null and !&quot;&quot;.equals(record.bonus)">
+                and bonus = #{record.bonus}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and user_id = #{record.userId}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.image != null and !&quot;&quot;.equals(record.image)">
+                and image = #{record.image}
+            </if>
+            <if test="record.killNumber != null and !&quot;&quot;.equals(record.killNumber)">
+                and kill_number = #{record.killNumber}
+            </if>
+            <if test="record.ranking != null and !&quot;&quot;.equals(record.ranking)">
+                and ranking = #{record.ranking}
+            </if>
+            <if test="record.beginTime != null and !&quot;&quot;.equals(record.beginTime)">
+                and begin_time = #{record.beginTime}
+            </if>
+            <if test="record.endTime != null and !&quot;&quot;.equals(record.endTime)">
+                and end_time = #{record.endTime}
+            </if>
+            <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                and status_flag = #{record.statusFlag}
+            </if>
+            <if test="record.examineUser != null and !&quot;&quot;.equals(record.examineUser)">
+                and examine_user = #{record.examineUser}
+            </if>
+            <if test="record.examineTime != null and !&quot;&quot;.equals(record.examineTime)">
+                and examine_time = #{record.examineTime}
+            </if>
+            <if test="record.examineType != null and !&quot;&quot;.equals(record.examineType)">
+                and examine_type = #{record.examineType}
+            </if>
+            <if test="record.video != null and !&quot;&quot;.equals(record.video)">
+                and video = #{record.video}
+            </if>
+            <if test="record.liveTime != null and !&quot;&quot;.equals(record.liveTime)">
+                and live_time = #{record.liveTime}
+            </if>
+            <if test="record.gameType != null and !&quot;&quot;.equals(record.gameType)">
+                and game_type = #{record.gameType}
+            </if>
+            <if test="record.seasonId != null and !&quot;&quot;.equals(record.seasonId)">
+                and season_id = #{record.seasonId}
+            </if>
+
+            <if test="record.medal != null and !&quot;&quot;.equals(record.medal)">
+                and medal = #{record.medal}
+            </if>
+            <if test="record.played != null and !&quot;&quot;.equals(record.played)">
+                and played = #{record.played}
+            </if>
+
+        </where>
+        GROUP BY
+        game_id,
+        user_id,
+        season_id
+        ) AS p,
+        (
+        SELECT
+        @curRank := 0,
+        @prevRank := NULL,
+        @incRank := 1
+        ) r
+        ORDER BY
+        bonus DESC
+
+    </select>
+    <select id="seasonUserRank" parameterType="java.util.Map"
+            resultMap="PagePlayerInfoResult">
+
+        select *,(
+        SELECT
+        COUNT(1)
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND ranking = 1
+        AND medal = 'platinum'
+        AND user_id = u.user_id
+        AND season_id = u.season_id
+        AND game_id = u.game_id
+        ) AS platinum,
+        (
+        SELECT
+        COUNT(1)
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND house_rank = 1
+        AND medal = 'gold'
+        AND user_id = u.user_id
+        AND season_id = u.season_id
+        AND game_id = u.game_id
+        ) AS gold,
+        (
+        SELECT
+        COUNT(1)
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND medal = 'silver'
+        AND user_id = u.user_id
+        AND season_id = u.season_id
+        AND game_id = u.game_id
+        ) AS silver,
+        (
+        SELECT
+        COUNT(1)
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND medal = 'bronze'
+        AND user_id = u.user_id
+        AND season_id = u.season_id
+        AND game_id = u.game_id
+        ) AS bronze from (
+        SELECT
+        game_id,
+        user_id,
+        season_id,
+        bonus,
+        @curRank :=
+        IF (
+        @prevRank = bonus,
+        @curRank,
+        @incRank
+        ) AS rank,
+        @incRank := @incRank + 1,
+        @prevRank := bonus
+        FROM
+        (
+        SELECT
+        game_id,
+        user_id,
+        season_id,
+        SUM(IFNULL(bonus, 0)) AS bonus
+        FROM
+        player_info
+        <where>
+            and del_flag = 'N'
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+
+        </where>
+        GROUP BY
+        game_id,
+        user_id,
+        season_id
+        ) AS p,
+        (
+        SELECT
+        @curRank := 0,
+        @prevRank := NULL,
+        @incRank := 1
+        ) r
+        ORDER BY
+        bonus DESC
+        ) u
+
+        where
+        <if test="userId != null and !&quot;&quot;.equals(userId)">
+            u.user_id = #{userId}
+        </if>
+
+        LIMIT 1
+    </select>
+    <select id="queryAllPlayerInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlayerInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from player_info
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+            <if test="joinTime != null and !&quot;&quot;.equals(joinTime)">
+                and join_time = #{joinTime}
+            </if>
+            <if test="principal != null and !&quot;&quot;.equals(principal)">
+                and principal = #{principal}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and bonus = #{bonus}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                and image = #{image}
+            </if>
+            <if test="killNumber != null and !&quot;&quot;.equals(killNumber)">
+                and kill_number = #{killNumber}
+            </if>
+            <if test="ranking != null and !&quot;&quot;.equals(ranking)">
+                and ranking = #{ranking}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and end_time = #{endTime}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="examineUser != null and !&quot;&quot;.equals(examineUser)">
+                and examine_user = #{examineUser}
+            </if>
+            <if test="examineTime != null and !&quot;&quot;.equals(examineTime)">
+                and examine_time = #{examineTime}
+            </if>
+            <if test="examineType != null and !&quot;&quot;.equals(examineType)">
+                and examine_type = #{examineType}
+            </if>
+            <if test="video != null and !&quot;&quot;.equals(video)">
+                and video = #{video}
+            </if>
+            <if test="liveTime != null and !&quot;&quot;.equals(liveTime)">
+                and live_time = #{liveTime}
+            </if>
+            <if test="gameType != null and !&quot;&quot;.equals(gameType)">
+                and game_type = #{gameType}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+
+            <if test="medal != null and !&quot;&quot;.equals(medal)">
+                and medal = #{medal}
+            </if>
+            <if test="played != null and !&quot;&quot;.equals(played)">
+                and played = #{played}
+            </if>
+            <if test="needkill != null and !&quot;&quot;.equals(needkill)">
+                and needkill = #{needkill}
+            </if>
+
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_id LIKE concat('%',#{searchKey},'%')
+                    OR house_id LIKE concat('%',#{searchKey},'%')
+                    OR join_time LIKE concat('%',#{searchKey},'%')
+                    OR principal LIKE concat('%',#{searchKey},'%')
+                    OR bonus LIKE concat('%',#{searchKey},'%')
+                    OR user_id LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR image LIKE concat('%',#{searchKey},'%')
+                    OR kill_number LIKE concat('%',#{searchKey},'%')
+                    OR ranking LIKE concat('%',#{searchKey},'%')
+                    OR begin_time LIKE concat('%',#{searchKey},'%')
+                    OR end_time LIKE concat('%',#{searchKey},'%')
+                    OR status_flag LIKE concat('%',#{searchKey},'%')
+                    OR examine_user LIKE concat('%',#{searchKey},'%')
+                    OR examine_time LIKE concat('%',#{searchKey},'%')
+                    OR examine_type LIKE concat('%',#{searchKey},'%')
+                    OR video LIKE concat('%',#{searchKey},'%')
+                    OR live_time LIKE concat('%',#{searchKey},'%')
+                    OR game_type LIKE concat('%',#{searchKey},'%')
+                    OR season_id LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryPlayerInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlayerInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from player_info
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+            <if test="joinTime != null and !&quot;&quot;.equals(joinTime)">
+                and join_time = #{joinTime}
+            </if>
+            <if test="principal != null and !&quot;&quot;.equals(principal)">
+                and principal = #{principal}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and bonus = #{bonus}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                and image = #{image}
+            </if>
+            <if test="killNumber != null and !&quot;&quot;.equals(killNumber)">
+                and kill_number = #{killNumber}
+            </if>
+            <if test="ranking != null and !&quot;&quot;.equals(ranking)">
+                and ranking = #{ranking}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and end_time = #{endTime}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="examineUser != null and !&quot;&quot;.equals(examineUser)">
+                and examine_user = #{examineUser}
+            </if>
+            <if test="examineTime != null and !&quot;&quot;.equals(examineTime)">
+                and examine_time = #{examineTime}
+            </if>
+            <if test="examineType != null and !&quot;&quot;.equals(examineType)">
+                and examine_type = #{examineType}
+            </if>
+            <if test="video != null and !&quot;&quot;.equals(video)">
+                and video = #{video}
+            </if>
+            <if test="liveTime != null and !&quot;&quot;.equals(liveTime)">
+                and live_time = #{liveTime}
+            </if>
+            <if test="gameType != null and !&quot;&quot;.equals(gameType)">
+                and game_type = #{gameType}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+
+            <if test="medal != null and !&quot;&quot;.equals(medal)">
+                and medal = #{medal}
+            </if>
+            <if test="played != null and !&quot;&quot;.equals(played)">
+                and played = #{played}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE player_info SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlayerInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from player_info
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+
+    <select id="userRank" parameterType="java.util.Map" resultType="java.lang.Integer">
+        SELECT
+        COUNT(player_info.id)
+        FROM
+        player_info,
+        player_info AS user_rank
+        <where>
+            AND player_info.del_flag = 'N'
+
+            AND (
+            <![CDATA[
+               ( IFNULL(player_info.ranking, 999) < IFNULL(user_rank.ranking, 999)
+                OR (
+                    IFNULL(player_info.ranking, 999) = IFNULL(user_rank.ranking, 999)
+                    AND IFNULL(player_info.live_time, 999) < IFNULL(user_rank.live_time, 999)
+                ))
+
+            ]]>
+            )
+            AND user_rank.house_id = player_info.house_id
+            AND user_rank.game_id = player_info.game_id
+            AND user_rank.house_id = player_info.house_id
+            AND user_rank.del_flag = 'N'
+            AND player_info.id != user_rank.id
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and user_rank.id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and user_rank.del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and user_rank.update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and user_rank.update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and user_rank.create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and user_rank.create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and user_rank.game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and user_rank.house_id = #{houseId}
+            </if>
+            <if test="joinTime != null and !&quot;&quot;.equals(joinTime)">
+                and user_rank.join_time = #{joinTime}
+            </if>
+            <if test="principal != null and !&quot;&quot;.equals(principal)">
+                and user_rank.principal = #{principal}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and user_rank.bonus = #{bonus}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_rank.user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and user_rank.remark = #{remark}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                and user_rank.image = #{image}
+            </if>
+            <if test="killNumber != null and !&quot;&quot;.equals(killNumber)">
+                and user_rank.kill_number = #{killNumber}
+            </if>
+            <if test="ranking != null and !&quot;&quot;.equals(ranking)">
+                and user_rank.ranking = #{ranking}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and user_rank.begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and user_rank.end_time = #{endTime}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and user_rank.status_flag = #{statusFlag}
+            </if>
+            <if test="examineUser != null and !&quot;&quot;.equals(examineUser)">
+                and user_rank.examine_user = #{examineUser}
+            </if>
+            <if test="examineTime != null and !&quot;&quot;.equals(examineTime)">
+                and user_rank.examine_time = #{examineTime}
+            </if>
+            <if test="examineType != null and !&quot;&quot;.equals(examineType)">
+                and user_rank.examine_type = #{examineType}
+            </if>
+            <if test="video != null and !&quot;&quot;.equals(video)">
+                and user_rank.video = #{video}
+            </if>
+            <if test="liveTime != null and !&quot;&quot;.equals(liveTime)">
+                and user_rank.live_time = #{liveTime}
+            </if>
+            <if test="gameType != null and !&quot;&quot;.equals(gameType)">
+                and user_rank.game_type = #{gameType}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and user_rank.season_id = #{seasonId}
+            </if>
+
+            <if test="medal != null and !&quot;&quot;.equals(medal)">
+                and user_rank.medal = #{medal}
+            </if>
+
+        </where>
+    </select>
+    <select id="endNum" parameterType="java.util.Map" resultType="java.lang.Integer">
+        SELECT
+        COUNT(player_info.id)
+        FROM
+        player_info
+        <where>
+            and del_flag = 'N'
+            <![CDATA[  and status_flag  >= 3 ]]>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+            <if test="joinTime != null and !&quot;&quot;.equals(joinTime)">
+                and join_time = #{joinTime}
+            </if>
+            <if test="principal != null and !&quot;&quot;.equals(principal)">
+                and principal = #{principal}
+            </if>
+            <if test="bonus != null and !&quot;&quot;.equals(bonus)">
+                and bonus = #{bonus}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                and image = #{image}
+            </if>
+            <if test="killNumber != null and !&quot;&quot;.equals(killNumber)">
+                and kill_number = #{killNumber}
+            </if>
+            <if test="ranking != null and !&quot;&quot;.equals(ranking)">
+                and ranking = #{ranking}
+            </if>
+            <if test="beginTime != null and !&quot;&quot;.equals(beginTime)">
+                and begin_time = #{beginTime}
+            </if>
+            <if test="endTime != null and !&quot;&quot;.equals(endTime)">
+                and end_time = #{endTime}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="examineUser != null and !&quot;&quot;.equals(examineUser)">
+                and examine_user = #{examineUser}
+            </if>
+            <if test="examineTime != null and !&quot;&quot;.equals(examineTime)">
+                and examine_time = #{examineTime}
+            </if>
+            <if test="examineType != null and !&quot;&quot;.equals(examineType)">
+                and examine_type = #{examineType}
+            </if>
+            <if test="video != null and !&quot;&quot;.equals(video)">
+                and video = #{video}
+            </if>
+            <if test="liveTime != null and !&quot;&quot;.equals(liveTime)">
+                and live_time = #{liveTime}
+            </if>
+            <if test="gameType != null and !&quot;&quot;.equals(gameType)">
+                and game_type = #{gameType}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+            <if test="played != null and !&quot;&quot;.equals(played)">
+                and played = #{played}
+            </if>
+
+        </where>
+    </select>
+
+
+    <select id="queryNoStartPlayer" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlayerInfo">
+        SELECT
+                *
+            FROM
+                player_info
+            WHERE
+                del_flag = 'N'
+            AND status_flag = 0
+            AND house_id IN (
+                SELECT
+                    id
+                FROM
+                    house_info
+                WHERE
+                    del_flag = 'N'
+                AND use_flag = 'Y'
+                <![CDATA[ AND status_flag >= 1 ]]>
+
+                AND DATE_SUB(
+                    CURRENT_TIMESTAMP (),
+                    INTERVAL 40 SECOND
+                ) <![CDATA[ >= ]]>  begin_time
+            )
+
+    </select>
+
+    <select id="querySettlementPlayer" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.PlayerInfo">
+        SELECT
+        *
+        FROM
+        player_info
+        WHERE
+        del_flag = 'N'
+        AND status_flag IN (3, 7 , 8, 9)
+        AND house_id = #{houseId}
+
+        <if test="ranking != null and !&quot;&quot;.equals(ranking)">
+            AND ranking = 1
+        </if>
+
+        order by
+        IFNULL(ranking,999) ,
+        <if test="scoreType != null and !&quot;&quot;.equals(scoreType)">
+            IFNULL(score,0) desc,
+        </if>
+        IFNULL(live_time,999) ,
+        id desc
+
+    </select>
+
+
+    <update id="overTimePlayer" parameterType="com.izouma.awesomeadmin.model.PlayerInfo">
+        update player_info set status_flag = 7
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+            house_id = #{houseId,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+        and del_flag = 'N'
+        and status_flag = 2
+
+    </update>
+
+    <select id="queryErrorPlayerInfo" resultType="com.izouma.awesomeadmin.model.PlayerInfo">
+        SELECT player_info.*
+        FROM player_info
+                 JOIN house_info ON player_info.house_id = house_info.id
+        WHERE player_info.begin_time IS NOT NULL
+          AND player_info.del_flag = 'N'
+          AND player_info.status_flag = 2
+          AND player_info.user_id = #{userId}
+          AND house_info.del_flag = 'N'
+          AND house_info.status_flag = 2
+        ORDER BY player_info.id DESC
+        LIMIT 1
+    </select>
+
+
+
+    <resultMap id="PagePlayerInfoResult" type="com.izouma.awesomeadmin.model.PlayerInfo" extends="BaseResultMap">
+
+        <association property="userInfo"
+                     javaType="com.izouma.awesomeadmin.model.UserInfo"
+                     select="com.izouma.awesomeadmin.dao.UserInfoMapper.querySingleUserInfo"
+                     column="{ id = user_id }"/>
+
+    </resultMap>
+    <resultMap id="PagePlayerInfoAllResult" type="com.izouma.awesomeadmin.model.PlayerInfo" extends="BaseResultMap">
+
+
+        <association property="gameInfo"
+                     javaType="com.izouma.awesomeadmin.model.GameInfo"
+                     select="com.izouma.awesomeadmin.dao.GameInfoMapper.queryGameInfo"
+                     column="{ id = game_id }"/>
+        <association property="houseInfo"
+                     javaType="com.izouma.awesomeadmin.model.HouseInfo"
+                     select="com.izouma.awesomeadmin.dao.HouseInfoMapper.queryHouseInfo"
+                     column="{ id = house_id }"/>
+
+
+    </resultMap>
+
+</mapper>
+

+ 35 - 0
src/main/java/com/izouma/awesomeadmin/dao/PopNoticeMapper.java

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.PopNotice;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.PopNoticeMapper")
+public interface PopNoticeMapper{
+    /*generatedStart*/
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(PopNotice record);
+
+    PopNotice selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(PopNotice record);
+
+    List<PopNotice> queryAllPopNotice(PopNotice record);
+
+    List<PopNotice> queryPopNoticeByPage(Map<String, Object> parameter);
+
+    int delete(PopNotice record);
+
+    PopNotice queryPopNotice(PopNotice record);
+
+    List<PopNotice> query(PopNotice record);
+    /*generatedEnd*/
+
+}
+

+ 356 - 0
src/main/java/com/izouma/awesomeadmin/dao/PopNoticeMapper.xml

@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.PopNoticeMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.PopNotice">
+        <!--generatedStart-->
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="image" property="image" jdbcType="VARCHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <!--generatedEnd-->
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <!--generatedStart-->
+        id, del_flag, update_time, update_user, create_time, create_user, image, remark        <!--generatedEnd-->
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pop_notice
+        WHERE id = #{id,jdbcType=INTEGER}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        DELETE
+        FROM pop_notice
+        WHERE id = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PopNotice" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO pop_notice
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="image!= null">
+                image,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <!--generatedEnd-->
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <!--generatedStart-->
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="image != null">
+                #{image,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <!--generatedEnd-->
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.PopNotice">
+        UPDATE pop_notice
+        <set>
+            <!--generatedStart-->
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="image != null">
+                image= #{image,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <!--generatedEnd-->
+        </set>
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="queryPopNoticeByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PopNotice">
+        SELECT <include refid="Base_Column_List"/> FROM pop_notice
+        <where>
+            AND del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                AND id IN (${record.idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                AND id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                AND del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                AND update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                AND update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                AND create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                AND create_user = #{record.createUser}
+            </if>
+            <if test="record.image != null and !&quot;&quot;.equals(record.image)">
+                AND image = #{record.image}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                AND remark = #{record.remark}
+            </if>
+            <!--generatedEnd-->
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR image LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryAllPopNotice" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PopNotice">
+        SELECT <include refid="Base_Column_List"/> FROM pop_notice
+        <where>
+            AND del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                AND id IN (${idStr})
+            </if>
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                AND image = #{image}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <!--generatedEnd-->
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <!--generatedStart-->
+                    OR image LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    <!--generatedEnd-->
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+                            </foreach>
+                        </otherwise>
+                    </choose>
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id DESC
+    </select>
+
+    <select id="queryPopNotice" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PopNotice">
+        SELECT <include refid="Base_Column_List"/> FROM pop_notice
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                AND id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                AND del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                AND update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                AND update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                AND create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                AND create_user = #{createUser}
+            </if>
+            <if test="image != null and !&quot;&quot;.equals(image)">
+                AND image = #{image}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                AND remark = #{remark}
+            </if>
+            <!--generatedEnd-->
+        </where>
+        LIMIT 1
+    </select>
+
+    <update id="delete">
+        UPDATE pop_notice SET del_flag = 'Y'
+        WHERE
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id IN (${idStr})
+        </if>
+    </update>
+
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PopNotice">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM pop_notice
+        <where>
+            AND del_flag = 'N'
+            <!--generatedStart-->
+            <!--generatedEnd-->
+        </where>
+        ORDER BY id DESC
+    </select>
+</mapper>
+

+ 34 - 0
src/main/java/com/izouma/awesomeadmin/dao/PowerInfoMapper.java

@@ -0,0 +1,34 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.model.PowerInfo;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * power_info Dao接口
+ * Wed Apr 11 11:04:02 CST 2018  Suo Chen Cheng
+ */ 
+@Repository("com.zoumaframe.dao.PowerInfoMapper")
+public interface PowerInfoMapper {
+
+	int deleteByPrimaryKey(Integer id);
+
+	int insertSelective(PowerInfo record);
+
+	PowerInfo selectByPrimaryKey(Integer id);
+
+	int updateByPrimaryKeySelective(PowerInfo record);
+
+	List<PowerInfo> queryAllPowerInfo(PowerInfo record);
+
+	List<PowerInfo> queryPowerInfosByPage(Map<String, Object> parameter);
+
+	int delete(String id);
+
+	PowerInfo queryPowerInfo(PowerInfo record);
+
+	int deleteByRoleId(String roleId);
+}
+

+ 224 - 0
src/main/java/com/izouma/awesomeadmin/dao/PowerInfoMapper.xml

@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.PowerInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.PowerInfo">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="role_id" property="roleId" jdbcType="INTEGER"/>
+        <result column="menu_id" property="menuId" jdbcType="INTEGER"/>
+        <result column="can_add" property="canAdd" jdbcType="INTEGER"/>
+        <result column="can_delete" property="canDelete" jdbcType="INTEGER"/>
+        <result column="can_update" property="canUpdate" jdbcType="INTEGER"/>
+        <result column="can_select" property="canSelect" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+		 id, role_id, menu_id, can_add, can_delete, can_update, can_select, del_flag
+	</sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_power_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+		delete from sys_power_info
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PowerInfo" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into sys_power_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="roleId != null">
+                role_id,
+            </if>
+            <if test="menuId != null">
+                menu_id,
+            </if>
+            <if test="canAdd != null">
+                can_add,
+            </if>
+            <if test="canDelete != null">
+                can_delete,
+            </if>
+            <if test="canUpdate != null">
+                can_update,
+            </if>
+            <if test="canSelect != null">
+                can_select,
+            </if>
+            <if test="delFlag != null">
+                del_flag,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="roleId != null">
+                #{roleId,jdbcType=INTEGER},
+            </if>
+            <if test="menuId != null">
+                #{menuId,jdbcType=INTEGER},
+            </if>
+            <if test="canAdd != null">
+                #{canAdd,jdbcType=INTEGER},
+            </if>
+            <if test="canDelete != null">
+                #{canDelete,jdbcType=INTEGER},
+            </if>
+            <if test="canUpdate != null">
+                #{canUpdate,jdbcType=INTEGER},
+            </if>
+            <if test="canSelect != null">
+                #{canSelect,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.PowerInfo">
+        update sys_power_info
+        <set>
+            <if test="roleId != null">
+                role_id = #{roleId,jdbcType=INTEGER},
+            </if>
+            <if test="menuId != null">
+                menu_id = #{menuId,jdbcType=INTEGER},
+            </if>
+            <if test="canAdd != null">
+                can_add = #{canAdd,jdbcType=INTEGER},
+            </if>
+            <if test="canDelete != null">
+                can_delete = #{canDelete,jdbcType=INTEGER},
+            </if>
+            <if test="canUpdate != null">
+                can_update = #{canUpdate,jdbcType=INTEGER},
+            </if>
+            <if test="canSelect != null">
+                can_select = #{canSelect,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag = #{delFlag,jdbcType=CHAR},
+            </if>
+        </set>
+        where id = #{id,jdbcType=INTEGER}
+    </update>
+    <select id="queryPowerInfosByPage" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.PowerInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_power_info
+        <where>
+            and del_flag = 'N'
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.roleId != null and !&quot;&quot;.equals(record.roleId)">
+                and role_id = #{record.roleId}
+            </if>
+            <if test="record.menuId != null and !&quot;&quot;.equals(record.menuId)">
+                and menu_id = #{record.menuId}
+            </if>
+            <if test="record.canAdd != null and !&quot;&quot;.equals(record.canAdd)">
+                and can_add = #{record.canAdd}
+            </if>
+            <if test="record.canDelete != null and !&quot;&quot;.equals(record.canDelete)">
+                and can_delete = #{record.canDelete}
+            </if>
+            <if test="record.canUpdate != null and !&quot;&quot;.equals(record.canUpdate)">
+                and can_update = #{record.canUpdate}
+            </if>
+            <if test="record.canSelect != null and !&quot;&quot;.equals(record.canSelect)">
+                and can_select = #{record.canSelect}
+            </if>
+        </where>
+        order by id desc
+    </select>
+    <select id="queryAllPowerInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PowerInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_power_info
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="roleId != null and !&quot;&quot;.equals(roleId)">
+                and role_id = #{roleId}
+            </if>
+            <if test="menuId != null and !&quot;&quot;.equals(menuId)">
+                and menu_id = #{menuId}
+            </if>
+            <if test="canAdd != null and !&quot;&quot;.equals(canAdd)">
+                and can_add = #{canAdd}
+            </if>
+            <if test="canDelete != null and !&quot;&quot;.equals(canDelete)">
+                and can_delete = #{canDelete}
+            </if>
+            <if test="canUpdate != null and !&quot;&quot;.equals(canUpdate)">
+                and can_update = #{canUpdate}
+            </if>
+            <if test="canSelect != null and !&quot;&quot;.equals(canSelect)">
+                and can_select = #{canSelect}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="roleIdStr != null and !&quot;&quot;.equals(roleIdStr)">
+                and role_id in (${roleIdStr})
+            </if>
+        </where>
+        order by id desc
+    </select>
+    <select id="queryPowerInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PowerInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_power_info
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="roleId != null and !&quot;&quot;.equals(roleId)">
+                and role_id = #{roleId}
+            </if>
+            <if test="menuId != null and !&quot;&quot;.equals(menuId)">
+                and menu_id = #{menuId}
+            </if>
+            <if test="canAdd != null and !&quot;&quot;.equals(canAdd)">
+                and can_add = #{canAdd}
+            </if>
+            <if test="canDelete != null and !&quot;&quot;.equals(canDelete)">
+                and can_delete = #{canDelete}
+            </if>
+            <if test="canUpdate != null and !&quot;&quot;.equals(canUpdate)">
+                and can_update = #{canUpdate}
+            </if>
+            <if test="canSelect != null and !&quot;&quot;.equals(canSelect)">
+                and can_select = #{canSelect}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE sys_power_info SET del_flag = 'Y'
+        <where>
+            AND id = #{id}
+        </where>
+    </update>
+
+    <update id="deleteByRoleId">
+        UPDATE sys_power_info SET del_flag = 'Y'
+        <where>
+            AND role_id = #{roleId}
+        </where>
+    </update>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/ProductInfoMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.ProductInfo;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.ProductInfoMapper")
+public interface ProductInfoMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(ProductInfo record);
+
+    ProductInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(ProductInfo record);
+
+    List<ProductInfo> queryAllProductInfo(ProductInfo record);
+
+    List<ProductInfo> queryProductInfoByPage(Map<String, Object> parameter);
+
+    int delete(ProductInfo record);
+
+    ProductInfo queryProductInfo(ProductInfo record);
+
+    List<ProductInfo> query(ProductInfo record);
+}
+

+ 470 - 0
src/main/java/com/izouma/awesomeadmin/dao/ProductInfoMapper.xml

@@ -0,0 +1,470 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.ProductInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.ProductInfo">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="product_name" property="productName" jdbcType="VARCHAR"/>
+        <result column="money" property="money" jdbcType="DECIMAL"/>
+        <result column="coin" property="coin" jdbcType="DECIMAL"/>
+        <result column="type_flag" property="typeFlag" jdbcType="INTEGER"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="rank" property="rank" jdbcType="INTEGER"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            product_name,
+
+            money,
+
+            coin,
+
+            type_flag,
+
+            remark,
+
+            rank,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from product_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from product_info
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.ProductInfo" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into product_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="productName!= null">
+                product_name,
+            </if>
+            <if test="money!= null">
+                money,
+            </if>
+            <if test="coin!= null">
+                coin,
+            </if>
+            <if test="typeFlag!= null">
+                type_flag,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="rank!= null">
+                rank,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="productName != null">
+                #{productName,jdbcType=VARCHAR},
+            </if>
+            <if test="money != null">
+                #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="coin != null">
+                #{coin,jdbcType=DECIMAL},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                #{rank,jdbcType=INTEGER},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.ProductInfo">
+        update product_info
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="productName != null">
+                product_name= #{productName,jdbcType=VARCHAR},
+            </if>
+            <if test="money != null">
+                money= #{money,jdbcType=DECIMAL},
+            </if>
+            <if test="coin != null">
+                coin= #{coin,jdbcType=DECIMAL},
+            </if>
+            <if test="typeFlag != null">
+                type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="rank != null">
+                rank= #{rank,jdbcType=INTEGER},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryProductInfoByPage" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.ProductInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from product_info
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.productName != null and !&quot;&quot;.equals(record.productName)">
+                and product_name = #{record.productName}
+            </if>
+            <if test="record.money != null and !&quot;&quot;.equals(record.money)">
+                and money = #{record.money}
+            </if>
+            <if test="record.coin != null and !&quot;&quot;.equals(record.coin)">
+                and coin = #{record.coin}
+            </if>
+            <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                and type_flag = #{record.typeFlag}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.rank != null and !&quot;&quot;.equals(record.rank)">
+                and rank = #{record.rank}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR product_name LIKE concat('%',#{record.searchKey},'%')
+                    OR money LIKE concat('%',#{record.searchKey},'%')
+                    OR coin LIKE concat('%',#{record.searchKey},'%')
+                    OR type_flag LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR rank LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        rank desc , id desc
+    </select>
+    <select id="queryAllProductInfo" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.ProductInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from product_info
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="productName != null and !&quot;&quot;.equals(productName)">
+                and product_name = #{productName}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                and money = #{money}
+            </if>
+            <if test="coin != null and !&quot;&quot;.equals(coin)">
+                and coin = #{coin}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR product_name LIKE concat('%',#{searchKey},'%')
+                    OR money LIKE concat('%',#{searchKey},'%')
+                    OR coin LIKE concat('%',#{searchKey},'%')
+                    OR type_flag LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR rank LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        rank desc , id desc
+    </select>
+    <select id="queryProductInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProductInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from product_info
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="productName != null and !&quot;&quot;.equals(productName)">
+                and product_name = #{productName}
+            </if>
+            <if test="money != null and !&quot;&quot;.equals(money)">
+                and money = #{money}
+            </if>
+            <if test="coin != null and !&quot;&quot;.equals(coin)">
+                and coin = #{coin}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="rank != null and !&quot;&quot;.equals(rank)">
+                and rank = #{rank}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE product_info SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProductInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from product_info
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/QueryConfigMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.QueryConfig;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.QueryConfigMapper")
+public interface QueryConfigMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(QueryConfig record);
+
+    QueryConfig selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(QueryConfig record);
+
+    List<QueryConfig> queryAllQueryConfig(QueryConfig record);
+
+    List<QueryConfig> queryQueryConfigByPage(Map<String, Object> parameter);
+
+    int delete(String id);
+
+    QueryConfig queryQueryConfig(QueryConfig record);
+
+    List<QueryConfig> query(QueryConfig record);
+}
+

+ 363 - 0
src/main/java/com/izouma/awesomeadmin/dao/QueryConfigMapper.xml

@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.QueryConfigMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.QueryConfig">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="code" property="code" jdbcType="VARCHAR"/>
+        <result column="table_name" property="tableName" jdbcType="VARCHAR"/>
+        <result column="tableColumns" property="tablecolumns" jdbcType="VARCHAR"/>
+        <result column="dataBaseType" property="databasetype" jdbcType="VARCHAR"/>
+        <result column="modules" property="modules" jdbcType="VARCHAR"/>
+        <result column="data_source_code" property="dataSourceCode" jdbcType="VARCHAR"/>
+        <result column="config_json" property="configJson" jdbcType="VARCHAR"/>
+        <result column="type_flag" property="typeFlag" jdbcType="VARCHAR"/>
+        <result column="sub_json" property="subJson" jdbcType="VARCHAR"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            code,
+
+            table_name,
+
+            tableColumns,
+
+            dataBaseType,
+
+            modules,
+
+            data_source_code,
+
+            config_json,
+
+            type_flag,
+
+            sub_json,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_query_config
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from sys_query_config
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.QueryConfig" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into sys_query_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="code!= null">
+                code,
+            </if>
+            <if test="tableName!= null">
+                table_name,
+            </if>
+            <if test="tablecolumns!= null">
+                tableColumns,
+            </if>
+            <if test="databasetype!= null">
+                dataBaseType,
+            </if>
+            <if test="modules!= null">
+                modules,
+            </if>
+            <if test="dataSourceCode!= null">
+                data_source_code,
+            </if>
+            <if test="configJson!= null">
+                config_json,
+            </if>
+            <if test="typeFlag!= null">
+                type_flag,
+            </if>
+            <if test="subJson!= null">
+                sub_json,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="code != null">
+                #{code,jdbcType=VARCHAR},
+            </if>
+            <if test="tableName != null">
+                #{tableName,jdbcType=VARCHAR},
+            </if>
+            <if test="tablecolumns != null">
+                #{tablecolumns,jdbcType=VARCHAR},
+            </if>
+            <if test="databasetype != null">
+                #{databasetype,jdbcType=VARCHAR},
+            </if>
+            <if test="modules != null">
+                #{modules,jdbcType=VARCHAR},
+            </if>
+            <if test="dataSourceCode != null">
+                #{dataSourceCode,jdbcType=VARCHAR},
+            </if>
+            <if test="configJson != null">
+                #{configJson,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=VARCHAR},
+            </if>
+            <if test="subJson != null">
+                #{subJson,jdbcType=VARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.QueryConfig">
+        update sys_query_config
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="code != null">
+                code= #{code,jdbcType=VARCHAR},
+            </if>
+            <if test="tableName != null">
+                table_name= #{tableName,jdbcType=VARCHAR},
+            </if>
+            <if test="tablecolumns != null">
+                tableColumns= #{tablecolumns,jdbcType=VARCHAR},
+            </if>
+            <if test="databasetype != null">
+                dataBaseType= #{databasetype,jdbcType=VARCHAR},
+            </if>
+            <if test="modules != null">
+                modules= #{modules,jdbcType=VARCHAR},
+            </if>
+            <if test="dataSourceCode != null">
+                data_source_code= #{dataSourceCode,jdbcType=VARCHAR},
+            </if>
+            <if test="configJson != null">
+                config_json= #{configJson,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                type_flag= #{typeFlag,jdbcType=VARCHAR},
+            </if>
+            <if test="subJson != null">
+                sub_json= #{subJson,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where id = #{id,jdbcType=INTEGER}
+    </update>
+    <select id="queryQueryConfigByPage" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.QueryConfig">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_query_config
+        <where>
+            and del_flag = 'N'
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.code != null and !&quot;&quot;.equals(record.code)">
+                and code = #{record.code}
+            </if>
+            <if test="record.tableName != null and !&quot;&quot;.equals(record.tableName)">
+                and table_name = #{record.tableName}
+            </if>
+            <if test="record.tablecolumns != null and !&quot;&quot;.equals(record.tablecolumns)">
+                and tableColumns = #{record.tablecolumns}
+            </if>
+            <if test="record.databasetype != null and !&quot;&quot;.equals(record.databasetype)">
+                and dataBaseType = #{record.databasetype}
+            </if>
+            <if test="record.modules != null and !&quot;&quot;.equals(record.modules)">
+                and modules = #{record.modules}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR code LIKE concat('%',#{record.searchKey},'%')
+                    OR table_name LIKE concat('%',#{record.searchKey},'%')
+                    OR tableColumns LIKE concat('%',#{record.searchKey},'%')
+                    OR dataBaseType LIKE concat('%',#{record.searchKey},'%')
+                    OR type_flag LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by id desc
+    </select>
+    <select id="queryAllQueryConfig" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.QueryConfig">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_query_config
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="code != null and !&quot;&quot;.equals(code)">
+                and code = #{code}
+            </if>
+            <if test="tableName != null and !&quot;&quot;.equals(tableName)">
+                and table_name = #{tableName}
+            </if>
+            <if test="tablecolumns != null and !&quot;&quot;.equals(tablecolumns)">
+                and tableColumns = #{tablecolumns}
+            </if>
+            <if test="databasetype != null and !&quot;&quot;.equals(databasetype)">
+                and dataBaseType = #{databasetype}
+            </if>
+            <if test="modules != null and !&quot;&quot;.equals(modules)">
+                and modules = #{modules}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR code LIKE concat('%',#{searchKey},'%')
+                    OR table_name LIKE concat('%',#{searchKey},'%')
+                    OR tableColumns LIKE concat('%',#{searchKey},'%')
+                    OR dataBaseType LIKE concat('%',#{searchKey},'%')
+                    OR type_flag LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by id desc
+    </select>
+    <select id="queryQueryConfig" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.QueryConfig">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_query_config
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="code != null and !&quot;&quot;.equals(code)">
+                and code = #{code}
+            </if>
+            <if test="tableName != null and !&quot;&quot;.equals(tableName)">
+                and table_name = #{tableName}
+            </if>
+            <if test="tablecolumns != null and !&quot;&quot;.equals(tablecolumns)">
+                and tableColumns = #{tablecolumns}
+            </if>
+            <if test="databasetype != null and !&quot;&quot;.equals(databasetype)">
+                and dataBaseType = #{databasetype}
+            </if>
+            <if test="modules != null and !&quot;&quot;.equals(modules)">
+                and modules = #{modules}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE sys_query_config SET del_flag = 'Y'
+        <where>
+            AND id = #{id}
+        </where>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.QueryConfig">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_query_config
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/RechargeRecordMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.RechargeRecord;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.RechargeRecordMapper")
+public interface RechargeRecordMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(RechargeRecord record);
+
+    RechargeRecord selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(RechargeRecord record);
+
+    List<RechargeRecord> queryAllRechargeRecord(RechargeRecord record);
+
+    List<RechargeRecord> queryRechargeRecordByPage(Map<String, Object> parameter);
+
+    int delete(RechargeRecord record);
+
+    RechargeRecord queryRechargeRecord(RechargeRecord record);
+
+    List<RechargeRecord> query(RechargeRecord record);
+}
+

+ 482 - 0
src/main/java/com/izouma/awesomeadmin/dao/RechargeRecordMapper.xml

@@ -0,0 +1,482 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.RechargeRecordMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.RechargeRecord" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+                                <result column="update_user" property="updateUser" jdbcType="VARCHAR" />
+                                <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+                                <result column="create_user" property="createUser" jdbcType="VARCHAR" />
+                                <result column="user_id" property="userId" jdbcType="INTEGER" />
+                                <result column="type_flag" property="typeFlag" jdbcType="INTEGER" />
+                                <result column="money" property="money" jdbcType="DECIMAL" />
+                                <result column="balance" property="balance" jdbcType="DECIMAL" />
+                                <result column="out_trade_no" property="outTradeNo" jdbcType="VARCHAR" />
+                                <result column="cash" property="cash" jdbcType="DECIMAL" />
+                                <result column="remark" property="remark" jdbcType="VARCHAR" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+        <trim  suffixOverrides="," >
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            user_id,
+
+            type_flag,
+
+            money,
+
+            balance,
+
+            out_trade_no,
+
+            cash,
+
+            remark,
+
+            </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from recharge_record
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from recharge_record
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.RechargeRecord" useGeneratedKeys="true" keyProperty="id">
+        insert into recharge_record
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="updateTime!= null" >
+                update_time,
+            </if>
+                <if test="updateUser!= null" >
+                update_user,
+            </if>
+                <if test="createTime!= null" >
+                create_time,
+            </if>
+                <if test="createUser!= null" >
+                create_user,
+            </if>
+                <if test="userId!= null" >
+                user_id,
+            </if>
+                <if test="typeFlag!= null" >
+                type_flag,
+            </if>
+                <if test="money!= null" >
+                money,
+            </if>
+                <if test="balance!= null" >
+                balance,
+            </if>
+                <if test="outTradeNo!= null" >
+                out_trade_no,
+            </if>
+                <if test="cash!= null" >
+                cash,
+            </if>
+                <if test="remark!= null" >
+                remark,
+            </if>
+            </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+                    <if test="id != null" >
+                #{id,jdbcType=INTEGER},
+            </if>
+                    <if test="delFlag != null" >
+                #{delFlag,jdbcType=CHAR},
+            </if>
+                    <if test="updateTime != null" >
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="updateUser != null" >
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="createTime != null" >
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="createUser != null" >
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="userId != null" >
+                #{userId,jdbcType=INTEGER},
+            </if>
+                    <if test="typeFlag != null" >
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+                    <if test="money != null" >
+                #{money,jdbcType=DECIMAL},
+            </if>
+                    <if test="balance != null" >
+                #{balance,jdbcType=DECIMAL},
+            </if>
+                    <if test="outTradeNo != null" >
+                #{outTradeNo,jdbcType=VARCHAR},
+            </if>
+                    <if test="cash != null" >
+                #{cash,jdbcType=DECIMAL},
+            </if>
+                    <if test="remark != null" >
+                #{remark,jdbcType=VARCHAR},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.RechargeRecord" >
+        update recharge_record
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="updateTime != null" >
+               update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="updateUser != null" >
+               update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="createTime != null" >
+               create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="createUser != null" >
+               create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="userId != null" >
+               user_id= #{userId,jdbcType=INTEGER},
+            </if>
+                     <if test="typeFlag != null" >
+               type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+                     <if test="money != null" >
+               money= #{money,jdbcType=DECIMAL},
+            </if>
+                     <if test="balance != null" >
+               balance= #{balance,jdbcType=DECIMAL},
+            </if>
+                     <if test="outTradeNo != null" >
+               out_trade_no= #{outTradeNo,jdbcType=VARCHAR},
+            </if>
+                     <if test="cash != null" >
+               cash= #{cash,jdbcType=DECIMAL},
+            </if>
+                     <if test="remark != null" >
+               remark= #{remark,jdbcType=VARCHAR},
+            </if>
+                 </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryRechargeRecordByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.RechargeRecord">
+        select <include refid="Base_Column_List"/> from recharge_record
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+                    <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and  id = #{record.id}
+            </if>
+                     <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and  del_flag = #{record.delFlag}
+            </if>
+                     <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and  update_time = #{record.updateTime}
+            </if>
+                     <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and  update_user = #{record.updateUser}
+            </if>
+                     <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and  create_time = #{record.createTime}
+            </if>
+                     <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and  create_user = #{record.createUser}
+            </if>
+                     <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and  user_id = #{record.userId}
+            </if>
+                     <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                and  type_flag = #{record.typeFlag}
+            </if>
+                     <if test="record.money != null and !&quot;&quot;.equals(record.money)">
+                and  money = #{record.money}
+            </if>
+                     <if test="record.balance != null and !&quot;&quot;.equals(record.balance)">
+                and  balance = #{record.balance}
+            </if>
+                     <if test="record.outTradeNo != null and !&quot;&quot;.equals(record.outTradeNo)">
+                and  out_trade_no = #{record.outTradeNo}
+            </if>
+                     <if test="record.cash != null and !&quot;&quot;.equals(record.cash)">
+                and  cash = #{record.cash}
+            </if>
+                     <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and  remark = #{record.remark}
+            </if>
+                  <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+             <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                    OR  user_id LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  type_flag LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  money LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  balance LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  out_trade_no LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  cash LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  remark LIKE concat('%',#{record.searchKey},'%')
+                                                             </trim>
+         </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllRechargeRecord" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.RechargeRecord">
+        select <include refid="Base_Column_List"/> from recharge_record
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and  id = #{id}
+            </if>
+                    <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and  del_flag = #{delFlag}
+            </if>
+                    <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and  update_time = #{updateTime}
+            </if>
+                    <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and  update_user = #{updateUser}
+            </if>
+                    <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and  create_time = #{createTime}
+            </if>
+                    <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and  create_user = #{createUser}
+            </if>
+                    <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and  user_id = #{userId}
+            </if>
+                    <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and  type_flag = #{typeFlag}
+            </if>
+                    <if test="money != null and !&quot;&quot;.equals(money)">
+                and  money = #{money}
+            </if>
+                    <if test="balance != null and !&quot;&quot;.equals(balance)">
+                and  balance = #{balance}
+            </if>
+                    <if test="outTradeNo != null and !&quot;&quot;.equals(outTradeNo)">
+                and  out_trade_no = #{outTradeNo}
+            </if>
+                    <if test="cash != null and !&quot;&quot;.equals(cash)">
+                and  cash = #{cash}
+            </if>
+                    <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and  remark = #{remark}
+            </if>
+                    <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                OR  user_id LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  type_flag LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  money LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  balance LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  out_trade_no LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  cash LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  remark LIKE concat('%',#{searchKey},'%')
+                                                                                        </trim>
+            </if>
+<if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+    <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+        <choose>
+            <when test="item.indexOf('like') != -1">
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        concat('%',#{itemDetail},'%')
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </when>
+            <otherwise>
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        #{itemDetail}
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </otherwise>
+        </choose>
+
+
+    </foreach>
+
+
+</if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryRechargeRecord" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.RechargeRecord">
+        select <include refid="Base_Column_List"/> from recharge_record
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+                     <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+                     <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+                     <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+                     <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+                     <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+                     <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+                     <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+                     <if test="money != null and !&quot;&quot;.equals(money)">
+                and money = #{money}
+            </if>
+                     <if test="balance != null and !&quot;&quot;.equals(balance)">
+                and balance = #{balance}
+            </if>
+                     <if test="outTradeNo != null and !&quot;&quot;.equals(outTradeNo)">
+                and out_trade_no = #{outTradeNo}
+            </if>
+                     <if test="cash != null and !&quot;&quot;.equals(cash)">
+                and cash = #{cash}
+            </if>
+                     <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE recharge_record SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.RechargeRecord">
+        select <include refid="Base_Column_List"/> from recharge_record
+        <where>
+            and del_flag = 'N'
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/RecommenderLogMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.RecommenderLog;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.RecommenderLogMapper")
+public interface RecommenderLogMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(RecommenderLog record);
+
+    RecommenderLog selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(RecommenderLog record);
+
+    List<RecommenderLog> queryAllRecommenderLog(RecommenderLog record);
+
+    List<RecommenderLog> queryRecommenderLogByPage(Map<String, Object> parameter);
+
+    int delete(RecommenderLog record);
+
+    RecommenderLog queryRecommenderLog(RecommenderLog record);
+
+    List<RecommenderLog> query(RecommenderLog record);
+}
+

+ 422 - 0
src/main/java/com/izouma/awesomeadmin/dao/RecommenderLogMapper.xml

@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.RecommenderLogMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.RecommenderLog">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="telephone" property="telephone" jdbcType="VARCHAR"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="channel" property="channel" jdbcType="INTEGER"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            user_id,
+
+            telephone,
+
+            remark,
+            channel,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from recommender_log
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from recommender_log
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.RecommenderLog" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into recommender_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="telephone!= null">
+                telephone,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="channel!= null">
+                channel,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="telephone != null">
+                #{telephone,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="channel != null">
+                #{channel,jdbcType=INTEGER},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.RecommenderLog">
+        update recommender_log
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="telephone != null">
+                telephone= #{telephone,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="channel != null">
+                channel= #{channel,jdbcType=INTEGER},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryRecommenderLogByPage" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.RecommenderLog">
+        select
+        <include refid="Base_Column_List"/>
+        from recommender_log
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and user_id = #{record.userId}
+            </if>
+            <if test="record.telephone != null and !&quot;&quot;.equals(record.telephone)">
+                and telephone = #{record.telephone}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.channel != null and !&quot;&quot;.equals(record.channel)">
+                and channel = #{record.channel}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR telephone LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllRecommenderLog" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.RecommenderLog">
+        select
+        <include refid="Base_Column_List"/>
+        from recommender_log
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="telephone != null and !&quot;&quot;.equals(telephone)">
+                and telephone = #{telephone}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="channel != null and !&quot;&quot;.equals(channel)">
+                and channel = #{channel}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR user_id LIKE concat('%',#{searchKey},'%')
+                    OR telephone LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryRecommenderLog" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.RecommenderLog">
+        select
+        <include refid="Base_Column_List"/>
+        from recommender_log
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="telephone != null and !&quot;&quot;.equals(telephone)">
+                and telephone = #{telephone}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="channel != null and !&quot;&quot;.equals(channel)">
+                and channel = #{channel}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE recommender_log SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.RecommenderLog">
+        select
+        <include refid="Base_Column_List"/>
+        from recommender_log
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 26 - 0
src/main/java/com/izouma/awesomeadmin/dao/RongYunTokenMapper.java

@@ -0,0 +1,26 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.model.RongYunToken;
+
+public interface RongYunTokenMapper {
+
+    int deleteByPrimaryKey(Long id);
+
+
+    int insert(RongYunToken record);
+
+
+    int insertSelective(RongYunToken record);
+
+
+    RongYunToken selectByPrimaryKey(Long id);
+
+
+    int updateByPrimaryKeySelective(RongYunToken record);
+
+
+    int updateByPrimaryKey(RongYunToken record);
+
+
+    RongYunToken getRongToken(String rongKey);
+}

+ 95 - 0
src/main/java/com/izouma/awesomeadmin/dao/RongYunTokenMapper.xml

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.RongYunTokenMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.RongYunToken">
+        <id column="id" property="id" jdbcType="BIGINT"/>
+        <result column="user_id" property="userId" jdbcType="VARCHAR"/>
+        <result column="token" property="token" jdbcType="VARCHAR"/>
+        <result column="type_flag" property="typeFlag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+      id, user_id, token, type_flag
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_rong_yun_token
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        delete from sys_rong_yun_token
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+
+    <insert id="insert" parameterType="com.izouma.awesomeadmin.model.RongYunToken" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into sys_rong_yun_token (id, user_id, token)
+        values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{token,jdbcType=VARCHAR})
+    </insert>
+
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.RongYunToken" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into sys_rong_yun_token
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="userId != null">
+                user_id,
+            </if>
+            <if test="token != null">
+                token,
+            </if>
+            <if test="typeFlag != null">
+                type_flag,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=BIGINT},
+            </if>
+            <if test="token != null">
+                #{token,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.RongYunToken">
+        update sys_rong_yun_token
+        <set>
+            <if test="userId != null">
+                user_id = #{userId,jdbcType=BIGINT},
+            </if>
+            <if test="token != null">
+                token = #{token,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <update id="updateByPrimaryKey" parameterType="com.izouma.awesomeadmin.model.RongYunToken">
+        update sys_rong_yun_token
+        set user_id = #{userId,jdbcType=BIGINT},
+            token = #{token,jdbcType=VARCHAR}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <select id="getRongToken" resultType="com.izouma.awesomeadmin.model.RongYunToken" parameterType="string">
+		SELECT
+		*
+		FROM sys_rong_yun_token
+		WHERE user_id = #{rongKey}
+		order by id desc
+		LIMIT 1
+	</select>
+
+</mapper>

+ 51 - 0
src/main/java/com/izouma/awesomeadmin/dao/SuperUserMapper.java

@@ -0,0 +1,51 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Repository;
+
+import com.izouma.awesomeadmin.model.SuperUser;
+
+@Repository("com.izouma.awesomeadmin.dao.SuperUserMapper")
+public interface SuperUserMapper {
+
+    /**
+     * 
+     * <p>获取用户列表。</p>
+     *
+     * @return TblUser list
+     */
+    List <SuperUser> queryAllUsers();
+
+
+    /**
+     * 
+     * <p>分页查询,需要以ByPage结尾。</p>
+     *
+     * @return
+     */
+    List <SuperUser> queryAllUsersByPage(Map <String, Object> parameter);
+
+
+    /**
+     * 
+     * <p>根据用户id获取单个用户。</p>
+     *
+     * @param id
+     * @return
+     */
+    SuperUser queryUserById(String userId);
+
+
+    int save(SuperUser superUser);
+
+
+    int updateUserInfo(Map <String, Object> parameter);
+
+
+    int delete(String userId);
+
+
+    SuperUser userLogin(Map <String, Object> parameter);
+}

+ 88 - 0
src/main/java/com/izouma/awesomeadmin/dao/SuperUserMapper.xml

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.SuperUserMapper">
+    <sql id="columns">
+        user_id, power, password, user_name, profile, del_flag
+  	</sql>
+
+    <select id="queryUserById" resultType="com.izouma.awesomeadmin.model.SuperUser" parameterType="string">
+        SELECT
+        <include refid="columns"/>
+        FROM sys_super_user
+        WHERE user_id = #{userId}
+        LIMIT 1
+    </select>
+
+    <select id="userLogin" resultType="com.izouma.awesomeadmin.model.SuperUser" parameterType="map">
+        SELECT
+        <include refid="columns"/>
+        FROM sys_super_user
+        WHERE user_name = #{username}
+        and password = #{password}
+        LIMIT 1
+    </select>
+
+    <select id="queryAllUsers" resultType="com.izouma.awesomeadmin.model.SuperUser">
+        SELECT
+        <include refid="columns"/>
+        FROM sys_super_user
+        where del_flag = 'N'
+        order by user_id
+        <!-- 为了测试只取100个 -->
+        <!-- LIMIT 100  -->
+    </select>
+
+    <select id="queryAllUsersByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SuperUser">
+        select
+        <include refid="columns"/>
+        from sys_super_user
+        <where>
+            <!--  
+            <if test="userInfo.userId != null and !&quot;&quot;.equals(userInfo.userId)">
+                and user_id=#{userInfo.userId}
+            </if>
+            <if test="userInfo.username != null and !&quot;&quot;.equals(userInfo.username.trim())">
+                and user_name like '%' #{userInfo.username} '%'
+            </if>
+            -->
+        </where>
+        order by user_id
+    </select>
+
+    <insert id="save" parameterType="com.izouma.awesomeadmin.model.SuperUser" useGeneratedKeys="true" keyProperty="id">
+	    INSERT INTO sys_super_user (user_name, power, password, profile)
+        VALUES (#{username}, #{power}, #{password}, #{profile})
+    </insert>
+
+    <update id="updateUserInfo">
+        UPDATE sys_super_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userInfo.userId != null">
+                user_Id = #{userInfo.userId},
+            </if>
+            <if test="userInfo.username != null">
+                user_name = #{userInfo.username},
+            </if>
+            <if test="userInfo.password != null">
+                password = #{userInfo.password},
+            </if>
+            <if test="userInfo.profile != null">
+                profile = #{userInfo.profile},
+            </if>
+            <if test="userInfo.power != null">
+                power = #{userInfo.power},
+            </if>
+        </trim>
+        <where>
+            AND user_id = #{userId}
+        </where>
+    </update>
+
+    <update id="delete">
+        UPDATE sys_super_user SET del_flag = 'Y'
+        <where>
+            AND user_id = #{userId}
+        </where>
+    </update>
+</mapper>

+ 14 - 0
src/main/java/com/izouma/awesomeadmin/dao/SysAppTokenMapper.java

@@ -0,0 +1,14 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.shiro.AppToken;
+import org.apache.ibatis.annotations.Param;
+
+public interface SysAppTokenMapper {
+    int saveToken(@Param("userId") Integer userId, @Param("token") String token);
+
+    AppToken getToken(String token);
+
+    int delToken(String token);
+
+    int delUserToken(Integer userId);
+}

+ 18 - 0
src/main/java/com/izouma/awesomeadmin/dao/SysAppTokenMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.izouma.awesomeadmin.dao.SysAppTokenMapper">
+    <insert id="saveToken">
+        insert into sys_app_token (user_id, token)
+        values (#{userId}, #{token})
+    </insert>
+    <delete id="delToken">
+        delete from sys_app_token where token = #{token}
+    </delete>
+    <delete id="delUserToken">
+        delete from sys_app_token where user_id = #{userId}
+    </delete>
+    <select id="getToken" resultType="com.izouma.awesomeadmin.shiro.AppToken">
+        select * from sys_app_token where token = #{token}
+    </select>
+
+</mapper>

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/SysDataruleMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.izouma.awesomeadmin.model.SysDatarule;
+import org.springframework.stereotype.Repository;
+
+
+/**
+ * sys_datarule Dao接口
+ * Tue Apr 17 10:44:06 CST 2018  Suo Chen Cheng
+ */ 
+@Repository("com.izouma.awesomeadmin.dao.SysDataruleMapper")
+public interface SysDataruleMapper {
+
+	int deleteByPrimaryKey(Integer id);
+
+	int insertSelective(SysDatarule record);
+
+	SysDatarule selectByPrimaryKey(Integer id);
+
+	int updateByPrimaryKeySelective(SysDatarule record);
+
+	List <SysDatarule> queryAllSysDatarule(SysDatarule record);
+
+	List <SysDatarule> querySysDatarulesByPage(Map <String, Object> parameter);
+
+	int delete(String id);
+
+	SysDatarule querySysDatarule(SysDatarule record);
+}
+

+ 153 - 0
src/main/java/com/izouma/awesomeadmin/dao/SysDataruleMapper.xml

@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.SysDataruleMapper" >
+	<resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.SysDatarule" >
+		<id column="id" property="id" jdbcType="INTEGER" />
+		<result column="datarule_name" property="dataruleName" jdbcType="VARCHAR" />
+		<result column="create_date" property="createDate" jdbcType="TIMESTAMP" />
+		<result column="del_flag" property="delFlag" jdbcType="CHAR" />
+		<result column="permission" property="permission" jdbcType="VARCHAR" />
+	</resultMap>
+	<sql id="Base_Column_List" >
+		 id, datarule_name, create_date, del_flag,permission
+	</sql>
+	<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+		select
+		<include refid="Base_Column_List" />
+		from sys_datarule
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from sys_datarule
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.SysDatarule" useGeneratedKeys="true" keyProperty="id">
+		insert into sys_datarule
+		<trim prefix="(" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				id,	
+			</if>
+			<if test="dataruleName != null" >
+				datarule_name,	
+			</if>
+			<if test="createDate != null" >
+				create_date,	
+			</if>
+			<if test="delFlag != null" >
+				del_flag,	
+			</if>
+			<if test="permission != null" >
+				permission,
+			</if>
+
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				#{id,jdbcType=INTEGER},	
+			</if>
+			<if test="dataruleName != null" >
+				#{dataruleName,jdbcType=VARCHAR},	
+			</if>
+			<if test="createDate != null" >
+				#{createDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="delFlag != null" >
+				#{delFlag,jdbcType=CHAR},	
+			</if>
+			<if test="permission != null" >
+				#{permission,jdbcType=VARCHAR},
+			</if>
+		</trim>
+	</insert>
+	<update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.SysDatarule" >
+		update sys_datarule
+		<set >
+			<if test="dataruleName != null" >
+				datarule_name = #{dataruleName,jdbcType=VARCHAR},	
+			</if>
+			<if test="createDate != null" >
+				create_date = #{createDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="delFlag != null" >
+				del_flag = #{delFlag,jdbcType=CHAR},	
+			</if>
+			<if test="permission != null" >
+				permission = #{permission,jdbcType=VARCHAR},
+			</if>
+		</set>
+		where id = #{id,jdbcType=INTEGER}
+	</update>
+	<select id="querySysDatarulesByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysDatarule">
+		select <include refid="Base_Column_List"/> from sys_datarule
+		<where>
+			and del_flag = 'N'
+			<if test="record.id != null and !&quot;&quot;.equals(record.id)">
+				and id = #{record.id}	
+			</if>
+			<if test="record.dataruleName != null and !&quot;&quot;.equals(record.dataruleName)">
+				and datarule_name = #{record.dataruleName}	
+			</if>
+			<if test="record.createDate != null and !&quot;&quot;.equals(record.createDate)">
+				and create_date = #{record.createDate}	
+			</if>
+			<if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+				and del_flag = #{record.delFlag}	
+			</if>
+			<if test="record.permission != null and !&quot;&quot;.equals(record.permission)">
+				and permission = #{record.permission}
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryAllSysDatarule" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysDatarule">
+		select <include refid="Base_Column_List"/> from sys_datarule
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="dataruleName != null and !&quot;&quot;.equals(dataruleName)">
+				and datarule_name = #{dataruleName}	
+			</if>
+			<if test="createDate != null and !&quot;&quot;.equals(createDate)">
+				and create_date = #{createDate}	
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+			<if test="permission != null and !&quot;&quot;.equals(permission)">
+				and permission = #{permission}
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="querySysDatarule" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysDatarule">
+		select <include refid="Base_Column_List"/> from sys_datarule
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="dataruleName != null and !&quot;&quot;.equals(dataruleName)">
+				and datarule_name = #{dataruleName}	
+			</if>
+			<if test="createDate != null and !&quot;&quot;.equals(createDate)">
+				and create_date = #{createDate}	
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+			<if test="permission != null and !&quot;&quot;.equals(permission)">
+				and permission = #{permission}
+			</if>
+		</where>
+		LIMIT 1
+	</select>
+	<update id="delete">
+		UPDATE sys_datarule SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+</mapper>
+

+ 34 - 0
src/main/java/com/izouma/awesomeadmin/dao/SysMenuMapper.java

@@ -0,0 +1,34 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.model.SysMenu;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * sys_menu Dao接口
+ * Tue Apr 10 18:09:44 CST 2018  Suo Chen Cheng
+ */ 
+@Repository("com.zoumaframe.dao.SysMenuMapper")
+public interface SysMenuMapper {
+
+	int deleteByPrimaryKey(Integer id);
+
+	int insertSelective(SysMenu record);
+
+	SysMenu selectByPrimaryKey(Integer id);
+
+	List<SysMenu> selectByPrimaryKeys(String ids);
+
+	int updateByPrimaryKeySelective(SysMenu record);
+
+	List<SysMenu> queryAllSysMenu(SysMenu record);
+
+	List<SysMenu> querySysMenusByPage(Map<String, Object> parameter);
+
+	int delete(String id);
+
+	SysMenu querySysMenu(SysMenu record);
+}
+

+ 386 - 0
src/main/java/com/izouma/awesomeadmin/dao/SysMenuMapper.xml

@@ -0,0 +1,386 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.SysMenuMapper" >
+	<resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.SysMenu" >
+		<id column="id" property="id" jdbcType="INTEGER" />
+		<result column="parent_id" property="parentId" jdbcType="INTEGER" />
+		<result column="parent_ids" property="parentIds" jdbcType="VARCHAR" />
+		<result column="name" property="name" jdbcType="VARCHAR" />
+		<result column="sort" property="sort" jdbcType="DECIMAL" />
+		<result column="href" property="href" jdbcType="VARCHAR" />
+		<result column="target" property="target" jdbcType="VARCHAR" />
+		<result column="icon" property="icon" jdbcType="VARCHAR" />
+		<result column="is_show" property="isShow" jdbcType="CHAR" />
+		<result column="permission" property="permission" jdbcType="VARCHAR" />
+		<result column="create_by" property="createBy" jdbcType="VARCHAR" />
+		<result column="create_date" property="createDate" jdbcType="TIMESTAMP" />
+		<result column="update_by" property="updateBy" jdbcType="VARCHAR" />
+		<result column="update_date" property="updateDate" jdbcType="TIMESTAMP" />
+		<result column="remarks" property="remarks" jdbcType="VARCHAR" />
+		<result column="del_flag" property="delFlag" jdbcType="CHAR" />
+		<result column="menu_type" property="menuType" jdbcType="CHAR" />
+	</resultMap>
+	<sql id="Base_Column_List" >
+		 id, parent_id, parent_ids, name, sort, href, target, icon, is_show, permission, create_by, create_date, update_by, update_date, remarks, del_flag, menu_type
+	</sql>
+	<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+		select
+		<include refid="Base_Column_List" />
+		from sys_menu
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<select id="selectByPrimaryKeys" resultMap="BaseResultMap" parameterType="java.lang.String" >
+		select
+		<include refid="Base_Column_List" />
+		from sys_menu
+		where FIND_IN_SET(id, #{ids,jdbcType=INTEGER}) and del_flag = 'N'
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from sys_menu
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.SysMenu" useGeneratedKeys="true" keyProperty="id">
+		insert into sys_menu
+		<trim prefix="(" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				id,	
+			</if>
+			<if test="parentId != null" >
+				parent_id,	
+			</if>
+			<if test="parentIds != null" >
+				parent_ids,	
+			</if>
+			<if test="name != null" >
+				name,	
+			</if>
+			<if test="sort != null" >
+				sort,	
+			</if>
+			<if test="href != null" >
+				href,	
+			</if>
+			<if test="target != null" >
+				target,	
+			</if>
+			<if test="icon != null" >
+				icon,	
+			</if>
+			<if test="isShow != null" >
+				is_show,	
+			</if>
+			<if test="permission != null" >
+				permission,	
+			</if>
+			<if test="createBy != null" >
+				create_by,	
+			</if>
+			<if test="createDate != null" >
+				create_date,	
+			</if>
+			<if test="updateBy != null" >
+				update_by,	
+			</if>
+			<if test="updateDate != null" >
+				update_date,	
+			</if>
+			<if test="remarks != null" >
+				remarks,	
+			</if>
+			<if test="delFlag != null" >
+				del_flag,	
+			</if>
+			<if test="menuType != null" >
+				menu_type,	
+			</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				#{id,jdbcType=INTEGER},	
+			</if>
+			<if test="parentId != null" >
+				#{parentId,jdbcType=INTEGER},	
+			</if>
+			<if test="parentIds != null" >
+				#{parentIds,jdbcType=VARCHAR},	
+			</if>
+			<if test="name != null" >
+				#{name,jdbcType=VARCHAR},	
+			</if>
+			<if test="sort != null" >
+				#{sort,jdbcType=DECIMAL},	
+			</if>
+			<if test="href != null" >
+				#{href,jdbcType=VARCHAR},	
+			</if>
+			<if test="target != null" >
+				#{target,jdbcType=VARCHAR},	
+			</if>
+			<if test="icon != null" >
+				#{icon,jdbcType=VARCHAR},	
+			</if>
+			<if test="isShow != null" >
+				#{isShow,jdbcType=CHAR},	
+			</if>
+			<if test="permission != null" >
+				#{permission,jdbcType=VARCHAR},	
+			</if>
+			<if test="createBy != null" >
+				#{createBy,jdbcType=VARCHAR},	
+			</if>
+			<if test="createDate != null" >
+				#{createDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="updateBy != null" >
+				#{updateBy,jdbcType=VARCHAR},	
+			</if>
+			<if test="updateDate != null" >
+				#{updateDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="remarks != null" >
+				#{remarks,jdbcType=VARCHAR},	
+			</if>
+			<if test="delFlag != null" >
+				#{delFlag,jdbcType=CHAR},	
+			</if>
+			<if test="menuType != null" >
+				#{menuType,jdbcType=CHAR},	
+			</if>
+		</trim>
+	</insert>
+	<update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.SysMenu" >
+		update sys_menu
+		<set >
+			<if test="parentId != null" >
+				parent_id = #{parentId,jdbcType=INTEGER},	
+			</if>
+			<if test="parentIds != null" >
+				parent_ids = #{parentIds,jdbcType=VARCHAR},	
+			</if>
+			<if test="name != null" >
+				name = #{name,jdbcType=VARCHAR},	
+			</if>
+			<if test="sort != null" >
+				sort = #{sort,jdbcType=DECIMAL},	
+			</if>
+			<if test="href != null" >
+				href = #{href,jdbcType=VARCHAR},	
+			</if>
+			<if test="target != null" >
+				target = #{target,jdbcType=VARCHAR},	
+			</if>
+			<if test="icon != null" >
+				icon = #{icon,jdbcType=VARCHAR},	
+			</if>
+			<if test="isShow != null" >
+				is_show = #{isShow,jdbcType=CHAR},	
+			</if>
+			<if test="permission != null" >
+				permission = #{permission,jdbcType=VARCHAR},	
+			</if>
+			<if test="createBy != null" >
+				create_by = #{createBy,jdbcType=VARCHAR},	
+			</if>
+			<if test="createDate != null" >
+				create_date = #{createDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="updateBy != null" >
+				update_by = #{updateBy,jdbcType=VARCHAR},	
+			</if>
+			<if test="updateDate != null" >
+				update_date = #{updateDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="remarks != null" >
+				remarks = #{remarks,jdbcType=VARCHAR},	
+			</if>
+			<if test="delFlag != null" >
+				del_flag = #{delFlag,jdbcType=CHAR},	
+			</if>
+			<if test="menuType != null" >
+				menu_type = #{menuType,jdbcType=CHAR},	
+			</if>
+		</set>
+		where id = #{id,jdbcType=INTEGER}
+	</update>
+	<select id="querySysMenusByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysMenu">
+		select <include refid="Base_Column_List"/> from sys_menu
+		<where>
+			and del_flag = 'N'
+			<if test="record.id != null and !&quot;&quot;.equals(record.id)">
+				and id = #{record.id}	
+			</if>
+			<if test="record.parentId != null and !&quot;&quot;.equals(record.parentId)">
+				and parent_id = #{record.parentId}	
+			</if>
+			<if test="record.parentIds != null and !&quot;&quot;.equals(record.parentIds)">
+				and parent_ids = #{record.parentIds}	
+			</if>
+			<if test="record.name != null and !&quot;&quot;.equals(record.name)">
+				and name = #{record.name}	
+			</if>
+			<if test="record.sort != null and !&quot;&quot;.equals(record.sort)">
+				and sort = #{record.sort}	
+			</if>
+			<if test="record.href != null and !&quot;&quot;.equals(record.href)">
+				and href = #{record.href}	
+			</if>
+			<if test="record.target != null and !&quot;&quot;.equals(record.target)">
+				and target = #{record.target}	
+			</if>
+			<if test="record.icon != null and !&quot;&quot;.equals(record.icon)">
+				and icon = #{record.icon}	
+			</if>
+			<if test="record.isShow != null and !&quot;&quot;.equals(record.isShow)">
+				and is_show = #{record.isShow}	
+			</if>
+			<if test="record.permission != null and !&quot;&quot;.equals(record.permission)">
+				and permission = #{record.permission}	
+			</if>
+			<if test="record.createBy != null and !&quot;&quot;.equals(record.createBy)">
+				and create_by = #{record.createBy}	
+			</if>
+			<if test="record.createDate != null and !&quot;&quot;.equals(record.createDate)">
+				and create_date = #{record.createDate}	
+			</if>
+			<if test="record.updateBy != null and !&quot;&quot;.equals(record.updateBy)">
+				and update_by = #{record.updateBy}	
+			</if>
+			<if test="record.updateDate != null and !&quot;&quot;.equals(record.updateDate)">
+				and update_date = #{record.updateDate}	
+			</if>
+			<if test="record.remarks != null and !&quot;&quot;.equals(record.remarks)">
+				and remarks = #{record.remarks}	
+			</if>
+			<if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+				and del_flag = #{record.delFlag}	
+			</if>
+			<if test="record.menuType != null and !&quot;&quot;.equals(record.menuType)">
+				and menu_type = #{record.menuType}	
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryAllSysMenu" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysMenu">
+		select <include refid="Base_Column_List"/> from sys_menu
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="parentId != null and !&quot;&quot;.equals(parentId)">
+				and parent_id = #{parentId}	
+			</if>
+			<if test="parentIds != null and !&quot;&quot;.equals(parentIds)">
+				and parent_ids = #{parentIds}	
+			</if>
+			<if test="name != null and !&quot;&quot;.equals(name)">
+				and name = #{name}	
+			</if>
+			<if test="sort != null and !&quot;&quot;.equals(sort)">
+				and sort = #{sort}	
+			</if>
+			<if test="href != null and !&quot;&quot;.equals(href)">
+				and href = #{href}	
+			</if>
+			<if test="target != null and !&quot;&quot;.equals(target)">
+				and target = #{target}	
+			</if>
+			<if test="icon != null and !&quot;&quot;.equals(icon)">
+				and icon = #{icon}	
+			</if>
+			<if test="isShow != null and !&quot;&quot;.equals(isShow)">
+				and is_show = #{isShow}	
+			</if>
+			<if test="permission != null and !&quot;&quot;.equals(permission)">
+				and permission = #{permission}	
+			</if>
+			<if test="createBy != null and !&quot;&quot;.equals(createBy)">
+				and create_by = #{createBy}	
+			</if>
+			<if test="createDate != null and !&quot;&quot;.equals(createDate)">
+				and create_date = #{createDate}	
+			</if>
+			<if test="updateBy != null and !&quot;&quot;.equals(updateBy)">
+				and update_by = #{updateBy}	
+			</if>
+			<if test="updateDate != null and !&quot;&quot;.equals(updateDate)">
+				and update_date = #{updateDate}	
+			</if>
+			<if test="remarks != null and !&quot;&quot;.equals(remarks)">
+				and remarks = #{remarks}	
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+			<if test="menuType != null and !&quot;&quot;.equals(menuType)">
+				and menu_type = #{menuType}	
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="querySysMenu" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysMenu">
+		select <include refid="Base_Column_List"/> from sys_menu
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="parentId != null and !&quot;&quot;.equals(parentId)">
+				and parent_id = #{parentId}	
+			</if>
+			<if test="parentIds != null and !&quot;&quot;.equals(parentIds)">
+				and parent_ids = #{parentIds}	
+			</if>
+			<if test="name != null and !&quot;&quot;.equals(name)">
+				and name = #{name}	
+			</if>
+			<if test="sort != null and !&quot;&quot;.equals(sort)">
+				and sort = #{sort}	
+			</if>
+			<if test="href != null and !&quot;&quot;.equals(href)">
+				and href = #{href}	
+			</if>
+			<if test="target != null and !&quot;&quot;.equals(target)">
+				and target = #{target}	
+			</if>
+			<if test="icon != null and !&quot;&quot;.equals(icon)">
+				and icon = #{icon}	
+			</if>
+			<if test="isShow != null and !&quot;&quot;.equals(isShow)">
+				and is_show = #{isShow}	
+			</if>
+			<if test="permission != null and !&quot;&quot;.equals(permission)">
+				and permission = #{permission}	
+			</if>
+			<if test="createBy != null and !&quot;&quot;.equals(createBy)">
+				and create_by = #{createBy}	
+			</if>
+			<if test="createDate != null and !&quot;&quot;.equals(createDate)">
+				and create_date = #{createDate}	
+			</if>
+			<if test="updateBy != null and !&quot;&quot;.equals(updateBy)">
+				and update_by = #{updateBy}	
+			</if>
+			<if test="updateDate != null and !&quot;&quot;.equals(updateDate)">
+				and update_date = #{updateDate}	
+			</if>
+			<if test="remarks != null and !&quot;&quot;.equals(remarks)">
+				and remarks = #{remarks}	
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+			<if test="menuType != null and !&quot;&quot;.equals(menuType)">
+				and menu_type = #{menuType}	
+			</if>
+		</where>
+		LIMIT 1
+	</select>
+	<update id="delete">
+		UPDATE sys_menu SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+</mapper>
+

+ 47 - 0
src/main/java/com/izouma/awesomeadmin/dao/SysRoleMapper.java

@@ -0,0 +1,47 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.model.SysRole;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * sys_role Dao接口
+ * Tue Apr 10 18:09:56 CST 2018  Suo Chen Cheng
+ */
+@Repository("com.zoumaframe.dao.SysRoleMapper")
+public interface SysRoleMapper {
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(SysRole record);
+
+    SysRole selectByPrimaryKey(Integer id);
+
+    List<SysRole> selectByPrimaryKeys(@Param("ids") String ids);
+
+    int updateByPrimaryKeySelective(SysRole record);
+
+    List<SysRole> queryAllSysRole(SysRole record);
+
+    List<SysRole> querySysRolesByPage(Map<String, Object> parameter);
+
+    int delete(String id);
+
+    SysRole querySysRole(SysRole record);
+
+    List<SysRole> getUserRoles(@Param("userId") Integer userId);
+
+    int setUserRoles(@Param("userId") Integer userId, @Param("roles") List<String> roles);
+
+    int clearUserRoles(@Param("userId") Integer userId);
+
+    int addUserRole(@Param("userId") Integer userId, @Param("roleId") Integer roleId);
+
+    int removeUserRole(@Param("userId") Integer userId, @Param("roleId") Integer roleId);
+
+    String getUserRoleId(Integer id);
+}
+

+ 372 - 0
src/main/java/com/izouma/awesomeadmin/dao/SysRoleMapper.xml

@@ -0,0 +1,372 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.SysRoleMapper" >
+	<resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.SysRole" >
+		<id column="id" property="id" jdbcType="INTEGER" />
+		<result column="office_id" property="officeId" jdbcType="VARCHAR" />
+		<result column="name" property="name" jdbcType="VARCHAR" />
+		<result column="enname" property="enname" jdbcType="VARCHAR" />
+		<result column="role_type" property="roleType" jdbcType="VARCHAR" />
+		<result column="is_sys" property="isSys" jdbcType="VARCHAR" />
+		<result column="useable" property="useable" jdbcType="VARCHAR" />
+		<result column="create_by" property="createBy" jdbcType="VARCHAR" />
+		<result column="create_date" property="createDate" jdbcType="TIMESTAMP" />
+		<result column="update_by" property="updateBy" jdbcType="VARCHAR" />
+		<result column="update_date" property="updateDate" jdbcType="TIMESTAMP" />
+		<result column="remarks" property="remarks" jdbcType="VARCHAR" />
+		<result column="del_flag" property="delFlag" jdbcType="CHAR" />
+		<result column="menu_ids" property="menuIds" jdbcType="VARCHAR" />
+		<result column="permission" property="permission" jdbcType="VARCHAR" />
+	</resultMap>
+	<sql id="Base_Column_List" >
+		 id, office_id, name, enname, role_type, is_sys, useable, create_by, create_date, update_by, update_date, remarks, del_flag,menu_ids,permission
+	</sql>
+	<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+		select
+		<include refid="Base_Column_List" />
+		from sys_role
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from sys_role
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.SysRole" useGeneratedKeys="true" keyProperty="id">
+		insert into sys_role
+		<trim prefix="(" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				id,	
+			</if>
+			<if test="officeId != null" >
+				office_id,	
+			</if>
+			<if test="name != null" >
+				name,	
+			</if>
+			<if test="enname != null" >
+				enname,	
+			</if>
+			<if test="roleType != null" >
+				role_type,	
+			</if>
+			<if test="isSys != null" >
+				is_sys,	
+			</if>
+			<if test="useable != null" >
+				useable,	
+			</if>
+			<if test="createBy != null" >
+				create_by,	
+			</if>
+			<if test="createDate != null" >
+				create_date,	
+			</if>
+			<if test="updateBy != null" >
+				update_by,	
+			</if>
+			<if test="updateDate != null" >
+				update_date,	
+			</if>
+			<if test="remarks != null" >
+				remarks,	
+			</if>
+			<if test="menuIds != null" >
+				menu_ids,
+			</if>
+			<if test="permission != null" >
+				permission,
+			</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				#{id,jdbcType=INTEGER},	
+			</if>
+			<if test="officeId != null" >
+				#{officeId,jdbcType=VARCHAR},	
+			</if>
+			<if test="name != null" >
+				#{name,jdbcType=VARCHAR},	
+			</if>
+			<if test="enname != null" >
+				#{enname,jdbcType=VARCHAR},	
+			</if>
+			<if test="roleType != null" >
+				#{roleType,jdbcType=VARCHAR},	
+			</if>
+			<if test="isSys != null" >
+				#{isSys,jdbcType=VARCHAR},	
+			</if>
+			<if test="useable != null" >
+				#{useable,jdbcType=VARCHAR},	
+			</if>
+			<if test="createBy != null" >
+				#{createBy,jdbcType=VARCHAR},	
+			</if>
+			<if test="createDate != null" >
+				#{createDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="updateBy != null" >
+				#{updateBy,jdbcType=VARCHAR},	
+			</if>
+			<if test="updateDate != null" >
+				#{updateDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="remarks != null" >
+				#{remarks,jdbcType=VARCHAR},	
+			</if>
+			<if test="menuIds != null" >
+				#{menuIds,jdbcType=VARCHAR},
+			</if>
+			<if test="permission != null" >
+				#{permission,jdbcType=VARCHAR},
+			</if>
+		</trim>
+	</insert>
+	<update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.SysRole" >
+		update sys_role
+		<set >
+			<if test="officeId != null" >
+				office_id = #{officeId,jdbcType=VARCHAR},	
+			</if>
+			<if test="name != null" >
+				name = #{name,jdbcType=VARCHAR},	
+			</if>
+			<if test="enname != null" >
+				enname = #{enname,jdbcType=VARCHAR},	
+			</if>
+			<if test="roleType != null" >
+				role_type = #{roleType,jdbcType=VARCHAR},	
+			</if>
+			<if test="isSys != null" >
+				is_sys = #{isSys,jdbcType=VARCHAR},	
+			</if>
+			<if test="useable != null" >
+				useable = #{useable,jdbcType=VARCHAR},	
+			</if>
+			<if test="createBy != null" >
+				create_by = #{createBy,jdbcType=VARCHAR},	
+			</if>
+			<if test="createDate != null" >
+				create_date = #{createDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="updateBy != null" >
+				update_by = #{updateBy,jdbcType=VARCHAR},	
+			</if>
+			<if test="updateDate != null" >
+				update_date = #{updateDate,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="remarks != null" >
+				remarks = #{remarks,jdbcType=VARCHAR},	
+			</if>
+			<if test="delFlag != null" >
+				del_flag = #{delFlag,jdbcType=CHAR},	
+			</if>
+			<if test="menuIds != null" >
+				menu_ids = #{menuIds,jdbcType=VARCHAR},
+			</if>
+			<if test="permission != null" >
+				permission = #{permission,jdbcType=VARCHAR},
+			</if>
+		</set>
+		where id = #{id,jdbcType=INTEGER}
+	</update>
+	<select id="querySysRolesByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysRole">
+		select <include refid="Base_Column_List"/> from sys_role
+		<where>
+			and del_flag = 'N'
+			<if test="record.id != null and !&quot;&quot;.equals(record.id)">
+				and id = #{record.id}	
+			</if>
+			<if test="record.officeId != null and !&quot;&quot;.equals(record.officeId)">
+				and office_id = #{record.officeId}	
+			</if>
+			<if test="record.name != null and !&quot;&quot;.equals(record.name)">
+				and name = #{record.name}	
+			</if>
+			<if test="record.enname != null and !&quot;&quot;.equals(record.enname)">
+				and enname = #{record.enname}	
+			</if>
+			<if test="record.roleType != null and !&quot;&quot;.equals(record.roleType)">
+				and role_type = #{record.roleType}	
+			</if>
+			<if test="record.isSys != null and !&quot;&quot;.equals(record.isSys)">
+				and is_sys = #{record.isSys}	
+			</if>
+			<if test="record.useable != null and !&quot;&quot;.equals(record.useable)">
+				and useable = #{record.useable}	
+			</if>
+			<if test="record.createBy != null and !&quot;&quot;.equals(record.createBy)">
+				and create_by = #{record.createBy}	
+			</if>
+			<if test="record.createDate != null and !&quot;&quot;.equals(record.createDate)">
+				and create_date = #{record.createDate}	
+			</if>
+			<if test="record.updateBy != null and !&quot;&quot;.equals(record.updateBy)">
+				and update_by = #{record.updateBy}	
+			</if>
+			<if test="record.updateDate != null and !&quot;&quot;.equals(record.updateDate)">
+				and update_date = #{record.updateDate}	
+			</if>
+			<if test="record.remarks != null and !&quot;&quot;.equals(record.remarks)">
+				and remarks = #{record.remarks}	
+			</if>
+			<if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+				and del_flag = #{record.delFlag}	
+			</if>
+			<if test="record.menuIds != null and !&quot;&quot;.equals(record.menuIds)">
+				and menu_ids = #{record.menuIds}
+			</if>
+			<if test="record.permission != null and !&quot;&quot;.equals(record.permission)">
+				and permission = #{record.permission}
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryAllSysRole" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysRole">
+		select <include refid="Base_Column_List"/> from sys_role
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="officeId != null and !&quot;&quot;.equals(officeId)">
+				and office_id = #{officeId}	
+			</if>
+			<if test="name != null and !&quot;&quot;.equals(name)">
+				and name = #{name}	
+			</if>
+			<if test="enname != null and !&quot;&quot;.equals(enname)">
+				and enname = #{enname}	
+			</if>
+			<if test="roleType != null and !&quot;&quot;.equals(roleType)">
+				and role_type = #{roleType}	
+			</if>
+			<if test="isSys != null and !&quot;&quot;.equals(isSys)">
+				and is_sys = #{isSys}	
+			</if>
+			<if test="useable != null and !&quot;&quot;.equals(useable)">
+				and useable = #{useable}	
+			</if>
+			<if test="createBy != null and !&quot;&quot;.equals(createBy)">
+				and create_by = #{createBy}	
+			</if>
+			<if test="createDate != null and !&quot;&quot;.equals(createDate)">
+				and create_date = #{createDate}	
+			</if>
+			<if test="updateBy != null and !&quot;&quot;.equals(updateBy)">
+				and update_by = #{updateBy}	
+			</if>
+			<if test="updateDate != null and !&quot;&quot;.equals(updateDate)">
+				and update_date = #{updateDate}	
+			</if>
+			<if test="remarks != null and !&quot;&quot;.equals(remarks)">
+				and remarks = #{remarks}	
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+			<if test="idStr != null and !&quot;&quot;.equals(idStr)">
+				and id in  (${idStr})
+			</if>
+			<if test="menuIds != null and !&quot;&quot;.equals(menuIds)">
+				and menu_ids = #{menuIds}
+			</if>
+			<if test="permission != null and !&quot;&quot;.equals(permission)">
+				and permission = #{permission}
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="querySysRole" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SysRole">
+		select <include refid="Base_Column_List"/> from sys_role
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="officeId != null and !&quot;&quot;.equals(officeId)">
+				and office_id = #{officeId}	
+			</if>
+			<if test="name != null and !&quot;&quot;.equals(name)">
+				and name = #{name}	
+			</if>
+			<if test="enname != null and !&quot;&quot;.equals(enname)">
+				and enname = #{enname}	
+			</if>
+			<if test="roleType != null and !&quot;&quot;.equals(roleType)">
+				and role_type = #{roleType}	
+			</if>
+			<if test="isSys != null and !&quot;&quot;.equals(isSys)">
+				and is_sys = #{isSys}	
+			</if>
+			<if test="useable != null and !&quot;&quot;.equals(useable)">
+				and useable = #{useable}	
+			</if>
+			<if test="createBy != null and !&quot;&quot;.equals(createBy)">
+				and create_by = #{createBy}	
+			</if>
+			<if test="createDate != null and !&quot;&quot;.equals(createDate)">
+				and create_date = #{createDate}	
+			</if>
+			<if test="updateBy != null and !&quot;&quot;.equals(updateBy)">
+				and update_by = #{updateBy}	
+			</if>
+			<if test="updateDate != null and !&quot;&quot;.equals(updateDate)">
+				and update_date = #{updateDate}	
+			</if>
+			<if test="remarks != null and !&quot;&quot;.equals(remarks)">
+				and remarks = #{remarks}	
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+			<if test="menuIds != null and !&quot;&quot;.equals(menuIds)">
+				and menu_ids = #{menuIds}
+			</if>
+			<if test="permission != null and !&quot;&quot;.equals(permission)">
+				and permission = #{permission}
+			</if>
+		</where>
+		LIMIT 1
+	</select>
+    <select id="selectByPrimaryKeys" resultType="com.izouma.awesomeadmin.model.SysRole">
+		select
+		<include refid="Base_Column_List" />
+		from sys_role
+		where id in (${ids})
+		and del_flag = 'N'
+	</select>
+    <select id="getUserRoles" resultType="com.izouma.awesomeadmin.model.SysRole">
+		select
+		<include refid="Base_Column_List" />
+		from sys_role
+		where id in (select role_id from sys_user_role where user_id = #{userId})
+		and del_flag = 'N'
+	</select>
+    <update id="delete">
+		UPDATE sys_role SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+	<insert id="setUserRoles">
+		insert into sys_user_role (user_id, role_id)
+		values
+		<foreach collection="roles" item="roleId" separator=",">
+			(#{userId}, #{roleId})
+		</foreach>
+	</insert>
+    <delete id="clearUserRoles">
+		delete from sys_user_role where user_id = #{userId}
+	</delete>
+	<insert id="addUserRole">
+		insert into sys_user_role (user_id, role_id) values (#{userId}, #{roleId})
+	</insert>
+	<delete id="removeUserRole">
+		delete from sys_user_role when user_id = #{userId} and role_id = #{roleId}
+	</delete>
+	<select id="getUserRoleId" resultType="java.lang.String">
+		SELECT group_concat(role_id) FROM sys_user_role WHERE user_id = #{id}
+	</select>
+</mapper>
+

+ 37 - 0
src/main/java/com/izouma/awesomeadmin/dao/SystemNoticeMapper.java

@@ -0,0 +1,37 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.SystemNotice;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.SystemNoticeMapper")
+public interface SystemNoticeMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(SystemNotice record);
+
+    SystemNotice selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(SystemNotice record);
+
+    List<SystemNotice> queryAllSystemNotice(SystemNotice record);
+
+    List<SystemNotice> querySystemNoticeByPage(Map<String, Object> parameter);
+
+    int delete(SystemNotice record);
+
+    SystemNotice querySystemNotice(SystemNotice record);
+
+    List<SystemNotice> query(SystemNotice record);
+
+    int receiveBonus(SystemNotice systemNotice);
+
+    int getUnreadSystemNotice(SystemNotice record);
+}
+

+ 670 - 0
src/main/java/com/izouma/awesomeadmin/dao/SystemNoticeMapper.xml

@@ -0,0 +1,670 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.SystemNoticeMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.SystemNotice">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="create_user" property="createUser" jdbcType="VARCHAR"/>
+        <result column="game_id" property="gameId" jdbcType="INTEGER"/>
+        <result column="house_id" property="houseId" jdbcType="INTEGER"/>
+        <result column="user_id" property="userId" jdbcType="INTEGER"/>
+        <result column="remark" property="remark" jdbcType="VARCHAR"/>
+        <result column="type_flag" property="typeFlag" jdbcType="INTEGER"/>
+        <result column="status_flag" property="statusFlag" jdbcType="INTEGER"/>
+        <result column="content" property="content" jdbcType="VARCHAR"/>
+        <result column="season_id" property="seasonId" jdbcType="INTEGER"/>
+        <result column="player_id" property="playerId" jdbcType="INTEGER"/>
+        <result column="bonus" property="bonus" jdbcType="DECIMAL"/>
+
+    </resultMap>
+    <sql id="Base_Column_List">
+        <trim suffixOverrides=",">
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            game_id,
+
+            house_id,
+
+            user_id,
+
+            remark,
+
+            type_flag,
+
+            status_flag,
+
+            content,
+
+            season_id,
+
+            player_id,
+
+            bonus,
+
+        </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from system_notice
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from system_notice
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.SystemNotice" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into system_notice
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id!= null">
+                id,
+            </if>
+            <if test="delFlag!= null">
+                del_flag,
+            </if>
+            <if test="updateTime!= null">
+                update_time,
+            </if>
+            <if test="updateUser!= null">
+                update_user,
+            </if>
+            <if test="createTime!= null">
+                create_time,
+            </if>
+            <if test="createUser!= null">
+                create_user,
+            </if>
+            <if test="gameId!= null">
+                game_id,
+            </if>
+            <if test="houseId!= null">
+                house_id,
+            </if>
+            <if test="userId!= null">
+                user_id,
+            </if>
+            <if test="remark!= null">
+                remark,
+            </if>
+            <if test="typeFlag!= null">
+                type_flag,
+            </if>
+            <if test="statusFlag!= null">
+                status_flag,
+            </if>
+            <if test="content!= null">
+                content,
+            </if>
+            <if test="seasonId!= null">
+                season_id,
+            </if>
+            <if test="playerId!= null">
+                player_id,
+            </if>
+            <if test="bonus!= null">
+                bonus,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="houseId != null">
+                #{houseId,jdbcType=INTEGER},
+            </if>
+            <if test="userId != null">
+                #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="statusFlag != null">
+                #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="content != null">
+                #{content,jdbcType=VARCHAR},
+            </if>
+            <if test="seasonId != null">
+                #{seasonId,jdbcType=INTEGER},
+            </if>
+            <if test="playerId != null">
+                #{playerId,jdbcType=INTEGER},
+            </if>
+            <if test="bonus != null">
+                #{bonus},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.SystemNotice">
+        update system_notice
+        <set>
+            <if test="id != null">
+                id= #{id,jdbcType=INTEGER},
+            </if>
+            <if test="delFlag != null">
+                del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="updateTime != null">
+                update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUser != null">
+                update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="createUser != null">
+                create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+            <if test="gameId != null">
+                game_id= #{gameId,jdbcType=INTEGER},
+            </if>
+            <if test="houseId != null">
+                house_id= #{houseId,jdbcType=INTEGER},
+            </if>
+            <if test="userId != null">
+                user_id= #{userId,jdbcType=INTEGER},
+            </if>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="typeFlag != null">
+                type_flag= #{typeFlag,jdbcType=INTEGER},
+            </if>
+            <if test="statusFlag != null">
+                status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="content != null">
+                content= #{content,jdbcType=VARCHAR},
+            </if>
+            <if test="seasonId != null">
+                season_id= #{seasonId,jdbcType=INTEGER},
+            </if>
+            <if test="playerId != null">
+                player_id= #{playerId,jdbcType=INTEGER},
+            </if>
+            <if test="bonus != null">
+                bonus= #{bonus},
+            </if>
+        </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="querySystemNoticeByPage" parameterType="java.util.Map"
+            resultMap="PageSystemNoticeResult">
+        select
+        <include refid="Base_Column_List"/>
+        from system_notice
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+            <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and id = #{record.id}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and update_time = #{record.updateTime}
+            </if>
+            <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and update_user = #{record.updateUser}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and create_user = #{record.createUser}
+            </if>
+            <if test="record.gameId != null and !&quot;&quot;.equals(record.gameId)">
+                and game_id = #{record.gameId}
+            </if>
+            <if test="record.houseId != null and !&quot;&quot;.equals(record.houseId)">
+                and house_id = #{record.houseId}
+            </if>
+            <if test="record.userId != null and !&quot;&quot;.equals(record.userId)">
+                and user_id = #{record.userId}
+            </if>
+            <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and remark = #{record.remark}
+            </if>
+            <if test="record.typeFlag != null and !&quot;&quot;.equals(record.typeFlag)">
+                and type_flag = #{record.typeFlag}
+            </if>
+            <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
+                and status_flag = #{record.statusFlag}
+            </if>
+            <if test="record.content != null and !&quot;&quot;.equals(record.content)">
+                and content = #{record.content}
+            </if>
+            <if test="record.seasonId != null and !&quot;&quot;.equals(record.seasonId)">
+                and season_id = #{record.seasonId}
+            </if>
+            <if test="record.playerId != null and !&quot;&quot;.equals(record.playerId)">
+                and player_id = #{record.playerId}
+            </if>
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_id LIKE concat('%',#{record.searchKey},'%')
+                    OR house_id LIKE concat('%',#{record.searchKey},'%')
+                    OR user_id LIKE concat('%',#{record.searchKey},'%')
+                    OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR type_flag LIKE concat('%',#{record.searchKey},'%')
+                    OR status_flag LIKE concat('%',#{record.searchKey},'%')
+                    OR content LIKE concat('%',#{record.searchKey},'%')
+                    OR season_id LIKE concat('%',#{record.searchKey},'%')
+                    OR player_id LIKE concat('%',#{record.searchKey},'%')
+                </trim>
+            </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllSystemNotice" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.SystemNotice">
+        select
+        <include refid="Base_Column_List"/>
+        from system_notice
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="content != null and !&quot;&quot;.equals(content)">
+                and content = #{content}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+            <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and player_id = #{playerId}
+            </if>
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    OR game_id LIKE concat('%',#{searchKey},'%')
+                    OR house_id LIKE concat('%',#{searchKey},'%')
+                    OR user_id LIKE concat('%',#{searchKey},'%')
+                    OR remark LIKE concat('%',#{searchKey},'%')
+                    OR type_flag LIKE concat('%',#{searchKey},'%')
+                    OR status_flag LIKE concat('%',#{searchKey},'%')
+                    OR content LIKE concat('%',#{searchKey},'%')
+                    OR season_id LIKE concat('%',#{searchKey},'%')
+                    OR player_id LIKE concat('%',#{searchKey},'%')
+                </trim>
+            </if>
+            <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+                <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="querySystemNotice" parameterType="java.util.Map"
+            resultMap="PageSystemNoticeResult">
+        select
+        <include refid="Base_Column_List"/>
+        from system_notice
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="content != null and !&quot;&quot;.equals(content)">
+                and content = #{content}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+            <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and player_id = #{playerId}
+            </if>
+
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE system_notice SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SystemNotice">
+        select
+        <include refid="Base_Column_List"/>
+        from system_notice
+        <where>
+            and del_flag = 'N'
+        </where>
+        order by id desc
+    </select>
+    <select id="getUnreadSystemNotice" parameterType="java.util.Map" resultType="Integer">
+        SELECT COUNT(1) FROM system_notice
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="content != null and !&quot;&quot;.equals(content)">
+                and content = #{content}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+            <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and player_id = #{playerId}
+            </if>
+
+        </where>
+    </select>
+
+    <update id="receiveBonus" parameterType="com.izouma.awesomeadmin.model.SystemNotice">
+        update system_notice
+        <set>
+            <if test="remark != null">
+                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="statusFlag != null">
+                status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+            <if test="content != null">
+                content= #{content,jdbcType=VARCHAR},
+            </if>
+        </set>
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+            <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and player_id = #{playerId}
+            </if>
+
+        </where>
+
+    </update>
+
+
+    <resultMap id="PageSystemNoticeResult" type="com.izouma.awesomeadmin.model.SystemNotice" extends="BaseResultMap">
+
+        <association property="userInfo"
+                     javaType="com.izouma.awesomeadmin.model.UserInfo"
+                     select="com.izouma.awesomeadmin.dao.UserInfoMapper.querySingleUserInfo"
+                     column="{ id = user_id }"/>
+        <association property="gameInfo"
+                     javaType="com.izouma.awesomeadmin.model.GameInfo"
+                     select="com.izouma.awesomeadmin.dao.GameInfoMapper.queryGameInfo"
+                     column="{ id = game_id }"/>
+        <association property="playerInfo"
+                     javaType="com.izouma.awesomeadmin.model.PlayerInfo"
+                     select="com.izouma.awesomeadmin.dao.PlayerInfoMapper.queryPlayerInfo"
+                     column="{ id = player_id }"/>
+        <association property="houseInfo"
+                     javaType="com.izouma.awesomeadmin.model.HouseInfo"
+                     select="com.izouma.awesomeadmin.dao.HouseInfoMapper.getHouseInfoPlayerNum"
+                     column="{ id = user_id }"/>
+
+    </resultMap>
+
+
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/SystemVariableMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.SystemVariable;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.SystemVariableMapper")
+public interface SystemVariableMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(SystemVariable record);
+
+    SystemVariable selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(SystemVariable record);
+
+    List<SystemVariable> queryAllSystemVariable(SystemVariable record);
+
+    List<SystemVariable> querySystemVariableByPage(Map<String, Object> parameter);
+
+    int delete(SystemVariable record);
+
+    SystemVariable querySystemVariable(SystemVariable record);
+
+    List<SystemVariable> query(SystemVariable record);
+}
+

+ 348 - 0
src/main/java/com/izouma/awesomeadmin/dao/SystemVariableMapper.xml

@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.SystemVariableMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.SystemVariable" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+                                <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+                                <result column="variable_name" property="variableName" jdbcType="VARCHAR" />
+                                <result column="variable_value" property="variableValue" jdbcType="VARCHAR" />
+                                <result column="remark" property="remark" jdbcType="VARCHAR" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+        <trim  suffixOverrides="," >
+            id,
+
+            del_flag,
+
+            update_time,
+
+            create_time,
+
+            variable_name,
+
+            variable_value,
+
+            remark,
+
+            </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from system_variable
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from system_variable
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.SystemVariable" useGeneratedKeys="true" keyProperty="id">
+        insert into system_variable
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="updateTime!= null" >
+                update_time,
+            </if>
+                <if test="createTime!= null" >
+                create_time,
+            </if>
+                <if test="variableName!= null" >
+                variable_name,
+            </if>
+                <if test="variableValue!= null" >
+                variable_value,
+            </if>
+                <if test="remark!= null" >
+                remark,
+            </if>
+            </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+                    <if test="id != null" >
+                #{id,jdbcType=INTEGER},
+            </if>
+                    <if test="delFlag != null" >
+                #{delFlag,jdbcType=CHAR},
+            </if>
+                    <if test="updateTime != null" >
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="createTime != null" >
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="variableName != null" >
+                #{variableName,jdbcType=VARCHAR},
+            </if>
+                    <if test="variableValue != null" >
+                #{variableValue,jdbcType=VARCHAR},
+            </if>
+                    <if test="remark != null" >
+                #{remark,jdbcType=VARCHAR},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.SystemVariable" >
+        update system_variable
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="updateTime != null" >
+               update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="createTime != null" >
+               create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="variableName != null" >
+               variable_name= #{variableName,jdbcType=VARCHAR},
+            </if>
+                     <if test="variableValue != null" >
+               variable_value= #{variableValue,jdbcType=VARCHAR},
+            </if>
+                     <if test="remark != null" >
+               remark= #{remark,jdbcType=VARCHAR},
+            </if>
+                 </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="querySystemVariableByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SystemVariable">
+        select <include refid="Base_Column_List"/> from system_variable
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+                    <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and  id = #{record.id}
+            </if>
+                     <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and  del_flag = #{record.delFlag}
+            </if>
+                     <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and  update_time = #{record.updateTime}
+            </if>
+                     <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and  create_time = #{record.createTime}
+            </if>
+                     <if test="record.variableName != null and !&quot;&quot;.equals(record.variableName)">
+                and  variable_name = #{record.variableName}
+            </if>
+                     <if test="record.variableValue != null and !&quot;&quot;.equals(record.variableValue)">
+                and  variable_value = #{record.variableValue}
+            </if>
+                     <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and  remark = #{record.remark}
+            </if>
+                  <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+             <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                  OR  variable_name LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  variable_value LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  remark LIKE concat('%',#{record.searchKey},'%')
+                                                             </trim>
+         </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllSystemVariable" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SystemVariable">
+        select <include refid="Base_Column_List"/> from system_variable
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and  id = #{id}
+            </if>
+                    <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and  del_flag = #{delFlag}
+            </if>
+                    <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and  update_time = #{updateTime}
+            </if>
+                    <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and  create_time = #{createTime}
+            </if>
+                    <if test="variableName != null and !&quot;&quot;.equals(variableName)">
+                and  variable_name = #{variableName}
+            </if>
+                    <if test="variableValue != null and !&quot;&quot;.equals(variableValue)">
+                and  variable_value = #{variableValue}
+            </if>
+                    <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and  remark = #{remark}
+            </if>
+                    <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                                OR  variable_name LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  variable_value LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  remark LIKE concat('%',#{searchKey},'%')
+                                                                                        </trim>
+            </if>
+<if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+    <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+        <choose>
+            <when test="item.indexOf('like') != -1">
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        concat('%',#{itemDetail},'%')
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </when>
+            <otherwise>
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        #{itemDetail}
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </otherwise>
+        </choose>
+
+
+    </foreach>
+
+
+</if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="querySystemVariable" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SystemVariable">
+        select <include refid="Base_Column_List"/> from system_variable
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+                     <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+                     <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+                     <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+                     <if test="variableName != null and !&quot;&quot;.equals(variableName)">
+                and variable_name = #{variableName}
+            </if>
+                     <if test="variableValue != null and !&quot;&quot;.equals(variableValue)">
+                and variable_value = #{variableValue}
+            </if>
+                     <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE system_variable SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.SystemVariable">
+        select <include refid="Base_Column_List"/> from system_variable
+        <where>
+            and del_flag = 'N'
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </where>
+        order by id desc
+    </select>
+</mapper>
+

+ 34 - 0
src/main/java/com/izouma/awesomeadmin/dao/TableFieldMapper.java

@@ -0,0 +1,34 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Repository;
+
+import com.izouma.awesomeadmin.model.TableField;
+
+/**
+ * table_field Dao接口
+ * Fri May 04 13:38:24 CST 2018  Suo Chen Cheng
+ */ 
+@Repository("com.izouma.awesomeadmin.dao.TableFieldMapper")
+public interface TableFieldMapper {
+
+	int deleteByPrimaryKey(Integer id);
+
+	int insertSelective(TableField record);
+
+	TableField selectByPrimaryKey(Integer id);
+
+	int updateByPrimaryKeySelective(TableField record);
+
+	List <TableField> queryAllTableField(TableField record);
+
+	List <TableField> queryTableFieldsByPage(Map <String, Object> parameter);
+
+	int delete(String id);
+
+	TableField queryTableField(TableField record);
+
+}
+

+ 494 - 0
src/main/java/com/izouma/awesomeadmin/dao/TableFieldMapper.xml

@@ -0,0 +1,494 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.izouma.awesomeadmin.dao.TableFieldMapper" >
+	<resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.TableField" >
+		<id column="id" property="id" jdbcType="INTEGER" />
+		<result column="name" property="name" jdbcType="VARCHAR" />
+		<result column="remark" property="remark" jdbcType="VARCHAR" />
+		<result column="jdbcType" property="jdbcType" jdbcType="VARCHAR" />
+		<result column="javaType" property="javaType" jdbcType="VARCHAR" />
+		<result column="length" property="length" jdbcType="INTEGER" />
+		<result column="decimalPlaces" property="decimalPlaces" jdbcType="INTEGER" />
+		<result column="defaultValue" property="defaultValue" jdbcType="VARCHAR" />
+		<result column="notNull" property="notNull" jdbcType="BIT" />
+		<result column="primaryKey" property="primaryKey" jdbcType="BIT" />
+		<result column="autoIncrease" property="autoIncrease" jdbcType="BIT" />
+		<result column="showInList" property="showInList" jdbcType="BIT" />
+		<result column="showInForm" property="showInForm" jdbcType="BIT" />
+		<result column="searchable" property="searchable" jdbcType="BIT" />
+		<result column="formType" property="formType" jdbcType="VARCHAR" />
+		<result column="searchMethod" property="searchMethod" jdbcType="VARCHAR" />
+		<result column="required" property="required" jdbcType="BIT" />
+		<result column="validate" property="validate" jdbcType="BIT" />
+		<result column="minLength" property="minLength" jdbcType="INTEGER" />
+		<result column="maxLength" property="maxLength" jdbcType="INTEGER" />
+		<result column="min" property="min" jdbcType="VARCHAR" />
+		<result column="max" property="max" jdbcType="VARCHAR" />
+		<result column="validatorType" property="validatorType" jdbcType="VARCHAR" />
+	</resultMap>
+	<sql id="Base_Column_List" >
+		 id, 'name', remark, jdbcType, javaType, 'length', decimalPlaces, defaultValue, notNull, primaryKey, autoIncrease, showInList, showInForm, searchable, formType, searchMethod, required, validate, minLength, maxLength, 'min','max', validatorType
+	</sql>
+	<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+		select
+		<include refid="Base_Column_List" />
+		from sys_table_field
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from sys_table_field
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.TableField" useGeneratedKeys="true" keyProperty="id">
+		insert into sys_table_field
+		<trim prefix="(" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				id,	
+			</if>
+			<if test="name != null" >
+				name,	
+			</if>
+			<if test="remark != null" >
+				remark,	
+			</if>
+			<if test="jdbcType != null" >
+				jdbcType,	
+			</if>
+			<if test="javaType != null" >
+				javaType,	
+			</if>
+			<if test="length != null" >
+				length,	
+			</if>
+			<if test="decimalPlaces != null" >
+				decimalPlaces,	
+			</if>
+			<if test="defaultValue != null" >
+				defaultValue,	
+			</if>
+			<if test="notNull != null" >
+				notNull,	
+			</if>
+			<if test="primaryKey != null" >
+				primaryKey,	
+			</if>
+			<if test="autoIncrease != null" >
+				autoIncrease,	
+			</if>
+			<if test="showInList != null" >
+				showInList,	
+			</if>
+			<if test="showInForm != null" >
+				showInForm,	
+			</if>
+			<if test="searchable != null" >
+				searchable,	
+			</if>
+			<if test="formType != null" >
+				formType,	
+			</if>
+			<if test="searchMethod != null" >
+				searchMethod,	
+			</if>
+			<if test="required != null" >
+				required,	
+			</if>
+			<if test="validate != null" >
+				validate,	
+			</if>
+			<if test="minLength != null" >
+				minLength,	
+			</if>
+			<if test="maxLength != null" >
+				maxLength,	
+			</if>
+			<if test="min != null" >
+				min,	
+			</if>
+			<if test="max != null" >
+				max,	
+			</if>
+			<if test="validatorType != null" >
+				validatorType,	
+			</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				#{id,jdbcType=INTEGER},	
+			</if>
+			<if test="name != null" >
+				#{name,jdbcType=VARCHAR},	
+			</if>
+			<if test="remark != null" >
+				#{remark,jdbcType=VARCHAR},	
+			</if>
+			<if test="jdbcType != null" >
+				#{jdbcType,jdbcType=VARCHAR},	
+			</if>
+			<if test="javaType != null" >
+				#{javaType,jdbcType=VARCHAR},	
+			</if>
+			<if test="length != null" >
+				#{length,jdbcType=INTEGER},	
+			</if>
+			<if test="decimalPlaces != null" >
+				#{decimalPlaces,jdbcType=INTEGER},	
+			</if>
+			<if test="defaultValue != null" >
+				#{defaultValue,jdbcType=VARCHAR},	
+			</if>
+			<if test="notNull != null" >
+				#{notNull,jdbcType=BIT},	
+			</if>
+			<if test="primaryKey != null" >
+				#{primaryKey,jdbcType=BIT},	
+			</if>
+			<if test="autoIncrease != null" >
+				#{autoIncrease,jdbcType=BIT},	
+			</if>
+			<if test="showInList != null" >
+				#{showInList,jdbcType=BIT},	
+			</if>
+			<if test="showInForm != null" >
+				#{showInForm,jdbcType=BIT},	
+			</if>
+			<if test="searchable != null" >
+				#{searchable,jdbcType=BIT},	
+			</if>
+			<if test="formType != null" >
+				#{formType,jdbcType=VARCHAR},	
+			</if>
+			<if test="searchMethod != null" >
+				#{searchMethod,jdbcType=VARCHAR},	
+			</if>
+			<if test="required != null" >
+				#{required,jdbcType=BIT},	
+			</if>
+			<if test="validate != null" >
+				#{validate,jdbcType=BIT},	
+			</if>
+			<if test="minLength != null" >
+				#{minLength,jdbcType=INTEGER},	
+			</if>
+			<if test="maxLength != null" >
+				#{maxLength,jdbcType=INTEGER},	
+			</if>
+			<if test="min != null" >
+				#{min,jdbcType=VARCHAR},	
+			</if>
+			<if test="max != null" >
+				#{max,jdbcType=VARCHAR},	
+			</if>
+			<if test="validatorType != null" >
+				#{validatorType,jdbcType=VARCHAR},	
+			</if>
+		</trim>
+	</insert>
+	<update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.TableField" >
+		update sys_table_field
+		<set >
+			<if test="name != null" >
+				name = #{name,jdbcType=VARCHAR},	
+			</if>
+			<if test="remark != null" >
+				remark = #{remark,jdbcType=VARCHAR},	
+			</if>
+			<if test="jdbcType != null" >
+				jdbcType = #{jdbcType,jdbcType=VARCHAR},	
+			</if>
+			<if test="javaType != null" >
+				javaType = #{javaType,jdbcType=VARCHAR},	
+			</if>
+			<if test="length != null" >
+				length = #{length,jdbcType=INTEGER},	
+			</if>
+			<if test="decimalPlaces != null" >
+				decimalPlaces = #{decimalPlaces,jdbcType=INTEGER},	
+			</if>
+			<if test="defaultValue != null" >
+				defaultValue = #{defaultValue,jdbcType=VARCHAR},	
+			</if>
+			<if test="notNull != null" >
+				notNull = #{notNull,jdbcType=BIT},	
+			</if>
+			<if test="primaryKey != null" >
+				primaryKey = #{primaryKey,jdbcType=BIT},	
+			</if>
+			<if test="autoIncrease != null" >
+				autoIncrease = #{autoIncrease,jdbcType=BIT},	
+			</if>
+			<if test="showInList != null" >
+				showInList = #{showInList,jdbcType=BIT},	
+			</if>
+			<if test="showInForm != null" >
+				showInForm = #{showInForm,jdbcType=BIT},	
+			</if>
+			<if test="searchable != null" >
+				searchable = #{searchable,jdbcType=BIT},	
+			</if>
+			<if test="formType != null" >
+				formType = #{formType,jdbcType=VARCHAR},	
+			</if>
+			<if test="searchMethod != null" >
+				searchMethod = #{searchMethod,jdbcType=VARCHAR},	
+			</if>
+			<if test="required != null" >
+				required = #{required,jdbcType=BIT},	
+			</if>
+			<if test="validate != null" >
+				validate = #{validate,jdbcType=BIT},	
+			</if>
+			<if test="minLength != null" >
+				minLength = #{minLength,jdbcType=INTEGER},	
+			</if>
+			<if test="maxLength != null" >
+				maxLength = #{maxLength,jdbcType=INTEGER},	
+			</if>
+			<if test="min != null" >
+				min = #{min,jdbcType=VARCHAR},	
+			</if>
+			<if test="max != null" >
+				max = #{max,jdbcType=VARCHAR},	
+			</if>
+			<if test="validatorType != null" >
+				validatorType = #{validatorType,jdbcType=VARCHAR},	
+			</if>
+		</set>
+		where id = #{id,jdbcType=INTEGER}
+	</update>
+	<select id="queryTableFieldsByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.TableField">
+		select <include refid="Base_Column_List"/> from sys_table_field
+		<where>
+			and del_flag = 'N'
+			<if test="record.id != null and !&quot;&quot;.equals(record.id)">
+				and id = #{record.id}	
+			</if>
+			<if test="record.name != null and !&quot;&quot;.equals(record.name)">
+				and name = #{record.name}	
+			</if>
+			<if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+				and remark = #{record.remark}	
+			</if>
+			<if test="record.jdbcType != null and !&quot;&quot;.equals(record.jdbcType)">
+				and jdbcType = #{record.jdbcType}	
+			</if>
+			<if test="record.javaType != null and !&quot;&quot;.equals(record.javaType)">
+				and javaType = #{record.javaType}	
+			</if>
+			<if test="record.length != null and !&quot;&quot;.equals(record.length)">
+				and length = #{record.length}	
+			</if>
+			<if test="record.decimalPlaces != null and !&quot;&quot;.equals(record.decimalPlaces)">
+				and decimalPlaces = #{record.decimalPlaces}	
+			</if>
+			<if test="record.defaultValue != null and !&quot;&quot;.equals(record.defaultValue)">
+				and defaultValue = #{record.defaultValue}	
+			</if>
+			<if test="record.notNull != null and !&quot;&quot;.equals(record.notNull)">
+				and notNull = #{record.notNull}	
+			</if>
+			<if test="record.primaryKey != null and !&quot;&quot;.equals(record.primaryKey)">
+				and primaryKey = #{record.primaryKey}	
+			</if>
+			<if test="record.autoIncrease != null and !&quot;&quot;.equals(record.autoIncrease)">
+				and autoIncrease = #{record.autoIncrease}	
+			</if>
+			<if test="record.showInList != null and !&quot;&quot;.equals(record.showInList)">
+				and showInList = #{record.showInList}	
+			</if>
+			<if test="record.showInForm != null and !&quot;&quot;.equals(record.showInForm)">
+				and showInForm = #{record.showInForm}	
+			</if>
+			<if test="record.searchable != null and !&quot;&quot;.equals(record.searchable)">
+				and searchable = #{record.searchable}	
+			</if>
+			<if test="record.formType != null and !&quot;&quot;.equals(record.formType)">
+				and formType = #{record.formType}	
+			</if>
+			<if test="record.searchMethod != null and !&quot;&quot;.equals(record.searchMethod)">
+				and searchMethod = #{record.searchMethod}	
+			</if>
+			<if test="record.required != null and !&quot;&quot;.equals(record.required)">
+				and required = #{record.required}	
+			</if>
+			<if test="record.validate != null and !&quot;&quot;.equals(record.validate)">
+				and validate = #{record.validate}	
+			</if>
+			<if test="record.minLength != null and !&quot;&quot;.equals(record.minLength)">
+				and minLength = #{record.minLength}	
+			</if>
+			<if test="record.maxLength != null and !&quot;&quot;.equals(record.maxLength)">
+				and maxLength = #{record.maxLength}	
+			</if>
+			<if test="record.min != null and !&quot;&quot;.equals(record.min)">
+				and min = #{record.min}	
+			</if>
+			<if test="record.max != null and !&quot;&quot;.equals(record.max)">
+				and max = #{record.max}	
+			</if>
+			<if test="record.validatorType != null and !&quot;&quot;.equals(record.validatorType)">
+				and validatorType = #{record.validatorType}	
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryAllTableField" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.TableField">
+		select <include refid="Base_Column_List"/> from sys_table_field
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="name != null and !&quot;&quot;.equals(name)">
+				and name = #{name}	
+			</if>
+			<if test="remark != null and !&quot;&quot;.equals(remark)">
+				and remark = #{remark}	
+			</if>
+			<if test="jdbcType != null and !&quot;&quot;.equals(jdbcType)">
+				and jdbcType = #{jdbcType}	
+			</if>
+			<if test="javaType != null and !&quot;&quot;.equals(javaType)">
+				and javaType = #{javaType}	
+			</if>
+			<if test="length != null and !&quot;&quot;.equals(length)">
+				and length = #{length}	
+			</if>
+			<if test="decimalPlaces != null and !&quot;&quot;.equals(decimalPlaces)">
+				and decimalPlaces = #{decimalPlaces}	
+			</if>
+			<if test="defaultValue != null and !&quot;&quot;.equals(defaultValue)">
+				and defaultValue = #{defaultValue}	
+			</if>
+			<if test="notNull != null and !&quot;&quot;.equals(notNull)">
+				and notNull = #{notNull}	
+			</if>
+			<if test="primaryKey != null and !&quot;&quot;.equals(primaryKey)">
+				and primaryKey = #{primaryKey}	
+			</if>
+			<if test="autoIncrease != null and !&quot;&quot;.equals(autoIncrease)">
+				and autoIncrease = #{autoIncrease}	
+			</if>
+			<if test="showInList != null and !&quot;&quot;.equals(showInList)">
+				and showInList = #{showInList}	
+			</if>
+			<if test="showInForm != null and !&quot;&quot;.equals(showInForm)">
+				and showInForm = #{showInForm}	
+			</if>
+			<if test="searchable != null and !&quot;&quot;.equals(searchable)">
+				and searchable = #{searchable}	
+			</if>
+			<if test="formType != null and !&quot;&quot;.equals(formType)">
+				and formType = #{formType}	
+			</if>
+			<if test="searchMethod != null and !&quot;&quot;.equals(searchMethod)">
+				and searchMethod = #{searchMethod}	
+			</if>
+			<if test="required != null and !&quot;&quot;.equals(required)">
+				and required = #{required}	
+			</if>
+			<if test="validate != null and !&quot;&quot;.equals(validate)">
+				and validate = #{validate}	
+			</if>
+			<if test="minLength != null and !&quot;&quot;.equals(minLength)">
+				and minLength = #{minLength}	
+			</if>
+			<if test="maxLength != null and !&quot;&quot;.equals(maxLength)">
+				and maxLength = #{maxLength}	
+			</if>
+			<if test="min != null and !&quot;&quot;.equals(min)">
+				and min = #{min}	
+			</if>
+			<if test="max != null and !&quot;&quot;.equals(max)">
+				and max = #{max}	
+			</if>
+			<if test="validatorType != null and !&quot;&quot;.equals(validatorType)">
+				and validatorType = #{validatorType}	
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryTableField" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.TableField">
+		select <include refid="Base_Column_List"/> from sys_table_field
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="name != null and !&quot;&quot;.equals(name)">
+				and name = #{name}	
+			</if>
+			<if test="remark != null and !&quot;&quot;.equals(remark)">
+				and remark = #{remark}	
+			</if>
+			<if test="jdbcType != null and !&quot;&quot;.equals(jdbcType)">
+				and jdbcType = #{jdbcType}	
+			</if>
+			<if test="javaType != null and !&quot;&quot;.equals(javaType)">
+				and javaType = #{javaType}	
+			</if>
+			<if test="length != null and !&quot;&quot;.equals(length)">
+				and length = #{length}	
+			</if>
+			<if test="decimalPlaces != null and !&quot;&quot;.equals(decimalPlaces)">
+				and decimalPlaces = #{decimalPlaces}	
+			</if>
+			<if test="defaultValue != null and !&quot;&quot;.equals(defaultValue)">
+				and defaultValue = #{defaultValue}	
+			</if>
+			<if test="notNull != null and !&quot;&quot;.equals(notNull)">
+				and notNull = #{notNull}	
+			</if>
+			<if test="primaryKey != null and !&quot;&quot;.equals(primaryKey)">
+				and primaryKey = #{primaryKey}	
+			</if>
+			<if test="autoIncrease != null and !&quot;&quot;.equals(autoIncrease)">
+				and autoIncrease = #{autoIncrease}	
+			</if>
+			<if test="showInList != null and !&quot;&quot;.equals(showInList)">
+				and showInList = #{showInList}	
+			</if>
+			<if test="showInForm != null and !&quot;&quot;.equals(showInForm)">
+				and showInForm = #{showInForm}	
+			</if>
+			<if test="searchable != null and !&quot;&quot;.equals(searchable)">
+				and searchable = #{searchable}	
+			</if>
+			<if test="formType != null and !&quot;&quot;.equals(formType)">
+				and formType = #{formType}	
+			</if>
+			<if test="searchMethod != null and !&quot;&quot;.equals(searchMethod)">
+				and searchMethod = #{searchMethod}	
+			</if>
+			<if test="required != null and !&quot;&quot;.equals(required)">
+				and required = #{required}	
+			</if>
+			<if test="validate != null and !&quot;&quot;.equals(validate)">
+				and validate = #{validate}	
+			</if>
+			<if test="minLength != null and !&quot;&quot;.equals(minLength)">
+				and minLength = #{minLength}	
+			</if>
+			<if test="maxLength != null and !&quot;&quot;.equals(maxLength)">
+				and maxLength = #{maxLength}	
+			</if>
+			<if test="min != null and !&quot;&quot;.equals(min)">
+				and min = #{min}	
+			</if>
+			<if test="max != null and !&quot;&quot;.equals(max)">
+				and max = #{max}	
+			</if>
+			<if test="validatorType != null and !&quot;&quot;.equals(validatorType)">
+				and validatorType = #{validatorType}	
+			</if>
+		</where>
+		LIMIT 1
+	</select>
+	<update id="delete">
+		UPDATE sys_table_field SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+</mapper>
+

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác