Browse Source

Merge branch 'master' of hyq/kmall-pt-hk into master

黄亚琴 6 years ago
parent
commit
3c0a20e078
100 changed files with 4850 additions and 2 deletions
  1. 8 0
      .idea/artifacts/kmall_admin_war.xml
  2. 16 0
      .idea/artifacts/kmall_admin_war_exploded.xml
  3. 8 0
      .idea/artifacts/kmall_framework_war.xml
  4. 16 0
      .idea/artifacts/kmall_framework_war_exploded.xml
  5. 27 0
      .idea/compiler.xml
  6. 6 0
      .idea/encodings.xml
  7. 9 0
      .idea/inspectionProfiles/Project_Default.xml
  8. 13 0
      .idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml
  9. 13 0
      .idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml
  10. 13 0
      .idea/libraries/Maven__com_alibaba_druid_1_0_28.xml
  11. 13 0
      .idea/libraries/Maven__com_alibaba_fastjson_1_2_30.xml
  12. 13 0
      .idea/libraries/Maven__com_fasterxml_classmate_1_3_1.xml
  13. 13 0
      .idea/libraries/Maven__com_github_axet_kaptcha_0_0_9.xml
  14. 13 0
      .idea/libraries/Maven__com_jhlabs_filters_2_0_235.xml
  15. 13 0
      .idea/libraries/Maven__com_zaxxer_HikariCP_2_6_3.xml
  16. 13 0
      .idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_3.xml
  17. 13 0
      .idea/libraries/Maven__commons_codec_commons_codec_1_10.xml
  18. 13 0
      .idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml
  19. 13 0
      .idea/libraries/Maven__commons_configuration_commons_configuration_1_10.xml
  20. 13 0
      .idea/libraries/Maven__commons_digester_commons_digester_1_8.xml
  21. 13 0
      .idea/libraries/Maven__commons_fileupload_commons_fileupload_1_3_1.xml
  22. 13 0
      .idea/libraries/Maven__commons_io_commons_io_2_5.xml
  23. 13 0
      .idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
  24. 13 0
      .idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml
  25. 13 0
      .idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml
  26. 13 0
      .idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml
  27. 13 0
      .idea/libraries/Maven__jstl_jstl_1_2.xml
  28. 13 0
      .idea/libraries/Maven__junit_junit_4_12.xml
  29. 13 0
      .idea/libraries/Maven__log4j_log4j_1_2_17.xml
  30. 13 0
      .idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml
  31. 13 0
      .idea/libraries/Maven__org_apache_shiro_shiro_core_1_3_2.xml
  32. 13 0
      .idea/libraries/Maven__org_apache_shiro_shiro_spring_1_3_2.xml
  33. 13 0
      .idea/libraries/Maven__org_apache_shiro_shiro_web_1_3_2.xml
  34. 13 0
      .idea/libraries/Maven__org_apache_velocity_velocity_1_7.xml
  35. 13 0
      .idea/libraries/Maven__org_apache_velocity_velocity_tools_2_0.xml
  36. 13 0
      .idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_9.xml
  37. 13 0
      .idea/libraries/Maven__org_freemarker_freemarker_2_3_23.xml
  38. 13 0
      .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
  39. 13 0
      .idea/libraries/Maven__org_hibernate_hibernate_validator_5_4_1_Final.xml
  40. 13 0
      .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml
  41. 13 0
      .idea/libraries/Maven__org_logback_extensions_logback_ext_spring_0_1_5.xml
  42. 13 0
      .idea/libraries/Maven__org_mariadb_jdbc_mariadb_java_client_2_0_2.xml
  43. 13 0
      .idea/libraries/Maven__org_mybatis_mybatis_3_4_1.xml
  44. 13 0
      .idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_0.xml
  45. 13 0
      .idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_19.xml
  46. 13 0
      .idea/libraries/Maven__org_slf4j_slf4j_api_1_7_19.xml
  47. 13 0
      .idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_19.xml
  48. 13 0
      .idea/libraries/Maven__org_springframework_spring_aop_4_3_7_RELEASE.xml
  49. 13 0
      .idea/libraries/Maven__org_springframework_spring_aspects_4_3_7_RELEASE.xml
  50. 13 0
      .idea/libraries/Maven__org_springframework_spring_beans_4_3_7_RELEASE.xml
  51. 13 0
      .idea/libraries/Maven__org_springframework_spring_context_4_3_7_RELEASE.xml
  52. 13 0
      .idea/libraries/Maven__org_springframework_spring_context_support_4_3_7_RELEASE.xml
  53. 13 0
      .idea/libraries/Maven__org_springframework_spring_core_4_3_7_RELEASE.xml
  54. 13 0
      .idea/libraries/Maven__org_springframework_spring_expression_4_3_7_RELEASE.xml
  55. 13 0
      .idea/libraries/Maven__org_springframework_spring_jdbc_4_3_7_RELEASE.xml
  56. 13 0
      .idea/libraries/Maven__org_springframework_spring_test_4_3_7_RELEASE.xml
  57. 13 0
      .idea/libraries/Maven__org_springframework_spring_tx_4_3_7_RELEASE.xml
  58. 13 0
      .idea/libraries/Maven__org_springframework_spring_web_4_3_7_RELEASE.xml
  59. 13 0
      .idea/libraries/Maven__org_springframework_spring_webmvc_4_3_7_RELEASE.xml
  60. 13 0
      .idea/libraries/Maven__taglibs_standard_1_1_2.xml
  61. 30 0
      .idea/misc.xml
  62. 14 0
      .idea/modules.xml
  63. 6 0
      .idea/vcs.xml
  64. 2 2
      README.md
  65. 155 0
      kmall-admin/kmall-admin.iml
  66. 75 0
      kmall-admin/pom.xml
  67. 36 0
      kmall-admin/src/main/java/com/kmall/admin/Test.java
  68. 30 0
      kmall-admin/src/main/java/com/kmall/admin/annotation/DataFilter.java
  69. 126 0
      kmall-admin/src/main/java/com/kmall/admin/aop/DataFilterAspect.java
  70. 85 0
      kmall-admin/src/main/java/com/kmall/admin/aop/SysLogAspect.java
  71. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AdController.java
  72. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AdPositionController.java
  73. 91 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AddressController.java
  74. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AttributeCategoryController.java
  75. 135 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AttributeController.java
  76. 125 0
      kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java
  77. 93 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CartController.java
  78. 185 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java
  79. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/ChannelController.java
  80. 94 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CollectController.java
  81. 131 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CommentController.java
  82. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CommentPictureController.java
  83. 120 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CouponController.java
  84. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CouponGoodsController.java
  85. 82 0
      kmall-admin/src/main/java/com/kmall/admin/controller/ExportExceptionDataController.java
  86. 111 0
      kmall-admin/src/main/java/com/kmall/admin/controller/FeedbackController.java
  87. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/FootprintController.java
  88. 145 0
      kmall-admin/src/main/java/com/kmall/admin/controller/FreightController.java
  89. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/FreightItemController.java
  90. 91 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsAttributeController.java
  91. 280 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java
  92. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGalleryController.java
  93. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGroupController.java
  94. 121 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGroupOpenController.java
  95. 124 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsIssueController.java
  96. 118 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsSpecificationController.java
  97. 134 0
      kmall-admin/src/main/java/com/kmall/admin/controller/HelpIssueController.java
  98. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/HelpTypeController.java
  99. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/KeywordsController.java
  100. 113 0
      kmall-admin/src/main/java/com/kmall/admin/controller/MerchController.java

+ 8 - 0
.idea/artifacts/kmall_admin_war.xml

@@ -0,0 +1,8 @@
+<component name="ArtifactManager">
+  <artifact type="war" name="kmall-admin:war">
+    <output-path>$PROJECT_DIR$/kmall-admin/target</output-path>
+    <root id="archive" name="kmall-admin-3.1.0.war">
+      <element id="artifact" artifact-name="kmall-admin:war exploded" />
+    </root>
+  </artifact>
+</component>

+ 16 - 0
.idea/artifacts/kmall_admin_war_exploded.xml

@@ -0,0 +1,16 @@
+<component name="ArtifactManager">
+  <artifact type="exploded-war" name="kmall-admin:war exploded">
+    <output-path>$PROJECT_DIR$/kmall-admin/target/kmall-admin-3.1.0</output-path>
+    <root id="root">
+      <element id="directory" name="WEB-INF">
+        <element id="directory" name="classes">
+          <element id="module-output" name="kmall-admin" />
+        </element>
+      </element>
+      <element id="directory" name="META-INF">
+        <element id="file-copy" path="$PROJECT_DIR$/kmall-admin/target/kmall-admin-3.1.0/META-INF/MANIFEST.MF" />
+      </element>
+      <element id="javaee-facet-resources" facet="kmall-admin/web/Web" />
+    </root>
+  </artifact>
+</component>

+ 8 - 0
.idea/artifacts/kmall_framework_war.xml

@@ -0,0 +1,8 @@
+<component name="ArtifactManager">
+  <artifact type="war" name="kmall-framework:war">
+    <output-path>$PROJECT_DIR$/kmall-framework/target</output-path>
+    <root id="archive" name="kmall-framework.war">
+      <element id="artifact" artifact-name="kmall-framework:war exploded" />
+    </root>
+  </artifact>
+</component>

+ 16 - 0
.idea/artifacts/kmall_framework_war_exploded.xml

@@ -0,0 +1,16 @@
+<component name="ArtifactManager">
+  <artifact type="exploded-war" name="kmall-framework:war exploded">
+    <output-path>$PROJECT_DIR$/kmall-framework/target/kmall-framework</output-path>
+    <root id="root">
+      <element id="directory" name="WEB-INF">
+        <element id="directory" name="classes">
+          <element id="module-output" name="kmall-framework" />
+        </element>
+      </element>
+      <element id="directory" name="META-INF">
+        <element id="file-copy" path="$PROJECT_DIR$/kmall-framework/target/kmall-framework/META-INF/MANIFEST.MF" />
+      </element>
+      <element id="javaee-facet-resources" facet="kmall-framework/web/Web" />
+    </root>
+  </artifact>
+</component>

