1
0
xiongzhu 7 лет назад
Сommit
706add9c18
100 измененных файлов с 12023 добавлено и 0 удалено
  1. 5 0
      .gitignore
  2. 269 0
      awesome-admin.iml
  3. 953 0
      pom.xml
  4. 75 0
      runConfigurations/Tomcat.xml
  5. 12 0
      runConfigurations/Vue_Build.xml
  6. 12 0
      runConfigurations/Vue_Server.xml
  7. 153 0
      src/main/java/com/izouma/awesomeadmin/constant/AppConstant.java
  8. 36 0
      src/main/java/com/izouma/awesomeadmin/constant/RongConstant.java
  9. 29 0
      src/main/java/com/izouma/awesomeadmin/dao/AccessTokenMapper.java
  10. 21 0
      src/main/java/com/izouma/awesomeadmin/dao/AccessTokenMapper.xml
  11. 31 0
      src/main/java/com/izouma/awesomeadmin/dao/DataMapper.java
  12. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/DataMapper.xml
  13. 39 0
      src/main/java/com/izouma/awesomeadmin/dao/DepartInfoMapper.java
  14. 317 0
      src/main/java/com/izouma/awesomeadmin/dao/DepartInfoMapper.xml
  15. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/GenCodeMapper.java
  16. 232 0
      src/main/java/com/izouma/awesomeadmin/dao/GenCodeMapper.xml
  17. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/GenTestTableMapper.java
  18. 209 0
      src/main/java/com/izouma/awesomeadmin/dao/GenTestTableMapper.xml
  19. 34 0
      src/main/java/com/izouma/awesomeadmin/dao/PowerInfoMapper.java
  20. 216 0
      src/main/java/com/izouma/awesomeadmin/dao/PowerInfoMapper.xml
  21. 26 0
      src/main/java/com/izouma/awesomeadmin/dao/RongYunTokenMapper.java
  22. 88 0
      src/main/java/com/izouma/awesomeadmin/dao/RongYunTokenMapper.xml
  23. 51 0
      src/main/java/com/izouma/awesomeadmin/dao/SuperUserMapper.java
  24. 88 0
      src/main/java/com/izouma/awesomeadmin/dao/SuperUserMapper.xml
  25. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/SysDataruleMapper.java
  26. 153 0
      src/main/java/com/izouma/awesomeadmin/dao/SysDataruleMapper.xml
  27. 34 0
      src/main/java/com/izouma/awesomeadmin/dao/SysMenuMapper.java
  28. 386 0
      src/main/java/com/izouma/awesomeadmin/dao/SysMenuMapper.xml
  29. 32 0
      src/main/java/com/izouma/awesomeadmin/dao/SysRoleMapper.java
  30. 339 0
      src/main/java/com/izouma/awesomeadmin/dao/SysRoleMapper.xml
  31. 34 0
      src/main/java/com/izouma/awesomeadmin/dao/TableFieldMapper.java
  32. 494 0
      src/main/java/com/izouma/awesomeadmin/dao/TableFieldMapper.xml
  33. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/TestAaaMapper.java
  34. 124 0
      src/main/java/com/izouma/awesomeadmin/dao/TestAaaMapper.xml
  35. 35 0
      src/main/java/com/izouma/awesomeadmin/dao/UserInfoMapper.java
  36. 437 0
      src/main/java/com/izouma/awesomeadmin/dao/UserInfoMapper.xml
  37. 23 0
      src/main/java/com/izouma/awesomeadmin/datasource/DataService.java
  38. 44 0
      src/main/java/com/izouma/awesomeadmin/datasource/DataServiceImpl.java
  39. 14 0
      src/main/java/com/izouma/awesomeadmin/datasource/DataSource.java
  40. 67 0
      src/main/java/com/izouma/awesomeadmin/datasource/DataSourceAspect.java
  41. 13 0
      src/main/java/com/izouma/awesomeadmin/datasource/DynamicDataSource.java
  42. 20 0
      src/main/java/com/izouma/awesomeadmin/datasource/DynamicDataSourceHolder.java
  43. 144 0
      src/main/java/com/izouma/awesomeadmin/dto/Page.java
  44. 74 0
      src/main/java/com/izouma/awesomeadmin/dto/Result.java
  45. 80 0
      src/main/java/com/izouma/awesomeadmin/dto/TreeNode.java
  46. 32 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/AccessToken.java
  47. 69 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/BaseMessage.java
  48. 54 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/CustomServiceMessage.java
  49. 18 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/Image.java
  50. 18 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/ImageMessage.java
  51. 74 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/Music.java
  52. 18 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/MusicMessage.java
  53. 58 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/News.java
  54. 25 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/NewsMessage.java
  55. 24 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/TemplateData.java
  56. 47 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/TemplateMessage.java
  57. 37 0
      src/main/java/com/izouma/awesomeadmin/dto/wx/TextMessage.java
  58. 31 0
      src/main/java/com/izouma/awesomeadmin/frame/GenController.java
  59. 2026 0
      src/main/java/com/izouma/awesomeadmin/frame/gen/GenEntity.java
  60. 16 0
      src/main/java/com/izouma/awesomeadmin/frame/gen/JdbcConfig.java
  61. 60 0
      src/main/java/com/izouma/awesomeadmin/frame/gen/RunTool.java
  62. 170 0
      src/main/java/com/izouma/awesomeadmin/frame/gen/TableParams.java
  63. 158 0
      src/main/java/com/izouma/awesomeadmin/frame/util/StringUtil.java
  64. 36 0
      src/main/java/com/izouma/awesomeadmin/interceptor/CrossFilter.java
  65. 23 0
      src/main/java/com/izouma/awesomeadmin/interceptor/CrossInterceptor.java
  66. 137 0
      src/main/java/com/izouma/awesomeadmin/interceptor/PageInterceptor.java
  67. 38 0
      src/main/java/com/izouma/awesomeadmin/model/AccessToken.java
  68. 186 0
      src/main/java/com/izouma/awesomeadmin/model/DepartInfo.java
  69. 179 0
      src/main/java/com/izouma/awesomeadmin/model/GenCode.java
  70. 121 0
      src/main/java/com/izouma/awesomeadmin/model/GenTestTable.java
  71. 106 0
      src/main/java/com/izouma/awesomeadmin/model/PowerInfo.java
  72. 59 0
      src/main/java/com/izouma/awesomeadmin/model/RongYunToken.java
  73. 42 0
      src/main/java/com/izouma/awesomeadmin/model/SqlServerTest.java
  74. 101 0
      src/main/java/com/izouma/awesomeadmin/model/SuperUser.java
  75. 66 0
      src/main/java/com/izouma/awesomeadmin/model/SysDatarule.java
  76. 197 0
      src/main/java/com/izouma/awesomeadmin/model/SysMenu.java
  77. 177 0
      src/main/java/com/izouma/awesomeadmin/model/SysRole.java
  78. 341 0
      src/main/java/com/izouma/awesomeadmin/model/TableField.java
  79. 38 0
      src/main/java/com/izouma/awesomeadmin/model/TestAaa.java
  80. 217 0
      src/main/java/com/izouma/awesomeadmin/model/UserInfo.java
  81. 66 0
      src/main/java/com/izouma/awesomeadmin/model/Zouma.java
  82. 36 0
      src/main/java/com/izouma/awesomeadmin/service/DepartInfoService.java
  83. 29 0
      src/main/java/com/izouma/awesomeadmin/service/GenCodeService.java
  84. 29 0
      src/main/java/com/izouma/awesomeadmin/service/GenTestTableService.java
  85. 65 0
      src/main/java/com/izouma/awesomeadmin/service/ImageFileService.java
  86. 115 0
      src/main/java/com/izouma/awesomeadmin/service/OSSFileService.java
  87. 32 0
      src/main/java/com/izouma/awesomeadmin/service/PowerInfoService.java
  88. 11 0
      src/main/java/com/izouma/awesomeadmin/service/RongYunTokenService.java
  89. 53 0
      src/main/java/com/izouma/awesomeadmin/service/SuperUserService.java
  90. 29 0
      src/main/java/com/izouma/awesomeadmin/service/SysDataruleService.java
  91. 33 0
      src/main/java/com/izouma/awesomeadmin/service/SysMenuService.java
  92. 31 0
      src/main/java/com/izouma/awesomeadmin/service/SysRoleService.java
  93. 29 0
      src/main/java/com/izouma/awesomeadmin/service/TableFieldService.java
  94. 27 0
      src/main/java/com/izouma/awesomeadmin/service/TestAaaService.java
  95. 31 0
      src/main/java/com/izouma/awesomeadmin/service/UserInfoService.java
  96. 93 0
      src/main/java/com/izouma/awesomeadmin/service/WeiXinService.java
  97. 256 0
      src/main/java/com/izouma/awesomeadmin/service/impl/DepartInfoServiceImpl.java
  98. 144 0
      src/main/java/com/izouma/awesomeadmin/service/impl/GenCodeServiceImpl.java
  99. 144 0
      src/main/java/com/izouma/awesomeadmin/service/impl/GenTestTableServiceImpl.java
  100. 161 0
      src/main/java/com/izouma/awesomeadmin/service/impl/PowerInfoServiceImpl.java

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
+.vscode
+.DS_Store
+.idea
+node_modules/
+/target

+ 269 - 0
awesome-admin.iml

@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+    <facet type="web" name="Web">
+      <configuration>
+        <descriptors>
+          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
+        </descriptors>
+        <webroots>
+          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
+        </webroots>
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/src/main/java" />
+          <root url="file://$MODULE_DIR$/src/main/resources" />
+        </sourceRoots>
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-test:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.4.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.7.4" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.7.4" level="project" />
+    <orderEntry type="library" name="Maven: cglib:cglib:3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.ow2.asm:asm:4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.2" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid:1.0.31" level="project" />
+    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.30" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.microsoft.sqlserver:mssql-jdbc:6.4.0.jre8" level="project" />
+    <orderEntry type="library" name="Maven: c3p0:c3p0:0.9.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: opensymphony:sitemesh:2.4.2" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax:javaee-api:7.0" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.mail:javax.mail:1.5.0" level="project" />
+    <orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet.jsp:jsp-api:2.1" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-core:2.6.11" level="project" />
+    <orderEntry type="library" name="Maven: org.jgroups:jgroups:3.6.6.Final" level="project" />
+    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: de.ruedigermoeller:fst:2.42" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.19.0-GA" level="project" />
+    <orderEntry type="library" name="Maven: org.objenesis:objenesis:2.1" level="project" />
+    <orderEntry type="library" name="Maven: com.esotericsoftware:kryo-shaded:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.esotericsoftware:minlog:1.3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-cas:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.jasig.cas.client:cas-client-core:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-ehcache:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-engine:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-bpmn-converter:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-process-validation:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-image-generator:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-email:1.4" level="project" />
+    <orderEntry type="library" name="Maven: joda-time:joda-time:2.6" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-spring:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-dbcp:commons-dbcp:1.4" level="project" />
+    <orderEntry type="library" name="Maven: commons-pool:commons-pool:1.5.4" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-explorer:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-crystalball:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: com.h2database:h2:1.3.176" level="project" />
+    <orderEntry type="library" name="Maven: org.imgscalr:imgscalr-lib:4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.groovy:groovy-all:2.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-modeler:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-common-rest:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:3.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:3.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:3.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-parser:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-awt-util:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-xml:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-transcoder:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:fop:0.94" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.avalon.framework:avalon-framework-api:4.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.avalon.framework:avalon-framework-impl:4.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-dom:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-gvt:1.7" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-bridge:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-anim:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-script:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-js:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-codec:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svg-dom:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.7" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-rest:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-simple-workflow:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-bpmn-layout:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.tinyjee.jgraphx:jgraphx:1.10.4.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:3.2.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-diagram-rest:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-json-converter:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-bpmn-model:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: math.geom2d:javaGeom:0.11.1" level="project" />
+    <orderEntry type="library" name="Maven: org.activiti:activiti-cxf:5.22.0" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-xjc:2.2.11" level="project" />
+    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.11.0" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-api:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-javamail_1.4_spec:1.7.1" level="project" />
+    <orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
+    <orderEntry type="library" name="Maven: asm:asm:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-core:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-databinding-jaxb:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-simple:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-addr:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-policy:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.neethi:neethi:3.0.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apache.cxf:cxf-rt-transports-http-jetty:2.7.6" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty:jetty-server:8.1.7.v20120910" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty:jetty-continuation:8.1.7.v20120910" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty:jetty-http:8.1.7.v20120910" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty:jetty-io:8.1.7.v20120910" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty:jetty-util:8.1.7.v20120910" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.eclipse.jetty:jetty-security:8.1.7.v20120910" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apache.geronimo.specs:geronimo-servlet_3.0_spec:1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:2.7.6" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.25" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.25" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
+    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
+    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.1.40" level="project" />
+    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.4" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.kxml:kxml2-min:2.3.0" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.25-incubating" level="project" />
+    <orderEntry type="library" name="Maven: com.ibeetl:beetl:2.7.5" level="project" />
+    <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.abego.treelayout:org.abego.treelayout.core:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.antlr:antlr4-annotations:4.2" level="project" />
+    <orderEntry type="library" name="Maven: javax.mail:mail:1.4.7" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:activation:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.3.0" level="project" />
+    <orderEntry type="library" name="Maven: com.drewnoakes:metadata-extractor:2.10.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.zxing:core:3.3.0" level="project" />
+    <orderEntry type="library" name="Maven: batik:batik-util:1.6-1" level="project" />
+    <orderEntry type="library" name="Maven: batik:batik-gui-util:1.6-1" level="project" />
+    <orderEntry type="library" name="Maven: batik:batik-ext:1.6-1" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xmlParserAPIs:2.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz-jobs:2.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.fusesource:sigar:1.6.4" level="project" />
+    <orderEntry type="library" name="Maven: net.coobird:thumbnailator:0.4.8" level="project" />
+    <orderEntry type="library" name="Maven: com.github.abel533:ECharts:3.0.0.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.6.2" level="project" />
+    <orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
+    <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+    <orderEntry type="library" name="Maven: eu.bitwalker:UserAgentUtils:1.20" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.4" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.13" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.13" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.6.14" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.1.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.5" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-vod:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:2.0.6" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
+    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
+    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
+    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss:jboss-vfs:3.2.12.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jdom:jdom:1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.1" level="project" />
+    <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:2.4" level="project" />
+    <orderEntry type="library" name="Maven: org.json:json:20160810" level="project" />
+    <orderEntry type="library" name="Maven: com.adobe.xmp:xmpcore:5.1.3" level="project" />
+    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.velocity:velocity-tools:2.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-digester:commons-digester:1.8" level="project" />
+    <orderEntry type="library" name="Maven: commons-chain:commons-chain:1.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-validator:commons-validator:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
+    <orderEntry type="library" name="Maven: sslext:sslext:1.2-0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.struts:struts-core:1.3.8" level="project" />
+    <orderEntry type="library" name="Maven: antlr:antlr:2.7.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.struts:struts-taglib:1.3.8" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.struts:struts-tiles:1.3.8" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.6.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.uuid:java-uuid-generator:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.baidu:ueditor:1.1.2" level="project" />
+  </component>
+</module>

+ 953 - 0
pom.xml

@@ -0,0 +1,953 @@
+<?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</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>
+                </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>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <version>${spring.version}</version>
+            <scope>test</scope>
+        </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>
+        </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>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>c3p0</groupId>
+            <artifactId>c3p0</artifactId>
+            <version>0.9.1.1</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>
+
+        <!-- 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.6.2</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>
+        </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.2</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>3.2.2</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>
+            <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>com.thoughtworks.xstream</groupId>
+            <artifactId>xstream</artifactId>
+            <version>1.4</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.0</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>
+    </dependencies>
+
+</project>

+ 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>

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

@@ -0,0 +1,153 @@
+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          = "JSAPI";
+
+    /**
+     * 设备号 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 InergralUpdateType {
+
+        /**
+         * 产品抵扣
+         */
+        Integer DISCOUNT = 0;
+
+        /**
+         * 任务
+         */
+        Integer TASK     = 1;
+
+        /**
+         * 充值
+         */
+        Integer RECHARGE = 2;
+    }
+
+    public interface OrderStatus {
+
+        /**
+         * 待付款
+         */
+        Integer NO_PAY  = 0;
+
+        /**
+         * 待平台确认
+         */
+        Integer PYY     = 1;
+
+        /**
+         * 预约成功
+         */
+        Integer CONFIRM = 2;
+
+        /**
+         * 人员派送中
+         */
+        Integer ASSIGN  = 3;
+
+        /**
+         * 已完成
+         */
+        Integer FINISH  = 4;
+
+        /**
+         * 退款中
+         */
+        Integer REFUND  = 5;
+
+        /**
+         * 已经取消
+         */
+        Integer CANCEL  = 6;
+
+    }
+
+    public interface template {
+
+        /**
+         * 咨询回复消息提醒 
+         */
+        String reply        = "B7pRn_aPMKJT41Q498Okw5ZPsFtjE5NW_vNO6l6K2hw";
+
+        /**
+         * 用户咨询提醒 
+         */
+        String consultation = "SOLot-tJ5XMziyrM8xrXwS4q1meGI8z7SL8_OklnigE";
+
+        /**
+         * 入驻
+         */
+        String settled      = "HJtFE3VjxVaP0vw0-k4rtn7LdN7xcPbwygLgvZbH6R8";
+    }
+
+    String weixinurl                = "http://i.izouma.cn/wx/auth";
+
+    String weixinurlRedirectUriFlag = "_redirectUri_";
+}

+ 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";
+
+}

+ 29 - 0
src/main/java/com/izouma/awesomeadmin/dao/AccessTokenMapper.java

@@ -0,0 +1,29 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.Map;
+
+import org.springframework.stereotype.Repository;
+
+import com.izouma.awesomeadmin.model.AccessToken;
+
+@Repository("com.izouma.awesomeadmin.dao.AccessTokenMapper")
+public interface AccessTokenMapper {
+
+    /**
+     * 
+     * <p>获取最新的accessToken。</p>
+     *
+     * @return
+     */
+    AccessToken getAccessToken();
+
+
+    /**
+     * 
+     * <p>插入新的accessToken。</p>
+     *
+     * @param parameter
+     * @return
+     */
+    int updateAccessToken(Map <String, Object> parameter);
+}

+ 21 - 0
src/main/java/com/izouma/awesomeadmin/dao/AccessTokenMapper.xml

@@ -0,0 +1,21 @@
+<?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.AccessTokenMapper">
+	<!-- 目的:为 Dao接口方法提供sql语句配置 -->
+	<select id="getAccessToken" resultType="com.izouma.awesomeadmin.model.AccessToken" >
+		SELECT
+			*
+		FROM
+			access_token
+		ORDER BY
+			time_stamp DESC
+		LIMIT 1
+	</select>
+	
+	<insert id="updateAccessToken" parameterType="map">
+	    INSERT INTO access_token (access_token, time_stamp)
+		VALUES (#{accessToken}, #{timeStamp})
+  	</insert>
+
+</mapper>

+ 31 - 0
src/main/java/com/izouma/awesomeadmin/dao/DataMapper.java

@@ -0,0 +1,31 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.datasource.DataSource;
+import com.izouma.awesomeadmin.model.SqlServerTest;
+import com.izouma.awesomeadmin.model.SuperUser;
+import com.izouma.awesomeadmin.model.Zouma;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+@DataSource("dataSource")
+@Repository("com.izouma.awesomeadmin.dao.DataMapper")
+public interface DataMapper {
+
+    /**
+     * <p>获取用户列表。</p>
+     *
+     * @return TblUser list
+     */
+    // 不指定,则默认使用数据源1
+    List<SuperUser> queryAllUsers();
+
+    // 覆盖类上指定的,使用数据源2
+    @DataSource("dataSourceSlaver")
+    List<Zouma> queryZouma();
+
+    // 覆盖类上指定的,使用数据源2
+    @DataSource("dataSourceSqlserver")
+    List<SqlServerTest> getSqlServerTestByPage(Map<String, Object> parameter);
+}

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

@@ -0,0 +1,35 @@
+<?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.DataMapper">
+    <sql id="columns">
+        user_id, power, password, user_name, profile, del_flag
+  	</sql>
+
+    <select id="queryAllUsers" resultType="com.izouma.awesomeadmin.model.SuperUser">
+        SELECT
+        <include refid="columns"/>
+        FROM super_user
+        where del_flag = 'N'
+        order by user_id
+        <!-- 为了测试只取100个 -->
+        <!-- LIMIT 100  -->
+    </select>
+
+
+    <select id="queryZouma" resultType="com.izouma.awesomeadmin.model.Zouma">
+        SELECT
+        *
+        FROM zouma
+        where del_flag = 0
+        order by id
+        <!-- 为了测试只取100个 -->
+        <!-- LIMIT 100  -->
+    </select>
+
+    <select id="getSqlServerTestByPage" resultType="com.izouma.awesomeadmin.model.SqlServerTest">
+        SELECT * FROM T_SYS_Depts where  id > 2  ORDER BY id
+
+    </select>
+
+</mapper>

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

@@ -0,0 +1,39 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.List;
+import java.util.Map;
+
+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);
+}
+

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

@@ -0,0 +1,317 @@
+<?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 depart_info
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<select id="selectByPrimaryKeys" resultMap="BaseResultMap" parameterType="java.lang.String" >
+		select
+		<include refid="Base_Column_List" />
+		from depart_info
+		where FIND_IN_SET(id, #{ids,jdbcType=INTEGER}) and del_flag = 'N'
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from depart_info
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.DepartInfo" useGeneratedKeys="true" keyProperty="id">
+		insert into depart_info
+		<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 depart_info
+		<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 depart_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.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 depart_info
+		<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 depart_info
+		<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 depart_info where all_parent_id  LIKE '${allParentId}%'  and id=  #{parentId}
+	</select>
+    <update id="delete">
+		UPDATE depart_info SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+
+	<select id="getParentList" resultType="departInfo" parameterType="integer">
+	    SELECT * FROM depart_info WHERE FIND_IN_SET(id,(SELECT all_parent_id FROM depart_info WHERE id  = #{id})) AND del_flag = 'N'
+	</select>
+</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);
+}
+

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

@@ -0,0 +1,232 @@
+<?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" />
+		<collection property="fields" column="field_id" ofType="com.izouma.awesomeadmin.model.TableField" select="selectTableField"/>
+	</resultMap>
+	<select id="selectTableField" parameterType="string" resultType="com.izouma.awesomeadmin.model.TableField">
+        select * from table_field where FIND_IN_SET(id, #{field_id})
+    </select>
+	<sql id="Base_Column_List" >
+		 id, tableName, className, remark, genTable, genClass, genList, genForm, field_id
+	</sql>
+	<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+		select
+		<include refid="Base_Column_List" />
+		from gen_code
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from gen_code
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.GenCode" useGeneratedKeys="true" keyProperty="id">
+		insert into 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>
+		</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>
+		</trim>
+	</insert>
+	<update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.GenCode" >
+		update 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>
+		</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 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>
+		</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 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 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 gen_code SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+</mapper>
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/GenTestTableMapper.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.GenTestTable;
+
+/**
+ * gen_test_table Dao接口
+ * Fri Apr 20 09:24:30 CST 2018  Suo Chen Cheng
+ */ 
+@Repository("com.izouma.awesomeadmin.dao.GenTestTableMapper")
+public interface GenTestTableMapper {
+
+	int deleteByPrimaryKey(Integer id);
+
+	int insertSelective(GenTestTable record);
+
+	GenTestTable selectByPrimaryKey(Integer id);
+
+	int updateByPrimaryKeySelective(GenTestTable record);
+
+	List <GenTestTable> queryAllGenTestTable(GenTestTable record);
+
+	List <GenTestTable> queryGenTestTablesByPage(Map <String, Object> parameter);
+
+	int delete(String id);
+
+	GenTestTable queryGenTestTable(GenTestTable record);
+}
+

+ 209 - 0
src/main/java/com/izouma/awesomeadmin/dao/GenTestTableMapper.xml

@@ -0,0 +1,209 @@
+<?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.GenTestTableMapper" >
+	<resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.GenTestTable" >
+		<id column="id" property="id" jdbcType="INTEGER" />
+		<result column="my_column" property="myColumn" jdbcType="VARCHAR" />
+		<result column="aaa_test" property="aaaTest" jdbcType="VARCHAR" />
+		<result column="bbb_flag" property="bbbFlag" jdbcType="CHAR" />
+		<result column="no_comment" property="noComment" jdbcType="VARCHAR" />
+		<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+		<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+		<result column="del_flag" property="delFlag" jdbcType="CHAR" />
+	</resultMap>
+	<sql id="Base_Column_List" >
+		 id, my_column, aaa_test, bbb_flag, no_comment, create_time, update_time, del_flag
+	</sql>
+	<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+		select
+		<include refid="Base_Column_List" />
+		from gen_test_table
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from gen_test_table
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.GenTestTable" useGeneratedKeys="true" keyProperty="id">
+		insert into gen_test_table
+		<trim prefix="(" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				id,	
+			</if>
+			<if test="myColumn != null" >
+				my_column,	
+			</if>
+			<if test="aaaTest != null" >
+				aaa_test,	
+			</if>
+			<if test="bbbFlag != null" >
+				bbb_flag,	
+			</if>
+			<if test="noComment != null" >
+				no_comment,	
+			</if>
+			<if test="createTime != null" >
+				create_time,	
+			</if>
+			<if test="updateTime != null" >
+				update_time,	
+			</if>
+			<if test="delFlag != null" >
+				del_flag,	
+			</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides="," >
+			<if test="id != null" >
+				#{id,jdbcType=INTEGER},	
+			</if>
+			<if test="myColumn != null" >
+				#{myColumn,jdbcType=VARCHAR},	
+			</if>
+			<if test="aaaTest != null" >
+				#{aaaTest,jdbcType=VARCHAR},	
+			</if>
+			<if test="bbbFlag != null" >
+				#{bbbFlag,jdbcType=CHAR},	
+			</if>
+			<if test="noComment != null" >
+				#{noComment,jdbcType=VARCHAR},	
+			</if>
+			<if test="createTime != null" >
+				#{createTime,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="updateTime != null" >
+				#{updateTime,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="delFlag != null" >
+				#{delFlag,jdbcType=CHAR},	
+			</if>
+		</trim>
+	</insert>
+	<update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.GenTestTable" >
+		update gen_test_table
+		<set >
+			<if test="myColumn != null" >
+				my_column = #{myColumn,jdbcType=VARCHAR},	
+			</if>
+			<if test="aaaTest != null" >
+				aaa_test = #{aaaTest,jdbcType=VARCHAR},	
+			</if>
+			<if test="bbbFlag != null" >
+				bbb_flag = #{bbbFlag,jdbcType=CHAR},	
+			</if>
+			<if test="noComment != null" >
+				no_comment = #{noComment,jdbcType=VARCHAR},	
+			</if>
+			<if test="createTime != null" >
+				create_time = #{createTime,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="updateTime != null" >
+				update_time = #{updateTime,jdbcType=TIMESTAMP},	
+			</if>
+			<if test="delFlag != null" >
+				del_flag = #{delFlag,jdbcType=CHAR},	
+			</if>
+		</set>
+		where id = #{id,jdbcType=INTEGER}
+	</update>
+	<select id="queryGenTestTablesByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GenTestTable">
+		select <include refid="Base_Column_List"/> from gen_test_table
+		<where>
+			and del_flag = 'N'
+			<if test="record.id != null and !&quot;&quot;.equals(record.id)">
+				and id = #{record.id}	
+			</if>
+			<if test="record.myColumn != null and !&quot;&quot;.equals(record.myColumn)">
+				and my_column = #{record.myColumn}	
+			</if>
+			<if test="record.aaaTest != null and !&quot;&quot;.equals(record.aaaTest)">
+				and aaa_test = #{record.aaaTest}	
+			</if>
+			<if test="record.bbbFlag != null and !&quot;&quot;.equals(record.bbbFlag)">
+				and bbb_flag = #{record.bbbFlag}	
+			</if>
+			<if test="record.noComment != null and !&quot;&quot;.equals(record.noComment)">
+				and no_comment = #{record.noComment}	
+			</if>
+			<if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+				and create_time = #{record.createTime}	
+			</if>
+			<if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+				and update_time = #{record.updateTime}	
+			</if>
+			<if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+				and del_flag = #{record.delFlag}	
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryAllGenTestTable" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GenTestTable">
+		select <include refid="Base_Column_List"/> from gen_test_table
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="myColumn != null and !&quot;&quot;.equals(myColumn)">
+				and my_column = #{myColumn}	
+			</if>
+			<if test="aaaTest != null and !&quot;&quot;.equals(aaaTest)">
+				and aaa_test = #{aaaTest}	
+			</if>
+			<if test="bbbFlag != null and !&quot;&quot;.equals(bbbFlag)">
+				and bbb_flag = #{bbbFlag}	
+			</if>
+			<if test="noComment != null and !&quot;&quot;.equals(noComment)">
+				and no_comment = #{noComment}	
+			</if>
+			<if test="createTime != null and !&quot;&quot;.equals(createTime)">
+				and create_time = #{createTime}	
+			</if>
+			<if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+				and update_time = #{updateTime}	
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+		</where>
+		order by id desc
+	</select>
+	<select id="queryGenTestTable" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.GenTestTable">
+		select <include refid="Base_Column_List"/> from gen_test_table
+		<where>
+			and del_flag = 'N'
+			<if test="id != null and !&quot;&quot;.equals(id)">
+				and id = #{id}	
+			</if>
+			<if test="myColumn != null and !&quot;&quot;.equals(myColumn)">
+				and my_column = #{myColumn}	
+			</if>
+			<if test="aaaTest != null and !&quot;&quot;.equals(aaaTest)">
+				and aaa_test = #{aaaTest}	
+			</if>
+			<if test="bbbFlag != null and !&quot;&quot;.equals(bbbFlag)">
+				and bbb_flag = #{bbbFlag}	
+			</if>
+			<if test="noComment != null and !&quot;&quot;.equals(noComment)">
+				and no_comment = #{noComment}	
+			</if>
+			<if test="createTime != null and !&quot;&quot;.equals(createTime)">
+				and create_time = #{createTime}	
+			</if>
+			<if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+				and update_time = #{updateTime}	
+			</if>
+			<if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+				and del_flag = #{delFlag}	
+			</if>
+		</where>
+		LIMIT 1
+	</select>
+	<update id="delete">
+		UPDATE gen_test_table SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+</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);
+}
+

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

@@ -0,0 +1,216 @@
+<?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 power_info
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from power_info
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.PowerInfo" useGeneratedKeys="true" keyProperty="id">
+		insert into 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 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 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 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 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 power_info SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+
+	<update id="deleteByRoleId">
+		UPDATE power_info SET del_flag = 'Y'
+		<where>
+			AND role_id = #{roleId}
+		</where>
+	</update>
+</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);
+}

+ 88 - 0
src/main/java/com/izouma/awesomeadmin/dao/RongYunTokenMapper.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.RongYunTokenMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.RongYunToken">
+        <id column="id" property="id" jdbcType="BIGINT"/>
+        <result column="user_id" property="userId" jdbcType="BIGINT"/>
+        <result column="token" property="token" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+      id, user_id, token
+    </sql>
+
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long">
+        select
+        <include refid="Base_Column_List"/>
+        from rong_yun_token
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        delete from rong_yun_token
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+
+    <insert id="insert" parameterType="com.izouma.awesomeadmin.model.RongYunToken" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into 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 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>
+        </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>
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.RongYunToken">
+        update 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 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 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 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 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 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 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 super_user (user_name, power, password, profile)
+        VALUES (#{username}, #{power}, #{password}, #{profile})
+    </insert>
+
+    <update id="updateUserInfo">
+        UPDATE 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 super_user SET del_flag = 'Y'
+        <where>
+            AND user_id = #{userId}
+        </where>
+    </update>
+</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>
+

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

@@ -0,0 +1,32 @@
+package com.izouma.awesomeadmin.dao;
+
+import com.izouma.awesomeadmin.model.SysRole;
+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);
+
+	int updateByPrimaryKeySelective(SysRole record);
+
+	List<SysRole> queryAllSysRole(SysRole record);
+
+	List<SysRole> querySysRolesByPage(Map<String, Object> parameter);
+
+	int delete(String id);
+
+	SysRole querySysRole(SysRole record);
+}
+

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

@@ -0,0 +1,339 @@
+<?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>
+	<update id="delete">
+		UPDATE sys_role SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+</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 table_field
+		where id = #{id,jdbcType=INTEGER}
+	</select>
+	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+		delete from table_field
+		where id = #{id,jdbcType=INTEGER}
+	</delete>
+	<insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.TableField" useGeneratedKeys="true" keyProperty="id">
+		insert into 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 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 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 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 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 table_field SET del_flag = 'Y'
+		<where>
+			AND id = #{id}
+		</where>
+	</update>
+</mapper>
+

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

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

+ 124 - 0
src/main/java/com/izouma/awesomeadmin/dao/TestAaaMapper.xml

@@ -0,0 +1,124 @@
+<?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.TestAaaMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.TestAaa" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="name_test" property="nameTest" jdbcType="VARCHAR" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+            id,            del_flag,            name_test        </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from test_aaa
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from test_aaa
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.TestAaa" useGeneratedKeys="true" keyProperty="id">
+        insert into test_aaa
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="nameTest!= null" >
+                name_test,
+            </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="nameTest != null" >
+                #{nameTest,jdbcType=VARCHAR},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.TestAaa" >
+        update test_aaa
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="nameTest != null" >
+               name_test= #{nameTest,jdbcType=VARCHAR},
+            </if>
+                 </set>
+        where id = #{id,jdbcType=INTEGER}
+    </update>
+    <select id="queryTestAaaByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.TestAaa">
+        select <include refid="Base_Column_List"/> from test_aaa
+        <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.nameTest != null and !&quot;&quot;.equals(record.nameTest)">
+                and  name_test = #{record.nameTest}
+            </if>
+                 </where>
+        order by id desc
+    </select>
+    <select id="queryAllTestAaa" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.TestAaa">
+        select <include refid="Base_Column_List"/> from test_aaa
+        <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="nameTest != null and !&quot;&quot;.equals(nameTest)">
+                and  name_test = #{nameTest}
+            </if>
+                </where>
+        order by id desc
+    </select>
+    <select id="queryTestAaa" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.TestAaa">
+        select <include refid="Base_Column_List"/> from test_aaa
+        <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="nameTest != null and !&quot;&quot;.equals(nameTest)">
+                and name_test = #{nameTest}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE test_aaa SET del_flag = 'Y'
+        <where>
+            AND id = #{id}
+        </where>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.TestAaa">
+        select <include refid="Base_Column_List"/> from test_aaa
+        <where>
+            and del_flag = 'N'
+                                                                                                        </where>
+        order by id desc
+    </select>
+</mapper>
+

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

@@ -0,0 +1,35 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Repository;
+
+import com.izouma.awesomeadmin.model.UserInfo;
+
+/**
+ * user_info Dao接口
+ * Tue Apr 17 10:32:49 CST 2018  Suo Chen Cheng
+ */
+@Repository("com.izouma.awesomeadmin.dao.UserInfoMapper")
+public interface UserInfoMapper {
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(UserInfo record);
+
+    UserInfo selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(UserInfo record);
+
+    List<UserInfo> queryAllUserInfo(UserInfo record);
+
+    List<UserInfo> queryUserInfosByPage(Map<String, Object> parameter);
+
+    int delete(String id);
+
+    UserInfo queryUserInfo(UserInfo record);
+
+    UserInfo login(Map<String, Object> parameter);
+}
+

+ 437 - 0
src/main/java/com/izouma/awesomeadmin/dao/UserInfoMapper.xml

@@ -0,0 +1,437 @@
+<?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.UserInfoMapper">
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.UserInfo">
+        <id column="id" property="id" jdbcType="INTEGER"/>
+        <result column="username" property="username" jdbcType="VARCHAR"/>
+        <result column="nickname" property="nickname" jdbcType="VARCHAR"/>
+        <result column="password" property="password" jdbcType="VARCHAR"/>
+        <result column="icon" property="icon" jdbcType="VARCHAR"/>
+        <result column="birthday" property="birthday" jdbcType="TIMESTAMP"/>
+        <result column="sex" property="sex" jdbcType="CHAR"/>
+        <result column="open_id" property="openId" jdbcType="VARCHAR"/>
+        <result column="union_id" property="unionId" jdbcType="VARCHAR"/>
+        <result column="phone" property="phone" jdbcType="VARCHAR"/>
+        <result column="mail" property="mail" jdbcType="VARCHAR"/>
+        <result column="country" property="country" jdbcType="VARCHAR"/>
+        <result column="province" property="province" jdbcType="VARCHAR"/>
+        <result column="city" property="city" jdbcType="VARCHAR"/>
+        <result column="district" property="district" jdbcType="VARCHAR"/>
+        <result column="role_id" property="roleId" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="del_flag" property="delFlag" jdbcType="CHAR"/>
+        <result column="depart_id" property="departId" jdbcType="VARCHAR"/>
+        <collection property="roleInfoList" column="role_id" ofType="com.izouma.awesomeadmin.model.SysRole" select="selectRoles"/>
+    </resultMap>
+    <select id="selectRoles" parameterType="string" resultType="com.izouma.awesomeadmin.model.SysRole">
+        select * from sys_role where FIND_IN_SET(id, #{roleId})
+    </select>
+    <sql id="Base_Column_List">
+        id, username, nickname, icon, birthday, sex, open_id, union_id, phone, mail, country, province, city, district, role_id, create_time, del_flag,depart_id
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
+        select
+        <include refid="Base_Column_List"/>
+        from user_info
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from user_info
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.UserInfo" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into user_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="username != null">
+                username,
+            </if>
+            <if test="nickname != null">
+                nickname,
+            </if>
+            <if test="password != null">
+                password,
+            </if>
+            <if test="icon != null">
+                icon,
+            </if>
+            <if test="birthday != null">
+                birthday,
+            </if>
+            <if test="sex != null">
+                sex,
+            </if>
+            <if test="openId != null">
+                open_id,
+            </if>
+            <if test="unionId != null">
+                union_id,
+            </if>
+            <if test="phone != null">
+                phone,
+            </if>
+            <if test="mail != null">
+                mail,
+            </if>
+            <if test="country != null">
+                country,
+            </if>
+            <if test="province != null">
+                province,
+            </if>
+            <if test="city != null">
+                city,
+            </if>
+            <if test="district != null">
+                district,
+            </if>
+            <if test="roleId != null">
+                role_id,
+            </if>
+            <if test="createTime != null">
+                create_time,
+            </if>
+            <if test="delFlag != null">
+                del_flag,
+            </if>
+            <if test="departId != null">
+                depart_id,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=INTEGER},
+            </if>
+            <if test="username != null">
+                #{username,jdbcType=VARCHAR},
+            </if>
+            <if test="nickname != null">
+                #{nickname,jdbcType=VARCHAR},
+            </if>
+            <if test="password != null">
+                #{password,jdbcType=VARCHAR},
+            </if>
+            <if test="icon != null">
+                #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="birthday != null">
+                #{birthday,jdbcType=TIMESTAMP},
+            </if>
+            <if test="sex != null">
+                #{sex,jdbcType=CHAR},
+            </if>
+            <if test="openId != null">
+                #{openId,jdbcType=VARCHAR},
+            </if>
+            <if test="unionId != null">
+                #{unionId,jdbcType=VARCHAR},
+            </if>
+            <if test="phone != null">
+                #{phone,jdbcType=VARCHAR},
+            </if>
+            <if test="mail != null">
+                #{mail,jdbcType=VARCHAR},
+            </if>
+            <if test="country != null">
+                #{country,jdbcType=VARCHAR},
+            </if>
+            <if test="province != null">
+                #{province,jdbcType=VARCHAR},
+            </if>
+            <if test="city != null">
+                #{city,jdbcType=VARCHAR},
+            </if>
+            <if test="district != null">
+                #{district,jdbcType=VARCHAR},
+            </if>
+            <if test="roleId != null">
+                #{roleId,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="delFlag != null">
+                #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="departId != null">
+                #{departId,jdbcType=VARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.UserInfo">
+        update user_info
+        <set>
+            <if test="username != null">
+                username = #{username,jdbcType=VARCHAR},
+            </if>
+            <if test="nickname != null">
+                nickname = #{nickname,jdbcType=VARCHAR},
+            </if>
+            <if test="password != null">
+                password = #{password,jdbcType=VARCHAR},
+            </if>
+            <if test="icon != null">
+                icon = #{icon,jdbcType=VARCHAR},
+            </if>
+            <if test="birthday != null">
+                birthday = #{birthday,jdbcType=TIMESTAMP},
+            </if>
+            <if test="sex != null">
+                sex = #{sex,jdbcType=CHAR},
+            </if>
+            <if test="openId != null">
+                open_id = #{openId,jdbcType=VARCHAR},
+            </if>
+            <if test="unionId != null">
+                union_id = #{unionId,jdbcType=VARCHAR},
+            </if>
+            <if test="phone != null">
+                phone = #{phone,jdbcType=VARCHAR},
+            </if>
+            <if test="mail != null">
+                mail = #{mail,jdbcType=VARCHAR},
+            </if>
+            <if test="country != null">
+                country = #{country,jdbcType=VARCHAR},
+            </if>
+            <if test="province != null">
+                province = #{province,jdbcType=VARCHAR},
+            </if>
+            <if test="city != null">
+                city = #{city,jdbcType=VARCHAR},
+            </if>
+            <if test="district != null">
+                district = #{district,jdbcType=VARCHAR},
+            </if>
+            <if test="roleId != null">
+                role_id = #{roleId,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime != null">
+                create_time = #{createTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="delFlag != null">
+                del_flag = #{delFlag,jdbcType=CHAR},
+            </if>
+            <if test="departId != null">
+                depart_id = #{departId,jdbcType=VARCHAR},
+            </if>
+
+        </set>
+        where id = #{id,jdbcType=INTEGER}
+    </update>
+    <select id="queryUserInfosByPage" parameterType="java.util.Map"
+            resultType="com.izouma.awesomeadmin.model.UserInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from user_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.username != null and !&quot;&quot;.equals(record.username)">
+                and username = #{record.username}
+            </if>
+            <if test="record.nickname != null and !&quot;&quot;.equals(record.nickname)">
+                and nickname = #{record.nickname}
+            </if>
+            <if test="record.password != null and !&quot;&quot;.equals(record.password)">
+                and password = #{record.password}
+            </if>
+            <if test="record.icon != null and !&quot;&quot;.equals(record.icon)">
+                and icon = #{record.icon}
+            </if>
+            <if test="record.birthday != null and !&quot;&quot;.equals(record.birthday)">
+                and birthday = #{record.birthday}
+            </if>
+            <if test="record.sex != null and !&quot;&quot;.equals(record.sex)">
+                and sex = #{record.sex}
+            </if>
+            <if test="record.openId != null and !&quot;&quot;.equals(record.openId)">
+                and open_id = #{record.openId}
+            </if>
+            <if test="record.unionId != null and !&quot;&quot;.equals(record.unionId)">
+                and union_id = #{record.unionId}
+            </if>
+            <if test="record.phone != null and !&quot;&quot;.equals(record.phone)">
+                and phone = #{record.phone}
+            </if>
+            <if test="record.mail != null and !&quot;&quot;.equals(record.mail)">
+                and mail = #{record.mail}
+            </if>
+            <if test="record.country != null and !&quot;&quot;.equals(record.country)">
+                and country = #{record.country}
+            </if>
+            <if test="record.province != null and !&quot;&quot;.equals(record.province)">
+                and province = #{record.province}
+            </if>
+            <if test="record.city != null and !&quot;&quot;.equals(record.city)">
+                and city = #{record.city}
+            </if>
+            <if test="record.district != null and !&quot;&quot;.equals(record.district)">
+                and district = #{record.district}
+            </if>
+            <if test="record.roleId != null and !&quot;&quot;.equals(record.roleId)">
+                and role_id = #{record.roleId}
+            </if>
+            <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and create_time = #{record.createTime}
+            </if>
+            <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and del_flag = #{record.delFlag}
+            </if>
+            <if test="record.departId != null and !&quot;&quot;.equals(record.departId)">
+                and depart_id = #{record.departId}
+            </if>
+        </where>
+        order by id desc
+    </select>
+    <select id="queryAllUserInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.UserInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from user_info
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="username != null and !&quot;&quot;.equals(username)">
+                and username = #{username}
+            </if>
+            <if test="nickname != null and !&quot;&quot;.equals(nickname)">
+                and nickname = #{nickname}
+            </if>
+            <if test="password != null and !&quot;&quot;.equals(password)">
+                and password = #{password}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="birthday != null and !&quot;&quot;.equals(birthday)">
+                and birthday = #{birthday}
+            </if>
+            <if test="sex != null and !&quot;&quot;.equals(sex)">
+                and sex = #{sex}
+            </if>
+            <if test="openId != null and !&quot;&quot;.equals(openId)">
+                and open_id = #{openId}
+            </if>
+            <if test="unionId != null and !&quot;&quot;.equals(unionId)">
+                and union_id = #{unionId}
+            </if>
+            <if test="phone != null and !&quot;&quot;.equals(phone)">
+                and phone = #{phone}
+            </if>
+            <if test="mail != null and !&quot;&quot;.equals(mail)">
+                and mail = #{mail}
+            </if>
+            <if test="country != null and !&quot;&quot;.equals(country)">
+                and country = #{country}
+            </if>
+            <if test="province != null and !&quot;&quot;.equals(province)">
+                and province = #{province}
+            </if>
+            <if test="city != null and !&quot;&quot;.equals(city)">
+                and city = #{city}
+            </if>
+            <if test="district != null and !&quot;&quot;.equals(district)">
+                and district = #{district}
+            </if>
+            <if test="roleId != null and !&quot;&quot;.equals(roleId)">
+                and role_id = #{roleId}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="departId != null and !&quot;&quot;.equals(departId)">
+                and depart_id = #{departId}
+            </if>
+        </where>
+        order by id desc
+    </select>
+    <select id="queryUserInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.UserInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from user_info
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="username != null and !&quot;&quot;.equals(username)">
+                and username = #{username}
+            </if>
+            <if test="nickname != null and !&quot;&quot;.equals(nickname)">
+                and nickname = #{nickname}
+            </if>
+            <if test="password != null and !&quot;&quot;.equals(password)">
+                and password = #{password}
+            </if>
+            <if test="icon != null and !&quot;&quot;.equals(icon)">
+                and icon = #{icon}
+            </if>
+            <if test="birthday != null and !&quot;&quot;.equals(birthday)">
+                and birthday = #{birthday}
+            </if>
+            <if test="sex != null and !&quot;&quot;.equals(sex)">
+                and sex = #{sex}
+            </if>
+            <if test="openId != null and !&quot;&quot;.equals(openId)">
+                and open_id = #{openId}
+            </if>
+            <if test="unionId != null and !&quot;&quot;.equals(unionId)">
+                and union_id = #{unionId}
+            </if>
+            <if test="phone != null and !&quot;&quot;.equals(phone)">
+                and phone = #{phone}
+            </if>
+            <if test="mail != null and !&quot;&quot;.equals(mail)">
+                and mail = #{mail}
+            </if>
+            <if test="country != null and !&quot;&quot;.equals(country)">
+                and country = #{country}
+            </if>
+            <if test="province != null and !&quot;&quot;.equals(province)">
+                and province = #{province}
+            </if>
+            <if test="city != null and !&quot;&quot;.equals(city)">
+                and city = #{city}
+            </if>
+            <if test="district != null and !&quot;&quot;.equals(district)">
+                and district = #{district}
+            </if>
+            <if test="roleId != null and !&quot;&quot;.equals(roleId)">
+                and role_id = #{roleId}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="departId != null and !&quot;&quot;.equals(departId)">
+                and depart_id = #{departId}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
+    <select id="login" resultMap="BaseResultMap" parameterType="java.util.Map">
+        SELECT
+        <include refid="Base_Column_List"/>
+        from user_info
+        WHERE username = #{username} AND password = #{password} AND del_flag = 'N'
+    </select>
+    <update id="delete">
+        UPDATE user_info SET del_flag = 'Y'
+        <where>
+            AND id = #{id}
+        </where>
+    </update>
+</mapper>
+

+ 23 - 0
src/main/java/com/izouma/awesomeadmin/datasource/DataService.java

@@ -0,0 +1,23 @@
+package com.izouma.awesomeadmin.datasource;
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.SqlServerTest;
+import com.izouma.awesomeadmin.model.SuperUser;
+import com.izouma.awesomeadmin.model.Zouma;
+
+import java.util.List;
+
+public interface DataService {
+
+    /**
+     * <p>获取所有用户记录。</p>
+     *
+     * @return tblUser list
+     */
+    List<SuperUser> getSuperUserList();
+
+    List<Zouma> getZoumaList();
+
+    List<SqlServerTest> getSqlServerTestByPage(Page page);
+
+}

+ 44 - 0
src/main/java/com/izouma/awesomeadmin/datasource/DataServiceImpl.java

@@ -0,0 +1,44 @@
+package com.izouma.awesomeadmin.datasource;
+
+import com.izouma.awesomeadmin.constant.AppConstant;
+import com.izouma.awesomeadmin.dao.DataMapper;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.SqlServerTest;
+import com.izouma.awesomeadmin.model.SuperUser;
+import com.izouma.awesomeadmin.model.Zouma;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+// 默认DataServiceImpl下的所有方法均访问数据源1
+
+public class DataServiceImpl implements DataService {
+
+    @Autowired
+    private DataMapper dataMapper;
+
+    @Override
+    public List<SuperUser> getSuperUserList() {
+
+        return dataMapper.queryAllUsers();
+    }
+
+    @Override
+    public List<Zouma> getZoumaList() {
+        return dataMapper.queryZouma();
+    }
+
+    @Override
+
+    public List<SqlServerTest> getSqlServerTestByPage(Page page) {
+        Map<String, Object> parameter = new HashMap<String, Object>();
+        parameter.put(AppConstant.PAGE, page);
+
+        return dataMapper.getSqlServerTestByPage(parameter);
+    }
+
+}

+ 14 - 0
src/main/java/com/izouma/awesomeadmin/datasource/DataSource.java

@@ -0,0 +1,14 @@
+package com.izouma.awesomeadmin.datasource;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Target({TYPE, METHOD})
+@Retention(RUNTIME)
+public @interface DataSource {
+    String value();
+}

+ 67 - 0
src/main/java/com/izouma/awesomeadmin/datasource/DataSourceAspect.java

@@ -0,0 +1,67 @@
+package com.izouma.awesomeadmin.datasource;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
+
+@Component
+@Aspect
+public class DataSourceAspect {
+
+    @Pointcut("execution(public * com.izouma.awesomeadmin.dao..*(..)))")
+    public void pointcut() {
+    }
+
+
+    /**
+     * 拦截目标方法,获取由@DataSource指定的数据源标识,设置到线程存储中以便切换数据源
+     *
+     * @param point
+     * @throws Exception
+     */
+    @Before(value = "pointcut()")
+    public void intercept(JoinPoint point) {
+        //默认使用默认datasource
+        DynamicDataSourceHolder.setDataSource("dataSource");
+
+        Class<?> target = point.getTarget().getClass();
+        MethodSignature signature = (MethodSignature) point.getSignature();
+        // 默认使用目标类型的注解,如果没有则使用其实现接口的注解
+        for (Class<?> clazz : target.getInterfaces()) {
+            resolveDataSource(clazz, signature.getMethod());
+        }
+        resolveDataSource(target, signature.getMethod());
+    }
+
+    /**
+     * 提取目标对象方法注解和类型注解中的数据源标识
+     *
+     * @param clazz
+     * @param method
+     */
+    private void resolveDataSource(Class<?> clazz, Method method) {
+        try {
+
+            Class<?>[] types = method.getParameterTypes();
+            // 默认使用类型注解
+            if (clazz.isAnnotationPresent(DataSource.class)) {
+                DataSource source = clazz.getAnnotation(DataSource.class);
+                DynamicDataSourceHolder.setDataSource(source.value());
+            }
+            // 方法注解可以覆盖类型注解
+            Method m = clazz.getMethod(method.getName(), types);
+            if (m != null && m.isAnnotationPresent(DataSource.class)) {
+                DataSource source = m.getAnnotation(DataSource.class);
+                DynamicDataSourceHolder.setDataSource(source.value());
+            }
+        } catch (Exception e) {
+            System.out.println(clazz + ":" + e.getMessage());
+        }
+    }
+
+}

+ 13 - 0
src/main/java/com/izouma/awesomeadmin/datasource/DynamicDataSource.java

@@ -0,0 +1,13 @@
+package com.izouma.awesomeadmin.datasource;
+
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+public class DynamicDataSource extends AbstractRoutingDataSource {
+
+    @Override
+    protected Object determineCurrentLookupKey() {
+        // 从自定义的位置获取数据源标识
+        return DynamicDataSourceHolder.getDataSource();
+    }
+
+}

+ 20 - 0
src/main/java/com/izouma/awesomeadmin/datasource/DynamicDataSourceHolder.java

@@ -0,0 +1,20 @@
+package com.izouma.awesomeadmin.datasource;
+
+public class DynamicDataSourceHolder {
+    /**
+     * 注意:数据源标识保存在线程变量中,避免多线程操作数据源时互相干扰
+     */
+    private static final ThreadLocal<String> THREAD_DATA_SOURCE = new ThreadLocal<String>();
+
+    public static String getDataSource() {
+        return THREAD_DATA_SOURCE.get();
+    }
+
+    public static void setDataSource(String dataSource) {
+        THREAD_DATA_SOURCE.set(dataSource);
+    }
+
+    public static void clearDataSource() {
+        THREAD_DATA_SOURCE.remove();
+    }
+}

+ 144 - 0
src/main/java/com/izouma/awesomeadmin/dto/Page.java

@@ -0,0 +1,144 @@
+package com.izouma.awesomeadmin.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * 分页对应的实体类
+ */
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class Page {
+
+    private static int DEFAULT_PAGE_SIZE = 20;
+
+    /**
+     * 总条数
+     */
+    private int        totalNumber;
+
+    /**
+     * 当前第几页
+     */
+    private int        currentPage;
+
+    /**
+     * 总页数
+     */
+    private int        totalPage;
+
+    /**
+     * 每页显示条数
+     */
+    private int        pageNumber        = DEFAULT_PAGE_SIZE;
+
+    /**
+     * 数据库中limit的参数,从第几条开始取
+     */
+    private int        dbIndex;
+
+    /**
+     * 数据库中limit的参数,一共取多少条
+     */
+    private int        dbNumber;
+
+
+    /**
+     * 根据当前对象中属性值计算并设置相关属性值
+     */
+    public void count() {
+
+        // 计算总页数
+        int totalPageTemp = this.totalNumber / this.pageNumber;
+        int plus = (this.totalNumber % this.pageNumber) == 0 ? 0 : 1;
+        totalPageTemp = totalPageTemp + plus;
+        if (totalPageTemp <= 0) {
+            totalPageTemp = 1;
+        }
+        this.totalPage = totalPageTemp;
+
+        // 设置当前页数
+        // 当前页数小于1设置为1
+        if (this.currentPage < 1) {
+            this.currentPage = 1;
+        }
+
+        // 设置limit的参数
+        this.dbIndex = (this.currentPage - 1) * this.pageNumber;
+        this.dbNumber = this.pageNumber;
+    }
+
+
+    public int getTotalNumber() {
+
+        return totalNumber;
+    }
+
+
+    public void setTotalNumber(int totalNumber) {
+
+        this.totalNumber = totalNumber;
+        //记录总条数时进行操作
+        this.count();
+    }
+
+
+    public int getCurrentPage() {
+
+        return currentPage;
+    }
+
+
+    public void setCurrentPage(int currentPage) {
+
+        this.currentPage = currentPage;
+    }
+
+
+    public int getTotalPage() {
+
+        return totalPage;
+    }
+
+
+    public void setTotalPage(int totalPage) {
+
+        this.totalPage = totalPage;
+    }
+
+
+    public int getPageNumber() {
+
+        return pageNumber;
+    }
+
+
+    public void setPageNumber(int pageNumber) {
+
+        this.pageNumber = pageNumber;
+    }
+
+
+    public int getDbIndex() {
+
+        return dbIndex;
+    }
+
+
+    public void setDbIndex(int dbIndex) {
+
+        this.dbIndex = dbIndex;
+    }
+
+
+    public int getDbNumber() {
+
+        return dbNumber;
+    }
+
+
+    public void setDbNumber(int dbNumber) {
+
+        this.dbNumber = dbNumber;
+    }
+}

+ 74 - 0
src/main/java/com/izouma/awesomeadmin/dto/Result.java

@@ -0,0 +1,74 @@
+package com.izouma.awesomeadmin.dto;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * <p>封装json返回类型。</p>
+ *
+ * @author 姓名 <br />
+ * 更新履历 <br />
+ * 日期 : 姓名: 更新内容<br />
+ * @version 1.0
+ */
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class Result {
+
+    private boolean success;
+
+    private Object data;
+
+    private String error;
+
+
+    public Result(boolean success, Object data) {
+
+        this.success = success;
+        this.data = data;
+    }
+
+
+    public Result(boolean success, String error) {
+
+        this.success = success;
+        this.error = error;
+    }
+
+
+    public boolean isSuccess() {
+
+        return success;
+    }
+
+
+    public void setSuccess(boolean success) {
+
+        this.success = success;
+    }
+
+
+    public Object getData() {
+
+        return data;
+    }
+
+
+    public void setData(Object data) {
+
+        this.data = data;
+    }
+
+
+    public String getError() {
+
+        return error;
+    }
+
+
+    public void setError(String error) {
+
+        this.error = error;
+    }
+
+}

+ 80 - 0
src/main/java/com/izouma/awesomeadmin/dto/TreeNode.java