+ 27 - 0
.idea/compiler.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="kmall-admin" />
+        <module name="kmall-api" />
+        <module name="kmall-common" />
+        <module name="kmall-framework" />
+        <module name="kmall-gen" />
+        <module name="kmall-schedule" />
+      </profile>
+    </annotationProcessing>
+    <bytecodeTargetLevel>
+      <module name="kmall-admin" target="1.5" />
+      <module name="kmall-api" target="1.5" />
+      <module name="kmall-common" target="1.5" />
+      <module name="kmall-framework" target="1.5" />
+      <module name="kmall-gen" target="1.5" />
+      <module name="kmall-pt-hk" target="1.8" />
+      <module name="kmall-schedule" target="1.5" />
+    </bytecodeTargetLevel>
+  </component>
+</project>

+ 6 - 0
.idea/encodings.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$" charset="UTF-8" />
+  </component>
+</project>

+ 9 - 0
.idea/inspectionProfiles/Project_Default.xml

@@ -0,0 +1,9 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="SerializableHasSerialVersionUIDField" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignoreAnonymousInnerClasses" value="false" />
+      <option name="superClassString" value="" />
+    </inspection_tool>
+  </profile>
+</component>

+ 13 - 0
.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: ch.qos.logback:logback-classic:1.2.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: ch.qos.logback:logback-core:1.2.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__com_alibaba_druid_1_0_28.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.alibaba:druid:1.0.28">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/druid/1.0.28/druid-1.0.28.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/druid/1.0.28/druid-1.0.28-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/druid/1.0.28/druid-1.0.28-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__com_alibaba_fastjson_1_2_30.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.alibaba:fastjson:1.2.30">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.30/fastjson-1.2.30.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.30/fastjson-1.2.30-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.30/fastjson-1.2.30-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__com_fasterxml_classmate_1_3_1.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.fasterxml:classmate:1.3.1">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.3.1/classmate-1.3.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.3.1/classmate-1.3.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.3.1/classmate-1.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__com_github_axet_kaptcha_0_0_9.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.axet:kaptcha:0.0.9">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__com_jhlabs_filters_2_0_235.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.jhlabs:filters:2.0.235">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/jhlabs/filters/2.0.235/filters-2.0.235.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/com/jhlabs/filters/2.0.235/filters-2.0.235-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/jhlabs/filters/2.0.235/filters-2.0.235-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__com_zaxxer_HikariCP_2_6_3.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.zaxxer:HikariCP:2.6.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/2.6.3/HikariCP-2.6.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/2.6.3/HikariCP-2.6.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/2.6.3/HikariCP-2.6.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_3.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-beanutils:commons-beanutils:1.9.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_codec_commons_codec_1_10.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-codec:commons-codec:1.10">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.10/commons-codec-1.10.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.10/commons-codec-1.10-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.10/commons-codec-1.10-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-collections:commons-collections:3.2.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_configuration_commons_configuration_1_10.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-configuration:commons-configuration:1.10">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-configuration/commons-configuration/1.10/commons-configuration-1.10.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-configuration/commons-configuration/1.10/commons-configuration-1.10-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-configuration/commons-configuration/1.10/commons-configuration-1.10-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_digester_commons_digester_1_8.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-digester:commons-digester:1.8">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-digester/commons-digester/1.8/commons-digester-1.8.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-digester/commons-digester/1.8/commons-digester-1.8-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-digester/commons-digester/1.8/commons-digester-1.8-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_3_1.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-fileupload:commons-fileupload:1.3.1">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-fileupload/commons-fileupload/1.3.1/commons-fileupload-1.3.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-fileupload/commons-fileupload/1.3.1/commons-fileupload-1.3.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-fileupload/commons-fileupload/1.3.1/commons-fileupload-1.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_io_commons_io_2_5.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-io:commons-io:2.5">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.5/commons-io-2.5.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.5/commons-io-2.5-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.5/commons-io-2.5-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-lang:commons-lang:2.6">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: commons-logging:commons-logging:1.1.1">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: javax.servlet:javax.servlet-api:3.1.0">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: javax.validation:validation-api:1.1.0.Final">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__jstl_jstl_1_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: jstl:jstl:1.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/jstl/jstl/1.2/jstl-1.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/jstl/jstl/1.2/jstl-1.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/jstl/jstl/1.2/jstl-1.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__junit_junit_4_12.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: junit:junit:4.12">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__log4j_log4j_1_2_17.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: log4j:log4j:1.2.17">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.17/log4j-1.2.17.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.17/log4j-1.2.17-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.17/log4j-1.2.17-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: mysql:mysql-connector-java:5.1.39">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_apache_shiro_shiro_core_1_3_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.shiro:shiro-core:1.3.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-core/1.3.2/shiro-core-1.3.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-core/1.3.2/shiro-core-1.3.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-core/1.3.2/shiro-core-1.3.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_3_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.shiro:shiro-spring:1.3.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring/1.3.2/shiro-spring-1.3.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring/1.3.2/shiro-spring-1.3.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring/1.3.2/shiro-spring-1.3.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_apache_shiro_shiro_web_1_3_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.shiro:shiro-web:1.3.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-web/1.3.2/shiro-web-1.3.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-web/1.3.2/shiro-web-1.3.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-web/1.3.2/shiro-web-1.3.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_apache_velocity_velocity_1_7.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.velocity:velocity:1.7">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity/1.7/velocity-1.7.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity/1.7/velocity-1.7-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity/1.7/velocity-1.7-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_apache_velocity_velocity_tools_2_0.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.apache.velocity:velocity-tools:2.0">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_9.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.aspectj:aspectjweaver:1.8.9">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.8.9/aspectjweaver-1.8.9.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.8.9/aspectjweaver-1.8.9-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.8.9/aspectjweaver-1.8.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_freemarker_freemarker_2_3_23.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.freemarker:freemarker:2.3.23">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/freemarker/freemarker/2.3.23/freemarker-2.3.23.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/freemarker/freemarker/2.3.23/freemarker-2.3.23-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/freemarker/freemarker/2.3.23/freemarker-2.3.23-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.hamcrest:hamcrest-core:1.3">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_hibernate_hibernate_validator_5_4_1_Final.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.hibernate:hibernate-validator:5.4.1.Final">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-validator/5.4.1.Final/hibernate-validator-5.4.1.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-validator/5.4.1.Final/hibernate-validator-5.4.1.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-validator/5.4.1.Final/hibernate-validator-5.4.1.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_0_Final.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.3.0.Final/jboss-logging-3.3.0.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.3.0.Final/jboss-logging-3.3.0.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.3.0.Final/jboss-logging-3.3.0.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_logback_extensions_logback_ext_spring_0_1_5.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.logback-extensions:logback-ext-spring:0.1.5">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/logback-extensions/logback-ext-spring/0.1.5/logback-ext-spring-0.1.5.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/logback-extensions/logback-ext-spring/0.1.5/logback-ext-spring-0.1.5-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/logback-extensions/logback-ext-spring/0.1.5/logback-ext-spring-0.1.5-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_mariadb_jdbc_mariadb_java_client_2_0_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.mariadb.jdbc:mariadb-java-client:2.0.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mariadb/jdbc/mariadb-java-client/2.0.2/mariadb-java-client-2.0.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mariadb/jdbc/mariadb-java-client/2.0.2/mariadb-java-client-2.0.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mariadb/jdbc/mariadb-java-client/2.0.2/mariadb-java-client-2.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_mybatis_mybatis_3_4_1.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.mybatis:mybatis:3.4.1">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.1/mybatis-3.4.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.1/mybatis-3.4.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.1/mybatis-3.4.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_0.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.mybatis:mybatis-spring:1.3.0">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.0/mybatis-spring-1.3.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.0/mybatis-spring-1.3.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.0/mybatis-spring-1.3.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_19.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.slf4j:jcl-over-slf4j:1.7.19">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.19/jcl-over-slf4j-1.7.19.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.19/jcl-over-slf4j-1.7.19-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.19/jcl-over-slf4j-1.7.19-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_19.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.slf4j:slf4j-api:1.7.19">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.19/slf4j-api-1.7.19.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.19/slf4j-api-1.7.19-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.19/slf4j-api-1.7.19-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_19.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.slf4j:slf4j-log4j12:1.7.19">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.19/slf4j-log4j12-1.7.19.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.19/slf4j-log4j12-1.7.19-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.19/slf4j-log4j12-1.7.19-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_aop_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-aop:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.3.7.RELEASE/spring-aop-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.3.7.RELEASE/spring-aop-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.3.7.RELEASE/spring-aop-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_aspects_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-aspects:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aspects/4.3.7.RELEASE/spring-aspects-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aspects/4.3.7.RELEASE/spring-aspects-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aspects/4.3.7.RELEASE/spring-aspects-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_beans_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-beans:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.3.7.RELEASE/spring-beans-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.3.7.RELEASE/spring-beans-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.3.7.RELEASE/spring-beans-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_context_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-context:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.3.7.RELEASE/spring-context-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.3.7.RELEASE/spring-context-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.3.7.RELEASE/spring-context-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_context_support_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-context-support:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/4.3.7.RELEASE/spring-context-support-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/4.3.7.RELEASE/spring-context-support-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/4.3.7.RELEASE/spring-context-support-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_core_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-core:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.3.7.RELEASE/spring-core-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.3.7.RELEASE/spring-core-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.3.7.RELEASE/spring-core-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_expression_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-expression:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.3.7.RELEASE/spring-expression-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.3.7.RELEASE/spring-expression-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.3.7.RELEASE/spring-expression-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_jdbc_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-jdbc:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.3.7.RELEASE/spring-jdbc-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.3.7.RELEASE/spring-jdbc-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.3.7.RELEASE/spring-jdbc-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_test_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-test:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.3.7.RELEASE/spring-test-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.3.7.RELEASE/spring-test-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.3.7.RELEASE/spring-test-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_tx_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-tx:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.3.7.RELEASE/spring-tx-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.3.7.RELEASE/spring-tx-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.3.7.RELEASE/spring-tx-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_web_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-web:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.3.7.RELEASE/spring-web-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.3.7.RELEASE/spring-web-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.3.7.RELEASE/spring-web-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_spring_webmvc_4_3_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework:spring-webmvc:4.3.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.3.7.RELEASE/spring-webmvc-4.3.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.3.7.RELEASE/spring-webmvc-4.3.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.3.7.RELEASE/spring-webmvc-4.3.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__taglibs_standard_1_1_2.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: taglibs:standard:1.1.2">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/taglibs/standard/1.1.2/standard-1.1.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/taglibs/standard/1.1.2/standard-1.1.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/taglibs/standard/1.1.2/standard-1.1.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 30 - 0
.idea/misc.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CheckStyle-IDEA">
+    <option name="configuration">
+      <map>
+        <entry key="checkstyle-version" value="8.2" />
+        <entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
+        <entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
+        <entry key="scan-before-checkin" value="false" />
+        <entry key="scanscope" value="JavaOnly" />
+        <entry key="suppress-errors" value="false" />
+      </map>
+    </option>
+  </component>
+  <component name="FrameworkDetectionExcludesConfiguration">
+    <file type="web" url="file://$PROJECT_DIR$/kmall-admin" />
+    <file type="web" url="file://$PROJECT_DIR$/kmall-framework" />
+  </component>
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/classes" />
+  </component>
+</project>