@@ -0,0 +1,80 @@
+package com.izouma.awesomeadmin.dto;
+
+import java.util.List;
+
+public class TreeNode {
+
+    private String id;
+
+    private String parentId;
+
+    private String name;
+
+    private List<TreeNode> children;
+
+    private Object extra;
+
+    public Object getExtra() {
+        return extra;
+    }
+
+    public void setExtra(Object extra) {
+        this.extra = extra;
+    }
+
+    public TreeNode(String id, String name, String parentId) {
+        this.id = id;
+        this.parentId = parentId;
+        this.name = name;
+    }
+
+    public TreeNode(String id, String name, TreeNode parent) {
+        this.id = id;
+        this.parentId = parent.getId();
+        this.name = name;
+    }
+
+
+    public String getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(String parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public List<TreeNode> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<TreeNode> children) {
+        this.children = children;
+    }
+
+    @Override
+    public String toString() {
+        return "TreeNode{" +
+                "id='" + id + '\'' +
+                ", parentId='" + parentId + '\'' +
+                ", name='" + name + '\'' +
+                ", children=" + children +
+                '}';
+    }
+
+}  

+ 32 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/AccessToken.java

@@ -0,0 +1,32 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+public class AccessToken {
+
+    private String token;
+
+    private int    expiresIn;
+
+
+    public String getToken() {
+
+        return token;
+    }
+
+
+    public void setToken(String token) {
+
+        this.token = token;
+    }
+
+
+    public int getExpiresIn() {
+
+        return expiresIn;
+    }
+
+
+    public void setExpiresIn(int expiresIn) {
+
+        this.expiresIn = expiresIn;
+    }
+}

+ 69 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/BaseMessage.java

@@ -0,0 +1,69 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+/**
+ * ��Ϣ����
+ * @author Stephen
+ *
+ */
+public class BaseMessage {
+
+    //���շ�΢�ź�
+    private String ToUserName;
+
+    //���ͷ�΢�ź�
+    private String FromUserName;
+
+    //����ʱ��
+    private long   CreateTime;
+
+    //��Ϣ����
+    private String MsgType;
+
+
+    public String getToUserName() {
+
+        return ToUserName;
+    }
+
+
+    public void setToUserName(String toUserName) {
+
+        ToUserName = toUserName;
+    }
+
+
+    public String getFromUserName() {
+
+        return FromUserName;
+    }
+
+
+    public void setFromUserName(String fromUserName) {
+
+        FromUserName = fromUserName;
+    }
+
+
+    public long getCreateTime() {
+
+        return CreateTime;
+    }
+
+
+    public void setCreateTime(long createTime) {
+
+        CreateTime = createTime;
+    }
+
+
+    public String getMsgType() {
+
+        return MsgType;
+    }
+
+
+    public void setMsgType(String msgType) {
+
+        MsgType = msgType;
+    }
+}

+ 54 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/CustomServiceMessage.java

@@ -0,0 +1,54 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CustomServiceMessage {
+	
+	private String touser;
+	
+	private String msgtype;
+	
+	private TextMessage text;
+	
+	private NewsMessage news;
+
+	public String getTouser() {
+		return touser;
+	}
+
+	
+	public NewsMessage getNews() {
+		return news;
+	}
+
+
+	public void setNews(NewsMessage news) {
+		this.news = news;
+	}
+
+
+	public void setTouser(String touser) {
+		this.touser = touser;
+	}
+
+	public String getMsgtype() {
+		return msgtype;
+	}
+
+	public void setMsgtype(String msgtype) {
+		this.msgtype = msgtype;
+	}
+
+	public TextMessage getText() {
+		return text;
+	}
+
+	public void setText(TextMessage text) {
+		this.text = text;
+	}
+
+	
+}

+ 18 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/Image.java

@@ -0,0 +1,18 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+public class Image {
+
+    private String MediaId;
+
+
+    public String getMediaId() {
+
+        return MediaId;
+    }
+
+
+    public void setMediaId(String mediaId) {
+
+        MediaId = mediaId;
+    }
+}

+ 18 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/ImageMessage.java

@@ -0,0 +1,18 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+public class ImageMessage extends BaseMessage {
+
+    private Image Image;
+
+
+    public Image getImage() {
+
+        return Image;
+    }
+
+
+    public void setImage(Image image) {
+
+        Image = image;
+    }
+}

+ 74 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/Music.java

@@ -0,0 +1,74 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+public class Music {
+
+    private String Title;
+
+    private String Description;
+
+    private String MusicUrl;
+
+    private String HQMusicUrl;
+
+    private String ThumbMediaId;
+
+
+    public String getTitle() {
+
+        return Title;
+    }
+
+
+    public void setTitle(String title) {
+
+        Title = title;
+    }
+
+
+    public String getDescription() {
+
+        return Description;
+    }
+
+
+    public void setDescription(String description) {
+
+        Description = description;
+    }
+
+
+    public String getMusicUrl() {
+
+        return MusicUrl;
+    }
+
+
+    public void setMusicUrl(String musicUrl) {
+
+        MusicUrl = musicUrl;
+    }
+
+
+    public String getHQMusicUrl() {
+
+        return HQMusicUrl;
+    }
+
+
+    public void setHQMusicUrl(String hQMusicUrl) {
+
+        HQMusicUrl = hQMusicUrl;
+    }
+
+
+    public String getThumbMediaId() {
+
+        return ThumbMediaId;
+    }
+
+
+    public void setThumbMediaId(String thumbMediaId) {
+
+        ThumbMediaId = thumbMediaId;
+    }
+}

+ 18 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/MusicMessage.java

@@ -0,0 +1,18 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+public class MusicMessage extends BaseMessage {
+
+    private Music Music;
+
+
+    public Music getMusic() {
+
+        return Music;
+    }
+
+
+    public void setMusic(Music music) {
+
+        Music = music;
+    }
+}

+ 58 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/News.java

@@ -0,0 +1,58 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+public class News {
+
+    private String Title;
+
+    private String Description;
+
+    private String Picurl;
+
+    private String Url;
+
+
+    public String getTitle() {
+
+        return Title;
+    }
+
+
+    public void setTitle(String title) {
+
+        Title = title;
+    }
+
+
+    public String getDescription() {
+
+        return Description;
+    }
+
+
+    public void setDescription(String description) {
+
+        Description = description;
+    }
+
+
+    public String getPicurl() {
+		return Picurl;
+	}
+
+
+	public void setPicurl(String picurl) {
+		Picurl = picurl;
+	}
+
+
+	public String getUrl() {
+
+        return Url;
+    }
+
+
+    public void setUrl(String url) {
+
+        Url = url;
+    }
+}

+ 25 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/NewsMessage.java

@@ -0,0 +1,25 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class NewsMessage {
+
+    private List <News> Articles;
+
+
+    public List <News> getArticles() {
+
+        return Articles;
+    }
+
+
+    public void setArticles(List <News> articles) {
+
+        Articles = articles;
+    }
+}

+ 24 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/TemplateData.java

@@ -0,0 +1,24 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+public class TemplateData {
+
+    private String value;  
+    private String color;  
+  
+    public String getValue() {  
+        return value;  
+    }  
+  
+    public void setValue(String value) {  
+        this.value = value;  
+    }  
+  
+    public String getColor() {  
+        return color;  
+    }  
+  
+    public void setColor(String color) {  
+        this.color = color;  
+    }  
+	
+}

+ 47 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/TemplateMessage.java

@@ -0,0 +1,47 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+import java.util.Map;
+
+public class TemplateMessage {
+	
+	 private String touser;  
+	  
+	    private String template_id;  
+	  
+	    private String url;  
+	  
+	    private Map<String, TemplateData> data;  
+	  
+	    public String getTouser() {  
+	        return touser;  
+	    }  
+	  
+	    public void setTouser(String touser) {  
+	        this.touser = touser;  
+	    }  
+	  
+	    public String getTemplate_id() {  
+	        return template_id;  
+	    }  
+	  
+	    public void setTemplate_id(String template_id) {  
+	        this.template_id = template_id;  
+	    }  
+	  
+	    public String getUrl() {  
+	        return url;  
+	    }  
+	  
+	    public void setUrl(String url) {  
+	        this.url = url;  
+	    }  
+	  
+	    public Map<String, TemplateData> getData() {  
+	        return data;  
+	    }  
+	  
+	    public void setData(Map<String, TemplateData> data) {  
+	        this.data = data;  
+	    }  
+
+}

+ 37 - 0
src/main/java/com/izouma/awesomeadmin/dto/wx/TextMessage.java

@@ -0,0 +1,37 @@
+package com.izouma.awesomeadmin.dto.wx;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class TextMessage extends BaseMessage {
+
+    private String Content;
+
+    private String MsgId;
+
+
+    public String getContent() {
+
+        return Content;
+    }
+
+
+    public void setContent(String content) {
+
+        Content = content;
+    }
+
+
+    public String getMsgId() {
+
+        return MsgId;
+    }
+
+
+    public void setMsgId(String msgId) {
+
+        MsgId = msgId;
+    }
+}

+ 31 - 0
src/main/java/com/izouma/awesomeadmin/frame/GenController.java

@@ -0,0 +1,31 @@
+package com.izouma.awesomeadmin.frame;
+
+import com.izouma.awesomeadmin.dto.Result;
+import com.izouma.awesomeadmin.web.BaseController;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+
+/**
+ * 自动生成控制类
+ * Suo Chen Cheng
+ */
+@Controller
+@RequestMapping("/gen")
+public class GenController extends BaseController {
+
+
+    @RequestMapping(value = "/byTable", method = RequestMethod.GET)
+    @ResponseBody
+    public Result byTable(@RequestParam(value = "tableName") String tableName) {
+
+
+
+        return new Result(true, "生成成功");
+    }
+
+
+}

+ 2026 - 0
src/main/java/com/izouma/awesomeadmin/frame/gen/GenEntity.java

@@ -0,0 +1,2026 @@
+package com.izouma.awesomeadmin.frame.gen;
+
+import com.izouma.awesomeadmin.frame.util.StringUtil;
+import com.izouma.awesomeadmin.util.PropertiesFileLoader;
+import org.apache.commons.lang.StringUtils;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.sql.*;
+import java.util.Date;
+
+
+public class GenEntity {
+
+    private static boolean f_util = false; // 是否需要导入包java.util.*
+    private static boolean f_sql = false; // 是否需要导入包java.sql.*
+    private static boolean f_math = false;//是否需要导入包 java.math.BigDecimal
+
+
+    public static void GenAll(TableParams tableParams) {
+
+        String[] colnames; // 列名数组
+        String[] colTypes; //列名类型数组
+        String[] colComments;//列名注释数组mybatis-generator-core
+
+        int[] colSizes; //列名大小数组
+
+        String PK_NAME = "id";//主键名
+        Connection con = null;
+
+        //查要生成实体类的表
+        String sql = "select * from " + tableParams.getTabelName();
+        PreparedStatement pStemt = null;
+        try {
+
+            PropertiesFileLoader propertiesFileLoader = new PropertiesFileLoader();
+            String JDBC_URL = propertiesFileLoader.getProperties("properties/jdbc.properties", "jdbc.url");
+            String JDBC_NAME = propertiesFileLoader.getProperties("properties/jdbc.properties", "jdbc.username");
+            String JDBC_PASS = propertiesFileLoader.getProperties("properties/jdbc.properties", "jdbc.password");
+            String JDBC_DRIVER = propertiesFileLoader.getProperties("properties/jdbc.properties", "jdbc.driverClassName");
+
+            try {
+                Class.forName(JDBC_DRIVER);
+            } catch (ClassNotFoundException e1) {
+                // TODO Auto-generated catch block
+                e1.printStackTrace();
+            }
+
+
+            //con = DriverManager.getConnection(JdbcConfig.URL, JdbcConfig.NAME, JdbcConfig.PASS);
+            con = DriverManager.getConnection(JDBC_URL, JDBC_NAME, JDBC_PASS);
+
+            pStemt = con.prepareStatement(sql);
+
+            ResultSetMetaData rsmd = pStemt.getMetaData();
+
+            ResultSet pkRSet = con.getMetaData().getPrimaryKeys(con.getCatalog().toUpperCase(),
+                    null, tableParams.getTabelName());
+
+            while (pkRSet.next()) {
+                System.out.println(pkRSet.getString("COLUMN_NAME"));
+                PK_NAME = pkRSet.getString("COLUMN_NAME");
+            }
+
+
+            int size = rsmd.getColumnCount();   //统计列
+            colComments = new String[size];
+            colnames = new String[size];
+            colTypes = new String[size];
+            colSizes = new int[size];
+            for (int i = 0; i < size; i++) {
+                colnames[i] = rsmd.getColumnName(i + 1);
+                colTypes[i] = rsmd.getColumnTypeName(i + 1);
+
+                if (colTypes[i].equalsIgnoreCase("datetime") || colTypes[i].equalsIgnoreCase("timestamp")) {
+                    f_util = true;
+                }
+                if (colTypes[i].equalsIgnoreCase("image") || colTypes[i].equalsIgnoreCase("text")) {
+                    f_sql = true;
+                }
+                if (colTypes[i].equalsIgnoreCase("decimal") || colTypes[i].equalsIgnoreCase("numeric")
+                        || colTypes[i].equalsIgnoreCase("real") || colTypes[i].equalsIgnoreCase("money")
+                        || colTypes[i].equalsIgnoreCase("smallmoney")) {
+                    f_math = true;
+                }
+                colSizes[i] = rsmd.getColumnDisplaySize(i + 1);
+            }
+
+
+            //获取注释
+            ResultSet rs = pStemt.executeQuery("show full columns from " + tableParams.getTabelName());
+            int j = 0;
+            while (rs.next()) {
+                colComments[j] = (rs.getString("Comment"));
+                j++;
+            }
+
+
+            //如果生成实体
+            if (tableParams.isModelFlag()) {
+
+                createModelFile(tableParams, colnames, colTypes, colComments);
+            }
+
+            //如果生成数据层
+            if (tableParams.isDaoFlag()) {
+
+                createDaoClassFile(tableParams);
+                createDaoXmlFile(tableParams, colnames, colTypes, PK_NAME);
+            }
+
+            //如果生成服务层
+            if (tableParams.isServiceFlag()) {
+
+                createServiceFile(tableParams, PK_NAME);
+                createServiceImplFile(tableParams, PK_NAME);
+            }
+
+            //如果生成控制层
+            if (tableParams.isControllerFlag()) {
+
+                createControllerFile(tableParams, PK_NAME);
+            }
+
+
+            //如果生成JSP
+            if (tableParams.isJspFlag()) {
+                createVueByPageFile(tableParams, PK_NAME, colnames, colComments);
+                createVueEditFile(tableParams, PK_NAME, colnames, colComments);
+            }
+
+            //关闭链接
+            pStemt.close();
+            pkRSet.close();
+            con.close();
+
+        } catch (SQLException e) {
+            e.printStackTrace();
+        } finally {
+
+
+        }
+    }
+
+    private static void createJspEditFile(TableParams tableParams, String pk_name, String[] colnames) {
+        String jspEditContent = parseJspEdit(tableParams.getTabelName(), pk_name, colnames);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/" + changeToFolder(tableParams.getJspTargetPackage()) + StringUtil.underlineToCamel(tableParams.getTabelName()) + ".jsp";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(jspEditContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private static String parseJspEdit(String tabelName, String pkName, String[] colnames) {
+
+        StringBuffer sb = new StringBuffer();
+
+
+        String upTableName = StringUtil.initcap(tabelName);
+        String downTableName = StringUtil.underlineToCamel(tabelName);
+
+
+        sb.append("<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\r\n");
+        sb.append("<html>\r\n");
+
+        sb.append("<head>\r\n");
+        sb.append("\t<jsp:include page=\"head.jsp\"/>\r\n");
+
+
+        sb.append("\t<title>com.izouma.awesomeadmin.frame</title>\r\n");
+
+        sb.append("</head>\r\n");
+
+        sb.append("<body>\r\n");
+
+        sb.append("<jsp:include page=\"contentBefore.jsp\"/>\r\n");
+        sb.append("<template>\r\n");
+
+        sb.append("\t<el-form ref=\"form\" :model=\"row_info\" label-width=\"80px\">\r\n");
+
+
+        for (int i = 0; i < colnames.length; i++) {
+
+            if (!pkName.equalsIgnoreCase(colnames[i])) {
+
+                sb.append("\t\t<el-form-item label=\"" + StringUtil.underlineToCamel(colnames[i]) + "\">\r\n");
+                sb.append("\t\t\t<el-input v-model=\"row_info." + StringUtil.underlineToCamel(colnames[i]) + "\"></el-input>\r\n");
+                sb.append("\t\t</el-form-item>\r\n");
+            }
+
+        }
+
+
+        sb.append("\t\t<el-form-item>\r\n");
+        sb.append("\t\t\t<el-button type=\"primary\" @click=\"onSubmit\">{{edit?'保存':'立即创建'}}</el-button>\r\n");
+        sb.append("\t\t\t<el-button>取消</el-button>\r\n");
+        sb.append("\t</el-form-item>\r\n");
+        sb.append("\t</el-form>\r\n");
+        sb.append("</template>\r\n");
+
+
+        sb.append("<jsp:include page=\"contentAfter.jsp\"/>\r\n");
+        sb.append("</body>\r\n");
+
+
+        sb.append("<script>\r\n");
+
+        sb.append("\tfunction getQueryString(name) {\r\n");
+        sb.append("\t\tvar reg = new RegExp(\"(^|&)\" + name + \"=([^&]*)(&|$)\", \"i\");\r\n");
+        sb.append("\t\tvar r = window.location.search.substr(1).match(reg);\r\n");
+        sb.append("\t\tif (r != null) return unescape(r[2]);\r\n");
+        sb.append("\t\treturn null;\r\n");
+        sb.append("\t}\r\n");
+
+        sb.append("\tnew Vue({\r\n");
+        sb.append("\t\tel: '#app',\r\n");
+        sb.append("\t\tcreated: function () {\r\n");
+        sb.append("\t\t\tvar " + StringUtil.underlineToCamel(pkName) + " = getQueryString('" + StringUtil.underlineToCamel(pkName) + "');\r\n");
+        sb.append("\t\t\tif (" + StringUtil.underlineToCamel(pkName) + ") {\r\n");
+        sb.append("\t\t\t\t$.get({\r\n");
+        sb.append("\t\t\t\t\turl: '../" + downTableName + "/get" + upTableName + "',\r\n");
+        sb.append("\t\t\t\t\tdata: {\r\n");
+        sb.append("\t\t\t\t\t\t" + StringUtil.underlineToCamel(pkName) + ": " + StringUtil.underlineToCamel(pkName) + "\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t}).then(function (res) {\r\n");
+        sb.append("\t\t\t\t\tif (res.success) {\r\n");
+        sb.append("\t\t\t\t\t\tthis.edit = true;\r\n");
+        sb.append("\t\t\t\t\t\tthis.row_info = res.data;\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t}.bind(this));\r\n");
+        sb.append("\t\t\t}\r\n");
+        sb.append("\t\t},\r\n");
+
+        sb.append("\t\tdata: function () {\r\n");
+        sb.append("\t\t\treturn {\r\n");
+        sb.append("\t\t\t\tmenu: '0-0',\r\n");
+        sb.append("\t\t\t\tuser: {\r\n");
+        sb.append("\t\t\t\t\tid: '',\n\r\n");
+        sb.append("\t\t\t\t\tusername: 'admin',\r\n");
+        sb.append("\t\t\t\t\tavatar: ''\r\n");
+        sb.append("\t\t\t\t},\r\n");
+        sb.append("\t\t\t\tloading: false,\r\n");
+        sb.append("\t\t\t\tedit: false,\r\n");
+        sb.append("\t\t\t\ttab: 1,\r\n");
+        sb.append("\t\t\t\trow_info : {},\r\n");
+        sb.append("\t\t\t};\r\n");
+        sb.append("\t\t},\r\n");
+
+
+        sb.append("\t\tmethods: {\r\n");
+        sb.append("\t\t\tlogout: function () {\r\n");
+        sb.append("\t\t\t\tthis.$confirm('确定要注销吗?', '提示', {\r\n");
+        sb.append("\t\t\t\t\tconfirmButtonText: '确定',\r\n");
+        sb.append("\t\t\t\t\tcancelButtonText: '取消',\r\n");
+        sb.append("\t\t\t\t\ttype: 'info'\r\n");
+        sb.append("\t\t\t\t}).then(function () {\r\n");
+        sb.append("\t\t\t\t\tlocalStorage.removeItem('user');\r\n");
+        sb.append("\t\t\t\t\tthis.$router.push({path: '/login'});\r\n");
+        sb.append("\t\t\t\t}.bind(this)).catch(function (e) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\t\t});\r\n");
+        sb.append("\t\t\t},\r\n");
+
+        sb.append("\t\t\tonSubmit: function () {\r\n");
+        sb.append("\t\t\t\tvar data = JSON.parse(JSON.stringify(this.row_info));\r\n");
+        sb.append("\t\t\t\t$.post({\r\n");
+        sb.append("\t\t\t\t\turl: this.edit ? '../" + downTableName + "/update' : '../" + downTableName + "/save',\r\n");
+        sb.append("\t\t\t\t\tdata: data\r\n");
+        sb.append("\t\t\t\t}).then(function (res) {\r\n");
+        sb.append("\t\t\t\t\tif (res.success) {\r\n");
+        sb.append("\t\t\t\t\t\tif (!this.edit) {\r\n");
+        sb.append("\t\t\t\t\t\t\tthis.row_info." + StringUtil.underlineToCamel(pkName) + " = res.data;\r\n");
+        sb.append("\t\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t\t\tthis.edit = true;\r\n");
+        sb.append("\t\t\t\t\t\tthis.$message.success(this.edit ? '保存成功' : '创建成功');\r\n");
+        sb.append("\t\t\t\t\t} else {\r\n");
+        sb.append("\t\t\t\t\t\tthis.$message.error(this.edit ? '保存失败' : '创建失败');\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t}.bind(this))\r\n");
+        sb.append("\t\t\t},\r\n");
+
+        sb.append("\t\t}\r\n");
+        sb.append("\t})\r\n");
+        sb.append("</script>\r\n");
+        sb.append("</html>\r\n");
+
+
+        return sb.toString();
+
+
+    }
+
+    private static void createVueEditFile(TableParams tableParams, String pk_name, String[] colnames, String[] colComments) {
+        String jspEditContent = parseVueEdit(tableParams.getTabelName(), pk_name, colnames, colComments);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/" + changeToFolder(tableParams.getJspTargetPackage()) + StringUtil.underlineToCamel(tableParams.getTabelName()) + ".vue";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(jspEditContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 生成VUE 编辑页面
+     *
+     * @param tabelName
+     * @param pkName
+     * @param colnames
+     * @param colComments
+     * @return
+     */
+    private static String parseVueEdit(String tabelName, String pkName, String[] colnames, String[] colComments) {
+
+        StringBuffer sb = new StringBuffer();
+
+
+        String upTableName = StringUtil.initcap(tabelName);
+        String downTableName = StringUtil.underlineToCamel(tabelName);
+
+
+        sb.append("<template>\r\n");
+
+        sb.append("\t<div>\r\n");
+        sb.append("\t\t<el-form :model=\"formData\" :rules=\"rules\" ref=\"form\" label-width=\"80px\" label-position=\"right\" size=\"small\"\r\n");
+        sb.append("\t\t\t\tstyle=\"max-width: 500px;\">\r\n");
+
+
+        sb.append("\t\t\r\n");
+        sb.append("\t\t\r\n");
+
+
+        for (int i = 0; i < colnames.length; i++) {
+
+            if (!pkName.equalsIgnoreCase(colnames[i])) {
+
+                sb.append("\t\t\t<el-form-item prop=\"" + StringUtil.underlineToCamel(colnames[i]) +
+                        "\" label=\"" + (StringUtils.isNotEmpty(colComments[i]) ? colComments[i].split(":")[0] : colnames[i]) + "\">\r\n");
+                sb.append("\t\t\t\t<el-input v-model=\"formData." + StringUtil.underlineToCamel(colnames[i]) + "\"></el-input>\r\n");
+                sb.append("\t\t\t</el-form-item>\r\n");
+            }
+
+        }
+
+
+        sb.append("\t\t\t<el-form-item>\r\n");
+        sb.append("\t\t\t\t<el-button @click=\"onSave\" :loading=\"$store.state.fetchingData\" type=\"primary\">保存</el-button>\r\n");
+        sb.append("\t\t\t\t<el-button @click=\"$router.go(-1)\">取消</el-button>\r\n");
+        sb.append("\t\t\t</el-form-item>\r\n");
+        sb.append("\t\t</el-form>\r\n");
+        sb.append("\t</div>\r\n");
+        sb.append("</template>\r\n");
+
+
+        /**
+         * script
+         */
+        sb.append("<script>\r\n");
+
+        sb.append("\texport default {\r\n");
+
+        /**
+         * created
+         */
+        sb.append("\t\tcreated() {\r\n");
+        sb.append("\t\t\tif (this.$route.query.id) {\r\n");
+        sb.append("\t\t\t\tthis.$http.get({\r\n");
+        sb.append("\t\t\t\t\turl: '/" + downTableName + "/get" + upTableName + "',\r\n");
+        sb.append("\t\t\t\t\tdata: {\r\n");
+        sb.append("\t\t\t\t\t\tid: this.$route.query.id\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t}).then(res => {\r\n");
+        sb.append("\t\t\t\t\tif (res.success) {\r\n");
+        sb.append("\t\t\t\t\t\tthis.formData = res.data;\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t})\r\n");
+        sb.append("\t\t\t}\r\n");
+        sb.append("\t\t},\r\n");
+
+
+        /**
+         * data
+         */
+        sb.append("\t\tdata() {\r\n");
+        sb.append("\t\t\treturn {\r\n");
+        sb.append("\t\t\t\tsaving: false,\r\n");
+        sb.append("\t\t\t\tformData: {},\r\n");
+
+        sb.append("\t\t\t\trules: {\r\n");
+        for (int i = 0; i < colnames.length; i++) {
+
+            if (!pkName.equalsIgnoreCase(colnames[i])) {
+
+                sb.append("\t\t\t\t\t" + StringUtil.underlineToCamel(colnames[i]) + ": [\r\n");
+                sb.append("\t\t\t\t\t\t{required: true, message: '请输入" + (StringUtils.isNotEmpty(colComments[i]) ? colComments[i].split(":")[0] : colnames[i]) + "', trigger: 'blur'},\r\n");
+                sb.append("\t\t\t\t\t],\r\n");
+            }
+
+        }
+        sb.append("\t\t\t\t},\r\n");
+
+        sb.append("\t\t\t}\r\n");
+        sb.append("\t\t},\r\n");
+
+
+        /**
+         * methods
+         */
+        sb.append("\tmethods: {\r\n");
+
+        /**
+         * onSave
+         */
+        sb.append("\t\t\tonSave() {\r\n");
+        sb.append("\t\t\t\tthis.$refs.form.validate((valid) => {\r\n");
+        sb.append("\t\t\t\t\tif (valid) {\r\n");
+        sb.append("\t\t\t\t\t\tthis.submit();\r\n");
+        sb.append("\t\t\t\t\t} else {\r\n");
+        sb.append("\t\t\t\t\t\treturn false;\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t});\r\n");
+        sb.append("\t\t\t},\r\n");
+
+        /**
+         * submit
+         */
+        sb.append("\t\t\tsubmit() {\r\n");
+        sb.append("\t\t\t\tthis.$http.post({\r\n");
+        sb.append("\t\t\t\t\turl: this.formData.id ? '/" + downTableName + "/update' : '/" + downTableName + "/save',\r\n");
+        sb.append("\t\t\t\t\tdata: this.formData\r\n");
+        sb.append("\t\t\t\t}).then(res => {\r\n");
+        sb.append("\t\t\t\t\tif (res.success) {\r\n");
+        sb.append("\t\t\t\t\t\tthis.$message.success('成功');\r\n");
+        sb.append("\t\t\t\t\t\tthis.$router.go(-1);\r\n");
+        sb.append("\t\t\t\t\t} else {\r\n");
+        sb.append("\t\t\t\t\t\tthis.$message.warning('失败')\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t});\r\n");
+        sb.append("\t\t\t}\r\n");
+
+
+        sb.append("\t\t}\r\n");
+        sb.append("\t}\r\n");
+        sb.append("</script>\r\n");
+
+
+        sb.append("<style lang=\"less\" scoped>\r\n");
+        sb.append("\t\r\n");
+        sb.append("</style>\r\n");
+        sb.append("\r\n");
+
+
+        return sb.toString();
+
+
+    }
+
+
+    private static void createJspByPageFile(TableParams tableParams, String pkName, String[] colnames) {
+        String jspByPageContent = parseJspByPage(tableParams.getTabelName(), pkName, colnames);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/" + changeToFolder(tableParams.getJspTargetPackage()) + StringUtil.underlineToCamel(tableParams.getTabelName()) + "s.jsp";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(jspByPageContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private static String parseJspByPage(String tabelName, String pkName, String[] colnames) {
+
+        StringBuffer sb = new StringBuffer();
+
+
+        String downTableName = StringUtil.underlineToCamel(tabelName);
+
+
+        sb.append("<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\r\n");
+        sb.append("<html>\r\n");
+
+        sb.append("<head>\r\n");
+        sb.append("\t<jsp:include page=\"head.jsp\"/>\r\n");
+
+
+        sb.append("\t<title>com.izouma.awesomeadmin.frame</title>\r\n");
+
+        sb.append("</head>\r\n");
+
+        sb.append("<body>\r\n");
+
+        sb.append("<jsp:include page=\"contentBefore.jsp\"/>\r\n");
+        sb.append("<template>\r\n");
+
+        sb.append("\t<div class=\"filters\">\r\n");
+        sb.append("\t\t<el-button type=\"primary\" @click=\"create()\">创建</el-button>\r\n");
+        sb.append("\t\t<div class=\"num\"> 共{{totalNumber}}标签</div>\r\n");
+        sb.append("\t</div>\r\n");
+        sb.append("\r\n");
+
+        sb.append("\t<el-table :data=\"rows\"\r\n");
+        sb.append("\t\t\tref=\"table\"\r\n");
+        sb.append("\t\t\tstyle=\"width: 100%\"\r\n");
+        sb.append("\t\t\telement-loading-text=\"拼命加载中\"\r\n");
+        sb.append("\t\t\tstripe\r\n");
+        sb.append("\t\t\tv-loading=\"loading\">\r\n");
+
+        sb.append("\t\t\t<el-table-column\r\n");
+        sb.append("\t\t\t\ttype=\"index\"\r\n");
+        sb.append("\t\t\t\twidth=\"70\"\r\n");
+        sb.append("\t\t\t\talign=\"center\">\r\n");
+        sb.append("\t\t\t</el-table-column>\r\n");
+
+        for (int i = 0; i < colnames.length; i++) {
+
+            if (!pkName.equalsIgnoreCase(colnames[i])) {
+
+                sb.append("\t\t<el-table-column\r\n");
+                sb.append("\t\t\t\tprop=\"" + StringUtil.underlineToCamel(colnames[i]) + "\"\r\n");
+                sb.append("\t\t\t\tlabel=\"" + StringUtil.underlineToCamel(colnames[i]) + "\"\r\n");
+                sb.append("\t\t\t\talign=\"center\">\r\n");
+                sb.append("\t\t</el-table-column>\r\n");
+            }
+
+        }
+
+
+        sb.append("\t\t<el-table-column\r\n");
+        sb.append("\t\t\t\t:context=\"_self\"\r\n");
+        sb.append("\t\t\t\twidth=\"150\"\r\n");
+        sb.append("\t\t\t\tinline-template\r\n");
+        sb.append("\t\t\t\tlabel=\"操作\"\r\n");
+        sb.append("\t\t\t\talign=\"center\">\r\n");
+        sb.append("\t\t\t<div>\r\n");
+        sb.append("\t\t\t\t<el-button size=\"small\" @click=\"editRow(row)\">编辑</el-button>\r\n");
+        sb.append("\t\t\t\t<el-button size=\"small\" type=\"danger\" @click=\"deleteRow(row)\">删除</el-button>\r\n");
+        sb.append("\t\t\t</div>\r\n");
+        sb.append("\t\t</el-table-column>\r\n");
+
+        sb.append("\t</el-table>\r\n");
+
+        sb.append("\t<div class=\"pagination-wrapper\" v-show=\"!loading\">\r\n");
+        sb.append("\t\t<el-pagination layout=\"sizes, prev, pager, next\" :page-size=\"pageSize\" :total=\"totalNumber\"\r\n");
+        sb.append("\t\t\t\t\t:page-size=\"pageSize\"\r\n");
+        sb.append("\t\t\t\t\t:current-page=\"currentPage\" @current-change=\"pageChange\" @size-change=\"sizeChange\">\r\n");
+        sb.append("\t\t</el-pagination>\r\n");
+        sb.append("\t</div>\r\n");
+
+        sb.append("</template>\r\n");
+
+
+        sb.append("<jsp:include page=\"contentAfter.jsp\"/>\r\n");
+        sb.append("</body>\r\n");
+
+
+        sb.append("<script>\r\n");
+
+        sb.append("\tfunction getQueryString(name) {\r\n");
+        sb.append("\t\tvar reg = new RegExp(\"(^|&)\" + name + \"=([^&]*)(&|$)\", \"i\");\r\n");
+        sb.append("\t\tvar r = window.location.search.substr(1).match(reg);\r\n");
+        sb.append("\t\tif (r != null) return unescape(r[2]);\r\n");
+        sb.append("\t\treturn null;\r\n");
+        sb.append("\t}\r\n");
+
+        sb.append("\tnew Vue({\r\n");
+        sb.append("\t\tel: '#app',\r\n");
+        sb.append("\t\tcreated: function () {\r\n");
+        sb.append("\t\t\tthis.getRows();\r\n");
+        sb.append("\t\t},\r\n");
+
+        sb.append("\t\tdata: function () {\r\n");
+        sb.append("\t\t\treturn {\r\n");
+        sb.append("\t\t\t\tmenu: '0-0',\r\n");
+        sb.append("\t\t\t\tuser: {\r\n");
+        sb.append("\t\t\t\t\tid: '',\n\r\n");
+        sb.append("\t\t\t\t\tusername: 'admin',\r\n");
+        sb.append("\t\t\t\t\tavatar: ''\r\n");
+        sb.append("\t\t\t\t},\r\n");
+        sb.append("\t\t\t\tloading: false,\r\n");
+        sb.append("\t\t\t\ttotalNumber: 0,\r\n");
+        sb.append("\t\t\t\ttotalPage: 10,\r\n");
+        sb.append("\t\t\t\tcurrentPage: 1,\r\n");
+        sb.append("\t\t\t\tpageSize: 20,\r\n");
+        sb.append("\t\t\t\trows: []\r\n");
+        sb.append("\t\t\t};\r\n");
+        sb.append("\t\t},\r\n");
+
+
+        sb.append("\t\tmethods: {\r\n");
+        sb.append("\t\t\tlogout: function () {\r\n");
+        sb.append("\t\t\t\tthis.$confirm('确定要注销吗?', '提示', {\r\n");
+        sb.append("\t\t\t\t\tconfirmButtonText: '确定',\r\n");
+        sb.append("\t\t\t\t\tcancelButtonText: '取消',\r\n");
+        sb.append("\t\t\t\t\ttype: 'info'\r\n");
+        sb.append("\t\t\t\t}).then(function () {\r\n");
+        sb.append("\t\t\t\t\tlocalStorage.removeItem('user');\r\n");
+        sb.append("\t\t\t\t\tthis.$router.push({path: '/login'});\r\n");
+        sb.append("\t\t\t\t}.bind(this)).catch(function (e) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\t\t});\r\n");
+        sb.append("\t\t\t},\r\n");
+
+        sb.append("\t\t\tgetRows: function () {\r\n");
+        sb.append("\t\t\t\t$.get({\r\n");
+        sb.append("\t\t\t\t\turl: '../" + downTableName + "/page',\r\n");
+        sb.append("\t\t\t\t\tdata: {\r\n");
+        sb.append("\t\t\t\t\t\tcurrentPage: this.currentPage,\r\n");
+        sb.append("\t\t\t\t\t\tpageNumber: this.pageSize\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t}).then(function (res) {\r\n");
+        sb.append("\t\t\t\t\tif (res.success) {\r\n");
+        sb.append("\t\t\t\t\t\tthis.totalNumber = res.data.page.totalNumber;\r\n");
+        sb.append("\t\t\t\t\t\tthis.rows = res.data.pp;\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t}.bind(this))\r\n");
+        sb.append("\t\t\t},\r\n");
+
+
+        sb.append("\t\t\tpageChange: function (page) {\r\n");
+        sb.append("\t\t\t\tthis.currentPage = page;\r\n");
+        sb.append("\t\t\t\tthis.getRows();\r\n");
+        sb.append("\t\t\t},\r\n");
+
+        sb.append("\t\t\tsizeChange: function (size) {\r\n");
+        sb.append("\t\t\t\tthis.pageSize = size;\r\n");
+        sb.append("\t\t\t\tthis.getRows();\r\n");
+        sb.append("\t\t\t},\r\n");
+
+        sb.append("\t\t\teditRow: function (row) {\r\n");
+        sb.append("\t\t\t\twindow.location = '" + downTableName + "?" + StringUtil.underlineToCamel(pkName) + "=' + row." + StringUtil.underlineToCamel(pkName) + ";\r\n");
+        sb.append("\t\t\t},\r\n");
+
+
+        sb.append("\t\t\tdeleteRow: function (row) {\r\n");
+        sb.append("\t\t\t\tthis.$confirm('确定要删除吗?', '提示', {\r\n");
+        sb.append("\t\t\t\t\tconfirmButtonText: '删除',\r\n");
+        sb.append("\t\t\t\t\tcancelButtonText: '取消',\r\n");
+        sb.append("\t\t\t\t\ttype: 'warning'\r\n");
+        sb.append("\t\t\t\t}).then(function () {\r\n");
+        sb.append("\t\t\t\t\treturn $.post({\r\n");
+        sb.append("\t\t\t\t\t\turl: '../" + downTableName + "/del',\r\n");
+        sb.append("\t\t\t\t\t\tdata: {\r\n");
+        sb.append("\t\t\t\t\t\t\t" + StringUtil.underlineToCamel(pkName) + ": row." + StringUtil.underlineToCamel(pkName) + "\r\n");
+        sb.append("\t\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t\t})\r\n");
+        sb.append("\t\t\t\t}.bind(this)).then(function (res) {\r\n");
+        sb.append("\t\t\t\t\tif (res.success) {\r\n");
+        sb.append("\t\t\t\t\t\tthis.$message.success('删除成功');\r\n");
+        sb.append("\t\t\t\t\t\tthis.getRows();\r\n");
+        sb.append("\t\t\t\t\t} else {\r\n");
+        sb.append("\t\t\t\t\t\tthis.$message.error('删除失败');\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t}.bind(this)).catch(function () {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\t\t});\r\n");
+        sb.append("\t\t\t},\r\n");
+
+
+        sb.append("\t\t\tcreate: function () {\r\n");
+        sb.append("\t\t\t\twindow.location = '" + downTableName + "';\r\n");
+        sb.append("\t\t\t}\r\n");
+
+
+        sb.append("\t\t}\r\n");
+        sb.append("\t})\r\n");
+        sb.append("</script>\r\n");
+        sb.append("</html>\r\n");
+
+
+        return sb.toString();
+
+    }
+
+    private static void createVueByPageFile(TableParams tableParams, String pkName, String[] colnames, String[] colComments) {
+        String jspByPageContent = parseVueByPage(tableParams.getTabelName(), pkName, colnames, colComments);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/" + changeToFolder(tableParams.getJspTargetPackage()) + StringUtil.underlineToCamel(tableParams.getTabelName()) + "s.vue";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(jspByPageContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private static String parseVueByPage(String tabelName, String pkName, String[] colnames, String[] colComments) {
+
+        StringBuffer sb = new StringBuffer();
+
+
+        String downTableName = StringUtil.underlineToCamel(tabelName);
+
+
+        sb.append("<template>\r\n");
+        sb.append("\t<div>\r\n");
+
+        /**
+         * 筛选部分
+         */
+        sb.append("\t\t<div class=\"filters-container\">\r\n");
+
+        /**
+         * 关键字筛选
+         */
+        sb.append("\t\t\t<el-input placeholder=\"关键字\" size=\"small\" v-model=\"filter1\" clearable class=\"filter-item\"></el-input>\r\n");
+
+        /**
+         * 下拉框筛选
+         */
+        sb.append("\t\t\t<el-select placeholder=\"选择框\" size=\"small\" v-model=\"filter2\" clearable class=\"filter-item\">\r\n");
+        sb.append("\t\t\t\t<el-option\r\n");
+        sb.append("\t\t\t\t\tlabel=\"值1\"\r\n");
+        sb.append("\t\t\t\t\tvalue=\"item1\">\r\n");
+        sb.append("\t\t\t\t</el-option>\r\n");
+        sb.append("\t\t\t\t<el-option\r\n");
+        sb.append("\t\t\t\t\tlabel=\"值2\"\r\n");
+        sb.append("\t\t\t\t\tvalue=\"item1\">\r\n");
+        sb.append("\t\t\t\t</el-option>\r\n");
+        sb.append("\t\t\t</el-select>\r\n");
+
+
+        sb.append("\t\t\t<el-button @click=\"getData\" type=\"primary\" size=\"small\" icon=\"el-icon-search\" class=\"filter-item\">搜索\r\n");
+        sb.append("\t\t\t</el-button>\r\n");
+        sb.append("\t\t\t<el-button @click=\"$router.push('/" + downTableName + "')\" type=\"primary\" size=\"small\" icon=\"el-icon-edit\"\r\n");
+        sb.append("\t\t\t\t\t\tclass=\"filter-item\">添加\r\n");
+        sb.append("\t\t\t</el-button>\r\n");
+
+        sb.append("\t\t\t<el-dropdown trigger=\"click\" size=\"medium\" class=\"table-column-filter\">\r\n");
+        sb.append("\t\t\t\t<span>\r\n");
+        sb.append("\t\t\t\t筛选数据<i class=\"el-icon-arrow-down el-icon--right\"></i>\r\n");
+        sb.append("\t\t\t\t</span>\r\n");
+        sb.append("\t\t\t\t<el-dropdown-menu slot=\"dropdown\" class=\"table-column-filter-wrapper\">\r\n");
+        sb.append("\t\t\t\t\t<el-checkbox v-for=\"item in tableColumns\" :key=\"item.value\" v-model=\"item.show\">{{item.label}}\r\n");
+        sb.append("\t\t\t\t\t</el-checkbox>\r\n");
+        sb.append("\t\t\t\t</el-dropdown-menu>\r\n");
+        sb.append("\t\t\t</el-dropdown>\r\n");
+
+        sb.append("\t\t</div>\r\n");
+
+
+/**
+ * table
+ *
+ */
+        sb.append("\t\t<el-table\r\n");
+        sb.append("\t\t\t:data=\"tableData\"\r\n");
+        sb.append("\t\t\t:height=\"tableHeight\"\r\n");
+        sb.append("\t\t\tref=\"table\">\r\n");
+        sb.append("\t\t\t<el-table-column\r\n");
+        sb.append("\t\t\t\tv-if=\"multipleMode\"\r\n");
+        sb.append("\t\t\t\talign=\"center\"\r\n");
+        sb.append("\t\t\t\ttype=\"selection\"\r\n");
+        sb.append("\t\t\t\twidth=\"50\">\r\n");
+        sb.append("\t\t\t</el-table-column>\r\n");
+
+        sb.append("\t\t\t<el-table-column\r\n");
+        sb.append("\t\t\t\ttype=\"index\"\r\n");
+        sb.append("\t\t\t\tmin-width=\"50\"\r\n");
+        sb.append("\t\t\t\talign=\"center\">\r\n");
+        sb.append("\t\t\t</el-table-column>\r\n");
+
+
+        for (int i = 0; i < colnames.length; i++) {
+
+            if (!pkName.equalsIgnoreCase(colnames[i])) {
+
+                sb.append("\t\t\t<el-table-column\r\n");
+                sb.append("\t\t\t\tv-if=\"isColumnShow('" + StringUtil.underlineToCamel(colnames[i]) + "')\"\r\n");
+                sb.append("\t\t\t\tprop=\"" + StringUtil.underlineToCamel(colnames[i]) + "\"\r\n");
+                sb.append("\t\t\t\tlabel=\"" + (StringUtils.isNotEmpty(colComments[i]) ? colComments[i].split(":")[0] : colnames[i]) + "\"\r\n");
+                sb.append("\t\t\t\tmin-width=\"300\">\r\n");
+                sb.append("\t\t</el-table-column>\r\n");
+            }
+
+        }
+
+
+        sb.append("\t\t\t<el-table-column\r\n");
+        sb.append("\t\t\t\tlabel=\"操作\"\r\n");
+        sb.append("\t\t\t\talign=\"center\"\r\n");
+        sb.append("\t\t\t\tfixed=\"right\">\r\n");
+        sb.append("\t\t\t\t<template slot-scope=\"scope\">\r\n");
+        sb.append("\t\t\t\t\t<el-button @click=\"editRow(scope.row)\" type=\"primary\" size=\"mini\" plain>编辑</el-button>\r\n");
+        sb.append("\t\t\t\t</template>\r\n");
+        sb.append("\t\t\t</el-table-column>\r\n");
+
+        sb.append("\t\t</el-table>\r\n");
+
+
+        /**
+         * 翻页和批量操作
+         */
+
+
+        sb.append("\t\t<div class=\"pagination-wrapper\">\r\n");
+
+        sb.append("\t\t\t<div class=\"multiple-mode-wrapper\">\r\n");
+        sb.append("\t\t\t\t<el-button size=\"small\" v-if=\"!multipleMode\" @click=\"toggleMultipleMode(true)\">批量编辑</el-button>\r\n");
+        sb.append("\t\t\t\t<el-button-group v-else>\r\n");
+        sb.append("\t\t\t\t\t<el-button size=\"small\" @click=\"operation1\">批量操作1</el-button>\r\n");
+        sb.append("\t\t\t\t\t<el-button size=\"small\" @click=\"operation2\">批量操作2</el-button>\r\n");
+        sb.append("\t\t\t\t\t<el-button size=\"small\" @click=\"toggleMultipleMode(false)\">取消</el-button>\r\n");
+        sb.append("\t\t\t\t</el-button-group>\r\n");
+        sb.append("\t\t\t</div>\r\n");
+
+        sb.append("\t\t\t<el-pagination\r\n");
+        sb.append("\t\t\t\tbackground\r\n");
+        sb.append("\t\t\t\t@size-change=\"pageSizeChange\"\r\n");
+        sb.append("\t\t\t\t@current-change=\"currentPageChange\"\r\n");
+        sb.append("\t\t\t\t:current-page=\"currentPage\"\r\n");
+        sb.append("\t\t\t\t:page-sizes=\"[10, 20, 30, 40, 50]\"\r\n");
+        sb.append("\t\t\t\t:page-size=\"pageSize\"\r\n");
+        sb.append("\t\t\t\tlayout=\"total, sizes, prev, pager, next, jumper\"\r\n");
+        sb.append("\t\t\t\t:total=\"totalNumber\">\r\n");
+        sb.append("\t\t\t</el-pagination>\r\n");
+
+        sb.append("\t\t</div>\r\n");
+        sb.append("\t</div>\r\n");
+        sb.append("</template>\r\n");
+
+
+        /**
+         * script
+         */
+        sb.append("<script>\r\n");
+
+        sb.append("\timport {mapState} from 'vuex'\r\n");
+
+        sb.append("\r\n");
+        sb.append("\texport default {\r\n");
+
+        /**
+         * created
+         */
+        sb.append("\t\tcreated() {\r\n");
+        sb.append("\t\t\tthis.getData();\r\n");
+        sb.append("\t\t},\r\n");
+
+        /**
+         * data
+         */
+        sb.append("\t\tdata() {\r\n");
+        sb.append("\t\t\treturn {\r\n");
+        sb.append("\t\t\t\ttotalNumber: 0,\r\n");
+        sb.append("\t\t\t\ttotalPage: 10,\r\n");
+        sb.append("\t\t\t\tcurrentPage: 1,\r\n");
+        sb.append("\t\t\t\tpageSize: 20,\r\n");
+        sb.append("\t\t\t\ttableData: [],\r\n");
+        sb.append("\t\t\t\tfilter1: '',\r\n");
+        sb.append("\t\t\t\tfilter2: '',\r\n");
+
+        sb.append("\t\t\t\ttableColumns: [\r\n");
+
+        for (int i = 0; i < colnames.length; i++) {
+
+            if (!pkName.equalsIgnoreCase(colnames[i])) {
+
+                sb.append("\t\t\t\t{\r\n");
+                sb.append("\t\t\t\t\tlabel: '" + (StringUtils.isNotEmpty(colComments[i]) ? colComments[i].split(":")[0] : colnames[i]) + "',\r\n");
+                sb.append("\t\t\t\t\tvalue: '" + StringUtil.underlineToCamel(colnames[i]) + "',\r\n");
+                sb.append("\t\t\t\t\tshow: true\r\n");
+                sb.append("\t\t\t\t},\r\n");
+            }
+
+        }
+
+        sb.append("\t\t\t\t],\r\n");
+        sb.append("\t\t\t\tmultipleMode: false\r\n");
+        sb.append("\t\t\t}\r\n");
+        sb.append("\t\t},\r\n");
+
+
+        /**
+         * computed
+         */
+        sb.append("\t\tcomputed: {\r\n");
+        sb.append("\t\t\t...mapState(['tableHeight']),\r\n");
+        sb.append("\t\t\tselection() {\r\n");
+        sb.append("\t\t\t\treturn this.$refs.table.selection.map(i => i.id);\r\n");
+        sb.append("\t\t\t}\r\n");
+        sb.append("\t\t},\r\n");
+
+        /**
+         * methods
+         */
+        sb.append("\t\tmethods: {\r\n");
+
+        /**
+         * pageSizeChange
+         */
+        sb.append("\t\t\tpageSizeChange(size) {\r\n");
+        sb.append("\t\t\t\tthis.pageSize = size;\r\n");
+        sb.append("\t\t\t\tthis.getData();\r\n");
+        sb.append("\t\t\t},\r\n");
+
+
+        /**
+         * currentPageChange
+         */
+        sb.append("\t\t\tcurrentPageChange(page) {\r\n");
+        sb.append("\t\t\t\tthis.currentPage = page;\r\n");
+        sb.append("\t\t\t\tthis.getData();\r\n");
+        sb.append("\t\t\t},\r\n");
+
+        /**
+         * getData
+         */
+        sb.append("\t\t\tgetData() {\r\n");
+        sb.append("\t\t\t\tthis.$http.get({\r\n");
+        sb.append("\t\t\t\t\turl: '/" + downTableName + "/page',\r\n");
+        sb.append("\t\t\t\t\tdata: {\r\n");
+        sb.append("\t\t\t\t\t\tcurrentPage: this.currentPage,\r\n");
+        sb.append("\t\t\t\t\t\tpageNumber: this.pageSize\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t}).then(res => {\r\n");
+        sb.append("\t\t\t\t\tif (res.success) {\r\n");
+        sb.append("\t\t\t\t\t\tthis.totalNumber = res.data.page.totalNumber;\r\n");
+        sb.append("\t\t\t\t\t\tthis.tableData = res.data.pp;\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t})\r\n");
+        sb.append("\t\t\t},\r\n");
+
+
+        /**
+         * isColumnShow
+         */
+        sb.append("\t\t\tisColumnShow(column) {\r\n");
+        sb.append("\t\t\t\tvar row = this.tableColumns.find(i => i.value === column);\r\n");
+        sb.append("\t\t\t\treturn row ? row.show : false;\r\n");
+        sb.append("\t\t\t},\r\n");
+
+        /**
+         * toggleMultipleMode
+         */
+        sb.append("\t\t\ttoggleMultipleMode(multipleMode) {\r\n");
+        sb.append("\t\t\t\tthis.multipleMode = multipleMode;\r\n");
+        sb.append("\t\t\t\tif (!multipleMode) {\r\n");
+        sb.append("\t\t\t\t\tthis.$refs.table.clearSelection();\r\n");
+        sb.append("\t\t\t\t}\r\n");
+        sb.append("\t\t\t},\r\n");
+
+
+        /**
+         * editRow
+         */
+        sb.append("\t\t\teditRow(row) {\r\n");
+        sb.append("\t\t\t\tthis.$router.push({\r\n");
+        sb.append("\t\t\t\t\tpath: '/" + downTableName + "',\r\n");
+        sb.append("\t\t\t\t\tquery: {\r\n");
+        sb.append("\t\t\t\t\t\tid: row.id\r\n");
+        sb.append("\t\t\t\t\t}\r\n");
+        sb.append("\t\t\t\t})\r\n");
+        sb.append("\t\t\t},\r\n");
+
+
+        /**
+         * operation1
+         */
+        sb.append("\t\t\toperation1() {\r\n");
+        sb.append("\t\t\t\tthis.$notify({\r\n");
+        sb.append("\t\t\t\t\ttitle: '提示',\r\n");
+        sb.append("\t\t\t\t\tmessage: this.selection\r\n");
+        sb.append("\t\t\t\t});\r\n");
+        sb.append("\t\t\t},\r\n");
+
+
+        /**
+         * operation2
+         */
+        sb.append("\t\t\toperation2() {\r\n");
+        sb.append("\t\t\t\tthis.$message('操作2');\r\n");
+        sb.append("\t\t\t}\r\n");
+
+
+        sb.append("\t\t}\r\n");
+        sb.append("\t}\r\n");
+
+
+        sb.append("</script>\r\n");
+        sb.append("<style lang=\"less\" scoped>\r\n");
+        sb.append("\r\n");
+        sb.append("</style>\r\n");
+
+        sb.append("\r\n");
+
+        return sb.toString();
+
+    }
+
+    private static void createDaoClassFile(TableParams tableParams) {
+
+        String daoClassContent = parseDaoClass(tableParams);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/src/main/java/" + changeToFolder(tableParams.getDaoTargetPackage()) + StringUtil.initcap(tableParams.getTabelName()) + "Mapper.java";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(daoClassContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private static String parseDaoClass(TableParams tableParams) {
+
+        StringBuffer sb = new StringBuffer();
+
+
+        sb.append("package " + tableParams.getDaoTargetPackage() + ";\r\n");
+        sb.append("\r\n");
+
+        sb.append("import java.util.List;\r\n");
+        sb.append("import java.util.Map;\r\n");
+
+
+        sb.append("\r\n");
+
+        sb.append("import org.springframework.stereotype.Repository;\r\n");
+
+        sb.append("\r\n");
+
+        sb.append("import " + tableParams.getModelTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + ";\r\n");
+        sb.append("\r\n");
+        //注释部分
+        sb.append("/**\r\n");
+        sb.append(" * " + tableParams.getTabelName() + " Dao接口\r\n");
+        sb.append(" * " + new Date() + "  Suo Chen Cheng\r\n");
+        sb.append(" */ \r\n");
+
+        //注解
+        sb.append("@Repository(\"" + tableParams.getDaoTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + "Mapper\")\r\n");
+
+        //实体部分
+        sb.append("public interface " + StringUtil.initcap(tableParams.getTabelName()) + "Mapper {\r\n");
+
+        sb.append("\r\n");
+
+
+        sb.append("\tint deleteByPrimaryKey(Integer id);\r\n");
+        sb.append("\r\n");
+        sb.append("\tint insertSelective(" + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+        sb.append("\r\n");
+        sb.append("\t" + StringUtil.initcap(tableParams.getTabelName()) + " selectByPrimaryKey(Integer id);\r\n");
+        sb.append("\r\n");
+        sb.append("\tint updateByPrimaryKeySelective(" + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+        sb.append("\r\n");
+        sb.append("\tList <" + StringUtil.initcap(tableParams.getTabelName()) + "> queryAll" + StringUtil.initcap(tableParams.getTabelName()) + "(" + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+        sb.append("\r\n");
+        sb.append("\tList <" + StringUtil.initcap(tableParams.getTabelName()) + "> query" + StringUtil.initcap(tableParams.getTabelName()) + "sByPage(Map <String, Object> parameter);\r\n");
+        sb.append("\r\n");
+        sb.append("\tint delete(String id);\r\n");
+        sb.append("\r\n");
+        sb.append("\t" + StringUtil.initcap(tableParams.getTabelName()) + " query" + StringUtil.initcap(tableParams.getTabelName()) + "(" + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+
+
+        sb.append("}\r\n");
+
+        //System.out.println(sb.toString());
+        return sb.toString();
+    }
+
+    /**
+     * 生成 dao XML
+     *
+     * @param tableParams
+     * @param colnames
+     * @param colTypes
+     * @param pkName
+     */
+    private static void createDaoXmlFile(TableParams tableParams, String[] colnames, String[] colTypes, String pkName) {
+
+        String daoXmlContent = parseDaoXml(colnames, colTypes, tableParams, pkName);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/src/main/java/" + changeToFolder(tableParams.getDaoTargetPackage()) + StringUtil.initcap(tableParams.getTabelName()) + "Mapper.xml";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(daoXmlContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 解析 数据层 xml
+     *
+     * @param colnames
+     * @param colTypes
+     * @param tableParams
+     * @param pkName
+     * @return
+     */
+    private static String parseDaoXml(String[] colnames, String[] colTypes, TableParams tableParams, String pkName) {
+        StringBuffer sb = new StringBuffer();
+
+
+        sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n");
+        sb.append("<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\r\n");
+
+        sb.append("<mapper namespace=\"" + tableParams.getDaoTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + "Mapper\" >\r\n");
+
+
+        parseDaoBaseResultMap(sb, colnames, colTypes, pkName, tableParams);
+        parseDaoBaseColumnList(sb, colnames);
+        parseDaoSelectByPrimaryKey(sb, pkName, tableParams.getTabelName());
+        parseDaoDeleteByPrimaryKey(sb, pkName, tableParams.getTabelName());
+        parseDaoInsertSelective(sb, pkName, tableParams, colnames, colTypes);
+        parseDaoUpdateByPrimaryKeySelective(sb, pkName, tableParams, colnames, colTypes);
+        parseDaoQueryByPage(sb, pkName, tableParams, colnames);
+        parseDaoQueryAll(sb, pkName, tableParams, colnames);
+        parseDaoQueryOne(sb, tableParams, colnames);
+        parseDaoDelete(sb, tableParams.getTabelName(), pkName);
+
+        sb.append("</mapper>\r\n");
+        return sb.toString();
+    }
+
+    /**
+     * 逻辑删除
+     *
+     * @param sb
+     * @param tabelName
+     * @param pkName
+     */
+    private static void parseDaoDelete(StringBuffer sb, String tabelName, String pkName) {
+        sb.append("\t<update id=\"delete\">\r\n");
+        sb.append("\t\tUPDATE " + tabelName + " SET del_flag = 'Y'\r\n");
+        sb.append("\t\t<where>\r\n");
+        sb.append("\t\t\tAND " + pkName + " = #{" + StringUtil.underlineToCamel(pkName) + "}\r\n");
+        sb.append("\t\t</where>\r\n");
+        sb.append("\t</update>\r\n");
+
+    }
+
+    /**
+     * 解析,查询一个
+     *
+     * @param sb
+     * @param tableParams
+     * @param colnames
+     */
+    private static void parseDaoQueryOne(StringBuffer sb, TableParams tableParams, String[] colnames) {
+        sb.append("\t<select id=\"query" + StringUtil.initcap(tableParams.getTabelName()) + "\" parameterType=\"java.util.Map\" resultType=\"" + tableParams.getModelTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + "\">\r\n");
+        sb.append("\t\tselect <include refid=\"Base_Column_List\"/> from " + tableParams.getTabelName() + "\r\n");
+        sb.append("\t\t<where>\r\n");
+        sb.append("\t\t\tand del_flag = 'N'\r\n");
+
+
+        for (int i = 0; i < colnames.length; i++) {
+
+
+            sb.append("\t\t\t<if test=\"" + StringUtil.underlineToCamel(colnames[i]) + " != null and !&quot;&quot;.equals(" + StringUtil.underlineToCamel(colnames[i]) + ")\">\r\n");
+            sb.append("\t\t\t\tand " + colnames[i] + " = #{" + StringUtil.underlineToCamel(colnames[i]) + "}\t\n");
+            sb.append("\t\t\t</if>\r\n");
+
+        }
+
+
+        sb.append("\t\t</where>\r\n");
+        sb.append("\t\tLIMIT 1\r\n");
+        sb.append("\t</select>\r\n");
+    }
+
+    /**
+     * 解析,查询所有
+     *
+     * @param sb
+     * @param pkName
+     * @param tableParams
+     * @param colnames
+     */
+    private static void parseDaoQueryAll(StringBuffer sb, String pkName, TableParams tableParams, String[] colnames) {
+
+        sb.append("\t<select id=\"queryAll" + StringUtil.initcap(tableParams.getTabelName()) + "\" parameterType=\"java.util.Map\" resultType=\"" + tableParams.getModelTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + "\">\r\n");
+        sb.append("\t\tselect <include refid=\"Base_Column_List\"/> from " + tableParams.getTabelName() + "\r\n");
+        sb.append("\t\t<where>\r\n");
+        sb.append("\t\t\tand del_flag = 'N'\r\n");
+
+
+        for (int i = 0; i < colnames.length; i++) {
+
+
+            sb.append("\t\t\t<if test=\"" + StringUtil.underlineToCamel(colnames[i]) + " != null and !&quot;&quot;.equals(" + StringUtil.underlineToCamel(colnames[i]) + ")\">\r\n");
+            sb.append("\t\t\t\tand " + colnames[i] + " = #{" + StringUtil.underlineToCamel(colnames[i]) + "}\t\n");
+            sb.append("\t\t\t</if>\r\n");
+
+        }
+
+
+        sb.append("\t\t</where>\r\n");
+        sb.append("\t\torder by " + pkName + " desc\r\n");
+        sb.append("\t</select>\r\n");
+    }
+
+    /**
+     * 解析,翻页查询
+     *
+     * @param sb
+     * @param pkName
+     * @param tableParams
+     * @param colnames
+     */
+    private static void parseDaoQueryByPage(StringBuffer sb, String pkName, TableParams tableParams, String[] colnames) {
+
+        sb.append("\t<select id=\"query" + StringUtil.initcap(tableParams.getTabelName()) + "sByPage\" parameterType=\"java.util.Map\" resultType=\"" + tableParams.getModelTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + "\">\r\n");
+        sb.append("\t\tselect <include refid=\"Base_Column_List\"/> from " + tableParams.getTabelName() + "\r\n");
+        sb.append("\t\t<where>\r\n");
+        sb.append("\t\t\tand del_flag = 'N'\r\n");
+
+
+        for (int i = 0; i < colnames.length; i++) {
+
+
+            sb.append("\t\t\t<if test=\"record." + StringUtil.underlineToCamel(colnames[i]) + " != null and !&quot;&quot;.equals(record." + StringUtil.underlineToCamel(colnames[i]) + ")\">\r\n");
+            sb.append("\t\t\t\tand " + colnames[i] + " = #{record." + StringUtil.underlineToCamel(colnames[i]) + "}\t\n");
+            sb.append("\t\t\t</if>\r\n");
+
+        }
+
+
+        sb.append("\t\t</where>\r\n");
+        sb.append("\t\torder by " + pkName + " desc\r\n");
+        sb.append("\t</select>\r\n");
+
+    }
+
+    /**
+     * 解析,根据主键更新字段
+     *
+     * @param sb
+     * @param pkName
+     * @param tableParams
+     * @param colnames
+     * @param colTypes
+     */
+    private static void parseDaoUpdateByPrimaryKeySelective(StringBuffer sb, String pkName, TableParams tableParams, String[] colnames, String[] colTypes) {
+        sb.append("\t<update id=\"updateByPrimaryKeySelective\" parameterType=\"" + tableParams.getModelTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + "\" >\r\n");
+        sb.append("\t\tupdate " + tableParams.getTabelName() + "\r\n");
+        sb.append("\t\t<set >\r\n");
+
+
+        for (int i = 0; i < colnames.length; i++) {
+
+            if (!pkName.equalsIgnoreCase(colnames[i])) {
+
+                sb.append("\t\t\t<if test=\"" + StringUtil.underlineToCamel(colnames[i]) + " != null\" >\r\n");
+                sb.append("\t\t\t\t" + colnames[i] + " = #{" + StringUtil.underlineToCamel(colnames[i]) + ",jdbcType=" + StringUtil.sqlType2JdbcType(colTypes[i]) + "},\t\n");
+                sb.append("\t\t\t</if>\r\n");
+            }
+
+        }
+
+        sb.append("\t\t</set>\r\n");
+        sb.append("\t\twhere " + pkName + " = #{" + StringUtil.underlineToCamel(pkName) + ",jdbcType=INTEGER}\r\n");
+        sb.append("\t</update>\r\n");
+    }
+
+    /**
+     * 解析,插入数据
+     *
+     * @param sb
+     * @param pkName
+     * @param tableParams
+     * @param colnames
+     * @param colTypes
+     */
+    private static void parseDaoInsertSelective(StringBuffer sb, String pkName, TableParams tableParams, String[] colnames, String[] colTypes) {
+        sb.append("\t<insert id=\"insertSelective\" parameterType=\"" + tableParams.getModelTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + "\" useGeneratedKeys=\"true\" keyProperty=\"" + StringUtil.underlineToCamel(pkName) + "\">\r\n");
+        sb.append("\t\tinsert into " + tableParams.getTabelName() + "\r\n");
+        sb.append("\t\t<trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\r\n");
+
+
+        for (int i = 0; i < colnames.length; i++) {
+
+            sb.append("\t\t\t<if test=\"" + StringUtil.underlineToCamel(colnames[i]) + " != null\" >\r\n");
+            sb.append("\t\t\t\t" + colnames[i] + ",\t\n");
+            sb.append("\t\t\t</if>\r\n");
+
+        }
+
+        sb.append("\t\t</trim>\r\n");
+        sb.append("\t\t<trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\r\n");
+        for (int i = 0; i < colnames.length; i++) {
+
+            sb.append("\t\t\t<if test=\"" + StringUtil.underlineToCamel(colnames[i]) + " != null\" >\r\n");
+            sb.append("\t\t\t\t#{" + StringUtil.underlineToCamel(colnames[i]) + ",jdbcType=" + StringUtil.sqlType2JdbcType(colTypes[i]) + "},\t\n");
+            sb.append("\t\t\t</if>\r\n");
+
+        }
+
+        sb.append("\t\t</trim>\r\n");
+        sb.append("\t</insert>\r\n");
+
+    }
+
+    /**
+     * 解析,根据主键删除
+     *
+     * @param sb
+     * @param pkName
+     * @param tabelName
+     */
+    private static void parseDaoDeleteByPrimaryKey(StringBuffer sb, String pkName, String tabelName) {
+
+        sb.append("\t<delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\r\n");
+        sb.append("\t\tdelete from " + tabelName + "\r\n");
+        sb.append("\t\twhere " + pkName + " = #{" + StringUtil.underlineToCamel(pkName) + ",jdbcType=INTEGER}\r\n");
+        sb.append("\t</delete>\r\n");
+    }
+
+    /**
+     * 解析根据主键查询
+     *
+     * @param sb
+     * @param pkName
+     * @param tabelName
+     */
+    private static void parseDaoSelectByPrimaryKey(StringBuffer sb, String pkName, String tabelName) {
+        sb.append("\t<select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\r\n");
+        sb.append("\t\tselect\r\n");
+        sb.append("\t\t<include refid=\"Base_Column_List\" />\r\n");
+        sb.append("\t\tfrom " + tabelName + "\r\n");
+        sb.append("\t\twhere " + pkName + " = #{" + StringUtil.underlineToCamel(pkName) + ",jdbcType=INTEGER}\r\n");
+        sb.append("\t</select>\r\n");
+
+    }
+
+    /**
+     * 解析baseColumnList
+     *
+     * @param sb
+     * @param colnames
+     */
+    private static void parseDaoBaseColumnList(StringBuffer sb, String[] colnames) {
+
+        sb.append("\t<sql id=\"Base_Column_List\" >\r\n");
+        sb.append("\t\t");
+        for (int i = 0; i < colnames.length; i++) {
+
+
+            if (i == colnames.length - 1) {
+
+                sb.append(" " + colnames[i] + "\r\n");
+            } else {
+
+                sb.append(" " + colnames[i] + ",");
+            }
+
+        }
+
+        sb.append("\t</sql>\r\n");
+
+    }
+
+    /**
+     * 解析BaseResultMap
+     *
+     * @param sb
+     * @param colnames
+     * @param colTypes
+     * @param pkName
+     * @param tableParams
+     */
+    private static void parseDaoBaseResultMap(StringBuffer sb, String[] colnames, String[] colTypes, String pkName, TableParams tableParams) {
+        sb.append("\t<resultMap id=\"BaseResultMap\" type=\"" + tableParams.getModelTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + "\" >\r\n");
+        sb.append("\t\t<id column=\"" + pkName + "\" property=\"" + StringUtil.underlineToCamel(pkName) + "\" jdbcType=\"INTEGER\" />\r\n");
+        for (int i = 0; i < colnames.length; i++) {
+
+            if (!pkName.equalsIgnoreCase(colnames[i])) {
+
+                sb.append("\t\t<result column=\"" + colnames[i] + "\" property=\"" + StringUtil.underlineToCamel(colnames[i]) + "\" jdbcType=\"" + StringUtil.sqlType2JdbcType(colTypes[i]) + "\" />\r\n");
+            }
+
+        }
+
+        sb.append("\t</resultMap>\r\n");
+    }
+
+    private static void createServiceFile(TableParams tableParams, String pkName) {
+        String serviceContent = parseService(tableParams, pkName);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/src/main/java/" + changeToFolder(tableParams.getServiceTargetPackage()) + StringUtil.initcap(tableParams.getTabelName()) + "Service.java";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(serviceContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 生成service interface
+     *
+     * @param tableParams
+     * @param pkName
+     * @return
+     */
+    private static String parseService(TableParams tableParams, String pkName) {
+
+        StringBuffer sb = new StringBuffer();
+
+
+        sb.append("package " + tableParams.getServiceTargetPackage() + ";\r\n");
+        sb.append("\r\n");
+
+        sb.append("import java.util.List;\r\n");
+
+        sb.append("\r\n");
+
+        sb.append("import " + tableParams.getBasePackage() + ".dto.Page;\r\n");
+        sb.append("import " + tableParams.getModelTargetPackage() + "." + StringUtil.initcap(tableParams.getTabelName()) + ";\r\n");
+
+        sb.append("\r\n");
+
+        //注释部分
+        sb.append("/**\r\n");
+        sb.append(" * " + tableParams.getTabelName() + " service接口类\r\n");
+        sb.append(" * " + new Date() + "  Suo Chen Cheng\r\n");
+        sb.append(" */ \r\n");
+
+        //实体部分
+        sb.append("public interface " + StringUtil.initcap(tableParams.getTabelName()) + "Service {\r\n");
+        sb.append("\r\n");
+
+
+        sb.append("\tList <" + StringUtil.initcap(tableParams.getTabelName()) + "> get" + StringUtil.initcap(tableParams.getTabelName()) + "List(" + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+        sb.append("\r\n");
+
+        sb.append("\tList <" + StringUtil.initcap(tableParams.getTabelName()) + "> get" + StringUtil.initcap(tableParams.getTabelName()) + "ByPage(Page page, " + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+        sb.append("\r\n");
+
+        sb.append("\t" + StringUtil.initcap(tableParams.getTabelName()) + " get" + StringUtil.initcap(tableParams.getTabelName()) + "ById(String " + StringUtil.underlineToCamel(pkName) + ");\r\n");
+        sb.append("\r\n");
+
+        sb.append("\t" + StringUtil.initcap(tableParams.getTabelName()) + " get" + StringUtil.initcap(tableParams.getTabelName()) + "(" + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+        sb.append("\r\n");
+
+        sb.append("\tboolean create" + StringUtil.initcap(tableParams.getTabelName()) + "(" + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+        sb.append("\r\n");
+
+        sb.append("\tboolean delete" + StringUtil.initcap(tableParams.getTabelName()) + "(String " + StringUtil.underlineToCamel(pkName) + ");\r\n");
+        sb.append("\r\n");
+
+        sb.append("\tboolean update" + StringUtil.initcap(tableParams.getTabelName()) + "(" + StringUtil.initcap(tableParams.getTabelName()) + " record);\r\n");
+        sb.append("\r\n");
+
+        sb.append("}\r\n");
+
+        return sb.toString();
+
+    }
+
+    private static void createServiceImplFile(TableParams tableParams, String pkName) {
+        String serviceImplContent = parseServiceImpl(tableParams, pkName);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/src/main/java/" + changeToFolder(tableParams.getImplTargetPackage()) + StringUtil.initcap(tableParams.getTabelName()) + "ServiceImpl.java";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(serviceImplContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private static String parseServiceImpl(TableParams tableParams, String pkName) {
+        StringBuffer sb = new StringBuffer();
+
+        String upTableName = StringUtil.initcap(tableParams.getTabelName());
+        String downTableName = StringUtil.underlineToCamel(tableParams.getTabelName());
+
+        sb.append("package " + tableParams.getImplTargetPackage() + ";\r\n");
+        sb.append("\r\n");
+
+        sb.append("import java.util.HashMap;\r\n");
+        sb.append("import java.util.List;\r\n");
+        sb.append("import java.util.Map;\r\n");
+
+        sb.append("\r\n");
+
+        sb.append("import org.apache.log4j.Logger;\r\n");
+        sb.append("import org.springframework.beans.factory.annotation.Autowired;\r\n");
+        sb.append("import org.springframework.stereotype.Service;\r\n");
+        sb.append("\r\n");
+
+
+        sb.append("import " + tableParams.getBasePackage() + ".constant.AppConstant;\r\n");
+        sb.append("import " + tableParams.getDaoTargetPackage() + "." + upTableName + "Mapper;\r\n");
+        sb.append("import " + tableParams.getBasePackage() + ".dto.Page;\r\n");
+        sb.append("import " + tableParams.getModelTargetPackage() + "." + upTableName + ";\r\n");
+        sb.append("import " + tableParams.getServiceTargetPackage() + "." + upTableName + "Service;\r\n");
+
+        sb.append("\r\n");
+
+        //注释部分
+        sb.append("/**\r\n");
+        sb.append(" * " + tableParams.getTabelName() + " service接口实现类\r\n");
+        sb.append(" * " + new Date() + "  Suo Chen Cheng\r\n");
+        sb.append(" */ \r\n");
+
+        //实体部分
+        sb.append("@Service\r\n");
+        sb.append("public class " + upTableName + "ServiceImpl implements " + upTableName + "Service {\r\n");
+        sb.append("\r\n");
+
+
+        //日志部分
+        sb.append("\tprivate static Logger   logger = Logger.getLogger(" + upTableName + "ServiceImpl.class);\r\n");
+        sb.append("\r\n");
+
+
+        //引入mapper
+        sb.append("\t@Autowired\r\n");
+        sb.append("\tprivate " + upTableName + "Mapper " + downTableName + "Mapper;\r\n");
+        sb.append("\r\n");
+
+
+        //get ALL
+        sb.append("\t@Override\r\n");
+        sb.append("\tpublic List <" + upTableName + "> get" + upTableName + "List(" + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tlogger.info(\"get" + upTableName + "List\");\r\n");
+        sb.append("\t\ttry {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\treturn " + downTableName + "Mapper.queryAll" + upTableName + "(record);\r\n");
+        sb.append("\t\t} catch (Exception e) {\r\n");
+        sb.append("\t\t\tlogger.error(\"get" + upTableName + "List\", e);\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\r\n");
+        sb.append("\t\treturn null;\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+        //ByPage
+        sb.append("\t@Override\r\n");
+        sb.append("\tpublic List <" + upTableName + "> get" + upTableName + "ByPage(Page page, " + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tlogger.info(\"get" + upTableName + "ByPage\");\r\n");
+        sb.append("\t\ttry {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\tMap <String, Object> parameter = new HashMap <String, Object>();\r\n");
+        sb.append("\t\t\tparameter.put(\"record\", record);\r\n");
+        sb.append("\t\t\tparameter.put(AppConstant.PAGE, page);\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\treturn " + downTableName + "Mapper.query" + upTableName + "sByPage(parameter);\r\n");
+        sb.append("\t\t} catch (Exception e) {\r\n");
+        sb.append("\t\t\tlogger.error(\"get" + upTableName + "ByPage\", e);\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\r\n");
+        sb.append("\t\treturn null;\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //selectByPrimaryKey
+        sb.append("\t@Override\r\n");
+        sb.append("\tpublic " + upTableName + " get" + upTableName + "ById(String " + StringUtil.underlineToCamel(pkName) + ") {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tlogger.info(\"get" + upTableName + "ById\");\r\n");
+        sb.append("\t\ttry {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\treturn " + downTableName + "Mapper.selectByPrimaryKey(Integer.valueOf(" + StringUtil.underlineToCamel(pkName) + "));\r\n");
+        sb.append("\t\t} catch (Exception e) {\r\n");
+        sb.append("\t\t\tlogger.error(\"get" + upTableName + "ById\", e);\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\r\n");
+        sb.append("\t\treturn null;\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //getOne
+        sb.append("\t@Override\r\n");
+        sb.append("\tpublic " + upTableName + " get" + upTableName + "(" + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tlogger.info(\"get" + upTableName + "\");\r\n");
+        sb.append("\t\ttry {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\treturn " + downTableName + "Mapper.query" + upTableName + "(record);\r\n");
+        sb.append("\t\t} catch (Exception e) {\r\n");
+        sb.append("\t\t\tlogger.error(\"get" + upTableName + "\", e);\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\r\n");
+        sb.append("\t\treturn null;\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //create
+        sb.append("\t@Override\r\n");
+        sb.append("\tpublic boolean create" + upTableName + "(" + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tlogger.info(\"create" + upTableName + "\");\r\n");
+        sb.append("\t\ttry {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\tint updates = " + downTableName + "Mapper.insertSelective(record);\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\tif (updates > 0) {\r\n");
+        sb.append("\t\t\t\treturn true;\r\n");
+        sb.append("\t\t\t}\r\n");
+        sb.append("\t\t} catch (Exception e) {\r\n");
+        sb.append("\t\t\tlogger.error(\"create" + upTableName + "\", e);\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\r\n");
+        sb.append("\t\treturn false;\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //delete
+        sb.append("\t@Override\r\n");
+        sb.append("\tpublic boolean delete" + upTableName + "(String " + StringUtil.underlineToCamel(pkName) + ") {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tlogger.info(\"delete" + upTableName + "\");\r\n");
+        sb.append("\t\ttry {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\tint updates = " + downTableName + "Mapper.delete(" + StringUtil.underlineToCamel(pkName) + ");\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\tif (updates > 0) {\r\n");
+        sb.append("\t\t\t\treturn true;\r\n");
+        sb.append("\t\t\t}\r\n");
+        sb.append("\t\t} catch (Exception e) {\r\n");
+        sb.append("\t\t\tlogger.error(\"delete" + upTableName + "\", e);\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\r\n");
+        sb.append("\t\treturn false;\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //update
+        sb.append("\t@Override\r\n");
+        sb.append("\tpublic boolean update" + upTableName + "(" + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tlogger.info(\"update" + upTableName + "\");\r\n");
+        sb.append("\t\ttry {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\tint updates = " + downTableName + "Mapper.updateByPrimaryKeySelective(record);\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t\tif (updates > 0) {\r\n");
+        sb.append("\t\t\t\treturn true;\r\n");
+        sb.append("\t\t\t}\r\n");
+        sb.append("\t\t} catch (Exception e) {\r\n");
+        sb.append("\t\t\tlogger.error(\"update" + upTableName + "\", e);\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\r\n");
+        sb.append("\t\treturn false;\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+        sb.append("}\r\n");
+
+        return sb.toString();
+    }
+
+    private static void createControllerFile(TableParams tableParams, String pkName) {
+        String controllerContent = parseController(tableParams, pkName);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/src/main/java/" + changeToFolder(tableParams.getControllerTargetPackage()) + StringUtil.initcap(tableParams.getTabelName()) + "Controller.java";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(controllerContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 控制类
+     *
+     * @param tableParams
+     * @param pkName
+     * @return
+     */
+    private static String parseController(TableParams tableParams, String pkName) {
+
+        StringBuffer sb = new StringBuffer();
+
+        String upTableName = StringUtil.initcap(tableParams.getTabelName());
+        String downTableName = StringUtil.underlineToCamel(tableParams.getTabelName());
+
+        sb.append("package " + tableParams.getControllerTargetPackage() + ";\r\n");
+        sb.append("\r\n");
+
+        sb.append("import java.util.HashMap;\r\n");
+        sb.append("import java.util.List;\r\n");
+        sb.append("import java.util.Map;\r\n");
+
+        sb.append("\r\n");
+
+        sb.append("import org.springframework.beans.factory.annotation.Autowired;\r\n");
+        sb.append("import org.springframework.stereotype.Controller;\r\n");
+        sb.append("import org.springframework.web.bind.annotation.RequestMapping;\r\n");
+        sb.append("import org.springframework.web.bind.annotation.RequestMethod;\r\n");
+        sb.append("import org.springframework.web.bind.annotation.RequestParam;\r\n");
+        sb.append("import org.springframework.web.bind.annotation.ResponseBody;\r\n");
+        sb.append("\r\n");
+
+
+        sb.append("import " + tableParams.getBasePackage() + ".constant.AppConstant;\r\n");
+        sb.append("import " + tableParams.getBasePackage() + ".dto.Page;\r\n");
+        sb.append("import " + tableParams.getBasePackage() + ".dto.Result;\r\n");
+        sb.append("import " + tableParams.getModelTargetPackage() + "." + upTableName + ";\r\n");
+        sb.append("import " + tableParams.getServiceTargetPackage() + "." + upTableName + "Service;\r\n");
+
+        sb.append("\r\n");
+
+        //注释部分
+        sb.append("/**\r\n");
+        sb.append(" * " + tableParams.getTabelName() + " controller类\r\n");
+        sb.append(" * " + new Date() + "  Suo Chen Cheng\r\n");
+        sb.append(" */ \r\n");
+
+        //实体部分
+        sb.append("@Controller\r\n");
+        sb.append("@RequestMapping(\"/" + downTableName + "\")\r\n");
+        sb.append("public class " + upTableName + "Controller extends BaseController  {\r\n");
+        sb.append("\r\n");
+
+
+        //引入
+        sb.append("\t@Autowired\r\n");
+        sb.append("\tprivate " + upTableName + "Service " + downTableName + "Service;\r\n");
+        sb.append("\r\n");
+
+
+        //get ALL
+        sb.append("\t/**\r\n");
+        sb.append("\t * <p>获取全部记录。</p>\r\n");
+        sb.append("\t */ \r\n");
+        sb.append("\t@RequestMapping(value = \"/all\", method = RequestMethod.GET)\r\n");
+        sb.append("\t@ResponseBody\r\n");
+        sb.append("\tpublic Result all(" + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tList <" + upTableName + "> pp = " + downTableName + "Service.get" + upTableName + "List(record);\r\n");
+        sb.append("\t\treturn new Result(true, pp);\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //get By id
+        sb.append("\t/**\r\n");
+        sb.append("\t * <p>根据Id。</p>\r\n");
+        sb.append("\t */ \r\n");
+        sb.append("\t@RequestMapping(value = \"/get" + upTableName + "\", method = RequestMethod.GET)\r\n");
+        sb.append("\t@ResponseBody\r\n");
+        sb.append("\tpublic Result get" + upTableName + "(@RequestParam(required = false, value = \"" + StringUtil.underlineToCamel(pkName) + "\") String " + StringUtil.underlineToCamel(pkName) + ") {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t" + upTableName + " data = " + downTableName + "Service.get" + upTableName + "ById(" + StringUtil.underlineToCamel(pkName) + ");\r\n");
+        sb.append("\t\treturn new Result(true, data);\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //getOne
+        sb.append("\t/**\r\n");
+        sb.append("\t * <p>根据条件获取。</p>\r\n");
+        sb.append("\t */ \r\n");
+        sb.append("\t@RequestMapping(value = \"/getOne\", method = RequestMethod.GET)\r\n");
+        sb.append("\t@ResponseBody\r\n");
+        sb.append("\tpublic Result getOne(" + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\t" + upTableName + " data = " + downTableName + "Service.get" + upTableName + "(record);\r\n");
+        sb.append("\t\treturn new Result(true, data);\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //page
+        sb.append("\t/**\r\n");
+        sb.append("\t * <p>分页查询。</p>\r\n");
+        sb.append("\t */ \r\n");
+        sb.append("\t@RequestMapping(value = \"/page\", method = RequestMethod.GET)\r\n");
+        sb.append("\t@ResponseBody\r\n");
+        sb.append("\tpublic Result page(Page page, " + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tMap <String, Object> result = new HashMap <>();\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tList <" + upTableName + "> pp = " + downTableName + "Service.get" + upTableName + "ByPage(page, record);\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tresult.put(AppConstant.PAGE, page);\r\n");
+        sb.append("\t\tresult.put(\"pp\", pp);\r\n");
+        sb.append("\t\treturn new Result(true, result);\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //save
+        sb.append("\t/**\r\n");
+        sb.append("\t * <p>保存。</p>\r\n");
+        sb.append("\t */ \r\n");
+        sb.append("\t@RequestMapping(value = \"/save\", method = RequestMethod.POST)\r\n");
+        sb.append("\t@ResponseBody\r\n");
+        sb.append("\tpublic Result save(" + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tboolean num = " + downTableName + "Service.create" + upTableName + "(record);\r\n");
+        sb.append("\t\tif (num) {\r\n");
+        sb.append("\t\t\treturn new Result(true, record.get" + StringUtil.initcap(pkName) + "());\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\t\treturn new Result(false, \"保存异常\");\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+        //update
+        sb.append("\t/**\r\n");
+        sb.append("\t * <p>更新信息。</p>\r\n");
+        sb.append("\t */ \r\n");
+        sb.append("\t@RequestMapping(value = \"/update\", method = RequestMethod.POST)\r\n");
+        sb.append("\t@ResponseBody\r\n");
+        sb.append("\tpublic Result update" + upTableName + "(" + upTableName + " record) {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tboolean num = " + downTableName + "Service.update" + upTableName + "(record);\r\n");
+        sb.append("\t\tif (num) {\r\n");
+        sb.append("\t\t\treturn new Result(true, \"保存成功\");\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\t\treturn new Result(false, \"保存异常\");\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        //del
+        sb.append("\t/**\r\n");
+        sb.append("\t * <p>删除。</p>\r\n");
+        sb.append("\t */ \r\n");
+        sb.append("\t@RequestMapping(value = \"/del\", method = RequestMethod.POST)\r\n");
+        sb.append("\t@ResponseBody\r\n");
+        sb.append("\tpublic Result delete" + upTableName + "(@RequestParam(required = true, value = \"" + StringUtil.underlineToCamel(pkName) + "\") String " + StringUtil.underlineToCamel(pkName) + ") {\r\n");
+        sb.append("\r\n");
+        sb.append("\t\tboolean num = " + downTableName + "Service.delete" + upTableName + "(" + StringUtil.underlineToCamel(pkName) + ");\r\n");
+        sb.append("\t\tif (num) {\r\n");
+        sb.append("\t\t\treturn new Result(true, \"删除成功\");\r\n");
+        sb.append("\t\t}\r\n");
+        sb.append("\t\treturn new Result(false, \"删除异常\");\r\n");
+        sb.append("\t}\r\n");
+        sb.append("\r\n");
+
+
+        sb.append("}\r\n");
+
+        return sb.toString();
+
+
+    }
+
+    /**
+     * 生成对象model文件
+     *
+     * @param tableParams 表
+     * @param colnames    字段名
+     * @param colTypes    字段类型
+     * @param colComments 字段注释
+     */
+    private static void createModelFile(TableParams tableParams, String[] colnames, String[] colTypes, String[] colComments) {
+        String modelContent = parseModel(colnames, colTypes, tableParams, colComments);
+
+        try {
+            File directory = new File("");
+
+            String fileName = directory.getAbsolutePath() + "/src/main/java/" + changeToFolder(tableParams.getModelTargetPackage()) + StringUtil.initcap(tableParams.getTabelName()) + ".java";
+            System.out.println("文件路径:" + fileName);
+            FileWriter fw = new FileWriter(fileName);
+            PrintWriter pw = new PrintWriter(fw);
+            pw.println(modelContent);
+            pw.flush();
+            pw.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static String changeToFolder(String packageName) {
+
+        return packageName.replaceAll("\\.", "\\/") + "/";
+    }
+
+    /**
+     * 功能:生成实体类主体代码
+     *
+     * @return
+     */
+    public static String parseModel(String[] colnames, String[] colTypes, TableParams tableParams, String[] colComments) {
+        StringBuffer sb = new StringBuffer();
+
+
+        sb.append("package " + tableParams.getModelTargetPackage() + ";\r\n");
+        sb.append("\r\n");
+
+        //判断是否导入工具包
+        if (f_util) {
+            sb.append("import java.util.*;\r\n");
+        }
+        if (f_sql) {
+            sb.append("import java.sql.*;\r\n");
+        }
+
+        if (f_math) {
+            sb.append("import java.math.*;\r\n");
+        }
+
+        sb.append("\r\n");
+
+        sb.append("import com.fasterxml.jackson.annotation.JsonAutoDetect;\r\n");
+        sb.append("import com.fasterxml.jackson.annotation.JsonInclude;\r\n");
+
+        sb.append("\r\n");
+
+        //注释部分
+        sb.append("/**\r\n");
+        sb.append(" * " + tableParams.getTabelName() + " 实体类\r\n");
+        sb.append(" * " + new Date() + "  Suo Chen Cheng\r\n");
+        sb.append(" */ \r\n");
+
+        //注解
+        sb.append("@JsonAutoDetect\r\n");
+        sb.append("@JsonInclude(JsonInclude.Include.NON_NULL)\r\n");
+
+        //实体部分
+        sb.append("public class " + StringUtil.initcap(tableParams.getTabelName()) + "{\r\n");
+        sb.append("\r\n");
+
+        processModelAllAttrs(sb, colnames, colTypes, colComments);//属性
+        processModelAllMethod(sb, colnames, colTypes);//get set方法
+        sb.append("}\r\n");
+
+        //System.out.println(sb.toString());
+        return sb.toString();
+    }
+
+    /**
+     * 功能:生成所有属性
+     *
+     * @param sb
+     */
+    public static void processModelAllAttrs(StringBuffer sb, String[] colnames, String[] colTypes, String[] colComments) {
+
+        for (int i = 0; i < colnames.length; i++) {
+/**
+ *
+ */
+            sb.append("/**\r\n");
+            //获取注释第一个为列名,分割符 __
+            sb.append("* \t " + (StringUtils.isNotEmpty(colComments[i]) ? colComments[i] : colnames[i]) + "\r\n");
+            sb.append("*/\r\n");
+            sb.append("\tprivate " + StringUtil.sqlType2JavaType(colTypes[i]) + " " + StringUtil.underlineToCamel(colnames[i]) + ";\r\n\r\n");
+        }
+
+    }
+
+    /**
+     * 功能:生成所有方法
+     *
+     * @param sb
+     */
+    public static void processModelAllMethod(StringBuffer sb, String[] colnames, String[] colTypes) {
+
+        for (int i = 0; i < colnames.length; i++) {
+            sb.append("\tpublic void set" + StringUtil.initcap(colnames[i]) + "(" + StringUtil.sqlType2JavaType(colTypes[i]) + " " +
+                    StringUtil.underlineToCamel(colnames[i]) + "){\r\n");
+            sb.append("\t\tthis." + StringUtil.underlineToCamel(colnames[i]) + "=" + StringUtil.underlineToCamel(colnames[i]) + ";\r\n");
+            sb.append("\t}\r\n\r\n");
+            sb.append("\tpublic " + StringUtil.sqlType2JavaType(colTypes[i]) + " get" + StringUtil.initcap(colnames[i]) + "(){\r\n");
+            sb.append("\t\treturn " + StringUtil.underlineToCamel(colnames[i]) + ";\r\n");
+            sb.append("\t}\r\n\r\n");
+        }
+
+    }
+
+
+}

+ 16 - 0
src/main/java/com/izouma/awesomeadmin/frame/gen/JdbcConfig.java

@@ -0,0 +1,16 @@
+package com.izouma.awesomeadmin.frame.gen;
+
+/**
+ * 数据库连接
+ */
+public interface JdbcConfig {
+
+    //数据库连接
+    String URL = "jdbc:mysql://120.55.131.232:3306/jee_zouma";
+
+    String NAME = "microball";
+
+    String PASS = "2wsx@WSX#EDC";
+
+    String DRIVER = "com.mysql.jdbc.Driver";
+}

+ 60 - 0
src/main/java/com/izouma/awesomeadmin/frame/gen/RunTool.java

@@ -0,0 +1,60 @@
+package com.izouma.awesomeadmin.frame.gen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class RunTool {
+
+	/**
+	 * 出口 TODO
+	 *
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		// 表名
+		List<String> tableNames = new ArrayList<>();
+//		 tableNames.add("share");
+		 tableNames.add("gen_code_model");
+//		 tableNames.add("version_control");
+
+		for (int i = 0; i < tableNames.size(); i++) {
+			TableParams tableParams = new TableParams();
+
+			tableParams.setTabelName(tableNames.get(i));
+			// model路径
+			tableParams.setModelTargetPackage("com.izouma.awesomeadmin.model");
+			// dao路径
+			tableParams.setDaoTargetPackage("com.izouma.awesomeadmin.dao");
+			// service 路径
+			tableParams.setServiceTargetPackage("com.izouma.awesomeadmin.service");
+			// service实现 路径
+			tableParams.setImplTargetPackage("com.izouma.awesomeadmin.service.impl");
+			// controller 路径
+			tableParams.setControllerTargetPackage("com.izouma.awesomeadmin.web");
+
+			// base 路径
+			tableParams.setBasePackage("com.izouma.awesomeadmin");
+
+			// jsp 路径
+			tableParams.setJspTargetPackage("src.main.vue.src.pages");
+
+			// model 开关
+			tableParams.setModelFlag(true);
+			// dao 开关
+			tableParams.setDaoFlag(true);
+			// service 开关
+			tableParams.setServiceFlag(true);
+
+			// controller开关
+			tableParams.setControllerFlag(true);
+
+			// jsp开关
+			tableParams.setJspFlag(true);
+
+			// 执行方法
+			GenEntity.GenAll(tableParams);
+		}
+
+	}
+}

+ 170 - 0
src/main/java/com/izouma/awesomeadmin/frame/gen/TableParams.java

@@ -0,0 +1,170 @@
+package com.izouma.awesomeadmin.frame.gen;
+
+public class TableParams {
+
+    /**
+     * 表名
+     */
+    private String tabelName;
+
+    /**
+     * model 实例对象包名 (com.xxx.xxxx)
+     */
+    private String modelTargetPackage;
+
+    /**
+     * dao 数据库层包名
+     */
+    private String daoTargetPackage;
+
+    /**
+     * service 服务包名
+     */
+    private String serviceTargetPackage;
+
+    /**
+     * service 实现包名
+     */
+    private String implTargetPackage;
+
+    /**
+     * controller 控制类
+     */
+    private String controllerTargetPackage;
+
+    /**
+     * 后台管理jsp
+     */
+    private String jspTargetPackage;
+
+    /**
+     * 基础包  "com.xxx"
+     */
+    private String basePackage;
+
+    /**
+     * model开个,默认开
+     */
+    private boolean modelFlag = true;
+
+    /**
+     * dao开个,默认开
+     */
+    private boolean daoFlag = true;
+
+    /**
+     * service开个,默认开
+     */
+    private boolean serviceFlag = true;
+
+    /**
+     * controller开个,默认开
+     */
+    private boolean controllerFlag = true;
+
+    private boolean jspFlag = true;
+
+    public String getTabelName() {
+        return tabelName;
+    }
+
+    public void setTabelName(String tabelName) {
+        this.tabelName = tabelName;
+    }
+
+    public String getModelTargetPackage() {
+        return modelTargetPackage;
+    }
+
+    public void setModelTargetPackage(String modelTargetPackage) {
+        this.modelTargetPackage = modelTargetPackage;
+    }
+
+    public String getDaoTargetPackage() {
+        return daoTargetPackage;
+    }
+
+    public void setDaoTargetPackage(String daoTargetPackage) {
+        this.daoTargetPackage = daoTargetPackage;
+    }
+
+    public String getServiceTargetPackage() {
+        return serviceTargetPackage;
+    }
+
+    public void setServiceTargetPackage(String serviceTargetPackage) {
+        this.serviceTargetPackage = serviceTargetPackage;
+    }
+
+    public String getImplTargetPackage() {
+        return implTargetPackage;
+    }
+
+    public void setImplTargetPackage(String implTargetPackage) {
+        this.implTargetPackage = implTargetPackage;
+    }
+
+    public String getControllerTargetPackage() {
+        return controllerTargetPackage;
+    }
+
+    public void setControllerTargetPackage(String controllerTargetPackage) {
+        this.controllerTargetPackage = controllerTargetPackage;
+    }
+
+    public boolean isModelFlag() {
+        return modelFlag;
+    }
+
+    public void setModelFlag(boolean modelFlag) {
+        this.modelFlag = modelFlag;
+    }
+
+    public boolean isDaoFlag() {
+        return daoFlag;
+    }
+
+    public void setDaoFlag(boolean daoFlag) {
+        this.daoFlag = daoFlag;
+    }
+
+    public boolean isServiceFlag() {
+        return serviceFlag;
+    }
+
+    public void setServiceFlag(boolean serviceFlag) {
+        this.serviceFlag = serviceFlag;
+    }
+
+    public boolean isControllerFlag() {
+        return controllerFlag;
+    }
+
+    public void setControllerFlag(boolean controllerFlag) {
+        this.controllerFlag = controllerFlag;
+    }
+
+    public String getBasePackage() {
+        return basePackage;
+    }
+
+    public void setBasePackage(String basePackage) {
+        this.basePackage = basePackage;
+    }
+
+    public String getJspTargetPackage() {
+        return jspTargetPackage;
+    }
+
+    public void setJspTargetPackage(String jspTargetPackage) {
+        this.jspTargetPackage = jspTargetPackage;
+    }
+
+    public boolean isJspFlag() {
+        return jspFlag;
+    }
+
+    public void setJspFlag(boolean jspFlag) {
+        this.jspFlag = jspFlag;
+    }
+}

+ 158 - 0
src/main/java/com/izouma/awesomeadmin/frame/util/StringUtil.java

@@ -0,0 +1,158 @@
+package com.izouma.awesomeadmin.frame.util;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class StringUtil {
+
+    public static final char UNDERLINE = '_';
+
+    /**
+     * 驼峰格式字符串转换为下划线格式字符串
+     *
+     * @param param
+     * @return
+     */
+    public static String camelToUnderline(String param) {
+        if (param == null || "".equals(param.trim())) {
+            return "";
+        }
+        int len = param.length();
+        StringBuilder sb = new StringBuilder(len);
+        for (int i = 0; i < len; i++) {
+            char c = param.charAt(i);
+            if (Character.isUpperCase(c)) {
+                sb.append(UNDERLINE);
+                sb.append(Character.toLowerCase(c));
+            } else {
+                sb.append(c);
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 下划线格式字符串转换为驼峰格式字符串
+     *
+     * @param param
+     * @return
+     */
+    public static String underlineToCamel(String param) {
+        if (param == null || "".equals(param.trim())) {
+            return "";
+        }
+        int len = param.length();
+        StringBuilder sb = new StringBuilder(len);
+        for (int i = 0; i < len; i++) {
+            char c = param.charAt(i);
+            if (c == UNDERLINE) {
+                if (++i < len) {
+                    sb.append(Character.toUpperCase(param.charAt(i)));
+                }
+            } else {
+                sb.append(c);
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 下划线格式字符串转换为驼峰格式字符串2
+     *
+     * @param param
+     * @return
+     */
+    public static String underlineToCamel2(String param) {
+        if (param == null || "".equals(param.trim())) {
+            return "";
+        }
+        StringBuilder sb = new StringBuilder(param);
+        Matcher mc = Pattern.compile("_").matcher(param);
+        int i = 0;
+        while (mc.find()) {
+            int position = mc.end() - (i++);
+            sb.replace(position - 1, position + 1, sb.substring(position, position + 1).toUpperCase());
+        }
+        return sb.toString();
+    }
+
+    public static void main(String[] args) {
+        String aaa = "app_version_fld";
+        System.out.println(underlineToCamel(aaa));
+        System.out.println(underlineToCamel2(aaa));
+        aaa = "appVersionFld";
+        System.out.println(camelToUnderline(aaa));
+
+    }
+
+
+    /**
+     * 功能:将输入字符串的首字母改成大写
+     *
+     * @param str
+     * @return
+     */
+    public static String initcap(String str) {
+
+        str = underlineToCamel(str);
+        char[] ch = str.toCharArray();
+        if (ch[0] >= 'a' && ch[0] <= 'z') {
+            ch[0] = (char) (ch[0] - 32);
+        }
+
+        return new String(ch);
+    }
+
+
+    /**
+     * 功能:获得列的数据类型
+     *
+     * @param sqlType
+     * @return
+     */
+    public static String sqlType2JavaType(String sqlType) {
+
+        if (sqlType.equalsIgnoreCase("bit")) {
+            return "Boolean";
+        } else if (sqlType.equalsIgnoreCase("tinyint")) {
+            return "byte";
+        } else if (sqlType.equalsIgnoreCase("smallint")) {
+            return "short";
+        } else if (sqlType.equalsIgnoreCase("int")) {
+            return "Integer";
+        } else if (sqlType.equalsIgnoreCase("bigint")) {
+            return "Long";
+        } else if (sqlType.equalsIgnoreCase("float")) {
+            return "Double";
+        } else if (sqlType.equalsIgnoreCase("decimal") || sqlType.equalsIgnoreCase("numeric")
+                || sqlType.equalsIgnoreCase("real") || sqlType.equalsIgnoreCase("money")
+                || sqlType.equalsIgnoreCase("smallmoney")) {
+            return "BigDecimal";
+
+        } else if (sqlType.equalsIgnoreCase("varchar") || sqlType.equalsIgnoreCase("char")
+                || sqlType.equalsIgnoreCase("nvarchar") || sqlType.equalsIgnoreCase("nchar")
+                || sqlType.equalsIgnoreCase("text")) {
+            return "String";
+        } else if (sqlType.equalsIgnoreCase("datetime") || sqlType.equalsIgnoreCase("timestamp")) {
+            return "Date";
+
+        } else if (sqlType.equalsIgnoreCase("image")) {
+            return "Blod";
+        }
+
+        return sqlType;
+    }
+
+
+    public static String sqlType2JdbcType(String sqlType) {
+
+        if (sqlType.equalsIgnoreCase("int")) {
+            return "INTEGER";
+        } else if (sqlType.equalsIgnoreCase("datetime")) {
+            return "TIMESTAMP";
+        }
+        return sqlType;
+    }
+
+
+}

+ 36 - 0
src/main/java/com/izouma/awesomeadmin/interceptor/CrossFilter.java

@@ -0,0 +1,36 @@
+package com.izouma.awesomeadmin.interceptor;
+
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * Created by xiong on 2017/6/16.
+ */
+public class CrossFilter implements Filter {
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+
+    }
+
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+        HttpServletResponse response = (HttpServletResponse) servletResponse;
+        HttpServletRequest request = (HttpServletRequest) servletRequest;
+        String sessionId = request.getSession().getId();
+        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
+        response.setHeader("Access-Control-Allow-Methods", "*");
+        response.setHeader("Access-Control-Max-Age", "100");
+        response.setHeader("Access-Control-Allow-Headers", "Content-Type");
+        response.setHeader("Access-Control-Allow-Credentials", "true");
+        filterChain.doFilter(request, response);
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+}

+ 23 - 0
src/main/java/com/izouma/awesomeadmin/interceptor/CrossInterceptor.java

@@ -0,0 +1,23 @@
+package com.izouma.awesomeadmin.interceptor;
+
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Created by xiong on 2017/6/16.
+ */
+public class CrossInterceptor extends HandlerInterceptorAdapter {
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        response.addHeader("Access-Control-Allow-Origin", "*");
+        response.addHeader("Access-Control-Allow-Methods", "*");
+        response.addHeader("Access-Control-Max-Age", "100");
+        response.addHeader("Access-Control-Allow-Headers", "Content-Type");
+        response.addHeader("Access-Control-Allow-Credentials", "false");
+        return super.preHandle(request, response, handler);
+    }
+
+}

+ 137 - 0
src/main/java/com/izouma/awesomeadmin/interceptor/PageInterceptor.java

@@ -0,0 +1,137 @@
+package com.izouma.awesomeadmin.interceptor;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.ibatis.executor.parameter.ParameterHandler;
+import org.apache.ibatis.executor.statement.StatementHandler;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.plugin.Intercepts;
+import org.apache.ibatis.plugin.Invocation;
+import org.apache.ibatis.plugin.Plugin;
+import org.apache.ibatis.plugin.Signature;
+import org.apache.ibatis.reflection.DefaultReflectorFactory;
+import org.apache.ibatis.reflection.MetaObject;
+import org.apache.ibatis.reflection.SystemMetaObject;
+
+import com.izouma.awesomeadmin.constant.AppConstant;
+import com.izouma.awesomeadmin.dto.Page;
+
+/**
+ * <p>分页拦截器 </p>
+ *
+ * @author 姓名 <br />
+ * 更新履历 <br />
+ * 日期 : 姓名: 更新内容<br />
+ * @version 1.0
+ */
+
+@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class})})
+public class PageInterceptor implements Interceptor {
+
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+
+        StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
+        MetaObject metaObjet = MetaObject.forObject(statementHandler, SystemMetaObject.DEFAULT_OBJECT_FACTORY,
+                SystemMetaObject.DEFAULT_OBJECT_WRAPPER_FACTORY, new DefaultReflectorFactory());
+        MappedStatement mappedStatement = (MappedStatement) metaObjet.getValue("delegate.mappedStatement");
+        //配置文件中SQL语句的ID
+        String id = mappedStatement.getId();
+        //检查以ByPage结尾的id
+        if (id.matches(".+ByPage$")) {
+            BoundSql bounSql = statementHandler.getBoundSql();
+            //原始的SQL语句
+            String sql = bounSql.getSql();
+            Connection connection = (Connection) invocation.getArgs()[0];
+
+            //默认mysql数据库
+            //查询总条数的SQL语句
+            String countSql = "select count(1) from (" + sql + ") aliasForPage";
+
+            Page page = new Page();
+            Map<?, ?> parameter = (Map<?, ?>) bounSql.getParameterObject();
+            if (parameter != null) {
+
+                page = (Page) parameter.get(AppConstant.PAGE);
+            }
+
+
+            if ("SqlServer".equals(getDataBaseType(connection))) {
+
+                String baseSql = sql.substring(0, sql.toUpperCase().lastIndexOf("ORDER"));
+
+                countSql = "select count(1) from (" + baseSql + ") aliasForPage";
+
+            }
+
+
+            PreparedStatement countStatement = connection.prepareStatement(countSql);
+            ParameterHandler parameterHandler = (ParameterHandler) metaObjet.getValue("delegate.parameterHandler");
+            parameterHandler.setParameters(countStatement);
+            ResultSet rs = countStatement.executeQuery();
+            if (rs.next()) {
+                page.setTotalNumber(rs.getInt(1));
+            }
+
+            //改造后带分页查询的SQL语句
+            String pageSql = sql + " limit " + page.getDbIndex() + "," + page.getDbNumber();
+
+            if ("SqlServer".equals(getDataBaseType(connection))) {
+
+                //改造后带分页查询的SQL语句
+                pageSql = sql + " offset " + page.getDbIndex() + " row fetch next " + page.getDbNumber() + " row only ";
+
+            }
+
+            metaObjet.setValue("delegate.boundSql.sql", pageSql);
+
+        }
+        return invocation.proceed();
+    }
+
+
+    @Override
+    public Object plugin(Object target) {
+
+        return Plugin.wrap(target, this);
+    }
+
+
+    @Override
+    public void setProperties(Properties properties) {
+
+        // TODO Auto-generated method stub
+
+    }
+
+
+    /**
+     * 判断数据库类型
+     *
+     * @return
+     */
+    public static String getDataBaseType(Connection connection) {
+        //通过driverName是否包含关键字判断
+        try {
+            if (connection.getMetaData().getDriverName().toUpperCase()
+                    .indexOf("MYSQL") != -1) {
+                return "MySql";
+            } else if (connection.getMetaData().getDriverName().toUpperCase()
+                    .indexOf("SQL SERVER") != -1) {
+                //sqljdbc与sqljdbc4不同,sqlserver中间有空格
+                return "SqlServer";
+            }
+        } catch (SQLException e) {
+            e.printStackTrace();
+        }
+        return "-1";
+    }
+
+}

+ 38 - 0
src/main/java/com/izouma/awesomeadmin/model/AccessToken.java

@@ -0,0 +1,38 @@
+package com.izouma.awesomeadmin.model;
+
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AccessToken implements Serializable {
+    private String accessToken;
+    private String timeStamp;    //序列化忽略的属性,无论该成员变量是否有值    @JsonIgnore
+    private String extraProperty;
+
+    public String getAccessToken() {
+        return accessToken;
+    }
+
+    public void setAccessToken(String accessToken) {
+        this.accessToken = accessToken;
+    }
+
+    public String getTimeStamp() {
+        return timeStamp;
+    }
+
+    public void setTimeStamp(String timeStamp) {
+        this.timeStamp = timeStamp;
+    }
+
+    public String getExtraProperty() {
+        return extraProperty;
+    }
+
+    public void setExtraProperty(String extraProperty) {
+        this.extraProperty = extraProperty;
+    }
+}

+ 186 - 0
src/main/java/com/izouma/awesomeadmin/model/DepartInfo.java

@@ -0,0 +1,186 @@
+package com.izouma.awesomeadmin.model;
+
+import java.util.*;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * depart_info 实体类
+ * Thu Apr 26 10:56:37 CST 2018  Suo Chen Cheng
+ */ 
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class DepartInfo{
+
+/**
+* 	 id
+*/
+	private Integer id;
+
+/**
+* 	 部门名称
+*/
+	private String departName;
+
+/**
+* 	 上级部门id
+*/
+	private Integer parentId;
+
+/**
+* 	 所有上级id
+*/
+	private String allParentId;
+
+/**
+* 	 描述
+*/
+	private String description;
+
+/**
+* 	 部门代码
+*/
+	private String departCode;
+
+/**
+* 	 组织代码
+*/
+	private String orgCode;
+
+/**
+* 	 类型
+*/
+	private Integer type;
+
+/**
+* 	 备注
+*/
+	private String remark;
+
+/**
+* 	 排序
+*/
+	private Integer sort;
+
+/**
+* 	 del_flag
+*/
+	private String delFlag;
+
+/**
+* 	 create_time
+*/
+	private Date createTime;
+
+/**
+* 	 权限标识
+*/
+	private String permission;
+
+	public void setId(Integer id){
+		this.id=id;
+	}
+
+	public Integer getId(){
+		return id;
+	}
+
+	public void setDepartName(String departName){
+		this.departName=departName;
+	}
+
+	public String getDepartName(){
+		return departName;
+	}
+
+	public void setParentId(Integer parentId){
+		this.parentId=parentId;
+	}
+
+	public Integer getParentId(){
+		return parentId;
+	}
+
+	public void setAllParentId(String allParentId){
+		this.allParentId=allParentId;
+	}
+
+	public String getAllParentId(){
+		return allParentId;
+	}
+
+	public void setDescription(String description){
+		this.description=description;
+	}
+
+	public String getDescription(){
+		return description;
+	}
+
+	public void setDepartCode(String departCode){
+		this.departCode=departCode;
+	}
+
+	public String getDepartCode(){
+		return departCode;
+	}
+
+	public void setOrgCode(String orgCode){
+		this.orgCode=orgCode;
+	}
+
+	public String getOrgCode(){
+		return orgCode;
+	}
+
+	public void setType(Integer type){
+		this.type=type;
+	}
+
+	public Integer getType(){
+		return type;
+	}
+
+	public void setRemark(String remark){
+		this.remark=remark;
+	}
+
+	public String getRemark(){
+		return remark;
+	}
+
+	public Integer getSort() {
+		return sort;
+	}
+
+	public void setSort(Integer sort) {
+		this.sort = sort;
+	}
+
+	public void setDelFlag(String delFlag){
+		this.delFlag=delFlag;
+	}
+
+	public String getDelFlag(){
+		return delFlag;
+	}
+
+	public void setCreateTime(Date createTime){
+		this.createTime=createTime;
+	}
+
+	public Date getCreateTime(){
+		return createTime;
+	}
+
+	public void setPermission(String permission){
+		this.permission=permission;
+	}
+
+	public String getPermission(){
+		return permission;
+	}
+
+}
+

+ 179 - 0
src/main/java/com/izouma/awesomeadmin/model/GenCode.java

@@ -0,0 +1,179 @@
+package com.izouma.awesomeadmin.model;
+
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import java.util.List;
+
+/**
+ * gen_code_model 实体类
+ * Fri May 04 15:57:06 CST 2018  Suo Chen Cheng
+ */
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class GenCode {
+
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 表名
+     */
+    private String tableName;
+
+    /**
+     * 表名
+     */
+    private String className;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 是否生成表
+     */
+    private Boolean genTable;
+
+    /**
+     * 是否生成类
+     */
+    private Boolean genClass;
+
+    /**
+     * 是否生成列表页面
+     */
+    private Boolean genList;
+
+    /**
+     * 是否生成表单页面
+     */
+    private Boolean genForm;
+
+    /**
+     * 字段表id
+     */
+    private String fieldId;
+
+    /**
+     * java生成路径
+     */
+    private String javaPath;
+
+    /**
+     * vue生成路径
+     */
+    private String viewPath;
+
+    private List<TableField> fields;    // 表字段
+    private TableField       primaryField; //主键字段
+
+    public List<TableField> getFields() {
+        return fields;
+    }
+
+    public void setFields(List<TableField> fields) {
+        this.fields = fields;
+    }
+
+    public TableField getPrimaryField() {
+        return primaryField;
+    }
+
+    public void setPrimaryField(TableField primaryField) {
+        this.primaryField = primaryField;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setTableName(String tableName) {
+        this.tableName = tableName;
+    }
+
+    public String getTableName() {
+        return tableName;
+    }
+
+    public void setClassName(String className) {
+        this.className = className;
+    }
+
+    public String getClassName() {
+        return className;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setGenTable(Boolean genTable) {
+        this.genTable = genTable;
+    }
+
+    public Boolean getGenTable() {
+        return genTable;
+    }
+
+    public void setGenClass(Boolean genClass) {
+        this.genClass = genClass;
+    }
+
+    public Boolean getGenClass() {
+        return genClass;
+    }
+
+    public void setGenList(Boolean genList) {
+        this.genList = genList;
+    }
+
+    public Boolean getGenList() {
+        return genList;
+    }
+
+    public void setGenForm(Boolean genForm) {
+        this.genForm = genForm;
+    }
+
+    public Boolean getGenForm() {
+        return genForm;
+    }
+
+    public void setFieldId(String fieldId) {
+        this.fieldId = fieldId;
+    }
+
+    public String getFieldId() {
+        return fieldId;
+    }
+
+    public String getJavaPath() {
+        return javaPath;
+    }
+
+    public void setJavaPath(String javaPath) {
+        this.javaPath = javaPath;
+    }
+
+    public String getViewPath() {
+        return viewPath;
+    }
+
+    public void setViewPath(String viewPath) {
+        this.viewPath = viewPath;
+    }
+}
+

+ 121 - 0
src/main/java/com/izouma/awesomeadmin/model/GenTestTable.java

@@ -0,0 +1,121 @@
+package com.izouma.awesomeadmin.model;
+
+import java.util.*;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * gen_test_table 实体类
+ * Fri Apr 20 09:24:30 CST 2018  Suo Chen Cheng
+ */ 
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class GenTestTable{
+
+/**
+* 	 主键:id
+*/
+	private Integer id;
+
+/**
+* 	 我的:字段一
+*/
+	private String myColumn;
+
+/**
+* 	 测试:aaaxx
+*/
+	private String aaaTest;
+
+/**
+* 	 bbb标识: N 为xxx Y为yyy
+*/
+	private String bbbFlag;
+
+/**
+* 	 no_comment
+*/
+	private String noComment;
+
+/**
+* 	 创建时间
+*/
+	private Date createTime;
+
+/**
+* 	 更新时间
+*/
+	private Date updateTime;
+
+/**
+* 	 删除标识:N为未删除,Y为删除
+*/
+	private String delFlag;
+
+	public void setId(Integer id){
+		this.id=id;
+	}
+
+	public Integer getId(){
+		return id;
+	}
+
+	public void setMyColumn(String myColumn){
+		this.myColumn=myColumn;
+	}
+
+	public String getMyColumn(){
+		return myColumn;
+	}
+
+	public void setAaaTest(String aaaTest){
+		this.aaaTest=aaaTest;
+	}
+
+	public String getAaaTest(){
+		return aaaTest;
+	}
+
+	public void setBbbFlag(String bbbFlag){
+		this.bbbFlag=bbbFlag;
+	}
+
+	public String getBbbFlag(){
+		return bbbFlag;
+	}
+
+	public void setNoComment(String noComment){
+		this.noComment=noComment;
+	}
+
+	public String getNoComment(){
+		return noComment;
+	}
+
+	public void setCreateTime(Date createTime){
+		this.createTime=createTime;
+	}
+
+	public Date getCreateTime(){
+		return createTime;
+	}
+
+	public void setUpdateTime(Date updateTime){
+		this.updateTime=updateTime;
+	}
+
+	public Date getUpdateTime(){
+		return updateTime;
+	}
+
+	public void setDelFlag(String delFlag){
+		this.delFlag=delFlag;
+	}
+
+	public String getDelFlag(){
+		return delFlag;
+	}
+
+}
+

+ 106 - 0
src/main/java/com/izouma/awesomeadmin/model/PowerInfo.java

@@ -0,0 +1,106 @@
+package com.izouma.awesomeadmin.model;
+
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+
+/**
+ * power_info 实体类
+ * Wed Apr 11 11:04:02 CST 2018  Suo Chen Cheng
+ */ 
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class PowerInfo{
+
+	private Integer id;
+
+	private Integer roleId;
+
+	private Integer menuId;
+
+	private Integer canAdd;
+
+	private Integer canDelete;
+
+	private Integer canUpdate;
+
+	private Integer canSelect;
+
+	private String delFlag;
+	private String roleIdStr;
+
+	public String getRoleIdStr() {
+		return roleIdStr;
+	}
+
+	public void setRoleIdStr(String roleIdStr) {
+		this.roleIdStr = roleIdStr;
+	}
+
+	public void setId(Integer id){
+		this.id=id;
+	}
+
+	public Integer getId(){
+		return id;
+	}
+
+	public void setRoleId(Integer roleId){
+		this.roleId=roleId;
+	}
+
+	public Integer getRoleId(){
+		return roleId;
+	}
+
+	public void setMenuId(Integer menuId){
+		this.menuId=menuId;
+	}
+
+	public Integer getMenuId(){
+		return menuId;
+	}
+
+	public void setCanAdd(Integer canAdd){
+		this.canAdd=canAdd;
+	}
+
+	public Integer getCanAdd(){
+		return canAdd;
+	}
+
+	public void setCanDelete(Integer canDelete){
+		this.canDelete=canDelete;
+	}
+
+	public Integer getCanDelete(){
+		return canDelete;
+	}
+
+	public void setCanUpdate(Integer canUpdate){
+		this.canUpdate=canUpdate;
+	}
+
+	public Integer getCanUpdate(){
+		return canUpdate;
+	}
+
+	public void setCanSelect(Integer canSelect){
+		this.canSelect=canSelect;
+	}
+
+	public Integer getCanSelect(){
+		return canSelect;
+	}
+
+	public void setDelFlag(String delFlag){
+		this.delFlag=delFlag;
+	}
+
+	public String getDelFlag(){
+		return delFlag;
+	}
+
+}
+

+ 59 - 0
src/main/java/com/izouma/awesomeadmin/model/RongYunToken.java

@@ -0,0 +1,59 @@
+package com.izouma.awesomeadmin.model;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class RongYunToken {
+
+    private Long   id;
+
+    private Long   userId;
+
+    private String token;
+
+
+    public Long getId() {
+
+        return id;
+    }
+
+
+    public void setId(Long id) {
+
+        this.id = id;
+    }
+
+
+    public Long getUserId() {
+
+        return userId;
+    }
+
+
+    public void setUserId(Long userId) {
+
+        this.userId = userId;
+    }
+
+
+    public String getToken() {
+
+        return token;
+    }
+
+
+    public void setToken(String token) {
+
+        this.token = token;
+    }
+
+
+    @Override
+    public String toString() {
+
+        return "RongYunToken [id=" + id + ", userId=" + userId + ", token=" + token + "]";
+    }
+
+}

+ 42 - 0
src/main/java/com/izouma/awesomeadmin/model/SqlServerTest.java

@@ -0,0 +1,42 @@
+package com.izouma.awesomeadmin.model;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * sys_menu 实体类
+ * Tue Apr 10 18:09:44 CST 2018  Suo Chen Cheng
+ */
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SqlServerTest {
+
+    private String id;
+
+    private String dept;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getDept() {
+        return dept;
+    }
+
+    public void setDept(String dept) {
+        this.dept = dept;
+    }
+
+    @Override
+    public String toString() {
+        return "SqlServerTest{" +
+                "id='" + id + '\'' +
+                ", dept='" + dept + '\'' +
+                '}';
+    }
+}
+

+ 101 - 0
src/main/java/com/izouma/awesomeadmin/model/SuperUser.java

@@ -0,0 +1,101 @@
+package com.izouma.awesomeadmin.model;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SuperUser {
+
+    private Integer userId;
+
+    private String  userName;
+
+    private Integer power;
+
+    private String  password;
+
+    private String  profile;
+
+    private String  delFlag;
+
+
+    public String getDelFlag() {
+
+        return delFlag;
+    }
+
+
+    public void setDelFlag(String delFlag) {
+
+        this.delFlag = delFlag;
+    }
+
+
+    public Integer getUserId() {
+
+        return userId;
+    }
+
+
+    public void setUserId(Integer userId) {
+
+        this.userId = userId;
+    }
+
+
+    public String getUserName() {
+
+        return userName;
+    }
+
+
+    public void setUserName(String userName) {
+
+        this.userName = userName;
+    }
+
+
+    public Integer getPower() {
+
+        return power;
+    }
+
+
+    public void setPower(Integer power) {
+
+        this.power = power;
+    }
+
+
+    public String getPassword() {
+
+        return password;
+    }
+
+
+    public void setPassword(String password) {
+
+        this.password = password;
+    }
+
+
+    public String getProfile() {
+
+        return profile;
+    }
+
+
+    public void setProfile(String profile) {
+
+        this.profile = profile;
+    }
+
+
+    @Override
+    public String toString() {
+
+        return "SuperUser [userId=" + userId + ", userName=" + userName + ", power=" + power + ", password=" + password + ", profile=" + profile
+                + ", delFlag=" + delFlag + "]";
+    }
+}

+ 66 - 0
src/main/java/com/izouma/awesomeadmin/model/SysDatarule.java

@@ -0,0 +1,66 @@
+package com.izouma.awesomeadmin.model;
+
+import java.util.*;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * sys_datarule 实体类
+ * Tue Apr 17 10:44:06 CST 2018  Suo Chen Cheng
+ */ 
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysDatarule{
+
+	private Integer id;
+
+	private String dataruleName;
+
+	private Date createDate;
+
+	private String delFlag;
+	private String permission;
+
+	public String getPermission() {
+		return permission;
+	}
+
+	public void setPermission(String permission) {
+		this.permission = permission;
+	}
+
+	public void setId(Integer id){
+		this.id=id;
+	}
+
+	public Integer getId(){
+		return id;
+	}
+
+	public void setDataruleName(String dataruleName){
+		this.dataruleName=dataruleName;
+	}
+
+	public String getDataruleName(){
+		return dataruleName;
+	}
+
+	public void setCreateDate(Date createDate){
+		this.createDate=createDate;
+	}
+
+	public Date getCreateDate(){
+		return createDate;
+	}
+
+	public void setDelFlag(String delFlag){
+		this.delFlag=delFlag;
+	}
+
+	public String getDelFlag(){
+		return delFlag;
+	}
+
+}
+

+ 197 - 0
src/main/java/com/izouma/awesomeadmin/model/SysMenu.java

@@ -0,0 +1,197 @@
+package com.izouma.awesomeadmin.model;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * sys_menu 实体类
+ * Tue Apr 10 18:09:44 CST 2018  Suo Chen Cheng
+ */ 
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysMenu{
+
+	private Integer id;
+
+	private Integer parentId;
+
+	private String parentIds;
+
+	private String name;
+
+	private BigDecimal sort;
+
+	private String href;
+
+	private String target;
+
+	private String icon;
+
+	private String isShow;
+
+	private String permission;
+
+	private String createBy;
+
+	private Date createDate;
+
+	private String updateBy;
+
+	private Date updateDate;
+
+	private String remarks;
+
+	private String delFlag;
+
+	private String menuType;
+
+	public void setId(Integer id){
+		this.id=id;
+	}
+
+	public Integer getId(){
+		return id;
+	}
+
+	public void setParentId(Integer parentId){
+		this.parentId=parentId;
+	}
+
+	public Integer getParentId(){
+		return parentId;
+	}
+
+	public void setParentIds(String parentIds){
+		this.parentIds=parentIds;
+	}
+
+	public String getParentIds(){
+		return parentIds;
+	}
+
+	public void setName(String name){
+		this.name=name;
+	}
+
+	public String getName(){
+		return name;
+	}
+
+	public void setSort(BigDecimal sort){
+		this.sort=sort;
+	}
+
+	public BigDecimal getSort(){
+		return sort;
+	}
+
+	public void setHref(String href){
+		this.href=href;
+	}
+
+	public String getHref(){
+		return href;
+	}
+
+	public void setTarget(String target){
+		this.target=target;
+	}
+
+	public String getTarget(){
+		return target;
+	}
+
+	public void setIcon(String icon){
+		this.icon=icon;
+	}
+
+	public String getIcon(){
+		return icon;
+	}
+
+	public void setIsShow(String isShow){
+		this.isShow=isShow;
+	}
+
+	public String getIsShow(){
+		return isShow;
+	}
+
+	public void setPermission(String permission){
+		this.permission=permission;
+	}
+
+	public String getPermission(){
+		return permission;
+	}
+
+	public void setCreateBy(String createBy){
+		this.createBy=createBy;
+	}
+
+	public String getCreateBy(){
+		return createBy;
+	}
+
+	public void setCreateDate(Date createDate){
+		this.createDate=createDate;
+	}
+
+	public Date getCreateDate(){
+		return createDate;
+	}
+
+	public void setUpdateBy(String updateBy){
+		this.updateBy=updateBy;
+	}
+
+	public String getUpdateBy(){
+		return updateBy;
+	}
+
+	public void setUpdateDate(Date updateDate){
+		this.updateDate=updateDate;
+	}
+
+	public Date getUpdateDate(){
+		return updateDate;
+	}
+
+	public void setRemarks(String remarks){
+		this.remarks=remarks;
+	}
+
+	public String getRemarks(){
+		return remarks;
+	}
+
+	public void setDelFlag(String delFlag){
+		this.delFlag=delFlag;
+	}
+
+	public String getDelFlag(){
+		return delFlag;
+	}
+
+	public void setMenuType(String menuType){
+		this.menuType=menuType;
+	}
+
+	public String getMenuType(){
+		return menuType;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if(obj instanceof SysMenu){
+			return Objects.equals(this.id, ((SysMenu) obj).getId());
+		}
+		return super.equals(obj);
+	}
+}
+

+ 177 - 0
src/main/java/com/izouma/awesomeadmin/model/SysRole.java

@@ -0,0 +1,177 @@
+package com.izouma.awesomeadmin.model;
+
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+
+import java.util.Date;
+
+/**
+ * sys_role 实体类
+ * Tue Apr 10 18:09:56 CST 2018  Suo Chen Cheng
+ */ 
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysRole{
+
+	private Integer id;
+
+	private String officeId;
+
+	private String name;
+
+	private String enname;
+
+	private String roleType;
+
+	private String isSys;
+
+	private String useable;
+
+	private String createBy;
+
+	private Date createDate;
+
+	private String updateBy;
+
+	private Date updateDate;
+
+	private String remarks;
+
+	private String delFlag;
+	private String idStr;
+
+	private String menuIds;
+	private String permission;
+
+	public String getMenuIds() {
+		return menuIds;
+	}
+
+	public void setMenuIds(String menuIds) {
+		this.menuIds = menuIds;
+	}
+
+	public String getPermission() {
+		return permission;
+	}
+
+	public void setPermission(String permission) {
+		this.permission = permission;
+	}
+
+	public String getIdStr() {
+		return idStr;
+	}
+
+	public void setIdStr(String idStr) {
+		this.idStr = idStr;
+	}
+
+	public void setId(Integer id){
+		this.id=id;
+	}
+
+	public Integer getId(){
+		return id;
+	}
+
+	public void setOfficeId(String officeId){
+		this.officeId=officeId;
+	}
+
+	public String getOfficeId(){
+		return officeId;
+	}
+
+	public void setName(String name){
+		this.name=name;
+	}
+
+	public String getName(){
+		return name;
+	}
+
+	public void setEnname(String enname){
+		this.enname=enname;
+	}
+
+	public String getEnname(){
+		return enname;
+	}
+
+	public void setRoleType(String roleType){
+		this.roleType=roleType;
+	}
+
+	public String getRoleType(){
+		return roleType;
+	}
+
+	public void setIsSys(String isSys){
+		this.isSys=isSys;
+	}
+
+	public String getIsSys(){
+		return isSys;
+	}
+
+	public void setUseable(String useable){
+		this.useable=useable;
+	}
+
+	public String getUseable(){
+		return useable;
+	}
+
+	public void setCreateBy(String createBy){
+		this.createBy=createBy;
+	}
+
+	public String getCreateBy(){
+		return createBy;
+	}
+
+	public void setCreateDate(Date createDate){
+		this.createDate=createDate;
+	}
+
+	public Date getCreateDate(){
+		return createDate;
+	}
+
+	public void setUpdateBy(String updateBy){
+		this.updateBy=updateBy;
+	}
+
+	public String getUpdateBy(){
+		return updateBy;
+	}
+
+	public void setUpdateDate(Date updateDate){
+		this.updateDate=updateDate;
+	}
+
+	public Date getUpdateDate(){
+		return updateDate;
+	}
+
+	public void setRemarks(String remarks){
+		this.remarks=remarks;
+	}
+
+	public String getRemarks(){
+		return remarks;
+	}
+
+	public void setDelFlag(String delFlag){
+		this.delFlag=delFlag;
+	}
+
+	public String getDelFlag(){
+		return delFlag;
+	}
+
+}
+

+ 341 - 0
src/main/java/com/izouma/awesomeadmin/model/TableField.java

@@ -0,0 +1,341 @@
+package com.izouma.awesomeadmin.model;
+
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * table_field 实体类
+ * Fri May 04 13:38:24 CST 2018  Suo Chen Cheng
+ */
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class TableField {
+
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 字段名
+     */
+    private String name;
+
+    /**
+     * 驼峰式名字
+     */
+    private String modelName;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 数据类型(数据库)
+     */
+    private String jdbcType;
+
+    /**
+     * java类型
+     */
+    private String javaType;
+
+    /**
+     * 长度
+     */
+    private Integer length;
+
+    /**
+     * 小数长度
+     */
+    private Integer decimalPlaces;
+
+    /**
+     * 默认值
+     */
+    private String defaultValue;
+
+    /**
+     * 非空
+     */
+    private Boolean notNull;
+
+    /**
+     * 主键
+     */
+    private Boolean primaryKey;
+
+    /**
+     * 自增
+     */
+    private Boolean autoIncrease;
+
+    /**
+     * 在列表中显示
+     */
+    private Boolean showInList;
+
+    /**
+     * 在表单中显示
+     */
+    private Boolean showInForm;
+
+    /**
+     * 可以搜索
+     */
+    private Boolean searchable;
+
+    /**
+     * 表单类型
+     */
+    private String formType;
+
+    /**
+     * 搜索方式
+     */
+    private String searchMethod;
+
+    /**
+     * 表单必填
+     */
+    private Boolean required;
+
+    /**
+     * 表单验证
+     */
+    private Boolean validate;
+
+    /**
+     * 最短长度
+     */
+    private Integer minLength;
+
+    /**
+     * 最大长度
+     */
+    private Integer maxLength;
+
+    /**
+     * 最小值
+     */
+    private String min;
+
+    /**
+     * 最大值
+     */
+    private String max;
+
+    /**
+     * 验证类型
+     */
+    private String validatorType;
+
+    /**
+     * xml里jdbcType
+     */
+    private String sqlType;
+
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setJdbcType(String jdbcType) {
+        this.jdbcType = jdbcType;
+    }
+
+    public String getJdbcType() {
+        return jdbcType;
+    }
+
+    public void setJavaType(String javaType) {
+        this.javaType = javaType;
+    }
+
+    public String getJavaType() {
+        return javaType;
+    }
+
+    public void setLength(Integer length) {
+        this.length = length;
+    }
+
+    public Integer getLength() {
+        return length;
+    }
+
+    public void setDecimalPlaces(Integer decimalPlaces) {
+        this.decimalPlaces = decimalPlaces;
+    }
+
+    public Integer getDecimalPlaces() {
+        return decimalPlaces;
+    }
+
+    public void setDefaultValue(String defaultValue) {
+        this.defaultValue = defaultValue;
+    }
+
+    public String getDefaultValue() {
+        return defaultValue;
+    }
+
+    public void setNotNull(Boolean notNull) {
+        this.notNull = notNull;
+    }
+
+    public Boolean getNotNull() {
+        return notNull;
+    }
+
+    public void setPrimaryKey(Boolean primaryKey) {
+        this.primaryKey = primaryKey;
+    }
+
+    public Boolean getPrimaryKey() {
+        return primaryKey;
+    }
+
+    public void setAutoIncrease(Boolean autoIncrease) {
+        this.autoIncrease = autoIncrease;
+    }
+
+    public Boolean getAutoIncrease() {
+        return autoIncrease;
+    }
+
+    public void setShowInList(Boolean showInList) {
+        this.showInList = showInList;
+    }
+
+    public Boolean getShowInList() {
+        return showInList;
+    }
+
+    public void setShowInForm(Boolean showInForm) {
+        this.showInForm = showInForm;
+    }
+
+    public Boolean getShowInForm() {
+        return showInForm;
+    }
+
+    public void setSearchable(Boolean searchable) {
+        this.searchable = searchable;
+    }
+
+    public Boolean getSearchable() {
+        return searchable;
+    }
+
+    public void setFormType(String formType) {
+        this.formType = formType;
+    }
+
+    public String getFormType() {
+        return formType;
+    }
+
+    public void setSearchMethod(String searchMethod) {
+        this.searchMethod = searchMethod;
+    }
+
+    public String getSearchMethod() {
+        return searchMethod;
+    }
+
+    public void setRequired(Boolean required) {
+        this.required = required;
+    }
+
+    public Boolean getRequired() {
+        return required;
+    }
+
+    public void setValidate(Boolean validate) {
+        this.validate = validate;
+    }
+
+    public Boolean getValidate() {
+        return validate;
+    }
+
+    public void setMinLength(Integer minLength) {
+        this.minLength = minLength;
+    }
+
+    public Integer getMinLength() {
+        return minLength;
+    }
+
+    public void setMaxLength(Integer maxLength) {
+        this.maxLength = maxLength;
+    }
+
+    public Integer getMaxLength() {
+        return maxLength;
+    }
+
+    public void setMin(String min) {
+        this.min = min;
+    }
+
+    public String getMin() {
+        return min;
+    }
+
+    public void setMax(String max) {
+        this.max = max;
+    }
+
+    public String getMax() {
+        return max;
+    }
+
+    public void setValidatorType(String validatorType) {
+        this.validatorType = validatorType;
+    }
+
+    public String getValidatorType() {
+        return validatorType;
+    }
+
+    public String getSqlType() {
+        return sqlType;
+    }
+
+    public void setSqlType(String sqlType) {
+        this.sqlType = sqlType;
+    }
+
+    public String getModelName() {
+        return modelName;
+    }
+
+    public void setModelName(String modelName) {
+        this.modelName = modelName;
+    }
+}
+

+ 38 - 0
src/main/java/com/izouma/awesomeadmin/model/TestAaa.java

@@ -0,0 +1,38 @@
+package com.izouma.awesomeadmin.model;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class TestAaa{
+    private Integer id;
+    private String delFlag;
+    private String nameTest;
+
+    public Integer getId(){
+        return this.id;
+    }
+
+    public void setId(Integer id){
+        this.id = id;
+    }
+    public String getDelFlag(){
+        return this.delFlag;
+    }
+
+    public void setDelFlag(String delFlag){
+        this.delFlag = delFlag;
+    }
+    public String getNameTest(){
+        return this.nameTest;
+    }
+
+    public void setNameTest(String nameTest){
+        this.nameTest = nameTest;
+    }
+
+
+}
+

+ 217 - 0
src/main/java/com/izouma/awesomeadmin/model/UserInfo.java

@@ -0,0 +1,217 @@
+package com.izouma.awesomeadmin.model;
+
+import java.util.*;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * user_info 实体类
+ * Tue Apr 17 10:32:49 CST 2018  Suo Chen Cheng
+ */ 
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class UserInfo{
+
+	private Integer id;
+
+	private String username;
+
+	private String nickname;
+
+	private String password;
+
+	private String icon;
+
+	private Date birthday;
+
+	private String sex;
+
+	private String openId;
+
+	private String unionId;
+
+	private String phone;
+
+	private String mail;
+
+	private String country;
+
+	private String province;
+
+	private String city;
+
+	private String district;
+
+	private String roleId;
+
+	private Date createTime;
+
+	private String delFlag;
+
+	private List<SysRole> roleInfoList;
+
+	private String departId;
+
+	public String getDepartId() {
+		return departId;
+	}
+
+	public void setDepartId(String departId) {
+		this.departId = departId;
+	}
+
+	public List<SysRole> getRoleInfoList() {
+		return roleInfoList;
+	}
+
+	public void setRoleInfoList(List<SysRole> roleInfoList) {
+		this.roleInfoList = roleInfoList;
+	}
+
+	public void setId(Integer id){
+		this.id=id;
+	}
+
+	public Integer getId(){
+		return id;
+	}
+
+	public void setUsername(String username){
+		this.username = username;
+	}
+
+	public String getUsername(){
+		return username;
+	}
+
+	public void setNickname(String nickname){
+		this.nickname = nickname;
+	}
+
+	public String getNickname(){
+		return nickname;
+	}
+
+	public void setPassword(String password){
+		this.password=password;
+	}
+
+	public String getPassword(){
+		return password;
+	}
+
+	public void setIcon(String icon){
+		this.icon=icon;
+	}
+
+	public String getIcon(){
+		return icon;
+	}
+
+	public void setBirthday(Date birthday){
+		this.birthday=birthday;
+	}
+
+	public Date getBirthday(){
+		return birthday;
+	}
+
+	public void setSex(String sex){
+		this.sex=sex;
+	}
+
+	public String getSex(){
+		return sex;
+	}
+
+	public void setOpenId(String openId){
+		this.openId=openId;
+	}
+
+	public String getOpenId(){
+		return openId;
+	}
+
+	public void setUnionId(String unionId){
+		this.unionId=unionId;
+	}
+
+	public String getUnionId(){
+		return unionId;
+	}
+
+	public void setPhone(String phone){
+		this.phone=phone;
+	}
+
+	public String getPhone(){
+		return phone;
+	}
+
+	public void setMail(String mail){
+		this.mail=mail;
+	}
+
+	public String getMail(){
+		return mail;
+	}
+
+	public void setCountry(String country){
+		this.country=country;
+	}
+
+	public String getCountry(){
+		return country;
+	}
+
+	public void setProvince(String province){
+		this.province=province;
+	}
+
+	public String getProvince(){
+		return province;
+	}
+
+	public void setCity(String city){
+		this.city=city;
+	}
+
+	public String getCity(){
+		return city;
+	}
+
+	public void setDistrict(String district){
+		this.district=district;
+	}
+
+	public String getDistrict(){
+		return district;
+	}
+
+	public void setRoleId(String roleId){
+		this.roleId=roleId;
+	}
+
+	public String getRoleId(){
+		return roleId;
+	}
+
+	public void setCreateTime(Date createTime){
+		this.createTime=createTime;
+	}
+
+	public Date getCreateTime(){
+		return createTime;
+	}
+
+	public void setDelFlag(String delFlag){
+		this.delFlag=delFlag;
+	}
+
+	public String getDelFlag(){
+		return delFlag;
+	}
+
+}
+

+ 66 - 0
src/main/java/com/izouma/awesomeadmin/model/Zouma.java

@@ -0,0 +1,66 @@
+package com.izouma.awesomeadmin.model;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * user_info 实体类
+ * Tue Apr 17 10:32:49 CST 2018  Suo Chen Cheng
+ */
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class Zouma {
+
+    private String id;
+
+    private String userName;
+
+    private String position;
+
+
+    private String workType;
+
+
+    private String remarks;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getPosition() {
+        return position;
+    }
+
+    public void setPosition(String position) {
+        this.position = position;
+    }
+
+    public String getWorkType() {
+        return workType;
+    }
+
+    public void setWorkType(String workType) {
+        this.workType = workType;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+}
+

+ 36 - 0
src/main/java/com/izouma/awesomeadmin/service/DepartInfoService.java

@@ -0,0 +1,36 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.List;
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.dto.TreeNode;
+import com.izouma.awesomeadmin.model.DepartInfo;
+
+/**
+ * depart_info service接口类
+ * Thu Apr 26 10:56:37 CST 2018  Suo Chen Cheng
+ */ 
+public interface DepartInfoService {
+
+	List <DepartInfo> getDepartInfoList(DepartInfo record);
+
+	List <DepartInfo> getDepartInfoByPage(Page page, DepartInfo record);
+
+	DepartInfo getDepartInfoById(String id);
+
+	DepartInfo getDepartInfo(DepartInfo record);
+
+	boolean createDepartInfo(DepartInfo record);
+
+	boolean deleteDepartInfo(String id);
+
+	boolean updateDepartInfo(DepartInfo record);
+
+	List <DepartInfo> findPower(DepartInfo record);
+
+
+	List <DepartInfo> getParentList(Integer id);
+
+	List<TreeNode> getDepartTree(boolean all, Integer userId);
+}
+

+ 29 - 0
src/main/java/com/izouma/awesomeadmin/service/GenCodeService.java

@@ -0,0 +1,29 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.List;
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.GenCode;
+
+/**
+ * gen_code_model service接口类
+ * Fri May 04 15:57:06 CST 2018  Suo Chen Cheng
+ */ 
+public interface GenCodeService {
+
+	List <GenCode> getGenCodeList(GenCode record);
+
+	List <GenCode> getGenCodeByPage(Page page, GenCode record);
+
+	GenCode getGenCodeById(String id);
+
+	GenCode getGenCode(GenCode record);
+
+	boolean createGenCode(GenCode record);
+
+	boolean deleteGenCode(String id);
+
+	boolean updateGenCode(GenCode record);
+
+}
+

+ 29 - 0
src/main/java/com/izouma/awesomeadmin/service/GenTestTableService.java

@@ -0,0 +1,29 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.List;
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.GenTestTable;
+
+/**
+ * gen_test_table service接口类
+ * Fri Apr 20 09:24:30 CST 2018  Suo Chen Cheng
+ */ 
+public interface GenTestTableService {
+
+	List <GenTestTable> getGenTestTableList(GenTestTable record);
+
+	List <GenTestTable> getGenTestTableByPage(Page page, GenTestTable record);
+
+	GenTestTable getGenTestTableById(String id);
+
+	GenTestTable getGenTestTable(GenTestTable record);
+
+	boolean createGenTestTable(GenTestTable record);
+
+	boolean deleteGenTestTable(String id);
+
+	boolean updateGenTestTable(GenTestTable record);
+
+}
+

+ 65 - 0
src/main/java/com/izouma/awesomeadmin/service/ImageFileService.java

@@ -0,0 +1,65 @@
+package com.izouma.awesomeadmin.service;
+
+import java.io.InputStream;
+
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Service;
+
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.model.OSSObject;
+import com.aliyun.oss.model.ObjectMetadata;
+import com.aliyun.oss.model.PutObjectResult;
+import com.izouma.awesomeadmin.util.PropertiesFileLoader;
+
+@Service
+public class ImageFileService {
+
+    /**
+     * 日志对象
+     */
+    private static Logger logger = Logger.getLogger(ImageFileService.class);
+
+
+    public String UpLoadImage(InputStream fin, String path) {
+
+        logger.info("UpLoadImage :上传照片 开始  : fin:" + fin + "; phth: " + path);
+        // TODO Auto-generated method stub
+        String aliid = PropertiesFileLoader.getDefaultProperties("aliossid", "");
+        String alikey = PropertiesFileLoader.getDefaultProperties("aliosskey", "");
+        String aliossendpoit = PropertiesFileLoader.getDefaultProperties("aliossendpoit", "");
+        String bucketname = PropertiesFileLoader.getDefaultProperties("alibucketname", "izouma");
+        OSSClient client = new OSSClient(aliossendpoit, aliid, alikey);
+        OSSObject object = null;
+        logger.info("UpLoadImage :上传照片  : aliid:" + aliid + "; alikey: " + alikey + "; aliossendpoit : " + aliossendpoit + "; bucketname:"
+                + bucketname);
+        if (path.startsWith("/")) {
+            return "invalid path";
+        }
+        @SuppressWarnings("unused")
+        PutObjectResult result = client.putObject(bucketname, path, fin, new ObjectMetadata());
+
+        try {
+            object = client.getObject(bucketname, path);
+        } catch (Exception r) {
+            logger.error("UpLoadImage: 上传照片异常 ", r);
+        }
+        // 如果不设置content-length, 默认为chunked编码。
+        if (object != null) {
+            return "file exist";
+        }
+
+        return "success";
+    }
+
+
+    public static String GetRealImagePath(String Path) {
+
+        // TODO Auto-generated method stub
+        if (Path == null || "".equals(Path) || Path.startsWith("images")) {
+            return Path;
+        }
+        String aliossendpoit = PropertiesFileLoader.getDefaultProperties("aliImageSever", "");
+        return aliossendpoit + "/" + Path;
+    }
+
+}

+ 115 - 0
src/main/java/com/izouma/awesomeadmin/service/OSSFileService.java

@@ -0,0 +1,115 @@
+package com.izouma.awesomeadmin.service;
+
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Random;
+
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Service;
+
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.model.OSSObject;
+import com.aliyun.oss.model.ObjectMetadata;
+import com.aliyun.oss.model.PutObjectResult;
+import com.izouma.awesomeadmin.util.ImagesUtil;
+import com.izouma.awesomeadmin.util.PropertiesFileLoader;
+
+@Service
+public class OSSFileService {
+
+    /**
+     * 日志对象
+     */
+    private static Logger logger = Logger.getLogger(OSSFileService.class);
+
+
+    public  String upload(InputStream fin, String path) {
+
+        logger.info("UpLoadImage :上传照片 开始  : fin:" + fin + "; phth: " + path);
+        // TODO Auto-generated method stub
+        String aliid = PropertiesFileLoader.getDefaultProperties("aliossid", "");
+        String alikey = PropertiesFileLoader.getDefaultProperties("aliosskey", "");
+        String aliossendpoit = PropertiesFileLoader.getDefaultProperties("aliossendpoit", "");
+        String bucketname = PropertiesFileLoader.getDefaultProperties("alibucketname", "");
+        OSSClient client = new OSSClient(aliossendpoit, aliid, alikey);
+        OSSObject object = null;
+        logger.info("UpLoadImage :上传照片  : aliid:" + aliid + "; alikey: " + alikey + "; aliossendpoit : " + aliossendpoit + "; bucketname:"
+                + bucketname);
+        if (path.startsWith("/")) {
+            return "invalid path";
+        }
+        @SuppressWarnings("unused")
+        PutObjectResult result = client.putObject(bucketname, path, fin, new ObjectMetadata());
+
+        try {
+            object = client.getObject(bucketname, path);
+        } catch (Exception r) {
+            logger.error("UpLoadImage: 上传照片异常 ", r);
+        }
+        // 如果不设置content-length, 默认为chunked编码。
+        if (object != null) {
+            return GetRealImagePath(path);
+        }
+        return null;
+    }
+
+
+    public static String GetRealImagePath(String Path) {
+
+        // TODO Auto-generated method stub
+        if (Path == null || "".equals(Path) || Path.startsWith("images")) {
+            return Path;
+        }
+        String aliossendpoit = PropertiesFileLoader.getDefaultProperties("aliImageSever", "");
+        return aliossendpoit + "/" + Path;
+    }
+
+
+    public String uploadImg(String base64) throws UnsupportedEncodingException {
+
+        String path = "izouma/application/";
+
+        try {
+            logger.info("uploadIcon:上传图片");
+
+            //图片原名称
+            String imgName = "";
+            //图片生成名称
+            String fileName = "";
+            if (base64 == null) {
+                return null;
+            }
+            String type = ".jpg";
+            Date nowDate = new Date();
+            //格式化时间对象返回字符串
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
+            fileName += sdf.format(nowDate);
+            Random random = new Random();
+            String randomCode = "";
+            for (int i = 0; i < 8; i++) {
+                randomCode += Integer.toString(random.nextInt(36), 36);
+            }
+            fileName += randomCode;
+            fileName += type;
+            String virtualPath = "";
+            try {
+                virtualPath = path + "/" + fileName;
+                //item.write(new File(uploadPath + fileName));
+                String result = upload(ImagesUtil.GenerateImage(base64), virtualPath);
+                System.out.println("存入照片:" + result);
+                return result;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.error("上传图片异常");
+        }
+
+        return null;
+
+    }
+
+}

+ 32 - 0
src/main/java/com/izouma/awesomeadmin/service/PowerInfoService.java

@@ -0,0 +1,32 @@
+package com.izouma.awesomeadmin.service;
+
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.PowerInfo;
+
+import java.util.List;
+
+/**
+ * power_info service接口类
+ * Wed Apr 11 11:04:02 CST 2018  Suo Chen Cheng
+ */ 
+public interface PowerInfoService {
+
+	List<PowerInfo> getPowerInfoList(PowerInfo record);
+
+	List<PowerInfo> getPowerInfoByPage(Page page, PowerInfo record);
+
+	PowerInfo getPowerInfoById(String id);
+
+	PowerInfo getPowerInfo(PowerInfo record);
+
+	boolean createPowerInfo(PowerInfo record);
+
+	boolean deletePowerInfo(String id);
+
+	boolean updatePowerInfo(PowerInfo record);
+
+	boolean deletePowerInfoByRoleId(String roleId);
+
+}
+

+ 11 - 0
src/main/java/com/izouma/awesomeadmin/service/RongYunTokenService.java

@@ -0,0 +1,11 @@
+package com.izouma.awesomeadmin.service;
+
+import com.izouma.awesomeadmin.model.RongYunToken;
+
+public interface RongYunTokenService {
+
+    Boolean saveRongToken(RongYunToken rongYunToken);
+
+
+    RongYunToken getRongToken(String rongKey);
+}

+ 53 - 0
src/main/java/com/izouma/awesomeadmin/service/SuperUserService.java

@@ -0,0 +1,53 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.SuperUser;
+
+public interface SuperUserService {
+
+    /**
+     * 
+     * <p>获取所有用户记录。</p>
+     *
+     * @return tblUser list
+     */
+    List <SuperUser> getSuperUserList();
+
+
+    /**
+     * 
+     * <p>获取所有用户记录。</p>
+     *
+     * @return tblUser list
+     */
+    List <SuperUser> getSuperUserByPage(Page page);
+
+
+    /**
+     * 
+     * <p>根据id获取指定用户详细信息。</p>
+     *
+     * @param id
+     * @return
+     */
+    SuperUser getSuperUserById(String id);
+
+
+    boolean updateSuperUserInfo(HttpServletRequest request);
+
+
+    boolean createUser(SuperUser superUser);
+
+
+    boolean deleteUser(String userId);
+
+
+    boolean updateUser(SuperUser superUser);
+
+
+    SuperUser UserLogin(String userName, String password);
+}

+ 29 - 0
src/main/java/com/izouma/awesomeadmin/service/SysDataruleService.java

@@ -0,0 +1,29 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.List;
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.SysDatarule;
+
+/**
+ * sys_datarule service接口类
+ * Tue Apr 17 10:44:06 CST 2018  Suo Chen Cheng
+ */ 
+public interface SysDataruleService {
+
+	List <SysDatarule> getSysDataruleList(SysDatarule record);
+
+	List <SysDatarule> getSysDataruleByPage(Page page, SysDatarule record);
+
+	SysDatarule getSysDataruleById(String id);
+
+	SysDatarule getSysDatarule(SysDatarule record);
+
+	boolean createSysDatarule(SysDatarule record);
+
+	boolean deleteSysDatarule(String id);
+
+	boolean updateSysDatarule(SysDatarule record);
+
+}
+

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/service/SysMenuService.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.service;
+
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.dto.TreeNode;
+import com.izouma.awesomeadmin.model.SysMenu;
+
+import java.util.List;
+
+/**
+ * sys_menu service接口类
+ * Tue Apr 10 18:09:44 CST 2018  Suo Chen Cheng
+ */
+public interface SysMenuService {
+
+    List<SysMenu> getSysMenuList(SysMenu record);
+
+    List<SysMenu> getSysMenuByPage(Page page, SysMenu record);
+
+    SysMenu getSysMenuById(String id);
+
+    SysMenu getSysMenu(SysMenu record);
+
+    boolean createSysMenu(SysMenu record);
+
+    boolean deleteSysMenu(String id);
+
+    boolean updateSysMenu(SysMenu record);
+
+    List<TreeNode> getMenuTree(boolean all, Integer userId);
+
+}
+

+ 31 - 0
src/main/java/com/izouma/awesomeadmin/service/SysRoleService.java

@@ -0,0 +1,31 @@
+package com.izouma.awesomeadmin.service;
+
+
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.SysRole;
+
+import java.util.List;
+
+/**
+ * sys_role service接口类
+ * Tue Apr 10 18:09:56 CST 2018  Suo Chen Cheng
+ */ 
+public interface SysRoleService {
+
+	List<SysRole> getSysRoleList(SysRole record);
+
+	List<SysRole> getSysRoleByPage(Page page, SysRole record);
+
+	SysRole getSysRoleById(String id);
+
+	SysRole getSysRole(SysRole record);
+
+	boolean createSysRole(SysRole record);
+
+	boolean deleteSysRole(String id);
+
+	boolean updateSysRole(SysRole record);
+
+}
+

+ 29 - 0
src/main/java/com/izouma/awesomeadmin/service/TableFieldService.java

@@ -0,0 +1,29 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.List;
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.TableField;
+
+/**
+ * table_field service接口类
+ * Fri May 04 13:38:24 CST 2018  Suo Chen Cheng
+ */ 
+public interface TableFieldService {
+
+	List <TableField> getTableFieldList(TableField record);
+
+	List <TableField> getTableFieldByPage(Page page, TableField record);
+
+	TableField getTableFieldById(String id);
+
+	TableField getTableField(TableField record);
+
+	boolean createTableField(TableField record);
+
+	boolean deleteTableField(String id);
+
+	boolean updateTableField(TableField record);
+
+}
+

+ 27 - 0
src/main/java/com/izouma/awesomeadmin/service/TestAaaService.java

@@ -0,0 +1,27 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.*;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.TestAaa;
+
+
+/**
+*  service接口类
+*/
+public interface TestAaaService{
+
+    List<TestAaa> getTestAaaList(TestAaa record);
+
+    List<TestAaa> getTestAaaByPage(Page page, TestAaa record);
+
+    TestAaa getTestAaaById(String id);
+
+    TestAaa getTestAaa(TestAaa record);
+
+    boolean createTestAaa(TestAaa record);
+
+    boolean deleteTestAaa(String id);
+
+    boolean updateTestAaa(TestAaa record);
+}
+

+ 31 - 0
src/main/java/com/izouma/awesomeadmin/service/UserInfoService.java

@@ -0,0 +1,31 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.List;
+
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.UserInfo;
+
+/**
+ * user_info service接口类
+ * Tue Apr 17 10:32:49 CST 2018  Suo Chen Cheng
+ */
+public interface UserInfoService {
+
+    List<UserInfo> getUserInfoList(UserInfo record);
+
+    List<UserInfo> getUserInfoByPage(Page page, UserInfo record);
+
+    UserInfo getUserInfoById(String id);
+
+    UserInfo getUserInfo(UserInfo record);
+
+    boolean createUserInfo(UserInfo record);
+
+    boolean deleteUserInfo(String id);
+
+    boolean updateUserInfo(UserInfo record);
+
+    UserInfo login(String username, String password);
+
+}
+

+ 93 - 0
src/main/java/com/izouma/awesomeadmin/service/WeiXinService.java

@@ -0,0 +1,93 @@
+package com.izouma.awesomeadmin.service;
+
+
+import com.izouma.awesomeadmin.dao.AccessTokenMapper;
+import com.izouma.awesomeadmin.model.AccessToken;
+import com.izouma.awesomeadmin.util.PropertiesFileLoader;
+import com.izouma.awesomeadmin.util.WeixinUtil;
+
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class WeiXinService {
+
+    @Autowired
+    private AccessTokenMapper accessTokenMapper;
+
+
+    public String getAccessToken() {
+
+        String access_token = "";
+        //查询是否有accessToken
+        final AccessToken at = accessTokenMapper.getAccessToken();
+
+        if (at == null) {
+            access_token = newAccessToken();
+        } else {
+            //获取token
+            access_token = at.getAccessToken();
+
+            //判断是否过期
+            if (access_token == null || Integer.parseInt(WeixinUtil.create_timestamp()) - Integer.parseInt(at.getTimeStamp()) > 7000) {
+
+                access_token = newAccessToken();
+
+            }
+
+        }
+
+        return access_token;
+
+    }
+
+
+    /**
+     * 
+     * <p>获取新的accessToken。</p>
+     *
+     * @return
+     */
+    private String newAccessToken() {
+
+        String access_token;
+        String app_id = PropertiesFileLoader.getProperties("weixinappid");
+        String app_ket = PropertiesFileLoader.getProperties("weixinsecret");
+        //重新获取token
+        String accessUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + app_id + "&secret=" + app_ket;
+        JSONObject accessData = WeixinUtil.loadJSON(accessUrl);
+        access_token = (String) accessData.get("access_token");
+
+        Map <String, Object> parameter = new HashMap <String, Object>();
+        parameter.put("accessToken", access_token);
+        parameter.put("timeStamp", WeixinUtil.create_timestamp());
+        accessTokenMapper.updateAccessToken(parameter);
+        return access_token;
+    }
+
+
+    public Map <String, String> getSignature(String shareUrl) {
+
+        String access_token = getAccessToken();
+
+        String ticketUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + access_token + "&type=jsapi";
+        JSONObject ticketData = WeixinUtil.loadJSON(ticketUrl);
+        String jsapi_ticket = (String) ticketData.get("ticket");
+
+        // 注意 URL 一定要动态获取,不能 hardcode
+        // String url = requesturl.getRequestURL().toString();
+        //url = url.replaceAll("127.0.0.1:90", "webapp.weiqiuwang.com");
+        Map <String, String> ret = WeixinUtil.sign(jsapi_ticket, shareUrl);
+        for (Map.Entry entry : ret.entrySet()) {
+            System.out.println(entry.getKey() + ", " + entry.getValue());
+        }
+        ret.put("appId", PropertiesFileLoader.getProperties("weixinappid"));
+        return ret;
+
+    }
+
+}

+ 256 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/DepartInfoServiceImpl.java

@@ -0,0 +1,256 @@
+package com.izouma.awesomeadmin.service.impl;
+
+import java.util.*;
+
+import com.izouma.awesomeadmin.dto.TreeNode;
+import com.izouma.awesomeadmin.service.UserInfoService;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.izouma.awesomeadmin.constant.AppConstant;
+import com.izouma.awesomeadmin.dao.DepartInfoMapper;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.DepartInfo;
+import com.izouma.awesomeadmin.service.DepartInfoService;
+
+/**
+ * depart_info service接口实现类
+ * Thu Apr 26 10:56:37 CST 2018  Suo Chen Cheng
+ */ 
+@Service
+public class DepartInfoServiceImpl implements DepartInfoService {
+
+	private static Logger   logger = Logger.getLogger(DepartInfoServiceImpl.class);
+
+	@Autowired
+	private DepartInfoMapper departInfoMapper;
+
+	@Autowired
+	private UserInfoService userInfoService;
+
+	@Override
+	public List <DepartInfo> getDepartInfoList(DepartInfo record) {
+
+		logger.info("getDepartInfoList");
+		try {
+
+			return departInfoMapper.queryAllDepartInfo(record);
+		} catch (Exception e) {
+			logger.error("getDepartInfoList", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public List <DepartInfo> getDepartInfoByPage(Page page, DepartInfo record) {
+
+		logger.info("getDepartInfoByPage");
+		try {
+
+			Map <String, Object> parameter = new HashMap <String, Object>();
+			parameter.put("record", record);
+			parameter.put(AppConstant.PAGE, page);
+
+			return departInfoMapper.queryDepartInfosByPage(parameter);
+		} catch (Exception e) {
+			logger.error("getDepartInfoByPage", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public DepartInfo getDepartInfoById(String id) {
+
+		logger.info("getDepartInfoById");
+		try {
+
+			return departInfoMapper.selectByPrimaryKey(Integer.valueOf(id));
+		} catch (Exception e) {
+			logger.error("getDepartInfoById", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public DepartInfo getDepartInfo(DepartInfo record) {
+
+		logger.info("getDepartInfo");
+		try {
+
+			return departInfoMapper.queryDepartInfo(record);
+		} catch (Exception e) {
+			logger.error("getDepartInfo", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public boolean createDepartInfo(DepartInfo record) {
+
+		logger.info("createDepartInfo");
+		try {
+
+			int updates = departInfoMapper.insertSelective(record);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("createDepartInfo", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean deleteDepartInfo(String id) {
+
+		logger.info("deleteDepartInfo");
+		try {
+
+			int updates = departInfoMapper.delete(id);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("deleteDepartInfo", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean updateDepartInfo(DepartInfo record) {
+
+		logger.info("updateDepartInfo");
+		try {
+
+			int updates = departInfoMapper.updateByPrimaryKeySelective(record);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("updateDepartInfo", e);
+		}
+
+		return false;
+	}
+
+
+	@Override
+	public List <DepartInfo> findPower(DepartInfo record) {
+
+		logger.info("findPower");
+		try {
+
+			return departInfoMapper.findPower(record);
+		} catch (Exception e) {
+			logger.error("findPower", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public List<DepartInfo> getParentList(Integer id) {
+		logger.info("getParentList");
+		try {
+
+			List<DepartInfo> list = departInfoMapper.getParentList(id);
+
+			return list;
+		} catch (Exception e) {
+			logger.error("getParentList", e);
+		}
+		return null;
+	}
+
+	private List<DepartInfo> getParents(DepartInfo departInfo) {
+		List<DepartInfo> menuList = new ArrayList<>();
+		menuList.add(departInfo);
+		if (departInfo.getParentId() != null) {
+			DepartInfo parent = getDepartInfoById(String.valueOf(departInfo.getParentId()));
+			if (parent != null) {
+				menuList.addAll(getParents(parent));
+			}
+		}
+		return menuList;
+	}
+
+
+	@Override
+	public List<TreeNode> getDepartTree(boolean all, Integer userId) {
+
+		logger.info("getDepartTree");
+		try {
+			List<DepartInfo> pp = new ArrayList<>();
+			if (all) {
+				pp = getDepartInfoList(new DepartInfo());
+			} else {
+				List<String> menuIds = new ArrayList<>();
+				/*UserInfo userInfo = userInfoService.getUserInfoById(String.valueOf(userId));
+				for (SysRole role : userInfo.getRoleInfoList()) {
+					if (StringUtils.isNotEmpty(role.getMenuIds())) {
+						menuIds.addAll(Arrays.asList(role.getMenuIds().split(",")));
+					}
+				}
+				removeDuplicate(menuIds);*/
+				StringBuilder sb = new StringBuilder();
+				for (String s : menuIds) {
+					sb.append(s).append(",");
+				}
+				for (DepartInfo departInfo : departInfoMapper.selectByPrimaryKeys(sb.toString())) {
+					pp.addAll(getParents(departInfo));
+				}
+				List<DepartInfo> list = new ArrayList<>();
+				for (DepartInfo menu : pp) {
+					if (!list.contains(menu)) {
+						list.add(menu);
+					}
+				}
+				pp = list;
+			}
+
+			List<TreeNode> trees = new ArrayList<>();
+			List<TreeNode> tree = new ArrayList<>();
+			for (DepartInfo m : pp) {
+				TreeNode treeNode = new TreeNode(String.valueOf(m.getId()), m.getDepartName(), String.valueOf(m.getParentId()));
+				treeNode.setExtra(m);
+				tree.add(treeNode);
+			}
+			for (TreeNode treeNode : tree) {
+				if ("0".equals(treeNode.getParentId())) {
+					trees.add(treeNode);
+				}
+
+				for (TreeNode it : tree) {
+					if (it.getParentId().equals(treeNode.getId())) {
+						if (treeNode.getChildren() == null) {
+							treeNode.setChildren(new ArrayList<>());
+						}
+						treeNode.getChildren().add(it);
+					}
+				}
+			}
+			return trees;
+		} catch (Exception e) {
+			logger.error("getDepartTree", e);
+		}
+
+		return null;
+	}
+	private List removeDuplicate(List list) {
+		HashSet h = new HashSet(list);
+		list.clear();
+		list.addAll(h);
+		return list;
+	}
+}
+

+ 144 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/GenCodeServiceImpl.java

@@ -0,0 +1,144 @@
+package com.izouma.awesomeadmin.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.izouma.awesomeadmin.model.GenCode;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.izouma.awesomeadmin.constant.AppConstant;
+import com.izouma.awesomeadmin.dao.GenCodeMapper;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.service.GenCodeService;
+
+/**
+ * gen_code_model service接口实现类
+ * Fri May 04 15:57:06 CST 2018  Suo Chen Cheng
+ */ 
+@Service
+public class GenCodeServiceImpl implements GenCodeService {
+
+	private static Logger   logger = Logger.getLogger(GenCodeServiceImpl.class);
+
+	@Autowired
+	private GenCodeMapper genCodeMapper;
+
+	@Override
+	public List <GenCode> getGenCodeList(GenCode record) {
+
+		logger.info("getGenCodeList");
+		try {
+
+			return genCodeMapper.queryAllGenCode(record);
+		} catch (Exception e) {
+			logger.error("getGenCodeList", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public List <GenCode> getGenCodeByPage(Page page, GenCode record) {
+
+		logger.info("getGenCodeByPage");
+		try {
+
+			Map <String, Object> parameter = new HashMap <String, Object>();
+			parameter.put("record", record);
+			parameter.put(AppConstant.PAGE, page);
+
+			return genCodeMapper.queryGenCodeByPage(parameter);
+		} catch (Exception e) {
+			logger.error("getGenCodeByPage", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public GenCode getGenCodeById(String id) {
+
+		logger.info("getGenCodeById");
+		try {
+
+			return genCodeMapper.selectByPrimaryKey(Integer.valueOf(id));
+		} catch (Exception e) {
+			logger.error("getGenCodeById", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public GenCode getGenCode(GenCode record) {
+
+		logger.info("getGenCode");
+		try {
+
+			return genCodeMapper.queryGenCode(record);
+		} catch (Exception e) {
+			logger.error("getGenCode", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public boolean createGenCode(GenCode record) {
+
+		logger.info("createGenCode");
+		try {
+
+			int updates = genCodeMapper.insertSelective(record);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("createGenCode", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean deleteGenCode(String id) {
+
+		logger.info("deleteGenCode");
+		try {
+
+			int updates = genCodeMapper.delete(id);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("deleteGenCode", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean updateGenCode(GenCode record) {
+
+		logger.info("updateGenCode");
+		try {
+
+			int updates = genCodeMapper.updateByPrimaryKeySelective(record);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("updateGenCode", e);
+		}
+
+		return false;
+	}
+
+}
+

+ 144 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/GenTestTableServiceImpl.java

@@ -0,0 +1,144 @@
+package com.izouma.awesomeadmin.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.izouma.awesomeadmin.constant.AppConstant;
+import com.izouma.awesomeadmin.dao.GenTestTableMapper;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.GenTestTable;
+import com.izouma.awesomeadmin.service.GenTestTableService;
+
+/**
+ * gen_test_table service接口实现类
+ * Fri Apr 20 09:24:30 CST 2018  Suo Chen Cheng
+ */ 
+@Service
+public class GenTestTableServiceImpl implements GenTestTableService {
+
+	private static Logger   logger = Logger.getLogger(GenTestTableServiceImpl.class);
+
+	@Autowired
+	private GenTestTableMapper genTestTableMapper;
+
+	@Override
+	public List <GenTestTable> getGenTestTableList(GenTestTable record) {
+
+		logger.info("getGenTestTableList");
+		try {
+
+			return genTestTableMapper.queryAllGenTestTable(record);
+		} catch (Exception e) {
+			logger.error("getGenTestTableList", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public List <GenTestTable> getGenTestTableByPage(Page page, GenTestTable record) {
+
+		logger.info("getGenTestTableByPage");
+		try {
+
+			Map <String, Object> parameter = new HashMap <String, Object>();
+			parameter.put("record", record);
+			parameter.put(AppConstant.PAGE, page);
+
+			return genTestTableMapper.queryGenTestTablesByPage(parameter);
+		} catch (Exception e) {
+			logger.error("getGenTestTableByPage", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public GenTestTable getGenTestTableById(String id) {
+
+		logger.info("getGenTestTableById");
+		try {
+
+			return genTestTableMapper.selectByPrimaryKey(Integer.valueOf(id));
+		} catch (Exception e) {
+			logger.error("getGenTestTableById", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public GenTestTable getGenTestTable(GenTestTable record) {
+
+		logger.info("getGenTestTable");
+		try {
+
+			return genTestTableMapper.queryGenTestTable(record);
+		} catch (Exception e) {
+			logger.error("getGenTestTable", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public boolean createGenTestTable(GenTestTable record) {
+
+		logger.info("createGenTestTable");
+		try {
+
+			int updates = genTestTableMapper.insertSelective(record);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("createGenTestTable", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean deleteGenTestTable(String id) {
+
+		logger.info("deleteGenTestTable");
+		try {
+
+			int updates = genTestTableMapper.delete(id);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("deleteGenTestTable", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean updateGenTestTable(GenTestTable record) {
+
+		logger.info("updateGenTestTable");
+		try {
+
+			int updates = genTestTableMapper.updateByPrimaryKeySelective(record);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("updateGenTestTable", e);
+		}
+
+		return false;
+	}
+
+}
+

+ 161 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/PowerInfoServiceImpl.java

@@ -0,0 +1,161 @@
+package com.izouma.awesomeadmin.service.impl;
+
+
+import com.izouma.awesomeadmin.constant.AppConstant;
+import com.izouma.awesomeadmin.dao.PowerInfoMapper;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.PowerInfo;
+import com.izouma.awesomeadmin.service.PowerInfoService;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * power_info service接口实现类
+ * Wed Apr 11 11:04:02 CST 2018  Suo Chen Cheng
+ */ 
+@Service
+public class PowerInfoServiceImpl implements PowerInfoService {
+
+	private static Logger logger = Logger.getLogger(PowerInfoServiceImpl.class);
+
+	@Autowired
+	private PowerInfoMapper powerInfoMapper;
+
+	@Override
+	public List<PowerInfo> getPowerInfoList(PowerInfo record) {
+
+		logger.info("getPowerInfoList");
+		try {
+
+			return powerInfoMapper.queryAllPowerInfo(record);
+		} catch (Exception e) {
+			logger.error("getPowerInfoList", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public List<PowerInfo> getPowerInfoByPage(Page page, PowerInfo record) {
+
+		logger.info("getPowerInfoByPage");
+		try {
+
+			Map<String, Object> parameter = new HashMap<String, Object>();
+			parameter.put("record", record);
+			parameter.put(AppConstant.PAGE, page);
+
+			return powerInfoMapper.queryPowerInfosByPage(parameter);
+		} catch (Exception e) {
+			logger.error("getPowerInfoByPage", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public PowerInfo getPowerInfoById(String id) {
+
+		logger.info("getPowerInfoById");
+		try {
+
+			return powerInfoMapper.selectByPrimaryKey(Integer.valueOf(id));
+		} catch (Exception e) {
+			logger.error("getPowerInfoById", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public PowerInfo getPowerInfo(PowerInfo record) {
+
+		logger.info("getPowerInfo");
+		try {
+
+			return powerInfoMapper.queryPowerInfo(record);
+		} catch (Exception e) {
+			logger.error("getPowerInfo", e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public boolean createPowerInfo(PowerInfo record) {
+
+		logger.info("createPowerInfo");
+		try {
+
+			int updates = powerInfoMapper.insertSelective(record);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("createPowerInfo", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean deletePowerInfo(String id) {
+
+		logger.info("deletePowerInfo");
+		try {
+
+			int updates = powerInfoMapper.delete(id);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("deletePowerInfo", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean updatePowerInfo(PowerInfo record) {
+
+		logger.info("updatePowerInfo");
+		try {
+
+			int updates = powerInfoMapper.updateByPrimaryKeySelective(record);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("updatePowerInfo", e);
+		}
+
+		return false;
+	}
+
+	@Override
+	public boolean deletePowerInfoByRoleId(String roleId) {
+		logger.info("deletePowerInfoByRoleId");
+		try {
+
+			int updates = powerInfoMapper.deleteByRoleId(roleId);
+
+			if (updates > 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			logger.error("deletePowerInfoByRoleId", e);
+		}
+
+		return false;
+	}
+
+}
+

Некоторые файлы не были показаны из-за большого количества измененных файлов