+ 14 - 0
.idea/modules.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/kmall-admin/kmall-admin.iml" filepath="$PROJECT_DIR$/kmall-admin/kmall-admin.iml" />
+      <module fileurl="file://$PROJECT_DIR$/kmall-api/kmall-api.iml" filepath="$PROJECT_DIR$/kmall-api/kmall-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/kmall-common/kmall-common.iml" filepath="$PROJECT_DIR$/kmall-common/kmall-common.iml" />
+      <module fileurl="file://$PROJECT_DIR$/kmall-framework/kmall-framework.iml" filepath="$PROJECT_DIR$/kmall-framework/kmall-framework.iml" />
+      <module fileurl="file://$PROJECT_DIR$/kmall-gen/kmall-gen.iml" filepath="$PROJECT_DIR$/kmall-gen/kmall-gen.iml" />
+      <module fileurl="file://$PROJECT_DIR$/kmall-pt-hk.iml" filepath="$PROJECT_DIR$/kmall-pt-hk.iml" />
+      <module fileurl="file://$PROJECT_DIR$/kmall-schedule/kmall-schedule.iml" filepath="$PROJECT_DIR$/kmall-schedule/kmall-schedule.iml" />
+    </modules>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 2 - 2
README.md

@@ -43,7 +43,7 @@ kmall-pt-hk
     * 字符集                 : utf8mb4 -- UTF-8 Unicode
     * 排序规则               : utf8mb4_unicode_ci
 * 导入wechat_buss.sql
-* 修改开发环境配置kmall-pt-global\kmall-admin\src\main\resources\dev\platform.properties
+* 修改开发环境配置kmall-pt-hk\kmall-admin\src\main\resources\dev\platform.properties
     * jdbc.url
     * jdbc.username
     * jdbc.password
@@ -58,7 +58,7 @@ kmall-pt-hk
     * 如果使用快递接口请自行申请账户
         * kdn.businessId
         * kdn.appKey
-* 修改生产环境配置kmall-pt-global\kmall-admin\src\main\resources\prod\platform.properties(同上)
+* 修改生产环境配置kmall-pt-hk\kmall-admin\src\main\resources\prod\platform.properties(同上)
 * 安装并启动redis
 * 启动项目(参照开发文档2.6)
 * 将wx-mall导入微信web开发者工具

+ 155 - 0
kmall-admin/kmall-admin.iml

@@ -0,0 +1,155 @@
+<?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="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/resources/conf" relative="WEB-INF/classes/conf" />
+          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
+        </webroots>
+      </configuration>
+    </facet>
+    <facet type="Spring" name="Spring">
+      <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" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="kmall-common" />
+    <orderEntry type="library" name="Maven: com.qiniu:qiniu-java-sdk:7.2.18" level="project" />
+    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.11.0" level="project" />
+    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.14.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:2.5.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.jdom:jdom:1.1" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
+    <orderEntry type="library" name="Maven: com.qcloud:cos_api:4.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.json:json:20140107" level="project" />
+    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.5.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.5.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.5.0" level="project" />
+    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.0.b2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.15" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.15" level="project" />
+    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.15" level="project" />
+    <orderEntry type="library" name="Maven: redis.clients:jedis:2.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:17.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.jxls:jxls:2.4.7" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-jexl:2.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.jxls:jxls-poi:1.0.16" level="project" />
+    <orderEntry type="library" name="Maven: org.jxls:jxls-jexcel:1.0.7" level="project" />
+    <orderEntry type="library" name="Maven: net.sourceforge.jexcelapi:jxl:2.6.10" level="project" />
+    <orderEntry type="library" name="Maven: org.jxls:jxls-reader:2.0.5" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-digester3:with-deps:3.2" level="project" />
+    <orderEntry type="library" name="Maven: cglib:cglib:2.2.2" level="project" />
+    <orderEntry type="library" name="Maven: asm:asm:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
+    <orderEntry type="module" module-name="kmall-gen" />
+    <orderEntry type="module" module-name="kmall-schedule" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.2.3" level="project" />
+    <orderEntry type="module" module-name="kmall-api" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.4.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.6" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.6" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.4.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.4.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.4.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" 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: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.4.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.19" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.19" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.19" level="project" />
+    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.logback-extensions:logback-ext-spring:0.1.5" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.6.3" level="project" />
+    <orderEntry type="library" name="Maven: org.mariadb.jdbc:mariadb-java-client:2.0.2" level="project" />
+    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.39" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid:1.0.28" level="project" />
+    <orderEntry type="module-library">
+      <library name="Maven: com.alibaba:jconsole:1.8.0">
+        <CLASSES>
+          <root url="jar://D:/Program Files/Java/jdk1.8.0_131/lib/jconsole.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library name="Maven: com.alibaba:tools:1.8.0">
+        <CLASSES>
+          <root url="jar://D:/Program Files/Java/jdk1.8.0_131/lib/tools.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
+    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.30" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
+    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.10" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.github.axet:kaptcha:0.0.9" level="project" />
+    <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" 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: jstl:jstl:1.2" level="project" />
+    <orderEntry type="library" name="Maven: taglibs:standard:1.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.23" level="project" />
+  </component>
+</module>

+ 75 - 0
kmall-admin/pom.xml

@@ -0,0 +1,75 @@
+<?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">
+    <parent>
+        <artifactId>kmall-pt-hk</artifactId>
+        <groupId>com.kmall</groupId>
+        <version>3.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>kmall-admin</artifactId>
+    <packaging>war</packaging>
+    <description>管理后台</description>
+
+
+    <dependencies>
+
+        <dependency>
+            <groupId>com.kmall</groupId>
+            <artifactId>kmall-common</artifactId>
+            <version>${kmall-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.kmall</groupId>
+            <artifactId>kmall-gen</artifactId>
+            <version>${kmall-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.kmall</groupId>
+            <artifactId>kmall-schedule</artifactId>
+            <version>${kmall-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.kmall</groupId>
+            <artifactId>kmall-api</artifactId>
+            <version>${kmall-version}</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <scriptSourceDirectory>src/main/java</scriptSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+            <resource>
+                <directory>src/main/java</directory>
+                <filtering>true</filtering>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-war-plugin</artifactId>
+                <configuration>
+                    <warSourceDirectory>src/main/webapp</warSourceDirectory>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    <webResources>
+                        <resource>
+                            <directory>src/main/resources/conf</directory>
+                            <targetPath>WEB-INF/classes/conf</targetPath>
+                            <filtering>true</filtering>
+                        </resource>
+                    </webResources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 36 - 0
kmall-admin/src/main/java/com/kmall/admin/Test.java

@@ -0,0 +1,36 @@
+/*
+ * 创建时间:2017-08-19 08:55
+ * 项目名称:kmall_pt
+ * 类名称:Test.java
+ * 包名称:com.kmall.admin
+ *
+ * 修改履历:
+ *          日期              修正者        主要内容
+ *                                      
+ *
+ * Copyright (c) 2016-2017 兆尹科技
+ */
+package com.kmall.admin;
+
+/**
+ * 名称:Test <br>
+ * 描述:<br>
+ *
+ * @author Scott
+ * @version 1.0
+ * @since 1.0.0
+ */
+public class Test {
+    public static void main(String[] args) {
+        //Integer使用equals判断
+        Integer a = 127;
+        Integer b = 127;
+        System.out.println(a == b);
+        Integer c = 129;
+        Integer d = 129;
+        System.out.println(c == d);
+
+        System.out.println(c.equals(d));
+
+    }
+}

+ 30 - 0
kmall-admin/src/main/java/com/kmall/admin/annotation/DataFilter.java

@@ -0,0 +1,30 @@
+package com.kmall.admin.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 数据过滤
+ *
+ * @author Scott
+ * @email
+ * @date 2017年10月23日 下午13:13:23
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface DataFilter {
+    /**
+     * sql中数据创建用户(通常传入TABLE.CREATE_USER_ID)的别名
+     */
+    String userAlias() default "";
+
+    /**
+     * sql中数据deptId的别名
+     */
+    String deptAlias() default "";
+
+    /**
+     * true:没有本部门数据权限,也能查询本人数据  暂时不使用
+     */
+    boolean self() default true;
+}

+ 126 - 0
kmall-admin/src/main/java/com/kmall/admin/aop/DataFilterAspect.java

@@ -0,0 +1,126 @@
+package com.kmall.admin.aop;
+
+import com.kmall.admin.annotation.DataFilter;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.service.SysRoleDeptService;
+import com.kmall.common.utils.Constant;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ShiroUtils;
+import org.apache.commons.lang.StringUtils;
+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.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 数据过滤,切面处理类
+ *
+ * @author Scott
+ * @email
+ * @date 2017年10月23日 下午13:33:35
+ */
+@Aspect
+@Component
+public class DataFilterAspect {
+    @Autowired
+    private SysRoleDeptService sysRoleDeptService;
+
+    @Pointcut("@annotation(com.kmall.admin.annotation.DataFilter)")
+    public void dataFilterCut() {
+
+    }
+
+    @Before("dataFilterCut()")
+    public void dataFilter(JoinPoint point) throws Throwable {
+        //获取参数
+        Object params = point.getArgs()[0];
+        if (params != null && params instanceof Map) {
+            SysUserEntity user = ShiroUtils.getUserEntity();
+
+            //如果不是超级管理员,则只能查询权限数据
+            if (user.getUserId() != Constant.SUPER_ADMIN) {
+                Map map = (Map) params;
+                map.put("filterSql", getFilterSQL(user, point));
+            }
+
+            return;
+        }
+
+        throw new RRException("数据权限接口的参数必须为Map类型,且不能为NULL");
+    }
+
+    /**
+     * 获取数据过滤的SQL
+     */
+    private String getFilterSQL(SysUserEntity user, JoinPoint point) {
+        MethodSignature signature = (MethodSignature) point.getSignature();
+        DataFilter dataFilter = signature.getMethod().getAnnotation(DataFilter.class);
+
+        String userAlias = dataFilter.userAlias();
+        String deptAlias = dataFilter.deptAlias();
+
+        StringBuilder filterSql = new StringBuilder();
+
+        //取出当前登录用户的部门权限
+        String alias = getAliasByUser(user.getUserId());
+        if (StringUtils.isNotEmpty(alias)) {
+            filterSql.append(" and (");
+            filterSql.append(deptAlias);
+            filterSql.append(" in ");
+            filterSql.append(" ( ");
+            filterSql.append(alias);
+            filterSql.append(" ) ");
+            if (StringUtils.isNotBlank(userAlias)) {
+                filterSql.append(" or ");
+                filterSql.append(userAlias);
+                filterSql.append("=");
+                filterSql.append(user.getUserId());
+            }
+            filterSql.append(" ) ");
+        } else if (StringUtils.isNotBlank(userAlias)) {
+            filterSql.append(" and ");
+            filterSql.append(userAlias);
+            filterSql.append("=");
+            filterSql.append(user.getUserId());
+            filterSql.append(" ");
+        }
+        //没有部门数据权限,也能查询本人数据
+        if (dataFilter.self()) {
+            filterSql.append(" or ");
+            filterSql.append(userAlias);
+            filterSql.append("=");
+            filterSql.append(user.getUserId());
+            filterSql.append(" ");
+        }
+        return filterSql.toString();
+    }
+
+    /**
+     * 取出当前登录用户的部门权限
+     *
+     * @param userId 登录用户Id
+     * @return 部门权限
+     */
+    private String getAliasByUser(Long userId) {
+        @SuppressWarnings("unchecked")
+        List<Long> roleOrglist = sysRoleDeptService.queryDeptIdListByUserId(userId);
+        StringBuilder roleStr = new StringBuilder();
+        String alias = "";
+        if (roleOrglist != null && !roleOrglist.isEmpty()) {
+            for (Long roleId : roleOrglist) {
+                roleStr.append(",");
+                roleStr.append("'");
+                roleStr.append(roleId);
+                roleStr.append("'");
+            }
+            alias = roleStr.toString().substring(1, roleStr.length());
+        }
+        return alias;
+    }
+}

+ 85 - 0
kmall-admin/src/main/java/com/kmall/admin/aop/SysLogAspect.java

@@ -0,0 +1,85 @@
+package com.kmall.admin.aop;
+
+import com.alibaba.fastjson.JSON;
+import com.kmall.common.annotation.SysLog;
+import com.kmall.common.entity.SysLogEntity;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.service.SysLogService;
+import com.kmall.common.utils.HttpContextUtils;
+import com.kmall.common.utils.IPUtils;
+import com.kmall.common.utils.ShiroUtils;
+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.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+import java.util.Date;
+
+
+/**
+ * 系统日志,切面处理类
+ *
+ * @author Scott
+ * @email
+ * @date 2017年3月8日 上午11:07:35
+ */
+@Aspect
+@Component
+public class SysLogAspect {
+    @Autowired
+    private SysLogService sysLogService;
+
+    @Pointcut("@annotation(com.kmall.common.annotation.SysLog)")
+    public void logPointCut() {
+
+    }
+
+    @Before("logPointCut()")
+    public void saveSysLog(JoinPoint joinPoint) {
+        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+        Method method = signature.getMethod();
+
+        SysLogEntity sysLog = new SysLogEntity();
+        SysLog syslog = method.getAnnotation(SysLog.class);
+        if (syslog != null) {
+            //注解上的描述
+            sysLog.setOperation(syslog.value());
+        }
+
+        //请求的方法名
+        String className = joinPoint.getTarget().getClass().getName();
+        String methodName = signature.getName();
+        sysLog.setMethod(className + "." + methodName + "()");
+
+        //请求的参数
+        Object[] args = joinPoint.getArgs();
+        String params = JSON.toJSONString(args[0]);
+        sysLog.setParams(params);
+
+        //获取request
+        HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+        //设置IP地址
+        sysLog.setIp(IPUtils.getIpAddr(request));
+
+        //用户名
+        SysUserEntity sysUserEntity = ShiroUtils.getUserEntity();
+        String username = "";
+        if ("login".equals(methodName)) {
+            username = params;
+        }
+        if (null != sysUserEntity) {
+            username = ShiroUtils.getUserEntity().getUsername();
+        }
+        sysLog.setUsername(username);
+
+        sysLog.setCreateDate(new Date());
+        //保存系统日志
+        sysLogService.save(sysLog);
+    }
+
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AdController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AdEntity;
+import com.kmall.admin.service.AdService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 09:37:35
+ */
+@RestController
+@RequestMapping("ad")
+public class AdController {
+    @Autowired
+    private AdService adService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("ad:list")
+    public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AdEntity> adList = adService.queryList(query);
+        int total = adService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(adList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("ad:info")
+    public R info(@PathVariable("id") Integer id) {
+        AdEntity ad = adService.queryObject(id);
+
+        return R.ok().put("ad", ad);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("ad:save")
+    public R save(@RequestBody AdEntity ad) {
+        adService.save(ad);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("ad:update")
+    public R update(@RequestBody AdEntity ad) {
+        adService.update(ad);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("ad:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        adService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        List<AdEntity> list = adService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 100 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AdPositionController.java

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AdPositionEntity;
+import com.kmall.admin.service.AdPositionService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 12:02:42
+ */
+@RestController
+@RequestMapping("adposition")
+public class AdPositionController {
+    @Autowired
+    private AdPositionService adPositionService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("adposition:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AdPositionEntity> adPositionList = adPositionService.queryList(query);
+        int total = adPositionService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(adPositionList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("adposition:info")
+    public R info(@PathVariable("id") Integer id) {
+        AdPositionEntity adPosition = adPositionService.queryObject(id);
+
+        return R.ok().put("adPosition", adPosition);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("adposition:save")
+    public R save(@RequestBody AdPositionEntity adPosition) {
+        adPositionService.save(adPosition);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("adposition:update")
+    public R update(@RequestBody AdPositionEntity adPosition) {
+        adPositionService.update(adPosition);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("adposition:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        adPositionService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<AdPositionEntity> list = adPositionService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 91 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AddressController.java

@@ -0,0 +1,91 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AddressEntity;
+import com.kmall.admin.service.AddressService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-16 17:22:46
+ */
+@RestController
+@RequestMapping("address")
+public class AddressController {
+    @Autowired
+    private AddressService addressService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("address:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AddressEntity> addressList = addressService.queryList(query);
+        int total = addressService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(addressList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("address:info")
+    public R info(@PathVariable("id") Integer id) {
+        AddressEntity address = addressService.queryObject(id);
+
+        return R.ok().put("address", address);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("address:save")
+    public R save(@RequestBody AddressEntity address) {
+        addressService.save(address);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("address:update")
+    public R update(@RequestBody AddressEntity address) {
+        addressService.update(address);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("address:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        addressService.deleteBatch(ids);
+
+        return R.ok();
+    }
+}

+ 100 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AttributeCategoryController.java

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AttributeCategoryEntity;
+import com.kmall.admin.service.AttributeCategoryService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-17 16:13:27
+ */
+@RestController
+@RequestMapping("attributecategory")
+public class AttributeCategoryController {
+    @Autowired
+    private AttributeCategoryService attributeCategoryService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("attributecategory:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AttributeCategoryEntity> attributeCategoryList = attributeCategoryService.queryList(query);
+        int total = attributeCategoryService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(attributeCategoryList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("attributecategory:info")
+    public R info(@PathVariable("id") Integer id) {
+        AttributeCategoryEntity attributeCategory = attributeCategoryService.queryObject(id);
+
+        return R.ok().put("attributeCategory", attributeCategory);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("attributecategory:save")
+    public R save(@RequestBody AttributeCategoryEntity attributeCategory) {
+        attributeCategoryService.save(attributeCategory);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("attributecategory:update")
+    public R update(@RequestBody AttributeCategoryEntity attributeCategory) {
+        attributeCategoryService.update(attributeCategory);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("attributecategory:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        attributeCategoryService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<AttributeCategoryEntity> list = attributeCategoryService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 135 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AttributeController.java

@@ -0,0 +1,135 @@
+package com.kmall.admin.controller;
+
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.entity.AttributeEntity;
+import com.kmall.admin.service.AttributeService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-17 16:48:17
+ */
+@RestController
+@RequestMapping("attribute")
+public class AttributeController {
+    @Autowired
+    private AttributeService attributeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("attribute:list")
+    public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AttributeEntity> attributeList = attributeService.queryList(query);
+        int total = attributeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(attributeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("attribute:info")
+    public R info(@PathVariable("id") Integer id) {
+        AttributeEntity attribute = attributeService.queryObject(id);
+
+        return R.ok().put("attribute", attribute);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("attribute:save")
+    public R save(@RequestBody AttributeEntity attribute) {
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(attribute);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("name", "名称");
+        builder.put("attributeCategoryId", "所属分类");
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
+        attributeService.save(attribute);
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("attribute:update")
+    public R update(@RequestBody AttributeEntity attribute) {
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(attribute);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("name", "名称");
+        builder.put("attributeCategoryId", "所属分类");
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
+        attributeService.update(attribute);
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("attribute:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        attributeService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        List<AttributeEntity> list = attributeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    @RequestMapping("/query")
+    public R query(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        List<AttributeEntity> list = attributeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 125 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java

@@ -0,0 +1,125 @@
+package com.kmall.admin.controller;
+
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.entity.BrandEntity;
+import com.kmall.admin.service.BrandService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 17:59:15
+ */
+@RestController
+@RequestMapping("brand")
+public class BrandController {
+    @Autowired
+    private BrandService brandService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("brand:list")
+    public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<BrandEntity> brandList = brandService.queryList(query);
+        int total = brandService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(brandList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("brand:info")
+    public R info(@PathVariable("id") Integer id) {
+        BrandEntity brand = brandService.queryObject(id);
+
+        return R.ok().put("brand", brand);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("brand:save")
+    public R save(@RequestBody BrandEntity brand) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(brand);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
+
+        brandService.save(brand);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("brand:update")
+    public R update(@RequestBody BrandEntity brand) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(brand);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
+        brandService.update(brand);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("brand:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        brandService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        List<BrandEntity> list = brandService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 93 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CartController.java

@@ -0,0 +1,93 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CartEntity;
+import com.kmall.admin.service.CartService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:06
+ */
+@RestController
+@RequestMapping("cart")
+public class CartController {
+	@Autowired
+	private CartService cartService;
+	
+	/**
+	 * 列表
+	 */
+	@RequestMapping("/list")
+	@RequiresPermissions("cart:list")
+	public R list(@RequestParam Map<String, Object> params){
+		ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+		//查询列表数据
+        Query query = new Query(params);
+
+		List<CartEntity> cartList = cartService.queryList(query);
+		int total = cartService.queryTotal(query);
+		
+		PageUtils pageUtil = new PageUtils(cartList, total, query.getLimit(), query.getPage());
+		
+		return R.ok().put("page", pageUtil);
+	}
+	
+	
+	/**
+	 * 信息
+	 */
+	@RequestMapping("/info/{id}")
+	@RequiresPermissions("cart:info")
+	public R info(@PathVariable("id") Integer id){
+		CartEntity cart = cartService.queryObject(id);
+		
+		return R.ok().put("cart", cart);
+	}
+	
+	/**
+	 * 保存
+	 */
+	@RequestMapping("/save")
+	@RequiresPermissions("cart:save")
+	public R save(@RequestBody CartEntity cart){
+		cartService.save(cart);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 修改
+	 */
+	@RequestMapping("/update")
+	@RequiresPermissions("cart:update")
+	public R update(@RequestBody CartEntity cart){
+		cartService.update(cart);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 删除
+	 */
+	@RequestMapping("/delete")
+	@RequiresPermissions("cart:delete")
+	public R delete(@RequestBody Integer[] ids){
+		cartService.deleteBatch(ids);
+		
+		return R.ok();
+	}
+	
+}

+ 185 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java

@@ -0,0 +1,185 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CategoryEntity;
+import com.kmall.admin.service.CategoryService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-21 15:32:31
+ */
+@RestController
+@RequestMapping("category")
+public class CategoryController {
+    @Autowired
+    private CategoryService categoryService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("category:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CategoryEntity> categoryList = categoryService.queryList(query);
+        int total = categoryService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(categoryList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("category:info")
+    public R info(@PathVariable("id") Integer id) {
+        CategoryEntity category = categoryService.queryObject(id);
+
+        return R.ok().put("category", category);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("category:save")
+    public R save(@RequestBody CategoryEntity category) {
+        categoryService.save(category);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("category:update")
+    public R update(@RequestBody CategoryEntity category) {
+        categoryService.update(category);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("category:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        categoryService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        List<CategoryEntity> list = categoryService.queryList(params);
+        //添加顶级菜单
+        CategoryEntity root = new CategoryEntity();
+        root.setId(0);
+        root.setName("一级分类");
+        root.setParentId(-1);
+        root.setOpen(true);
+        list.add(root);
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 查看信息(全部加载页面渲染太慢!)
+     */
+    @RequestMapping("/getAreaTree")
+    public R getAreaTree() {
+
+        Map<String, Object> map = new HashMap<>();
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+
+        List<CategoryEntity> list = categoryService.queryList(map);
+        for (CategoryEntity sysRegionEntity : list) {
+            sysRegionEntity.setValue(sysRegionEntity.getId() + "");
+            sysRegionEntity.setLabel(sysRegionEntity.getName());
+        }
+        List<CategoryEntity> node = TreeUtils.factorTree(list);
+
+        return R.ok().put("node", node);
+    }
+
+    /**
+     * 查询
+     *
+     * @return
+     */
+    @RequestMapping("/getCategorySelect")
+    public R getCategorySelect(@RequestParam Map<String, Object> map) {
+        map.put("parentId", "0");
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+        List<CategoryEntity> list = categoryService.queryList(map);
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 查询
+     *
+     * @return
+     */
+    @RequestMapping("/getCategorySelectByParent")
+    public R getCategorySelectByParent(@RequestParam Map<String, Object> map) {
+        String parentId = map.get("parentId").toString();
+        List<CategoryEntity> list = new ArrayList<>();
+        if (StringUtils.isNotEmpty(parentId)) {
+            ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+
+            list = categoryService.queryList(map);
+        }
+
+        return R.ok().put("list", list);
+    }
+
+    @RequestMapping("/query")
+    public R query(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        params.put("isShow", 1);
+        List<CategoryEntity> list = categoryService.queryList(params);
+        //添加顶级菜单
+        CategoryEntity root = new CategoryEntity();
+        root.setId(0);
+        root.setName("一级分类");
+        root.setParentId(-1);
+        root.setOpen(true);
+        list.add(root);
+        return R.ok().put("list", list);
+    }
+
+    @RequestMapping("/getCategory")
+    public R getCategory(@RequestParam Map<String, Object> map) {
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+
+        List<CategoryEntity> list = categoryService.queryList(map);
+        return R.ok().put("list", list);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/ChannelController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.ChannelEntity;
+import com.kmall.admin.service.ChannelService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-22 19:19:56
+ */
+@RestController
+@RequestMapping("channel")
+public class ChannelController {
+    @Autowired
+    private ChannelService channelService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("channel:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<ChannelEntity> channelList = channelService.queryList(query);
+        int total = channelService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(channelList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("channel:info")
+    public R info(@PathVariable("id") Integer id) {
+        ChannelEntity channel = channelService.queryObject(id);
+
+        return R.ok().put("channel", channel);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("channel:save")
+    public R save(@RequestBody ChannelEntity channel) {
+        channelService.save(channel);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("channel:update")
+    public R update(@RequestBody ChannelEntity channel) {
+        channelService.update(channel);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("channel:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        channelService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<ChannelEntity> list = channelService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 94 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CollectController.java

@@ -0,0 +1,94 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CollectEntity;
+import com.kmall.admin.service.CollectService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:06
+ */
+@RestController
+@RequestMapping("collect")
+public class CollectController {
+	@Autowired
+	private CollectService collectService;
+	
+	/**
+	 * 列表
+	 */
+	@RequestMapping("/list")
+	@RequiresPermissions("collect:list")
+	public R list(@RequestParam Map<String, Object> params){
+
+		ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+		//查询列表数据
+        Query query = new Query(params);
+
+		List<CollectEntity> collectList = collectService.queryList(query);
+		int total = collectService.queryTotal(query);
+		
+		PageUtils pageUtil = new PageUtils(collectList, total, query.getLimit(), query.getPage());
+		
+		return R.ok().put("page", pageUtil);
+	}
+	
+	
+	/**
+	 * 信息
+	 */
+	@RequestMapping("/info/{id}")
+	@RequiresPermissions("collect:info")
+	public R info(@PathVariable("id") Integer id){
+		CollectEntity collect = collectService.queryObject(id);
+		
+		return R.ok().put("collect", collect);
+	}
+	
+	/**
+	 * 保存
+	 */
+	@RequestMapping("/save")
+	@RequiresPermissions("collect:save")
+	public R save(@RequestBody CollectEntity collect){
+		collectService.save(collect);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 修改
+	 */
+	@RequestMapping("/update")
+	@RequiresPermissions("collect:update")
+	public R update(@RequestBody CollectEntity collect){
+		collectService.update(collect);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 删除
+	 */
+	@RequestMapping("/delete")
+	@RequiresPermissions("collect:delete")
+	public R delete(@RequestBody Integer[] ids){
+		collectService.deleteBatch(ids);
+		
+		return R.ok();
+	}
+	
+}

+ 131 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CommentController.java

@@ -0,0 +1,131 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CommentEntity;
+import com.kmall.admin.service.CommentService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-28 17:03:40
+ */
+@RestController
+@RequestMapping("comment")
+public class CommentController {
+    @Autowired
+    private CommentService commentService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("comment:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CommentEntity> commentList = commentService.queryList(query);
+        int total = commentService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(commentList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("comment:info")
+    public R info(@PathVariable("id") Integer id) {
+        CommentEntity comment = commentService.queryObject(id);
+
+        return R.ok().put("comment", comment);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("comment:save")
+    public R save(@RequestBody CommentEntity comment) {
+        commentService.save(comment);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("comment:update")
+    public R update(@RequestBody CommentEntity comment) {
+        commentService.update(comment);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("comment:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        commentService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CommentEntity> list = commentService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 修改状态
+     */
+    @RequestMapping("/toggleStatus")
+    @RequiresPermissions("comment:toggleStatus")
+    public R toggleStatus(@RequestBody CommentEntity comment) {
+        commentService.toggleStatus(comment);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改状态
+     */
+    @RequestMapping("/toggleStatusBatch")
+    @RequiresPermissions("comment:toggleStatus")
+    public R toggleStatusBatch(@RequestBody Integer[] ids) {
+        commentService.toggleStatusBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 总计
+     */
+    @RequestMapping("/queryTotal")
+    public R queryTotal(@RequestParam Map<String, Object> params) {
+        int sum = commentService.queryTotal(params);
+
+        return R.ok().put("sum", sum);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CommentPictureController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CommentPictureEntity;
+import com.kmall.admin.service.CommentPictureService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 评价图片Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-29 14:45:55
+ */
+@RestController
+@RequestMapping("commentpicture")
+public class CommentPictureController {
+    @Autowired
+    private CommentPictureService commentPictureService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("commentpicture:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CommentPictureEntity> commentPictureList = commentPictureService.queryList(query);
+        int total = commentPictureService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(commentPictureList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("commentpicture:info")
+    public R info(@PathVariable("id") Integer id) {
+        CommentPictureEntity commentPicture = commentPictureService.queryObject(id);
+
+        return R.ok().put("commentPicture", commentPicture);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("commentpicture:save")
+    public R save(@RequestBody CommentPictureEntity commentPicture) {
+        commentPictureService.save(commentPicture);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("commentpicture:update")
+    public R update(@RequestBody CommentPictureEntity commentPicture) {
+        commentPictureService.update(commentPicture);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("commentpicture:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        commentPictureService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CommentPictureEntity> list = commentPictureService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 120 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CouponController.java

@@ -0,0 +1,120 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CouponEntity;
+import com.kmall.admin.service.CouponService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.ShiroUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 优惠券Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 12:53:26
+ */
+@RestController
+@RequestMapping("coupon")
+public class CouponController {
+    @Autowired
+    private CouponService couponService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("coupon:list")
+    public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CouponEntity> couponList = couponService.queryList(query);
+        int total = couponService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(couponList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("coupon:info")
+    public R info(@PathVariable("id") Integer id) {
+        CouponEntity coupon = couponService.queryObject(id);
+
+        return R.ok().put("coupon", coupon);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("coupon:save")
+    public R save(@RequestBody CouponEntity coupon) {
+        couponService.save(coupon);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("coupon:update")
+    public R update(@RequestBody CouponEntity coupon) {
+        couponService.update(coupon);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("coupon:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        couponService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        List<CouponEntity> list = couponService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 按用户、商品下发优惠券
+     *
+     * @param params
+     * @return
+     */
+    @RequiresPermissions("coupon:publish")
+    @RequestMapping(value = "publish", method = RequestMethod.POST)
+    public R publish(@RequestBody Map<String, Object> params) {
+        return couponService.publish(params);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CouponGoodsController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CouponGoodsEntity;
+import com.kmall.admin.service.CouponGoodsService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 优惠券关联商品Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-29 21:50:17
+ */
+@RestController
+@RequestMapping("coupongoods")
+public class CouponGoodsController {
+    @Autowired
+    private CouponGoodsService couponGoodsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("coupongoods:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CouponGoodsEntity> couponGoodsList = couponGoodsService.queryList(query);
+        int total = couponGoodsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(couponGoodsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("coupongoods:info")
+    public R info(@PathVariable("id") Integer id) {
+        CouponGoodsEntity couponGoods = couponGoodsService.queryObject(id);
+
+        return R.ok().put("couponGoods", couponGoods);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("coupongoods:save")
+    public R save(@RequestBody CouponGoodsEntity couponGoods) {
+        couponGoodsService.save(couponGoods);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("coupongoods:update")
+    public R update(@RequestBody CouponGoodsEntity couponGoods) {
+        couponGoodsService.update(couponGoods);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("coupongoods:delete")
+    public R delete(@RequestBody Integer[]ids) {
+        couponGoodsService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CouponGoodsEntity> list = couponGoodsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 82 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/ExportExceptionDataController.java

@@ -0,0 +1,82 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.ExportExceptionDataEntity;
+import com.kmall.admin.service.ExportExceptionDataService;
+import com.kmall.common.constant.Dict;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.ShiroUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 数据导入异常数据记录Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2018-12-07 09:41:15
+ */
+@Controller
+@RequestMapping("exportexceptiondata")
+public class ExportExceptionDataController {
+    @Autowired
+    private ExportExceptionDataService exportExceptionDataService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("exportexceptiondata:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        if (user != null) {
+            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
+                params.put("storeId", user.getStoreId());
+                params.put("merchSn", user.getMerchSn());
+            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
+                params.put("merchSn", user.getMerchSn());
+            }
+        }
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<ExportExceptionDataEntity> exportExceptionDataList = exportExceptionDataService.queryList(query);
+        int total = exportExceptionDataService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(exportExceptionDataList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("exportexceptiondata:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        ExportExceptionDataEntity exportExceptionData = exportExceptionDataService.queryObject(id);
+
+        return R.ok().put("exportExceptionData", exportExceptionData);
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<ExportExceptionDataEntity> list = exportExceptionDataService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 111 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/FeedbackController.java

@@ -0,0 +1,111 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.FeedbackEntity;
+import com.kmall.admin.service.FeedbackService;
+import com.kmall.common.constant.Dict;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.ShiroUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 15:03:25
+ */
+@RestController
+@RequestMapping("feedback")
+public class FeedbackController {
+    @Autowired
+    private FeedbackService feedbackService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("feedback:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        if (user != null) {
+            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
+                params.put("storeId", user.getStoreId());
+                params.put("merchSn", user.getMerchSn());
+            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
+                params.put("merchSn", user.getMerchSn());
+            }
+        }
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<FeedbackEntity> feedbackList = feedbackService.queryList(query);
+        int total = feedbackService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(feedbackList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{msgId}")
+    @RequiresPermissions("feedback:info")
+    public R info(@PathVariable("msgId") Integer msgId) {
+        FeedbackEntity feedback = feedbackService.queryObject(msgId);
+
+        return R.ok().put("feedback", feedback);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("feedback:save")
+    public R save(@RequestBody FeedbackEntity feedback) {
+        feedbackService.save(feedback);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("feedback:update")
+    public R update(@RequestBody FeedbackEntity feedback) {
+        feedbackService.update(feedback);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("feedback:delete")
+    public R delete(@RequestBody Integer[]msgIds) {
+        feedbackService.deleteBatch(msgIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<FeedbackEntity> list = feedbackService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 100 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/FootprintController.java

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.FootprintEntity;
+import com.kmall.admin.service.FootprintService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:08
+ */
+@RestController
+@RequestMapping("footprint")
+public class FootprintController {
+    @Autowired
+    private FootprintService footprintService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("footprint:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<FootprintEntity> footprintList = footprintService.queryList(query);
+        int total = footprintService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(footprintList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("footprint:info")
+    public R info(@PathVariable("id") Integer id) {
+        FootprintEntity footprint = footprintService.queryObject(id);
+
+        return R.ok().put("footprint", footprint);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("footprint:save")
+    public R save(@RequestBody FootprintEntity footprint) {
+        footprintService.save(footprint);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("footprint:update")
+    public R update(@RequestBody FootprintEntity footprint) {
+        footprintService.update(footprint);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("footprint:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        footprintService.deleteBatch(ids);
+
+        return R.ok();
+    }
+    /**
+     * 总计
+     */
+    @RequestMapping("/queryTotal")
+    public R queryTotal(@RequestParam Map<String, Object> params) {
+        int hitCount = footprintService.queryTotal(params);
+
+        return R.ok().put("hitCount", hitCount);
+    }
+
+}

+ 145 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/FreightController.java

@@ -0,0 +1,145 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.entity.FreightEntity;
+import com.kmall.admin.entity.FreightItemEntity;
+import com.kmall.admin.service.FreightService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-21 21:19:49
+ */
+@RestController
+@RequestMapping("freight")
+public class FreightController {
+    @Autowired
+    private FreightService freightService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("freight:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<FreightEntity> freightList = freightService.queryList(query);
+        int total = freightService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(freightList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("freight:info")
+    public R info(@PathVariable("id") Integer id) {
+        FreightEntity freight = freightService.queryObject(id);
+
+        return R.ok().put("freight", freight);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("freight:save")
+    public R save(@RequestBody FreightEntity freight) {
+
+        if (freight.getFreightItemEntityList() == null || freight.getFreightItemEntityList().size() == 0) {
+            throw new RRException("配送区域及运费不能为空");
+        }
+
+        for (FreightItemEntity freightItemEntity : freight.getFreightItemEntityList()) {
+            if (freightItemEntity != null) {
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(freightItemEntity);
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("firstPiece", "首件");
+                builder.put("freight", "运费");
+                builder.put("continuePiece", "续件");
+                builder.put("renew", "续费");
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+            }
+        }
+
+
+        freightService.save(freight);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("freight:update")
+    public R update(@RequestBody FreightEntity freight) {
+
+        if (freight.getFreightItemEntityList() == null || freight.getFreightItemEntityList().size() == 0) {
+            throw new RRException("配送区域及运费不能为空");
+        }
+
+        for (FreightItemEntity freightItemEntity : freight.getFreightItemEntityList()) {
+            if (freightItemEntity != null) {
+                Map<String, Object> valideDate = MapBeanUtil.fromObject(freightItemEntity);
+                ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+                builder.put("firstPiece", "首件");
+                builder.put("freight", "运费");
+                builder.put("continuePiece", "续件");
+                builder.put("renew", "续费");
+                R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+                if (Integer.valueOf(r.get("code").toString()) != 0) {
+                    throw new RRException(r.get("msg").toString());
+                }
+            }
+        }
+
+        freightService.update(freight);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("freight:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        freightService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
+        List<FreightEntity> list = freightService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/FreightItemController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.FreightItemEntity;
+import com.kmall.admin.service.FreightItemService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2018-10-22 15:18:16
+ */
+@Controller
+@RequestMapping("freightitem")
+public class FreightItemController {
+    @Autowired
+    private FreightItemService freightItemService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("freightitem:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<FreightItemEntity> freightItemList = freightItemService.queryList(query);
+        int total = freightItemService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(freightItemList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("freightitem:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        FreightItemEntity freightItem = freightItemService.queryObject(id);
+
+        return R.ok().put("freightItem", freightItem);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("freightitem:save")
+    @ResponseBody
+    public R save(@RequestBody FreightItemEntity freightItem) {
+        freightItemService.save(freightItem);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("freightitem:update")
+    @ResponseBody
+    public R update(@RequestBody FreightItemEntity freightItem) {
+        freightItemService.update(freightItem);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("freightitem:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        freightItemService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<FreightItemEntity> list = freightItemService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 91 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsAttributeController.java

@@ -0,0 +1,91 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsAttributeEntity;
+import com.kmall.admin.service.GoodsAttributeService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:08
+ */
+@RestController
+@RequestMapping("goodsattribute")
+public class GoodsAttributeController {
+	@Autowired
+	private GoodsAttributeService goodsAttributeService;
+	
+	/**
+	 * 列表
+	 */
+	@RequestMapping("/list")
+	@RequiresPermissions("goodsattribute:list")
+	public R list(@RequestParam Map<String, Object> params){
+		//查询列表数据
+        Query query = new Query(params);
+
+		List<GoodsAttributeEntity> goodsAttributeList = goodsAttributeService.queryList(query);
+		int total = goodsAttributeService.queryTotal(query);
+		
+		PageUtils pageUtil = new PageUtils(goodsAttributeList, total, query.getLimit(), query.getPage());
+		
+		return R.ok().put("page", pageUtil);
+	}
+	
+	
+	/**
+	 * 信息
+	 */
+	@RequestMapping("/info/{id}")
+	@RequiresPermissions("goodsattribute:info")
+	public R info(@PathVariable("id") Integer id){
+		GoodsAttributeEntity goodsAttribute = goodsAttributeService.queryObject(id);
+		
+		return R.ok().put("goodsAttribute", goodsAttribute);
+	}
+	
+	/**
+	 * 保存
+	 */
+	@RequestMapping("/save")
+	@RequiresPermissions("goodsattribute:save")
+	public R save(@RequestBody GoodsAttributeEntity goodsAttribute){
+		goodsAttributeService.save(goodsAttribute);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 修改
+	 */
+	@RequestMapping("/update")
+	@RequiresPermissions("goodsattribute:update")
+	public R update(@RequestBody GoodsAttributeEntity goodsAttribute){
+		goodsAttributeService.update(goodsAttribute);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 删除
+	 */
+	@RequestMapping("/delete")
+	@RequiresPermissions("goodsattribute:delete")
+	public R delete(@RequestBody Integer[] ids){
+		goodsAttributeService.deleteBatch(ids);
+		
+		return R.ok();
+	}
+	
+}

+ 280 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java

@@ -0,0 +1,280 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.dto.GoodsDto;
+import com.kmall.admin.entity.GoodsEntity;
+import com.kmall.admin.entity.GoodsGalleryEntity;
+import com.kmall.admin.service.GoodsGalleryService;
+import com.kmall.admin.service.GoodsService;
+import com.kmall.admin.service.OfflineCartService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.constant.JxlsXmlTemplateName;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.ShiroUtils;
+import com.kmall.common.utils.excel.ExcelUtil;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.*;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-21 21:19:49
+ */
+@RestController
+@RequestMapping("goods")
+public class GoodsController {
+    @Autowired
+    private GoodsService goodsService;
+    @Autowired
+    private GoodsGalleryService goodsGalleryService;
+    @Autowired
+    private OfflineCartService offlineCartService;
+    @Autowired
+    private ExcelUtil excelUtil;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goods:list")
+    public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
+        //查询列表数据
+        Query query = new Query(params);
+
+        query.put("isDelete", 0);
+        List<GoodsEntity> goodsList = goodsService.queryList(query);
+        int total = goodsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goods:info")
+    public R info(@PathVariable("id") Integer id) {
+        GoodsEntity goods = goodsService.queryObject(id);
+        if(goods != null) {
+            GoodsGalleryEntity goodsGalleryEntity =goodsGalleryService.queryVideoObjectByGoodId(goods.getId());
+            if(goodsGalleryEntity != null){
+                goods.setVideoUrl(goodsGalleryEntity.getImgUrl());
+            }
+        }
+        return R.ok().put("goods", goods);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goods:save")
+    public R save(@RequestBody GoodsEntity goods) {
+        goodsService.save(goods);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goods:update")
+    public R update(@RequestBody GoodsEntity goods) {
+        goodsService.update(goods);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goods:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        goodsService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
+        params.put("isDelete", 0);
+        List<GoodsEntity> list = goodsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+
+    /**
+     * 商品回收站
+     *
+     * @param params
+     * @return
+     */
+    @RequestMapping("/historyList")
+    public R historyList(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
+        //查询列表数据
+        Query query = new Query(params);
+
+        query.put("isDelete", 1);
+        List<GoodsEntity> goodsList = goodsService.queryList(query);
+        int total = goodsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 商品从回收站恢复
+     */
+    @RequestMapping("/back")
+    @RequiresPermissions("goods:back")
+    public R back(@RequestBody Integer[] ids) {
+        goodsService.back(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 总计
+     */
+    @RequestMapping("/queryTotal")
+    public R queryTotal(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
+        params.put("isDelete", 0);
+        int sum = goodsService.queryTotal(params);
+        return R.ok().put("goodsSum", sum);
+    }
+
+    /**
+     * 上架
+     */
+    @RequestMapping("/enSale")
+    public R enSale(@RequestBody Integer id) {
+        goodsService.enSale(id);
+
+        return R.ok();
+    }
+
+    /**
+     * 上架
+     */
+    @RequestMapping("/enSaleBatch")
+    public R enSaleBatch(@RequestBody Integer[] ids) {
+        goodsService.enSaleBatch(ids);
+
+        return R.ok();
+    }
+
+
+    /**
+     * 下架
+     */
+    @RequestMapping("/unSale")
+    public R unSale(@RequestBody Integer id) {
+        goodsService.unSale(id);
+
+        return R.ok();
+    }
+
+    /**
+     * 下架
+     */
+    @RequestMapping("/unSaleBatch")
+    public R unSaleBatch(@RequestBody Integer[] ids) {
+        goodsService.unSaleBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 上传文件
+     */
+    @RequestMapping("/upload")
+    public R upload(@RequestParam("file") MultipartFile file) {
+        List<GoodsDto> goodsDtoList = new ArrayList<>();//商品信息
+        try {
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("GoodsDtoList", goodsDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.GOODS_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        goodsService.uploadExcel(goodsDtoList,1);
+        //上传文件
+        return R.ok();
+    }
+    /**
+     * 上传文件
+     */
+    @RequestMapping("/generalGoodsUpload")
+    public R generalGoodsUpload(@RequestParam("file") MultipartFile file) {
+        List<GoodsDto> generalGoodsDtoList = new ArrayList<>();//商品信息
+        try {
+            Map<String, Object> beans = new HashMap<String, Object>();
+            beans.put("GeneralGoodsDtoList", generalGoodsDtoList);
+            if (file.isEmpty()) {
+                return R.error("文件不能为空!");
+            }
+            excelUtil.readExcel(JxlsXmlTemplateName.GENERAL_GOODS_DTO_LIST, beans, file.getInputStream());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("导入失败!");
+        }
+        goodsService.uploadExcel(generalGoodsDtoList,2);
+        //上传文件
+        return R.ok();
+    }
+
+    /*@RequestMapping("/scannInfo")
+    @RequiresPermissions("goods:scannInfo")
+    public R scannInfo(@RequestParam Map<String, Object> params) {
+        String goodsSn = (String)params.get("goodsSn");
+        GoodsEntity goods = goodsService.queryObjectByGoodsSnAndBizType(goodsSn);
+        if(goods == null) {
+            return R.error("商品信息不存在");
+        }
+        List<OfflineCartEntity> cartEntityList = offlineCartService.offlineGoodsCart(goods);
+
+        return R.ok().put("cartEntityList", cartEntityList);
+    }*/
+    @RequestMapping("/scannInfo/{prodBarcode}")
+    @RequiresPermissions("goods:scannInfo")
+    public R scannInfo(@PathVariable("prodBarcode")String prodBarcode) {
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        if(user == null) {
+            return R.error("用户登录超时,请重新登录");
+        }
+        if (!user.getRoleType().equalsIgnoreCase("2")) {
+            return R.error("该操作只允许店员账户操作");
+        }
+        GoodsEntity goods = goodsService.queryObjectByProdBarcodeAndBizType(prodBarcode);
+        if(goods == null) {
+            return R.error("商品信息不存在");
+        }
+        return R.ok().put("goods", goods);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGalleryController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsGalleryEntity;
+import com.kmall.admin.service.GoodsGalleryService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 14:41:43
+ */
+@RestController
+@RequestMapping("goodsgallery")
+public class GoodsGalleryController {
+    @Autowired
+    private GoodsGalleryService goodsGalleryService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsgallery:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsGalleryEntity> goodsGalleryList = goodsGalleryService.queryList(query);
+        int total = goodsGalleryService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsGalleryList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsgallery:info")
+    public R info(@PathVariable("id") Integer id) {
+        GoodsGalleryEntity goodsGallery = goodsGalleryService.queryObject(id);
+
+        return R.ok().put("goodsGallery", goodsGallery);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsgallery:save")
+    public R save(@RequestBody GoodsGalleryEntity goodsGallery) {
+        goodsGalleryService.save(goodsGallery);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsgallery:update")
+    public R update(@RequestBody GoodsGalleryEntity goodsGallery) {
+        goodsGalleryService.update(goodsGallery);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsgallery:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        goodsGalleryService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+        params.put("fileType","0");
+        List<GoodsGalleryEntity> list = goodsGalleryService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGroupController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsGroupEntity;
+import com.kmall.admin.service.GoodsGroupService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-10-24 09:51:21
+ */
+@Controller
+@RequestMapping("goodsgroup")
+public class GoodsGroupController {
+    @Autowired
+    private GoodsGroupService goodsGroupService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsgroup:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsGroupEntity> goodsGroupList = goodsGroupService.queryList(query);
+        int total = goodsGroupService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsGroupList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsgroup:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        GoodsGroupEntity goodsGroup = goodsGroupService.queryObject(id);
+
+        return R.ok().put("goodsGroup", goodsGroup);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsgroup:save")
+    @ResponseBody
+    public R save(@RequestBody GoodsGroupEntity goodsGroup) {
+        goodsGroupService.save(goodsGroup);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsgroup:update")
+    @ResponseBody
+    public R update(@RequestBody GoodsGroupEntity goodsGroup) {
+        goodsGroupService.update(goodsGroup);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsgroup:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[] ids) {
+        goodsGroupService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<GoodsGroupEntity> list = goodsGroupService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 121 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGroupOpenController.java

@@ -0,0 +1,121 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsGroupOpenEntity;
+import com.kmall.admin.service.GoodsGroupOpenService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-10-23 22:06:59
+ */
+@Controller
+@RequestMapping("goodsgroupopen")
+public class GoodsGroupOpenController {
+    @Autowired
+    private GoodsGroupOpenService goodsGroupOpenService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsgroupopen:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsGroupOpenEntity> goodsGroupOpenList = goodsGroupOpenService.queryList(query);
+        int total = goodsGroupOpenService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsGroupOpenList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsgroupopen:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Long id) {
+        GoodsGroupOpenEntity goodsGroupOpen = goodsGroupOpenService.queryObject(id);
+
+        return R.ok().put("goodsGroupOpen", goodsGroupOpen);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsgroupopen:save")
+    @ResponseBody
+    public R save(@RequestBody GoodsGroupOpenEntity goodsGroupOpen) {
+        goodsGroupOpenService.save(goodsGroupOpen);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsgroupopen:update")
+    @ResponseBody
+    public R update(@RequestBody GoodsGroupOpenEntity goodsGroupOpen) {
+        goodsGroupOpenService.update(goodsGroupOpen);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsgroupopen:delete")
+    @ResponseBody
+    public R delete(@RequestBody Long[] ids) {
+        goodsGroupOpenService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<GoodsGroupOpenEntity> list = goodsGroupOpenService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 取消团购订单
+     */
+    @RequestMapping("/cancelGroup")
+    @RequiresPermissions("goodsgroupopen:update")
+    @ResponseBody
+    public R cancelGroup(@RequestBody Integer id) {
+        int result = goodsGroupOpenService.cancelGroup(id);
+        if (result == 0) {
+            return R.error("取消失败");
+        }
+        return R.ok();
+    }
+
+}

+ 124 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsIssueController.java

@@ -0,0 +1,124 @@
+package com.kmall.admin.controller;
+
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.entity.GoodsIssueEntity;
+import com.kmall.admin.service.GoodsIssueService;
+import com.kmall.common.constant.Dict;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 14:12:34
+ */
+@RestController
+@RequestMapping("goodsissue")
+public class GoodsIssueController {
+    @Autowired
+    private GoodsIssueService goodsIssueService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsissue:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        if (user != null) {
+            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
+                params.put("storeId", user.getStoreId());
+                params.put("merchSn", user.getMerchSn());
+            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
+                params.put("merchSn", user.getMerchSn());
+            }
+        }
+        //查询列表数据
+        Query query = new Query(params);
+        List<GoodsIssueEntity> goodsIssueList = goodsIssueService.queryList(query);
+        int total = goodsIssueService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsIssueList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsissue:info")
+    public R info(@PathVariable("id") Integer id) {
+        GoodsIssueEntity goodsIssue = goodsIssueService.queryObject(id);
+
+        return R.ok().put("goodsIssue", goodsIssue);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsissue:save")
+    public R save(@RequestBody GoodsIssueEntity goodsIssue) {
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(goodsIssue);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+        goodsIssueService.save(goodsIssue);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsissue:update")
+    public R update(@RequestBody GoodsIssueEntity goodsIssue) {
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(goodsIssue);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+        goodsIssueService.update(goodsIssue);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsissue:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        goodsIssueService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<GoodsIssueEntity> list = goodsIssueService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 118 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsSpecificationController.java

@@ -0,0 +1,118 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsSpecificationEntity;
+import com.kmall.admin.entity.SpecificationEntity;
+import com.kmall.admin.service.GoodsSpecificationService;
+import com.kmall.admin.service.SpecificationService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+/**
+ * 商品对应规格表值表Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-31 11:15:55
+ */
+@RestController
+@RequestMapping("goodsspecification")
+public class GoodsSpecificationController {
+    @Autowired
+    private GoodsSpecificationService goodsSpecificationService;
+    @Autowired
+    private SpecificationService specificationService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsspecification:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsSpecificationEntity> goodsSpecificationList = goodsSpecificationService.queryList(query);
+        int total = goodsSpecificationService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsSpecificationList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsspecification:info")
+    public R info(@PathVariable("id") Integer id) {
+        GoodsSpecificationEntity goodsSpecification = goodsSpecificationService.queryObject(id);
+
+        return R.ok().put("goodsSpecification", goodsSpecification);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsspecification:save")
+    public R save(@RequestBody GoodsSpecificationEntity goodsSpecification) {
+        goodsSpecificationService.save(goodsSpecification);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsspecification:update")
+    public R update(@RequestBody GoodsSpecificationEntity goodsSpecification) {
+        goodsSpecificationService.update(goodsSpecification);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsspecification:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        goodsSpecificationService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+        List<GoodsSpecificationEntity> list = goodsSpecificationService.queryList(params);
+        List<Integer> goodsSpecificationIds = new ArrayList();
+        if (null != list) {
+            for (GoodsSpecificationEntity specificationEntity : list) {
+                if (!goodsSpecificationIds.contains(specificationEntity.getSpecificationId())) {
+                    goodsSpecificationIds.add(specificationEntity.getSpecificationId());
+                }
+            }
+        }
+        Map param = new HashMap();
+        param.put("ids", goodsSpecificationIds);
+        List<SpecificationEntity> specificationEntityList = specificationService.queryList(param);
+        Collections.sort(specificationEntityList, new Comparator<SpecificationEntity>() {
+            @Override
+            public int compare(SpecificationEntity o1, SpecificationEntity o2) {
+                return o1.getSortOrder().compareTo(o2.getSortOrder());
+            }
+        });
+        return R.ok().put("list", list).put("specificationEntityList", specificationEntityList);
+    }
+
+}

+ 134 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/HelpIssueController.java

@@ -0,0 +1,134 @@
+package com.kmall.admin.controller;
+
+import com.google.common.collect.ImmutableBiMap;
+import com.kmall.admin.entity.HelpIssueEntity;
+import com.kmall.admin.service.HelpIssueService;
+import com.kmall.common.constant.Dict;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-01 21:09:54
+ */
+@Controller
+@RequestMapping("helpissue")
+public class HelpIssueController {
+    @Autowired
+    private HelpIssueService helpIssueService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("helpissue:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        if (user != null) {
+            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
+                params.put("storeId", user.getStoreId());
+                params.put("merchSn", user.getMerchSn());
+            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
+                params.put("merchSn", user.getMerchSn());
+            }
+        }
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HelpIssueEntity> helpIssueList = helpIssueService.queryList(query);
+        int total = helpIssueService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(helpIssueList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("helpissue:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        HelpIssueEntity helpIssue = helpIssueService.queryObject(id);
+
+        return R.ok().put("helpIssue", helpIssue);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("helpissue:save")
+    @ResponseBody
+    public R save(@RequestBody HelpIssueEntity helpIssue) {
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(helpIssue);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        builder.put("typeId", "问题分类");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+        helpIssueService.save(helpIssue);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("helpissue:update")
+    @ResponseBody
+    public R update(@RequestBody HelpIssueEntity helpIssue) {
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(helpIssue);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        builder.put("typeId", "问题分类");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+        helpIssueService.update(helpIssue);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("helpissue:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        helpIssueService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<HelpIssueEntity> list = helpIssueService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/HelpTypeController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.HelpTypeEntity;
+import com.kmall.admin.service.HelpTypeService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-01 21:09:55
+ */
+@Controller
+@RequestMapping("helptype")
+public class HelpTypeController {
+    @Autowired
+    private HelpTypeService helpTypeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("helptype:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HelpTypeEntity> helpTypeList = helpTypeService.queryList(query);
+        int total = helpTypeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(helpTypeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("helptype:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        HelpTypeEntity helpType = helpTypeService.queryObject(id);
+
+        return R.ok().put("helpType", helpType);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("helptype:save")
+    @ResponseBody
+    public R save(@RequestBody HelpTypeEntity helpType) {
+        helpTypeService.save(helpType);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("helptype:update")
+    @ResponseBody
+    public R update(@RequestBody HelpTypeEntity helpType) {
+        helpTypeService.update(helpType);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("helptype:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        helpTypeService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<HelpTypeEntity> list = helpTypeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/KeywordsController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.KeywordsEntity;
+import com.kmall.admin.service.KeywordsService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 热闹关键词表Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-25 21:23:41
+ */
+@RestController
+@RequestMapping("keywords")
+public class KeywordsController {
+    @Autowired
+    private KeywordsService keywordsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("keywords:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<KeywordsEntity> keywordsList = keywordsService.queryList(query);
+        int total = keywordsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(keywordsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("keywords:info")
+    public R info(@PathVariable("id") Integer id) {
+        KeywordsEntity keywords = keywordsService.queryObject(id);
+
+        return R.ok().put("keywords", keywords);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("keywords:save")
+    public R save(@RequestBody KeywordsEntity keywords) {
+        keywordsService.save(keywords);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("keywords:update")
+    public R update(@RequestBody KeywordsEntity keywords) {
+        keywordsService.update(keywords);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("keywords:delete")
+    public R delete(@RequestBody Integer[]ids) {
+        keywordsService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<KeywordsEntity> list = keywordsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 113 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/MerchController.java

@@ -0,0 +1,113 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.MerchEntity;
+import com.kmall.admin.service.MerchService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.ShiroUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2018-12-06 09:41:34
+ */
+@Controller
+@RequestMapping("merch")
+public class MerchController {
+    @Autowired
+    private MerchService merchService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("merch:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", true);
+
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<MerchEntity> merchList = merchService.queryList(query);
+        int total = merchService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(merchList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("merch:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        MerchEntity merch = merchService.queryObject(id);
+
+        return R.ok().put("merch", merch);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("merch:save")
+    @ResponseBody
+    public R save(@RequestBody MerchEntity merch) {
+        merchService.save(merch);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("merch:update")
+    @ResponseBody
+    public R update(@RequestBody MerchEntity merch) {
+        merchService.update(merch);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("merch:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[] ids) {
+        merchService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", true);
+
+        List<MerchEntity> list = merchService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

Some files were not shown because too many files changed in this diff