FengChaoYu 1 month ago
commit
6c213e4c81
100 changed files with 3511 additions and 0 deletions
  1. 38 0
      .gitignore
  2. 3 0
      README.md
  3. 504 0
      pom.xml
  4. 30 0
      src/main/java/com/gree/mall/miniapp/MiniappApplication.java
  5. 73 0
      src/main/java/com/gree/mall/miniapp/SwaggerConfig.java
  6. 11 0
      src/main/java/com/gree/mall/miniapp/annotation/ApiNotAuth.java
  7. 28 0
      src/main/java/com/gree/mall/miniapp/bean/ExcelData.java
  8. 21 0
      src/main/java/com/gree/mall/miniapp/bean/Page.java
  9. 27 0
      src/main/java/com/gree/mall/miniapp/bean/PayDetail.java
  10. 14 0
      src/main/java/com/gree/mall/miniapp/bean/SVerification.java
  11. 48 0
      src/main/java/com/gree/mall/miniapp/bean/UmsMiniRepBean.java
  12. 55 0
      src/main/java/com/gree/mall/miniapp/bean/UmsPayCallBean.java
  13. 19 0
      src/main/java/com/gree/mall/miniapp/bean/coupon/BuyGoodsInfo.java
  14. 22 0
      src/main/java/com/gree/mall/miniapp/bean/coupon/CouponBean.java
  15. 26 0
      src/main/java/com/gree/mall/miniapp/bean/coupon/CouponDataBean.java
  16. 13 0
      src/main/java/com/gree/mall/miniapp/bean/coupon/CouponObtainBean.java
  17. 22 0
      src/main/java/com/gree/mall/miniapp/bean/coupon/CouponQrcodeBean.java
  18. 20 0
      src/main/java/com/gree/mall/miniapp/bean/coupon/CustomCoupouBean.java
  19. 17 0
      src/main/java/com/gree/mall/miniapp/bean/coupon/UserCouponBean.java
  20. 18 0
      src/main/java/com/gree/mall/miniapp/bean/coupon/UserCouponCountBean.java
  21. 32 0
      src/main/java/com/gree/mall/miniapp/bean/goods/AckGoodsBean.java
  22. 34 0
      src/main/java/com/gree/mall/miniapp/bean/goods/CategoryBean.java
  23. 18 0
      src/main/java/com/gree/mall/miniapp/bean/goods/CommentTagCount.java
  24. 22 0
      src/main/java/com/gree/mall/miniapp/bean/goods/CutGoodsBean.java
  25. 73 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsBean.java
  26. 19 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsCategoryBean.java
  27. 24 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsComment.java
  28. 19 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsCommentCount.java
  29. 18 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsFavoriteBean.java
  30. 22 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsNewBean.java
  31. 24 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsPackageBean.java
  32. 45 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsSortBean.java
  33. 44 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsSpecBean.java
  34. 41 0
      src/main/java/com/gree/mall/miniapp/bean/goods/GoodsSpecSecBean.java
  35. 30 0
      src/main/java/com/gree/mall/miniapp/bean/goods/PromotionGoodsBean.java
  36. 18 0
      src/main/java/com/gree/mall/miniapp/bean/goods/PromotionShareQrCode.java
  37. 44 0
      src/main/java/com/gree/mall/miniapp/bean/gree/WorkOrderBean.java
  38. 21 0
      src/main/java/com/gree/mall/miniapp/bean/notice/NoticeParam.java
  39. 13 0
      src/main/java/com/gree/mall/miniapp/bean/notice/NoticeParamBean.java
  40. 60 0
      src/main/java/com/gree/mall/miniapp/bean/order/BuyGood.java
  41. 38 0
      src/main/java/com/gree/mall/miniapp/bean/order/OrderAckBean.java
  42. 52 0
      src/main/java/com/gree/mall/miniapp/bean/order/OrderBuyBean.java
  43. 19 0
      src/main/java/com/gree/mall/miniapp/bean/order/OrderCommentBean.java
  44. 23 0
      src/main/java/com/gree/mall/miniapp/bean/order/OrderDetailBean.java
  45. 15 0
      src/main/java/com/gree/mall/miniapp/bean/order/OrderDetailGoodsBean.java
  46. 22 0
      src/main/java/com/gree/mall/miniapp/bean/order/OrderRefundDetailBean.java
  47. 21 0
      src/main/java/com/gree/mall/miniapp/bean/order/OrderStatusBean.java
  48. 17 0
      src/main/java/com/gree/mall/miniapp/bean/order/PromotionDiscountBean.java
  49. 16 0
      src/main/java/com/gree/mall/miniapp/bean/order/RefundGoods.java
  50. 29 0
      src/main/java/com/gree/mall/miniapp/bean/order/RefundGoodsBean.java
  51. 18 0
      src/main/java/com/gree/mall/miniapp/bean/order/ShoppingCartBean.java
  52. 21 0
      src/main/java/com/gree/mall/miniapp/bean/order/ShoppingCartDetail.java
  53. 30 0
      src/main/java/com/gree/mall/miniapp/bean/order/ShoppingCartList.java
  54. 113 0
      src/main/java/com/gree/mall/miniapp/bean/order/WorkerOrderInfo.java
  55. 44 0
      src/main/java/com/gree/mall/miniapp/bean/promotion/PromotionLuckDrawExchangeDetail.java
  56. 13 0
      src/main/java/com/gree/mall/miniapp/bean/seckill/SecKillBean.java
  57. 25 0
      src/main/java/com/gree/mall/miniapp/bean/seckill/SecKillExtends.java
  58. 13 0
      src/main/java/com/gree/mall/miniapp/bean/seckill/SecKillList.java
  59. 13 0
      src/main/java/com/gree/mall/miniapp/bean/tag/SaveTagBean.java
  60. 15 0
      src/main/java/com/gree/mall/miniapp/bean/tag/SimpleTagBean.java
  61. 16 0
      src/main/java/com/gree/mall/miniapp/bean/tag/TagBean.java
  62. 21 0
      src/main/java/com/gree/mall/miniapp/bean/tag/TagGroupBean.java
  63. 29 0
      src/main/java/com/gree/mall/miniapp/bean/tag/UserWxCustomerBean.java
  64. 16 0
      src/main/java/com/gree/mall/miniapp/bean/tag/UserWxCustomerTagBean.java
  65. 21 0
      src/main/java/com/gree/mall/miniapp/bean/tag/WxCustomerTagBean.java
  66. 28 0
      src/main/java/com/gree/mall/miniapp/bean/user/CurrentCompanyWechat.java
  67. 28 0
      src/main/java/com/gree/mall/miniapp/bean/user/MyProfitBean.java
  68. 25 0
      src/main/java/com/gree/mall/miniapp/bean/user/RankBean.java
  69. 26 0
      src/main/java/com/gree/mall/miniapp/bean/user/RankItemBean.java
  70. 24 0
      src/main/java/com/gree/mall/miniapp/bean/user/ServiceWorkerBean.java
  71. 35 0
      src/main/java/com/gree/mall/miniapp/bean/user/UserAddressBean.java
  72. 27 0
      src/main/java/com/gree/mall/miniapp/bean/user/UserWxBean.java
  73. 62 0
      src/main/java/com/gree/mall/miniapp/commonmapper/AppMapper.java
  74. 30 0
      src/main/java/com/gree/mall/miniapp/commonmapper/CategoryMapper.java
  75. 14 0
      src/main/java/com/gree/mall/miniapp/commonmapper/CouponDateMapper.java
  76. 16 0
      src/main/java/com/gree/mall/miniapp/commonmapper/CoustomUserCouponMapper.java
  77. 25 0
      src/main/java/com/gree/mall/miniapp/commonmapper/CustomCoupouMapper.java
  78. 42 0
      src/main/java/com/gree/mall/miniapp/commonmapper/CustomGoodsCategoryMapper.java
  79. 17 0
      src/main/java/com/gree/mall/miniapp/commonmapper/CustomGoodsFavoriteMapper.java
  80. 14 0
      src/main/java/com/gree/mall/miniapp/commonmapper/CustomWebsitNumberMapper.java
  81. 10 0
      src/main/java/com/gree/mall/miniapp/commonmapper/GoodsFlagUpdateMapper.java
  82. 67 0
      src/main/java/com/gree/mall/miniapp/commonmapper/GoodsSpecDetailMapper.java
  83. 15 0
      src/main/java/com/gree/mall/miniapp/commonmapper/MyProfitMapper.java
  84. 26 0
      src/main/java/com/gree/mall/miniapp/commonmapper/OrderShareRankMapper.java
  85. 30 0
      src/main/java/com/gree/mall/miniapp/commonmapper/SecActivityStageMapper.java
  86. 19 0
      src/main/java/com/gree/mall/miniapp/commonmapper/SoldNumMapper.java
  87. 15 0
      src/main/java/com/gree/mall/miniapp/commonmapper/UserInfoMapper.java
  88. 37 0
      src/main/java/com/gree/mall/miniapp/commonmapper/WxCustomerMapper.java
  89. 76 0
      src/main/java/com/gree/mall/miniapp/component/StartRunner.java
  90. 26 0
      src/main/java/com/gree/mall/miniapp/config/CorsConfiguration.java
  91. 19 0
      src/main/java/com/gree/mall/miniapp/config/FeignConfigure.java
  92. 61 0
      src/main/java/com/gree/mall/miniapp/config/GlobalDefaultExceptionHandler.java
  93. 64 0
      src/main/java/com/gree/mall/miniapp/config/KaptchaConfig.java
  94. 22 0
      src/main/java/com/gree/mall/miniapp/config/MulitpartConfig.java
  95. 72 0
      src/main/java/com/gree/mall/miniapp/config/MyBatisPlusConfig.java
  96. 43 0
      src/main/java/com/gree/mall/miniapp/config/MySecurityConfig.java
  97. 111 0
      src/main/java/com/gree/mall/miniapp/config/RedisConfig.java
  98. 17 0
      src/main/java/com/gree/mall/miniapp/config/RedisLockConfiguration.java
  99. 57 0
      src/main/java/com/gree/mall/miniapp/config/RespondeBodyConfig.java
  100. 21 0
      src/main/java/com/gree/mall/miniapp/config/ScheduleConfig.java

+ 38 - 0
.gitignore

@@ -0,0 +1,38 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+/src/main/java/com/gree/mall/miniapp/plus/
+.DS_Store
+logs/
+/src/test/
+*.log

+ 3 - 0
README.md

@@ -0,0 +1,3 @@
+# mall-miniapp-service
+
+分销商城小程序API

+ 504 - 0
pom.xml

@@ -0,0 +1,504 @@
+<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.3.3.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.gree.miniapp</groupId>
+    <artifactId>mall_miniapp</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>mall_miniapp</name>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+    </properties>
+
+    <dependencies>
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.boot</groupId>-->
+            <!--<artifactId>spring-boot-starter-security</artifactId>-->
+        <!--</dependency>-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.integration</groupId>
+            <artifactId>spring-integration-redis</artifactId>
+            <version>5.5.5</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <scope>runtime</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.junit.vintage</groupId>
+                    <artifactId>junit-vintage-engine</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!--<dependency>-->
+            <!--<groupId>org.mongodb</groupId>-->
+            <!--<artifactId>mongo-java-driver</artifactId>-->
+            <!--<version>3.2.2</version>-->
+        <!--</dependency>-->
+
+        <!-- 分页 -->
+        <!--<dependency>-->
+            <!--<groupId>com.github.pagehelper</groupId>-->
+            <!--<artifactId>pagehelper-spring-boot-starter</artifactId>-->
+            <!--<version>1.2.13</version>-->
+            <!--<exclusions>-->
+                <!--<exclusion>-->
+                    <!--<artifactId>mybatis-spring-boot-starter</artifactId>-->
+                    <!--<groupId>org.mybatis.spring.boot</groupId>-->
+                <!--</exclusion>-->
+            <!--</exclusions>-->
+        <!--</dependency>-->
+        <!--mybatis-->
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>2.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <version>3.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.8</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
+            <version>2.1.0</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+            <version>3.3.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>javase</artifactId>
+            <version>3.3.2</version>
+        </dependency>
+
+        <!--mysql驱动-->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.17</version>
+        </dependency>
+        <!--访问安全-->
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.security</groupId>-->
+            <!--<artifactId>spring-security-test</artifactId>-->
+            <!--<scope>test</scope>-->
+        <!--</dependency>-->
+        <!-- druid -->
+        <!--<dependency>-->
+        <!--<groupId>com.alibaba</groupId>-->
+        <!--<artifactId>druid</artifactId>-->
+        <!--<version>1.1.19</version>-->
+        <!--</dependency>-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.1.21</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+            <version>2.8.0</version>
+        </dependency>
+        <!--fastjson-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.59</version>
+        </dependency>
+        <!--okhttp3-->
+        <dependency>
+            <groupId>com.squareup.okhttp3</groupId>
+            <artifactId>okhttp</artifactId>
+            <version>4.0.1</version>
+        </dependency>
+        <!--swagger接口文档框架-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+            <version>1.9.4</version>
+        </dependency>
+        <!-- 支持 @ConfigurationProperties 注解 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <!-- fix swagger input报错-->
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-annotations</artifactId>
+            <version>1.5.22</version>
+        </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+            <version>1.5.22</version>
+        </dependency>
+        <!--更换undertow容器-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk15on</artifactId>
+            <version>1.60</version>
+            <scope>compile</scope>
+        </dependency>
+        <!--SQL执行分析-->
+        <!--<dependency>-->
+            <!--<groupId>p6spy</groupId>-->
+            <!--<artifactId>p6spy</artifactId>-->
+            <!--<version>3.8.5</version>-->
+        <!--</dependency>-->
+        <!--json-->
+        <!--<dependency>-->
+            <!--<groupId>net.sf.json-lib</groupId>-->
+            <!--<artifactId>json-lib</artifactId>-->
+            <!--<version>2.3</version>-->
+            <!--<classifier>jdk15</classifier>-->
+        <!--</dependency>-->
+
+        <!--<dependency>-->
+            <!--<groupId>com.vdurmont</groupId>-->
+            <!--<artifactId>emoji-java</artifactId>-->
+            <!--<version>4.0.0</version>-->
+        <!--</dependency>-->
+        <dependency>
+            <groupId>net.coobird</groupId>
+            <artifactId>thumbnailator</artifactId>
+            <version>0.4.8</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>2.1.6</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>asm</artifactId>
+                    <groupId>org.ow2.asm</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>eu.bitwalker</groupId>
+            <artifactId>UserAgentUtils</artifactId>
+            <version>1.21</version>
+        </dependency>
+
+        <!-- 图片验证码 -->
+        <dependency>
+            <groupId>com.github.penggle</groupId>
+            <artifactId>kaptcha</artifactId>
+            <version>2.3.2</version>
+        </dependency>
+
+        <!--<dependency>-->
+            <!--<groupId>org.mongodb</groupId>-->
+            <!--<artifactId>mongo-java-driver</artifactId>-->
+            <!--<version>3.2.2</version>-->
+        <!--</dependency>-->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml-schemas</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <!---excel导入-->
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-base</artifactId>
+            <version>3.0.3</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-web</artifactId>
+            <version>3.0.3</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-annotation</artifactId>
+            <version>3.0.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+            <version>0.6.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>3.8.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-mock</artifactId>
+            <version>2.0.8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpmime</artifactId>
+            <version>4.5</version>
+        </dependency>
+
+        <!--模板组件-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+            <version>2.2.6.RELEASE</version>
+        </dependency>
+        <!--模板组件END-->
+
+        <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>1.9</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.0.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
+            <version>1.5.5</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+            <version>2.1.0.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+            <version>2.1.0.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+            <version>2.1.3.RELEASE</version>
+        </dependency>
+
+
+
+
+        <!--<dependency>-->
+            <!--<groupId>net.javacrumbs.shedlock</groupId>-->
+            <!--<artifactId>shedlock-spring</artifactId>-->
+            <!--<version>4.12.0</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>net.javacrumbs.shedlock</groupId>-->
+            <!--<artifactId>shedlock-provider-redis-spring</artifactId>-->
+            <!--<version>4.12.0</version>-->
+        <!--</dependency>-->
+
+        <dependency>
+            <groupId>net.logstash.logback</groupId>
+            <artifactId>logstash-logback-encoder</artifactId>
+            <version>6.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.wxpay</groupId>
+            <artifactId>wxpay-sdk</artifactId>
+            <version>0.0.3</version>
+        </dependency>
+
+        <!--企业微信api-->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-cp</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+        <!-- 微信支付 -->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-pay</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+        <!-- 微信小程序 -->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-mp</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+        <!--hutool-->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.8.1</version>
+        </dependency>
+    </dependencies>
+
+
+    <profiles>
+        <profile>
+            <!-- 本地开发环境 -->
+            <id>dev</id>
+            <properties>
+                <profiles.active>dev</profiles.active>
+            </properties>
+            <activation>
+                <!-- 设置默认激活这个配置 -->
+                <activeByDefault>true</activeByDefault>
+            </activation>
+        </profile>
+        <profile>
+            <!-- 测试环境 -->
+            <id>test</id>
+            <properties>
+                <profiles.active>test</profiles.active>
+            </properties>
+        </profile>
+        <profile>
+            <!-- 正式环境 -->
+            <id>prd</id>
+            <properties>
+                <profiles.active>prd</profiles.active>
+            </properties>
+        </profile>
+    </profiles>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+<!--                <configuration>-->
+<!--                    <jvmArguments>-->
+<!--                        -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9090-->
+<!--                    </jvmArguments>-->
+<!--                </configuration>-->
+            </plugin>
+            <plugin>
+                <groupId>com.plus.plugin</groupId>
+                <artifactId>plus-maven-plugin</artifactId>
+                <version>2.0.0</version>
+                <configuration>
+                    <configPath>src/main/resources/generator-${profiles.active}.properties</configPath>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+
+    <repositories>
+        <repository>
+            <id>nexus</id>
+            <name>Releases</name>
+            <url>http://121.43.111.127:8081/repository/maven-public</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <!--snapshots默认是关闭的,需要开启  -->
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+    <pluginRepositories>
+        <pluginRepository>
+            <id>nexus</id>
+            <name>Releases</name>
+            <url>http://121.43.111.127:8081/repository/maven-public</url>
+        </pluginRepository>
+    </pluginRepositories>
+
+</project>

+ 30 - 0
src/main/java/com/gree/mall/miniapp/MiniappApplication.java

@@ -0,0 +1,30 @@
+package com.gree.mall.miniapp;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@SpringBootApplication
+@ServletComponentScan(basePackages = {"com.gree.mall.miniapp"})
+@EnableAsync
+@EnableScheduling
+//@EnableFeignClients
+@EnableDiscoveryClient
+@EnableCaching
+@MapperScan(basePackages = {
+        "com.gree.mall.miniapp.plus.mapper",
+        "com.gree.mall.miniapp.commonmapper"
+})
+public class MiniappApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(MiniappApplication.class, args);
+    }
+
+}

+ 73 - 0
src/main/java/com/gree/mall/miniapp/SwaggerConfig.java

@@ -0,0 +1,73 @@
+package com.gree.mall.miniapp;
+
+/**
+ *
+ */
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.ParameterBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.schema.ModelRef;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.service.Parameter;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * API文档设置
+ * com.qichuan.sugar.minaapi.SwaggerConfig
+ */
+@Profile({"dev","test"})
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+    @Bean
+    public Docket statisticsApi() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                .pathMapping("/")
+                .groupName("小程序API")
+                .select()
+                .apis(RequestHandlerSelectors.basePackage("com.gree.mall.miniapp.controller"))
+                .paths(PathSelectors.regex("/.*"))
+                .build()
+                .apiInfo(apiBInfo())
+                .globalOperationParameters(setHeaderToken());
+    }
+
+    private ApiInfo apiBInfo() {
+
+        return new ApiInfoBuilder()
+                .title("格匠员工培训项目企业运营小程序API")
+                .description("格匠员工培训项目企业运营小程序API")
+                .contact(new Contact("格匠", "http://gejiang", "gejiang@gejiang.com"))
+                .version("1.0")
+                .build();
+    }
+
+    /**
+     * 设置公共header参数
+     * @return
+     */
+    private List<Parameter> setHeaderToken() {
+        ParameterBuilder tokenPar = new ParameterBuilder();
+        tokenPar.name("x-token").description("校验TOKEN").modelRef(new ModelRef("string")).defaultValue("1111").parameterType("header").required(false).build();
+
+        ParameterBuilder tokenPar2 = new ParameterBuilder();
+        tokenPar2.name("APPID").description("APPID").modelRef(new ModelRef("string")).defaultValue("1").parameterType("header").required(false).build();
+
+        List<Parameter> pars = new ArrayList<>();
+        pars.add(tokenPar.build());
+        pars.add(tokenPar2.build());
+        return pars;
+    }
+}

+ 11 - 0
src/main/java/com/gree/mall/miniapp/annotation/ApiNotAuth.java

@@ -0,0 +1,11 @@
+package com.gree.mall.miniapp.annotation;
+
+import java.lang.annotation.*;
+
+@Target(value = ElementType.METHOD)
+@Retention(value = RetentionPolicy.RUNTIME)
+@Documented
+public @interface ApiNotAuth {
+
+
+}

+ 28 - 0
src/main/java/com/gree/mall/miniapp/bean/ExcelData.java

@@ -0,0 +1,28 @@
+package com.gree.mall.miniapp.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class ExcelData implements Serializable {
+    /**
+     * 表头
+     */
+    @ApiModelProperty(value = "表头")
+    private List<String> titles;
+
+    /**
+     * 数据
+     */
+    @ApiModelProperty(value = "数据")
+    private List<List<Object>> rows;
+
+    /**
+     * 页签名称
+     */
+    @ApiModelProperty(value = "页签名称")
+    private String name;
+}

+ 21 - 0
src/main/java/com/gree/mall/miniapp/bean/Page.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.bean;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+@ApiModel
+@Data
+public class  Page<T> {
+    @ApiModelProperty(value = "总条数")
+    private Integer total;
+    @ApiModelProperty(value = "当前页码")
+    private Integer pageNum;
+    @ApiModelProperty(value = "当前页数量")
+    private Integer pageSize;
+    @ApiModelProperty(value = "总页数")
+    private Integer totalPage;
+    @ApiModelProperty(value = "数据实体")
+    private List<T> list;
+}

+ 27 - 0
src/main/java/com/gree/mall/miniapp/bean/PayDetail.java

@@ -0,0 +1,27 @@
+package com.gree.mall.miniapp.bean;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class PayDetail {
+    @ApiModelProperty(value = "paySign")
+    private String paySign;
+    @ApiModelProperty(value = "微信返回的预支付id")
+    private String payPackage;
+    @ApiModelProperty(value = "paySign")
+    private String nonceStr;
+    @ApiModelProperty(value = "当前的时间")
+    private String timeStamp;
+    @ApiModelProperty("id")
+    private String id;
+    @ApiModelProperty("是否需要微信支付 true/false")
+    private Boolean isPay = true;
+    @ApiModelProperty("扫码支付的url")
+    private String codeUrl;
+
+    @ApiModelProperty("云闪付下单返回结果")
+    private UmsMiniRepBean umsMiniRep;
+}

+ 14 - 0
src/main/java/com/gree/mall/miniapp/bean/SVerification.java

@@ -0,0 +1,14 @@
+package com.gree.mall.miniapp.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SVerification implements Serializable {
+    @ApiModelProperty(name = "code", value = "code")
+    private String code;
+    @ApiModelProperty(name = "pic", value = "64位编码")
+    private String pic;//64位编码
+}

+ 48 - 0
src/main/java/com/gree/mall/miniapp/bean/UmsMiniRepBean.java

@@ -0,0 +1,48 @@
+package com.gree.mall.miniapp.bean;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel
+public class UmsMiniRepBean {
+    private String errCode;
+    private String errMsg;
+    @ApiModelProperty(value = "消息ID")
+    private String msgId;
+    @ApiModelProperty(value = "请求系统预留字段")
+    private String srcReserve;
+    @ApiModelProperty(value = "报文响应时间")
+    private String responseTimestamp;
+    @ApiModelProperty(value = "商户名称")
+    private String merName;
+    @ApiModelProperty(value = "商户订单号")
+    private String merOrderId;
+    @ApiModelProperty(value = "商户号")
+    private String mid;
+    @ApiModelProperty(value = "终端号")
+    private String tid;
+    @ApiModelProperty(value = "平台流水号")
+    private String seqId;
+    @ApiModelProperty(value = "清分ID")
+    private String settleRefId;
+    @ApiModelProperty(value = "交易状态")
+    private String status;
+    @ApiModelProperty(value = "支付总金额")
+    private BigDecimal totalAmount;
+    @ApiModelProperty(value = "第三方订单号")
+    private String targetOrderId;
+    @ApiModelProperty(value = "目标平台代码")
+    private String targetSys;
+    @ApiModelProperty(value = "目标平台的状态")
+    private String targetStatus;
+    @ApiModelProperty(value = "小程序支付用的请求报文,带有签名信息")
+    private Object miniPayRequest;
+    @ApiModelProperty(value = "支付渠道商户号")
+    private String targetMid;
+    @ApiModelProperty(value = "营销联盟优惠金额")
+    private BigDecimal yxlmAmount;
+}

+ 55 - 0
src/main/java/com/gree/mall/miniapp/bean/UmsPayCallBean.java

@@ -0,0 +1,55 @@
+package com.gree.mall.miniapp.bean;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+@ApiModel
+public class UmsPayCallBean {
+    @ApiModelProperty(value = "商户号")
+    private String mid;
+    @ApiModelProperty(value = "终端号")
+    private String tid;
+    @ApiModelProperty(value = "业务类型 ")
+    private String instMid;
+    @ApiModelProperty(value = "附加数据")
+    private String attachedData;
+    @ApiModelProperty(value = "支付银行信息")
+    private String bankCardNo;
+    @ApiModelProperty(value = "资金渠道")
+    private String billFunds;
+    @ApiModelProperty(value = "资金渠道说明")
+    private String billFundsDesc;
+    @ApiModelProperty(value = "买家ID")
+    private String buyerId;
+    @ApiModelProperty(value = "买家用户名")
+    private String buyerUsername;
+    @ApiModelProperty(value = "实付金额")
+    private String buyerPayAmount;
+    @ApiModelProperty(value = "订单金额,单位分")
+    private String totalAmount;
+    @ApiModelProperty(value = "开票金额")
+    private String invoiceAmount;
+    @ApiModelProperty(value = "商户订单号")
+    private String merOrderId;
+    @ApiModelProperty(value = "支付时间")
+    private String payTime;
+    @ApiModelProperty(value = "实收金额")
+    private String receiptAmount;
+    @ApiModelProperty(value = "渠道订单号")
+    private String targetOrderId;
+    @ApiModelProperty(value = "商户出资优惠金额")
+    private String couponMerchantContribute;
+    @ApiModelProperty(value = "其他出资优惠金额")
+    private String couponOtherContribute;
+    @ApiModelProperty(value = "订单详情")
+    private String orderDesc;
+    @ApiModelProperty(value = "商品交易单号")
+    private String goodsTradeNo;
+    @ApiModelProperty(value = "渠道优惠金额 单位:分  ")
+    private String couponAmount;
+    @ApiModelProperty(value = "银行信息")
+    private String bankInfo;
+}

+ 19 - 0
src/main/java/com/gree/mall/miniapp/bean/coupon/BuyGoodsInfo.java

@@ -0,0 +1,19 @@
+package com.gree.mall.miniapp.bean.coupon;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class BuyGoodsInfo {
+
+    @ApiModelProperty( value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty( value = "商品件数")
+    private int goodsCount;
+
+    @ApiModelProperty( value = "商品件数")
+    private int memberCount;
+}

+ 22 - 0
src/main/java/com/gree/mall/miniapp/bean/coupon/CouponBean.java

@@ -0,0 +1,22 @@
+package com.gree.mall.miniapp.bean.coupon;
+
+import com.gree.mall.miniapp.plus.entity.*;
+import com.gree.mall.miniapp.plus.entity.Coupon;
+import com.gree.mall.miniapp.plus.entity.CouponGoods;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class CouponBean extends Coupon {
+
+    @ApiModelProperty( value = "商品列表")
+    private List<CouponGoods> goodsList;
+
+    @ApiModelProperty( value = "会员列表")
+    private List<CouponTag> couponTagList;
+}

+ 26 - 0
src/main/java/com/gree/mall/miniapp/bean/coupon/CouponDataBean.java

@@ -0,0 +1,26 @@
+package com.gree.mall.miniapp.bean.coupon;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@ApiModel
+@Data
+public class CouponDataBean {
+
+    @ApiModelProperty( value = "用券总成交额")
+    private BigDecimal totalSaleValue;
+
+    @ApiModelProperty( value = "优惠总金额")
+    private BigDecimal totalDiscountValue;
+
+    @ApiModelProperty( value = "购买商品件数")
+    private int buyGoodsCount;
+
+    @ApiModelProperty( value = "购买商品明细")
+    private List<BuyGoodsInfo> buyGoodsInfoList;
+
+}

+ 13 - 0
src/main/java/com/gree/mall/miniapp/bean/coupon/CouponObtainBean.java

@@ -0,0 +1,13 @@
+package com.gree.mall.miniapp.bean.coupon;
+
+import com.gree.mall.miniapp.plus.entity.Coupon;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class CouponObtainBean extends Coupon {
+    @ApiModelProperty( value = "优惠券类型,0/1/2,不可领/可领/已领")
+    private Integer obtainType;
+}

+ 22 - 0
src/main/java/com/gree/mall/miniapp/bean/coupon/CouponQrcodeBean.java

@@ -0,0 +1,22 @@
+package com.gree.mall.miniapp.bean.coupon;
+
+import com.gree.mall.miniapp.plus.entity.CouponGoods;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class CouponQrcodeBean {
+    @ApiModelProperty(value = "优惠券二维码")
+    private String qrcode;
+
+    @ApiModelProperty(value = "总分享次数")
+    private Integer shareTimes;
+
+    @ApiModelProperty(value = "剩余分享次数")
+    private Integer leftShareTimes;
+
+}

+ 20 - 0
src/main/java/com/gree/mall/miniapp/bean/coupon/CustomCoupouBean.java

@@ -0,0 +1,20 @@
+package com.gree.mall.miniapp.bean.coupon;
+
+import com.gree.mall.miniapp.plus.entity.CouponGoods;
+import com.gree.mall.miniapp.plus.entity.UserCoupon;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class CustomCoupouBean extends UserCoupon {
+
+    @ApiModelProperty( value = "优惠券是否可用标记true:可用,false:不可用")
+    private Boolean useableFlag;
+
+}

+ 17 - 0
src/main/java/com/gree/mall/miniapp/bean/coupon/UserCouponBean.java

@@ -0,0 +1,17 @@
+package com.gree.mall.miniapp.bean.coupon;
+
+import com.gree.mall.miniapp.plus.entity.UserCoupon;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class UserCouponBean extends UserCoupon {
+
+    //商品券所对应的goodsId
+    private String goodsId;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("用户手机号")
+    private String mobile;
+
+}

+ 18 - 0
src/main/java/com/gree/mall/miniapp/bean/coupon/UserCouponCountBean.java

@@ -0,0 +1,18 @@
+package com.gree.mall.miniapp.bean.coupon;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class UserCouponCountBean {
+
+    @ApiModelProperty("未使用数量")
+    private Integer wsy = 0;
+    @ApiModelProperty("已使用数量")
+    private Integer ysy = 0;
+    @ApiModelProperty("已过期数量")
+    private Integer ygq = 0;
+
+}

+ 32 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/AckGoodsBean.java

@@ -0,0 +1,32 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.Goods;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class AckGoodsBean extends Goods {
+
+    @ApiModelProperty("规则值")
+    private String specValue;
+    @ApiModelProperty("规格图片")
+    private String specImgUrl;
+    @ApiModelProperty("价格")
+    private BigDecimal price;
+    @ApiModelProperty("划线价")
+    private BigDecimal orgPrice;
+    @ApiModelProperty("商品数量")
+    private Integer num;
+    @ApiModelProperty("是否为礼品卡活动商品")
+    private Boolean isGift;
+    @ApiModelProperty("秒杀活动id")
+    private String secKillId;
+    @ApiModelProperty("团购活动id")
+    private String promotionGroupId;
+
+
+}

+ 34 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/CategoryBean.java

@@ -0,0 +1,34 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.GoodsSpec;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class CategoryBean {
+
+    @ApiModelProperty("分类id")
+    private String categoryId;
+
+    @ApiModelProperty("分类名称")
+    private String name;
+    @ApiModelProperty("图片url")
+    private String imgUrl;
+    @ApiModelProperty("商品数量")
+    private String goodsNum;
+    @ApiModelProperty("层级")
+    private String level;
+    @ApiModelProperty("上层id")
+    private String parentId;
+    @ApiModelProperty("排序值")
+    private String sortNum;
+
+    @ApiModelProperty("子分类")
+    private List<CategoryBean> sub;
+
+}

+ 18 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/CommentTagCount.java

@@ -0,0 +1,18 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class CommentTagCount {
+
+    @ApiModelProperty("评价标签id")
+    private String orderCommentTagId;
+    @ApiModelProperty("标签名称")
+    private String tag;
+    @ApiModelProperty("标签数量")
+    private Integer total;
+
+}

+ 22 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/CutGoodsBean.java

@@ -0,0 +1,22 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class CutGoodsBean {
+    @ApiModelProperty("秒杀活动id")
+    private String secKillActivityId;
+    @ApiModelProperty("商品id")
+    private String goodsId;
+    @ApiModelProperty("商品规格id")
+    private String GoodsSpecId;
+    @ApiModelProperty("降价金额")
+    private BigDecimal cutAmount;
+    @ApiModelProperty("true=生成二维码并返回二维码url  false=分享链接,并返回参数id")
+    private Boolean qrcode;
+}

+ 73 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsBean.java

@@ -0,0 +1,73 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.*;
+import com.gree.mall.miniapp.plus.entity.CommonFile;
+import com.gree.mall.miniapp.plus.entity.Goods;
+import com.gree.mall.miniapp.plus.entity.GoodsSpec;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class GoodsBean extends Goods {
+
+    @ApiModelProperty("商品库存")
+    private Integer stock;
+
+    @ApiModelProperty("商品规格")
+    private List<GoodsSpecSecBean> goodsSpecs;
+
+    @ApiModelProperty("轮播图")
+    private List<CommonFile> images;
+
+    @ApiModelProperty("是否收藏标记")
+    private Boolean favorite;
+
+    @ApiModelProperty(value = "秒杀id")
+    private String secKillId;
+
+    @ApiModelProperty("团购活动id")
+    private String promotionGroupId;
+
+    @ApiModelProperty("团长id")
+    private String groupUserId;
+
+    @ApiModelProperty("团长昵称")
+    private String groupUserName;
+
+    @ApiModelProperty("团长头像")
+    private String groupPic;
+
+    @ApiModelProperty(value = "秒杀商品规格id")
+    private String secKillSpecId;
+
+    @ApiModelProperty(value = "秒杀商品库存")
+    private Integer secStockNum;
+
+    @ApiModelProperty(value = "秒杀商品限制购买数量")
+    private Integer limitBuy;
+
+    @ApiModelProperty(value = "场次结束时间")
+    private Integer endHour;
+
+    @ApiModelProperty(value = "秒杀价格")
+    private BigDecimal secPrice;
+
+    @ApiModelProperty(value = "是否正在秒杀商品,true:秒杀中,false:非秒杀")
+    private Boolean secType;
+
+    @ApiModelProperty("商品模板")
+    private CommonTemplate commonTemplate;
+
+    @ApiModelProperty("公共商品模板")
+    private PubTemplate pubCommonTemplate;
+
+    @ApiModelProperty("佣金")
+    private BigDecimal shareAmount;
+}

+ 19 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsCategoryBean.java

@@ -0,0 +1,19 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.GoodsCategory;
+import com.gree.mall.miniapp.plus.entity.GoodsCategory;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class GoodsCategoryBean extends GoodsCategory {
+
+    @ApiModelProperty( value = "子类别")
+    private List<GoodsCategoryBean> children;
+}

+ 24 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsComment.java

@@ -0,0 +1,24 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.OrderComment;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@ApiModel
+@Data
+public class GoodsComment extends OrderComment {
+
+    @ApiModelProperty("用户名称")
+    private String userName;
+    @ApiModelProperty("用户头像")
+    private String avatar;
+    @ApiModelProperty("标签")
+    private List<String> tags;
+    @ApiModelProperty("图片")
+    private List<String> imgs;
+
+}

+ 19 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsCommentCount.java

@@ -0,0 +1,19 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel
+@Data
+public class GoodsCommentCount {
+    @ApiModelProperty("综合好评")
+    private Integer goodRate;
+    @ApiModelProperty("标签统计")
+    private List<CommentTagCount> tagCountList;
+
+}

+ 18 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsFavoriteBean.java

@@ -0,0 +1,18 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.Goods;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class GoodsFavoriteBean extends Goods {
+
+    @ApiModelProperty("收藏id")
+    private String goodsFavoriteId;
+
+
+}

+ 22 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsNewBean.java

@@ -0,0 +1,22 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.Goods;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class GoodsNewBean extends Goods {
+
+    @ApiModelProperty("objId")
+    private String objId;
+    @ApiModelProperty("上标签")
+    private List<String> tags1;
+    @ApiModelProperty("下标签")
+    private List<String> tags2;
+
+
+}

+ 24 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsPackageBean.java

@@ -0,0 +1,24 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.GoodsPackagePop;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@ApiModel
+@Data
+public class GoodsPackageBean extends GoodsPackagePop {
+
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+    @ApiModelProperty("图片")
+    private String imgUrl;
+    @ApiModelProperty("规格")
+    private String specValue;
+    @ApiModelProperty("划线价格")
+    private BigDecimal orgPrice;
+
+}

+ 45 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsSortBean.java

@@ -0,0 +1,45 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.alibaba.fastjson.JSONArray;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class GoodsSortBean {
+
+    @ApiModelProperty(value = "商品排序对应值 PRICE=销售价格 SHARE=分销金额 SOLD=销量 STOCK=库存")
+    private String sortColumn;
+    @ApiModelProperty(value = "true=升序 false=倒序")
+    private boolean type = true ;
+
+
+    public static String convertColumn(JSONArray goodsSortBeanArray) {
+        StringBuilder sb = new StringBuilder();
+
+        for(int i = 0; i < goodsSortBeanArray.size(); i++) {
+            GoodsSortBean goodsSortBean = goodsSortBeanArray.getObject(i, GoodsSortBean.class);
+            switch (goodsSortBean.getSortColumn()) {
+                case "PRICE" :
+                    sb.append("t2.price ").append(goodsSortBean.isType() ? "ASC," : "DESC,");
+                    break;
+                case "SHARE" :
+                    sb.append("t2.share_amount ").append(goodsSortBean.isType() ? "ASC," : "DESC,");
+                    break;
+                case "SOLD" :
+                    sb.append("t2.sold_num ").append(goodsSortBean.isType() ? "ASC," : "DESC,");
+                    break;
+                case "STOCK" :
+                    sb.append("t2.stock_num ").append(goodsSortBean.isType() ? "ASC," : "DESC,");
+                    break;
+                default :
+            }
+        }
+        if(sb.toString().length() == 0) {
+            return null;
+        }
+        String resStr = sb.toString();
+        return resStr.substring(0, resStr.length() - 1);
+    }
+}

+ 44 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsSpecBean.java

@@ -0,0 +1,44 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.Goods;
+import com.gree.mall.miniapp.plus.entity.Goods;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class GoodsSpecBean extends Goods {
+
+    @ApiModelProperty(value = "商品规格id")
+    private String goodsSpecId;
+
+    @ApiModelProperty(value = "规格值")
+    private String specValue;
+
+    @ApiModelProperty(value = "图片")
+    private String specImgUrl;
+
+    @ApiModelProperty(value = "成本价")
+    private BigDecimal costPrice;
+
+    @ApiModelProperty(value = "销售价")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "划线价格")
+    private BigDecimal orgPrice;
+
+    @ApiModelProperty(value = "分销金额")
+    private BigDecimal shareAmount;
+
+    @ApiModelProperty(value = "库存")
+    private Integer stockNum;
+
+    @ApiModelProperty(value = "商品类别名称")
+    private String categoryName;
+
+}

+ 41 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/GoodsSpecSecBean.java

@@ -0,0 +1,41 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import com.gree.mall.miniapp.plus.entity.GoodsSpec;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class GoodsSpecSecBean extends GoodsSpec {
+    @ApiModelProperty(value = "秒杀id")
+    private String secKillId;
+
+    @ApiModelProperty(value = "秒杀商品规格id")
+    private String secKillSpecId;
+
+    @ApiModelProperty(value = "秒杀商品库存")
+    private Integer secStockNum;
+
+    @ApiModelProperty(value = "秒杀商品限制购买数量")
+    private Integer limitBuy;
+
+    @ApiModelProperty(value = "场次结束时间")
+    private Integer endHour;
+
+    @ApiModelProperty(value = "秒杀分销金额")
+    private BigDecimal secShareAmount;
+
+    @ApiModelProperty(value = "秒杀价格")
+    private BigDecimal secPrice;
+
+    @ApiModelProperty(value = "是否正在秒杀商品,true:秒杀中,false:非秒杀")
+    private Boolean secType;
+
+    @ApiModelProperty("商品划线价")
+    private BigDecimal orgGoodsPrice;
+
+}

+ 30 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/PromotionGoodsBean.java

@@ -0,0 +1,30 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class PromotionGoodsBean {
+
+    @ApiModelProperty("团购活动id")
+    private String promotionGroupId;
+    @ApiModelProperty("商品id")
+    private String goodsId;
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+    @ApiModelProperty("商品图")
+    private String goodsImgSrc;
+    @ApiModelProperty("拼团价")
+    private BigDecimal groupPrice;
+    @ApiModelProperty("销售数量")
+    private Integer saleNum;
+    @ApiModelProperty("库存")
+    private Integer stock;
+    @ApiModelProperty("划线价")
+    private BigDecimal orgGoodsPrice;
+
+}

+ 18 - 0
src/main/java/com/gree/mall/miniapp/bean/goods/PromotionShareQrCode.java

@@ -0,0 +1,18 @@
+package com.gree.mall.miniapp.bean.goods;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class PromotionShareQrCode {
+
+    @ApiModelProperty("活动背景图")
+    private String promotionImgUrl;
+    @ApiModelProperty("海报图片")
+    private String posterImgUrl;
+    @ApiModelProperty("小程序二维码")
+    private String qrcode;
+
+}

+ 44 - 0
src/main/java/com/gree/mall/miniapp/bean/gree/WorkOrderBean.java

@@ -0,0 +1,44 @@
+package com.gree.mall.miniapp.bean.gree;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+
+@Data
+public class WorkOrderBean {
+    private String fx_sale_order_no = "";
+    private String user_name = "";
+    private String user_phone = "";
+    private String province = "";
+    private String city = "";
+    private String area = "";
+    private String street ="";
+    private String address = "";
+    private String user_contact="";
+    private String payment_time="";
+    //1=已支付 2=已退货
+    private String payment_state = "1";
+    private String payment_desc = "微信支付";
+    private String main_id = "101";
+    private String main_name = "0";
+    private String clerk_name = "";
+    private String clerk_phone = "";
+    private String clerk_idcard="0";
+    private String clerk_id = "";
+    private String websit_number = "";
+//    private String small_id = "0";
+//    private String small_name = "0";
+//    private String series_name = "0";
+//    private String pname = "";
+//    private String unit = "";
+//    private String number = "";
+//    private String price = "";
+
+    private List<Map<String,Object>> itf_fx_install_req_data;
+
+
+
+}

+ 21 - 0
src/main/java/com/gree/mall/miniapp/bean/notice/NoticeParam.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.bean.notice;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class NoticeParam {
+
+    private String param1;
+    private String param2;
+    private String param3;
+    private String param4;
+    private String param5;
+    private String param6;
+    @ApiModelProperty("客户手机号")
+    private String mobile;
+    @ApiModelProperty("1=下派/改派 2=预约/改约 3=支付成功 4=新工单")
+    private Integer type;
+}

+ 13 - 0
src/main/java/com/gree/mall/miniapp/bean/notice/NoticeParamBean.java

@@ -0,0 +1,13 @@
+package com.gree.mall.miniapp.bean.notice;
+
+import com.gree.mall.miniapp.plus.entity.NoticeParam;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class NoticeParamBean extends NoticeParam {
+
+    private String mpOpenId;
+
+}

+ 60 - 0
src/main/java/com/gree/mall/miniapp/bean/order/BuyGood.java

@@ -0,0 +1,60 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.gree.mall.miniapp.plus.entity.Goods;
+import com.gree.mall.miniapp.plus.entity.GoodsSpec;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class BuyGood {
+
+    @ApiModelProperty("商品id")
+    private String goodsId;
+    @ApiModelProperty("商品规格id")
+    private String GoodsSpecId;
+    @ApiModelProperty("购买数量")
+    private Integer num;
+    @ApiModelProperty("套购商品-框几")
+    private Integer popType;
+    @ApiModelProperty("购物车id(购物车提交订单才传)")
+    private String shoppingCartId;
+    @ApiModelProperty("团购活动id")
+    private String promotionGroupId;
+    @ApiModelProperty("秒杀活动id")
+    private String secKillId;
+    @ApiModelProperty("wxSceneId")
+    private String wxSceneId;
+
+    @JsonIgnore
+    private Goods goods;
+    @JsonIgnore
+    private GoodsSpec goodsSpec;
+    @JsonIgnore
+    @ApiModelProperty("单价")
+    private BigDecimal price;
+    @JsonIgnore
+    @ApiModelProperty("单个商品佣金")
+    private BigDecimal shareAmount;
+    //套购商品
+    @JsonIgnore
+    private Boolean isGoodsPackage = false;
+    //秒杀商品
+    @JsonIgnore
+    private Boolean isSecKill = false;
+    //团购商品
+    @JsonIgnore
+    private Boolean isPromotionGroup = false;
+    //原价
+    @JsonIgnore
+    private BigDecimal orgPrice;
+    //活动的商品图
+    @JsonIgnore
+    private String promotionImgUrl;
+
+
+}

+ 38 - 0
src/main/java/com/gree/mall/miniapp/bean/order/OrderAckBean.java

@@ -0,0 +1,38 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.gree.mall.miniapp.bean.goods.AckGoodsBean;
+import com.gree.mall.miniapp.bean.goods.GoodsBean;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@ApiModel
+@Data
+public class OrderAckBean {
+
+    @ApiModelProperty("商品总金额")
+    private BigDecimal totalAmount;
+    @ApiModelProperty("商品详情")
+    private List<AckGoodsBean> goods;
+    @ApiModelProperty("商品总数量")
+    private Integer totalNum;
+    @ApiModelProperty("openid")
+    private String openId;
+    @ApiModelProperty("是否为秒杀活动")
+    private Boolean isSecKill = false;
+    @ApiModelProperty("运费")
+    private BigDecimal freight;
+    @ApiModelProperty("优惠券或者优惠码抵消金额")
+    private BigDecimal exchangeAmount;
+    @ApiModelProperty("折扣抵消金额")
+    private BigDecimal discountAmount;
+    @ApiModelProperty("订单实际支付金额 总金额 - 优惠券/优惠码金额 - 折扣扣减金额")
+    private BigDecimal payAmount;
+    @ApiModelProperty("折扣活动的折扣")
+    private BigDecimal promotionDiscountRate;
+    @ApiModelProperty("云闪付是否记录下单人信息")
+    private Boolean isRecordBuyer;
+}

+ 52 - 0
src/main/java/com/gree/mall/miniapp/bean/order/OrderBuyBean.java

@@ -0,0 +1,52 @@
+package com.gree.mall.miniapp.bean.order;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.math.BigDecimal;
+import java.util.List;
+
+@ApiModel
+@Data
+public class OrderBuyBean {
+    @ApiModelProperty("用户id")
+    private String userId;
+    @ApiModelProperty("我的优惠券id")
+    private String userCouponId;
+    @ApiModelProperty("收货地址id")
+    private String userAddressId;
+    @ApiModelProperty("是否代客下单")
+    private Boolean proxyUser = false;
+    @ApiModelProperty("买家留言")
+    private String buyerMsg;
+    @ApiModelProperty("兑换码")
+    private String exchangeCode;
+
+    @ApiModelProperty("购物车")
+    public List<BuyGood> buyGoods;
+
+    @ApiModelProperty("申请优惠的订单号")
+    private String orderId;
+    @ApiModelProperty("申请优惠价格")
+    private BigDecimal applyAmount;
+    @ApiModelProperty("申请优惠备注")
+    private String applyRemark;
+
+    @ApiModelProperty("套购商品id(如果是套购商品必传这个)")
+    private String goodsPackageId;
+
+    @ApiModelProperty("工单派单方式 自卖自装/当地安装")
+    private String dispatchType;
+
+    @ApiModelProperty("wechat pay")
+    private Boolean wechatPay = true;
+
+    @ApiModelProperty("购买人姓名")
+    private String buyerName;
+
+    @ApiModelProperty("购买人身份证")
+    private String buyerIdCard;
+}

+ 19 - 0
src/main/java/com/gree/mall/miniapp/bean/order/OrderCommentBean.java

@@ -0,0 +1,19 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.gree.mall.miniapp.plus.entity.OrderComment;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class OrderCommentBean extends OrderComment {
+
+    @ApiModelProperty("标签集合")
+    private List<String> tags;
+    @ApiModelProperty("附件集合")
+    private List<String> fileIds;
+
+}

+ 23 - 0
src/main/java/com/gree/mall/miniapp/bean/order/OrderDetailBean.java

@@ -0,0 +1,23 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.gree.mall.miniapp.plus.entity.OrderDetail;
+import com.gree.mall.miniapp.plus.entity.OrderInfo;
+import com.gree.mall.miniapp.plus.entity.OrderDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class OrderDetailBean extends OrderInfo {
+
+    @ApiModelProperty("订单详情")
+    private List<OrderDetailGoodsBean> orderDetails;
+    @ApiModelProperty("结算状态")
+    private String orderShareStatus;
+
+    @ApiModelProperty("云闪付是否记录下单人信息")
+    private Boolean isRecordBuyer;
+}

+ 15 - 0
src/main/java/com/gree/mall/miniapp/bean/order/OrderDetailGoodsBean.java

@@ -0,0 +1,15 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.gree.mall.miniapp.plus.entity.Goods;
+import com.gree.mall.miniapp.plus.entity.OrderDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class OrderDetailGoodsBean extends OrderDetail {
+
+    @ApiModelProperty(value = "商品")
+    private Goods goods;
+}

+ 22 - 0
src/main/java/com/gree/mall/miniapp/bean/order/OrderRefundDetailBean.java

@@ -0,0 +1,22 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.gree.mall.miniapp.plus.entity.CommonFile;
+import com.gree.mall.miniapp.plus.entity.OrderDetail;
+import com.gree.mall.miniapp.plus.entity.OrderRefund;
+import com.gree.mall.miniapp.plus.entity.OrderDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class OrderRefundDetailBean extends OrderRefund {
+
+    @ApiModelProperty("订单详情")
+    private List<OrderDetail> orderDetails;
+    @ApiModelProperty("售后凭证")
+    private List<CommonFile> files;
+
+}

+ 21 - 0
src/main/java/com/gree/mall/miniapp/bean/order/OrderStatusBean.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.bean.order;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class OrderStatusBean {
+
+    @ApiModelProperty("待付款数量")
+    private Integer noPay;
+    @ApiModelProperty("待发货数量")
+    private Integer dfh;
+    @ApiModelProperty("已发货数量")
+    private Integer yfh;
+    @ApiModelProperty("已完成数量")
+    private Integer ywc;
+    @ApiModelProperty("售后服务数量")
+    private Integer sh;
+}

+ 17 - 0
src/main/java/com/gree/mall/miniapp/bean/order/PromotionDiscountBean.java

@@ -0,0 +1,17 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.gree.mall.miniapp.plus.entity.PromotionDiscount;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class PromotionDiscountBean extends PromotionDiscount {
+
+    @ApiModelProperty("折扣优惠掉的金额")
+    private BigDecimal subDiscountAmount;
+
+}

+ 16 - 0
src/main/java/com/gree/mall/miniapp/bean/order/RefundGoods.java

@@ -0,0 +1,16 @@
+package com.gree.mall.miniapp.bean.order;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class RefundGoods {
+
+    @ApiModelProperty("明细id")
+    private String orderDetailId;
+    @ApiModelProperty("数量")
+    private Integer num;
+
+}

+ 29 - 0
src/main/java/com/gree/mall/miniapp/bean/order/RefundGoodsBean.java

@@ -0,0 +1,29 @@
+package com.gree.mall.miniapp.bean.order;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class RefundGoodsBean {
+
+    @ApiModelProperty("订单id")
+    private String orderId;
+    @ApiModelProperty("退款订单商品明细id")
+    private String orderDetailId;
+    @ApiModelProperty("退款方式:REFUND_AMOUNT=仅退款  REFUND_GOODS=退货退款")
+    private String refundType;
+    @ApiModelProperty("退换货原因")
+    private String refundReason;
+    @ApiModelProperty("退换货说明")
+    private String refundExplain;
+    @ApiModelProperty("凭证ids")
+    private List<String> imgIds;
+    @ApiModelProperty("退款商品")
+    private List<RefundGoods> refundGoods;
+
+
+}

+ 18 - 0
src/main/java/com/gree/mall/miniapp/bean/order/ShoppingCartBean.java

@@ -0,0 +1,18 @@
+package com.gree.mall.miniapp.bean.order;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class ShoppingCartBean {
+
+    @ApiModelProperty("用户id")
+    private String userId;
+    @ApiModelProperty("购物清单")
+    private List<BuyGood> buyGoods;
+
+}

+ 21 - 0
src/main/java/com/gree/mall/miniapp/bean/order/ShoppingCartDetail.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.bean.order;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@ApiModel
+@Data
+public class ShoppingCartDetail {
+
+    @ApiModelProperty("购物车总数量")
+    private Integer totalNum;
+    @ApiModelProperty("购物车总金额(不含运费)")
+    private BigDecimal totalAmount;
+    @ApiModelProperty("购物车商品数组")
+    private List<ShoppingCartList> shoppingCartLists;
+
+}

+ 30 - 0
src/main/java/com/gree/mall/miniapp/bean/order/ShoppingCartList.java

@@ -0,0 +1,30 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.gree.mall.miniapp.plus.entity.ShoppingCart;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class ShoppingCartList extends ShoppingCart {
+
+    @ApiModelProperty("单价")
+    private BigDecimal price;
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+    @ApiModelProperty("划线价格")
+    private BigDecimal orgPrice;
+    @ApiModelProperty("规格值")
+    private String specValue;
+    @ApiModelProperty("当前商品总价(单价*数量)")
+    private BigDecimal totalPrice;
+    @ApiModelProperty("商品图")
+    private String goodsImg;
+
+//    @ApiModelProperty("商品单位")
+//    private String measureUnit;
+
+}

+ 113 - 0
src/main/java/com/gree/mall/miniapp/bean/order/WorkerOrderInfo.java

@@ -0,0 +1,113 @@
+package com.gree.mall.miniapp.bean.order;
+
+import com.gree.mall.miniapp.plus.entity.OrderDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel
+@Data
+public class WorkerOrderInfo {
+
+    @ApiModelProperty("信息编号")
+    private String workerOrder;
+    @ApiModelProperty("总部信息编号")
+    private String pgid;
+    @ApiModelProperty("工单状态数值")
+    private Integer orderStateInt;
+    @ApiModelProperty("工单状态")
+    private String orderState;
+    @ApiModelProperty("售后服务网点编号")
+    private String installNumber;
+    @ApiModelProperty("售后服务网点名称")
+    private String installName;
+    @ApiModelProperty("主要服务人员")
+    private String workerName;
+    @ApiModelProperty("主要服务人员电话")
+    private String workerPhone;
+    @ApiModelProperty("工单接收时间")
+    private String orderReceTime;
+    @ApiModelProperty("完工时间")
+    private String finishTime;
+    @ApiModelProperty("工单反馈信息")
+    private List<Fkxx> fkxxs;
+    @ApiModelProperty("辅材支付信息")
+    private List<Fcxx> fcxxs;
+    @ApiModelProperty("订单明细")
+    private List<OrderDetail> orderDetails;
+    @ApiModelProperty("订单号")
+    private String orderId;
+    @ApiModelProperty("下单时间")
+    private String payTime;
+    @ApiModelProperty("辅助人员名称")
+    private String assistName;
+    @ApiModelProperty("预约时间")
+    private String reserveTime;
+    @ApiModelProperty("服务内容")
+    private String serverContent;
+    @ApiModelProperty("支架")
+    private String bracket;
+    @ApiModelProperty("加长管")
+    private String pipe;
+    @ApiModelProperty("空气开关")
+    private String switchFlag;
+    @ApiModelProperty("高空作业")
+    private String highAltitude;
+    @ApiModelProperty("一次成型墙孔")
+    private String hole;
+    @ApiModelProperty("服务备注")
+    private String remark;
+    @ApiModelProperty("派单时间")
+    private String createTime;
+    @ApiModelProperty("商品集合")
+    private List<Map<String,String>> goods;
+    @ApiModelProperty("产品类型")
+    private String mainName;
+
+    @ApiModel
+    @Data
+    public static class Fkxx{
+        @ApiModelProperty("操作类型")
+        private String operatorType;
+        @ApiModelProperty("操作内容")
+        private String operatorContent;
+        @ApiModelProperty("最后操作时间")
+        private String lastOperatorTime;
+        @ApiModelProperty("操作人")
+        private String operatorName;
+        @ApiModelProperty("操作网点")
+        private String operatorWebsit;
+        @ApiModelProperty("反馈结果")
+        private String result;
+        @ApiModelProperty("附件")
+        private String files;
+    }
+
+    @ApiModel
+    @Data
+    public static class Fcxx{
+        @ApiModelProperty("id")
+        private Integer id;
+        @ApiModelProperty("费用单号")
+        private String orderNo;
+        @ApiModelProperty("操作网点")
+        private String operatorWebsit;
+        @ApiModelProperty("操作人")
+        private String operatorName;
+        @ApiModelProperty("支付状态")
+        private String payStatus;
+        @ApiModelProperty("支付时间")
+        private String payTime;
+        @ApiModelProperty("金额")
+        private String amount;
+        @ApiModelProperty("备注")
+        private String remark;
+        @ApiModelProperty("详情")
+        private List<Map<String,Object>> details;
+    }
+
+}

+ 44 - 0
src/main/java/com/gree/mall/miniapp/bean/promotion/PromotionLuckDrawExchangeDetail.java

@@ -0,0 +1,44 @@
+package com.gree.mall.miniapp.bean.promotion;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel
+@Data
+public class PromotionLuckDrawExchangeDetail {
+
+    @ApiModelProperty("活动名称")
+    private String name;
+    @ApiModelProperty("奖品")
+    private String couponName;
+    @ApiModelProperty("活动开始时间")
+    private Date startTime;
+    @ApiModelProperty("活动结束时间")
+    private Date endTime;
+    @ApiModelProperty("使用开始时间")
+    private Date useStartTime;
+    @ApiModelProperty("使用结束时间")
+    private Date useEndTime;
+    @ApiModelProperty("使用条件")
+    private String useRemark;
+    @ApiModelProperty("活动说明")
+    private String remark;
+
+    @ApiModelProperty("是否兑换true/false")
+    private Boolean status;
+    @ApiModelProperty("是否使用true/false")
+    private Boolean use;
+    @ApiModelProperty("使用时间")
+    private Date useTime;
+    @ApiModelProperty("兑换时间")
+    private Date userExchangeTime;
+    @ApiModelProperty("满减券需满足金额")
+    private BigDecimal orderLimitAmount;
+    @ApiModelProperty("券类型 SATISFY=满减券 GOODS=商品券 DISCOUNT=折扣券")
+    private String couponType;
+
+}

+ 13 - 0
src/main/java/com/gree/mall/miniapp/bean/seckill/SecKillBean.java

@@ -0,0 +1,13 @@
+package com.gree.mall.miniapp.bean.seckill;
+
+import lombok.Data;
+
+@Data
+public class SecKillBean {
+
+    private String secKillId;
+    private String secKillSpecId;
+    private String goodsId;
+    private String userId;
+
+}

+ 25 - 0
src/main/java/com/gree/mall/miniapp/bean/seckill/SecKillExtends.java

@@ -0,0 +1,25 @@
+package com.gree.mall.miniapp.bean.seckill;
+
+import com.gree.mall.miniapp.plus.entity.SecKillActivity;
+import com.gree.mall.miniapp.plus.entity.SecKillActivitySpec;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class SecKillExtends extends SecKillActivity {
+    @ApiModelProperty("yjs=已结束 jxz=进行中 wks=未开始")
+    private String type;
+    @ApiModelProperty("秒杀开始场次时间")
+    private Integer startHour;
+    @ApiModelProperty("秒杀结束场次时间")
+    private Integer endHour;
+    @ApiModelProperty("开始场次的完整时间")
+    private String startDatetime;
+    @ApiModelProperty("结束场次的完整时间")
+    private String endDatetime;
+
+}

+ 13 - 0
src/main/java/com/gree/mall/miniapp/bean/seckill/SecKillList.java

@@ -0,0 +1,13 @@
+package com.gree.mall.miniapp.bean.seckill;
+
+import com.gree.mall.miniapp.plus.entity.SecKillActivitySpec;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class SecKillList extends SecKillActivitySpec {
+    @ApiModelProperty("商品详情")
+    private String content;
+}

+ 13 - 0
src/main/java/com/gree/mall/miniapp/bean/tag/SaveTagBean.java

@@ -0,0 +1,13 @@
+package com.gree.mall.miniapp.bean.tag;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+@ApiModel
+@Data
+public class SaveTagBean {
+    @ApiModelProperty("标签组id")
+    private String tagGroupId;
+    @ApiModelProperty("标签名称")
+    private String tagName;
+}

+ 15 - 0
src/main/java/com/gree/mall/miniapp/bean/tag/SimpleTagBean.java

@@ -0,0 +1,15 @@
+package com.gree.mall.miniapp.bean.tag;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class SimpleTagBean {
+    @ApiModelProperty("标签id")
+    private String tagId;
+    @ApiModelProperty("标签名称tagName")
+    private String tagName;
+
+}

+ 16 - 0
src/main/java/com/gree/mall/miniapp/bean/tag/TagBean.java

@@ -0,0 +1,16 @@
+package com.gree.mall.miniapp.bean.tag;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class TagBean {
+    @ApiModelProperty("企业微信标签列表")
+    private List<TagGroupBean> tagGroupBeanList;
+    @ApiModelProperty("自定义标签名列表")
+    private List<String> tagNameList;
+}

+ 21 - 0
src/main/java/com/gree/mall/miniapp/bean/tag/TagGroupBean.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.bean.tag;
+
+import com.gree.mall.miniapp.bean.tag.UserWxCustomerTagBean;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class TagGroupBean {
+    @ApiModelProperty("标签组id")
+    private String tagGroupId;
+    @ApiModelProperty("标签组名")
+    private String tagGroupName;
+
+    @ApiModelProperty("标签列表")
+    private List<UserWxCustomerTagBean> tags;
+
+}

+ 29 - 0
src/main/java/com/gree/mall/miniapp/bean/tag/UserWxCustomerBean.java

@@ -0,0 +1,29 @@
+package com.gree.mall.miniapp.bean.tag;
+
+import com.gree.mall.miniapp.bean.tag.UserWxCustomerTagBean;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@ApiModel
+@Data
+public class UserWxCustomerBean {
+    @ApiModelProperty("姓名")
+    private String nickName;
+    @ApiModelProperty("手机号码")
+    private String mobile;
+    @ApiModelProperty("union id")
+    private String unionId;
+    @ApiModelProperty("创建时间")
+    private Date serviceTime;
+    @ApiModelProperty("标签列表")
+    private List<UserWxCustomerTagBean> tags;
+    @ApiModelProperty("自定义标签列表")
+    private List<UserWxCustomerTagBean> customtags;
+    private String lastAccessTime;
+
+
+}

+ 16 - 0
src/main/java/com/gree/mall/miniapp/bean/tag/UserWxCustomerTagBean.java

@@ -0,0 +1,16 @@
+package com.gree.mall.miniapp.bean.tag;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class UserWxCustomerTagBean {
+    @ApiModelProperty("标签名")
+    private String tagName;
+    @ApiModelProperty("标签id")
+    private String tagId;
+    @ApiModelProperty("是否标记")
+    private Boolean tagged;
+}

+ 21 - 0
src/main/java/com/gree/mall/miniapp/bean/tag/WxCustomerTagBean.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.bean.tag;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class WxCustomerTagBean {
+    @ApiModelProperty("用户unionId")
+    private String unionId;
+    @ApiModelProperty("该用户要增加的企业微信tag")
+    private List<SimpleTagBean> addTags;
+    @ApiModelProperty("该用户要删除的企业微信tagId")
+    private List<String> delTags;
+    @ApiModelProperty("要新建的自定义标签列表")
+    private List<String> saveTags;
+
+}

+ 28 - 0
src/main/java/com/gree/mall/miniapp/bean/user/CurrentCompanyWechat.java

@@ -0,0 +1,28 @@
+package com.gree.mall.miniapp.bean.user;
+
+import com.gree.mall.miniapp.plus.entity.AdminCompanyWechat;
+import com.gree.mall.miniapp.plus.entity.AdminCompanyWechatOther;
+import com.gree.mall.miniapp.plus.entity.User;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class CurrentCompanyWechat extends AdminCompanyWechat{
+
+    @ApiModelProperty("用户id")
+    private String userId;
+    @ApiModelProperty("当前企业id")
+    private String currentCompanyWechatId;
+    @ApiModelProperty("当前企业名称")
+    private String currentCompanyName;
+
+    @ApiModelProperty("企业其他配置")
+    private AdminCompanyWechatOther adminCompanyWechatOther;
+
+    @ApiModelProperty("师傅昵称")
+    private User user;
+
+
+}

+ 28 - 0
src/main/java/com/gree/mall/miniapp/bean/user/MyProfitBean.java

@@ -0,0 +1,28 @@
+package com.gree.mall.miniapp.bean.user;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.miniapp.plus.entity.OrderShare;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class MyProfitBean {
+    @ApiModelProperty(value = "总收益")
+    private BigDecimal totalAmount;
+    @ApiModelProperty(value = "已结算收益")
+    private BigDecimal paidAmount;
+    @ApiModelProperty(value = "结算中收益")
+    private BigDecimal waitingAmount;
+
+//    @ApiModelProperty(value = "结算中分页列表")
+//    private IPage<OrderShare> waitingPage;
+//
+//    @ApiModelProperty(value = "已结算分页列表")
+//    private IPage<OrderShare> paidPage;
+
+
+}

+ 25 - 0
src/main/java/com/gree/mall/miniapp/bean/user/RankBean.java

@@ -0,0 +1,25 @@
+package com.gree.mall.miniapp.bean.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@ApiModel
+@Data
+public class RankBean {
+    @ApiModelProperty("排行榜")
+    private List<RankItemBean> rankList;
+    @ApiModelProperty("我的排名")
+    private RankItemBean myRank;
+    @ApiModelProperty("开始时间")
+    private String startPeriod;
+    @ApiModelProperty("结束时间")
+    private String endPeriod;
+    @ApiModelProperty("业绩是否上涨,true:上涨,false:下降")
+    private Boolean upOrDown;
+    @ApiModelProperty("上月业绩")
+    private BigDecimal income;
+}

+ 26 - 0
src/main/java/com/gree/mall/miniapp/bean/user/RankItemBean.java

@@ -0,0 +1,26 @@
+package com.gree.mall.miniapp.bean.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class RankItemBean {
+    @ApiModelProperty("业务员id")
+    private String workUserId;
+    @ApiModelProperty("业务员名称")
+    private String workUserName;
+    @ApiModelProperty("总销售额")
+    private BigDecimal total;
+    @ApiModelProperty("排名")
+    private Integer ranking;
+    @ApiModelProperty("网点")
+    private String websitName;
+    @ApiModelProperty("头像")
+    private String avatar;
+
+
+}

+ 24 - 0
src/main/java/com/gree/mall/miniapp/bean/user/ServiceWorkerBean.java

@@ -0,0 +1,24 @@
+package com.gree.mall.miniapp.bean.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class ServiceWorkerBean {
+    @ApiModelProperty(value = "业务员真实姓名")
+    private String workerRealName;
+    @ApiModelProperty(value = "业务员网点名称")
+    private String websit;
+    @ApiModelProperty(value = "业务员职位")
+    private String position;
+    @ApiModelProperty("网点主键id")
+    private String adminWebsitId;
+    @ApiModelProperty("网点编号")
+    private String websitNumber;
+    @ApiModelProperty("网点id")
+    private Long websitId;
+    private String orderId;
+
+}

+ 35 - 0
src/main/java/com/gree/mall/miniapp/bean/user/UserAddressBean.java

@@ -0,0 +1,35 @@
+package com.gree.mall.miniapp.bean.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiParam;
+import lombok.Data;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@ApiModel
+@Data
+public class UserAddressBean {
+    @ApiModelProperty(value = "地址id")
+    private String userAddressId;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+    @ApiModelProperty(value = "收货人姓名")
+    private String name;
+    @ApiModelProperty(value = "收货电话")
+    private String phone;
+    @ApiModelProperty(value = "省")
+    private String province;
+    @ApiModelProperty(value = "市")
+    private String city;
+    @ApiModelProperty(value = "区")
+    private String area;
+    @ApiModelProperty("街道")
+    private String street;
+    @ApiModelProperty(value = "收货地址")
+    private String address;
+    @ApiModelProperty(value = "门牌号")
+    private String houseNo;
+    @ApiModelProperty(value = "是否默认地址")
+    private Boolean defaultAddr;
+}

+ 27 - 0
src/main/java/com/gree/mall/miniapp/bean/user/UserWxBean.java

@@ -0,0 +1,27 @@
+package com.gree.mall.miniapp.bean.user;
+
+import com.gree.mall.miniapp.plus.entity.User;
+import com.gree.mall.miniapp.plus.entity.User;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class UserWxBean extends User {
+
+    @ApiModelProperty("token")
+    private String token;
+    @ApiModelProperty("购物车商品数量")
+    private Integer shoppingCartNums = 0;
+    @ApiModelProperty(value = "企业微信联系我二维码")
+    private String workQrcode2;
+    @ApiModelProperty(value = "业务员信息")
+    private ServiceWorkerBean serviceWorkerBean;
+    @ApiModelProperty("网点编号")
+    private String websitNumber;
+//    @ApiModelProperty("网点名称")
+//    private String websitName;
+}

+ 62 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/AppMapper.java

@@ -0,0 +1,62 @@
+package com.gree.mall.miniapp.commonmapper;
+
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.miniapp.bean.goods.GoodsNewBean;
+import com.gree.mall.miniapp.bean.order.OrderStatusBean;
+import com.gree.mall.miniapp.bean.order.ShoppingCartList;
+import com.gree.mall.miniapp.bean.seckill.SecKillExtends;
+import com.gree.mall.miniapp.bean.seckill.SecKillList;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface AppMapper {
+
+    /**
+     * 查询购物车的商品清单
+     * @param userId
+     * @return
+     */
+    @SqlParser(filter = true)
+    public List<ShoppingCartList> queryShoppingCartList(@Param("userId") String userId);
+
+
+    /**
+     * 查询各订单状态数量
+     */
+    @SqlParser(filter = true)
+    public OrderStatusBean orderStatusCount(@Param("userId") String userId);
+
+
+    /**
+     * 秒杀时间段
+     * @return
+     */
+    @SqlParser(filter = true)
+    public List<SecKillExtends> queryTimeList(@Param("companyWechatId") String companyWechatId);
+
+    /**
+     * 秒杀商品列表
+     * @return
+     */
+    @SqlParser(filter = true)
+    public List<SecKillList> querySecKillList(@Param("time") String time);
+
+    /**
+     * 精选分类商品
+     */
+    @SqlParser(filter = true)
+    public IPage<GoodsNewBean> queryNewGoods(
+            IPage ipage,
+            @Param("objId") String objId,
+            @Param("type") String type,
+            @Param("companyWechatId") String companyWechatId,
+            @Param("sort") Integer sort
+    );
+
+
+}

+ 30 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/CategoryMapper.java

@@ -0,0 +1,30 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.miniapp.bean.goods.CategoryBean;
+import com.gree.mall.miniapp.bean.goods.GoodsNewBean;
+import com.gree.mall.miniapp.plus.entity.GoodsCategory;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface CategoryMapper {
+
+    @SqlParser(filter = true)
+    List<CategoryBean> queryCategory(@Param("companyWechatId") String companyWechatId);
+
+    @SqlParser(filter = true)
+    IPage<GoodsNewBean> listGoods(IPage page,
+                                  @Param("currentCompanyWechatId") String currentCompanyWechatId,
+                                  @Param("categoryId")String categoryId,
+                                  @Param("sort")Integer sort);
+
+    /**
+     * 查询商品分类
+     */
+    @SqlParser(filter = true)
+    public GoodsCategory queryGoodsCategoryByGoodsId(@Param("goodsId") String goodsId);
+}

+ 14 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/CouponDateMapper.java

@@ -0,0 +1,14 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.gree.mall.miniapp.bean.coupon.CouponDataBean;
+import com.gree.mall.miniapp.bean.coupon.CouponDataBean;
+
+public interface CouponDateMapper {
+
+    /**
+     * 券数据
+     * @param couponId
+     * @return
+     */
+    CouponDataBean data(String couponId);
+}

+ 16 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/CoustomUserCouponMapper.java

@@ -0,0 +1,16 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.plus.entity.OrderDetail;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface CoustomUserCouponMapper {
+
+    @SqlParser(filter = true)
+    void decreaseLeftTimes(@Param("id") String id);
+
+    @SqlParser(filter = true)
+    void increaseLeftTimes(@Param("id") String id);
+}

+ 25 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/CustomCoupouMapper.java

@@ -0,0 +1,25 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.coupon.CouponObtainBean;
+import com.gree.mall.miniapp.bean.coupon.CustomCoupouBean;
+import com.gree.mall.miniapp.plus.entity.Coupon;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Mapper
+public interface CustomCoupouMapper {
+
+    @SqlParser(filter = true)
+    List<CustomCoupouBean> listCoupou(@Param("userId") String userId,
+                                      @Param("orderAmount") BigDecimal orderAmount,
+                                      @Param("goodsIds")List<String> goodsIds);
+
+    @SqlParser(filter = true)
+    List<CouponObtainBean> listObtainCoupou(@Param("userId") String userId,
+                                            @Param("companyWechatId") String companyWechatId);
+
+}

+ 42 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/CustomGoodsCategoryMapper.java

@@ -0,0 +1,42 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.goods.GoodsCategoryBean;
+import com.gree.mall.miniapp.bean.goods.GoodsCategoryBean;
+import com.gree.mall.miniapp.plus.entity.GoodsCategory;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
+
+public interface CustomGoodsCategoryMapper {
+
+    @Select("<script>" +
+            "SELECT " +
+            "category_id AS categoryId, " +
+            "name AS name, " +
+            "status AS status, " +
+            "img_url AS imgUrl, " +
+            "goods_num AS goodsNum, " +
+            "level AS level, " +
+            "parent_id AS parentId, " +
+            "sort_num AS sortNum, " +
+            "create_time AS createTime " +
+            "FROM goods_category " +
+            "WHERE " +
+            "del_flag = 0 " +
+            "<if test='level != null'>AND level = #{level}</if> " +
+            "<if test='status != null'>AND status = #{status}</if> " +
+            "</script>")
+    @Results({
+            @Result(
+                    property = "children",
+                    column = "categoryId",
+                    many = @Many(select = "com.gree.mall.miniapp.commonmapper.CustomGoodsCategoryMapper.findChildrenByCategoryId")
+            )
+    })
+    List<GoodsCategoryBean> list(@Param("level") Integer level, @Param("status") Boolean status);
+
+
+
+
+}

+ 17 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/CustomGoodsFavoriteMapper.java

@@ -0,0 +1,17 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.goods.CategoryBean;
+import com.gree.mall.miniapp.bean.goods.GoodsFavoriteBean;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface CustomGoodsFavoriteMapper {
+    @SqlParser(filter = true)
+    List<GoodsFavoriteBean> queryGoodsFavorite(@Param("userId") String userId,@Param("pageNum") Integer pageNum,@Param("pageSize") Integer pageSize);
+    @SqlParser(filter = true)
+    Integer queryGoodsFavoriteCount(@Param("userId") String userId);
+}

+ 14 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/CustomWebsitNumberMapper.java

@@ -0,0 +1,14 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.user.MyProfitBean;
+import com.gree.mall.miniapp.plus.entity.AdminWebsit;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface CustomWebsitNumberMapper {
+
+    @SqlParser(filter = true)
+    AdminWebsit queryWebsitNumber(@Param("workUserId") String workUserId,@Param("companyWechatId") String companyWechatId);
+}

+ 10 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/GoodsFlagUpdateMapper.java

@@ -0,0 +1,10 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface GoodsFlagUpdateMapper {
+    @SqlParser(filter = true)
+    void updateSecFlag();
+}

+ 67 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/GoodsSpecDetailMapper.java

@@ -0,0 +1,67 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.miniapp.bean.goods.*;
+import com.gree.mall.miniapp.plus.entity.CommonTemplate;
+import com.gree.mall.miniapp.plus.entity.OrderComment;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface GoodsSpecDetailMapper {
+
+    @SqlParser(filter = true)
+    List<GoodsSpecSecBean> querySpecSec(@Param("goodsId") String goodsId);
+    @SqlParser(filter = true)
+    CommonTemplate queryCommonTemplate(@Param("goodsId") String goodsId);
+    /**
+     * 团购商品列表
+     */
+    @SqlParser(filter = true)
+    public IPage<PromotionGoodsBean> queryPromotionGoods(IPage page,
+                                                         @Param("userId") String userId,
+                                                         @Param("goodsCategoryId") String goodsCategoryId,
+                                                         @Param("keyword") String keyword,
+                                                         @Param("companyWechatId") String companyWechatId);
+
+    /**
+     * 商品评价列表
+     */
+    @SqlParser(filter = true)
+    public IPage<GoodsComment> goodsCommentList(IPage page,@Param("companyWechatId")String companyWechatId,
+                                                @Param("goodsId") String goodsId,@Param("tag") String tag);
+
+    /**
+     * 商品评价汇总
+     */
+    @SqlParser(filter = true)
+    public List<CommentTagCount> goodsCommentCount(@Param("companyWechatId")String companyWechatId,@Param("goodsId") String goodsId);
+
+
+    /**
+     * 套购商品列表
+     */
+    @SqlParser(filter = true)
+    public List<GoodsPackageBean> queryGoodsPackage(@Param("userId") String userId,
+                                                    @Param("userType") String userType,
+                                                    @Param("goodsId") String goodsId,
+                                                    @Param("companyWechatId") String companyWechatId);
+
+
+    /**
+     * 商品列表
+     */
+    @SqlParser(filter = true)
+    public IPage<GoodsNewBean> queryGoodsList(IPage page,@Param("userId") String userId,
+                                             @Param("userType") String userType,
+                                             @Param("keyword") String keyword,
+                                             @Param("categoryId") String categoryId,
+                                             @Param("sort") Integer sort,
+                                             @Param("companyWechatId") String companyWechatId);
+
+
+}

+ 15 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/MyProfitMapper.java

@@ -0,0 +1,15 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.user.MyProfitBean;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Mapper
+public interface MyProfitMapper {
+    @SqlParser(filter = true)
+    MyProfitBean queryProfitSum(@Param("workUserId") String workUserId,@Param("userId") String userId);
+}

+ 26 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/OrderShareRankMapper.java

@@ -0,0 +1,26 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.user.MyProfitBean;
+import com.gree.mall.miniapp.bean.user.RankItemBean;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Mapper
+public interface OrderShareRankMapper {
+
+    @SqlParser(filter = true)
+    List<RankItemBean> queryRankList(@Param("userId") String userId,
+                                     @Param("startTime") Date startTime,
+                                     @Param("endTime") Date endTime,
+                                     @Param("companyWechatId") String companyWechatId);
+
+    @SqlParser(filter = true)
+    RankItemBean queryWorkerInfo(@Param("userId") String userId,@Param("companyWechatId") String companyWechatId);
+
+
+}

+ 30 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/SecActivityStageMapper.java

@@ -0,0 +1,30 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.miniapp.plus.entity.SecKillActivity;
+import com.gree.mall.miniapp.plus.entity.SecKillActivitySpec;
+import com.gree.mall.miniapp.plus.entity.SecKillStage;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+@Mapper
+public interface SecActivityStageMapper {
+
+    @SqlParser(filter = true)
+    Integer queryStageCount(@Param("secKillId") String secKillId);
+
+    @SqlParser(filter = true)
+    SecKillStage queryStage(@Param("secKillId") String secKillId);
+    @SqlParser(filter = true)
+    IPage<SecKillActivitySpec> querySecGoods(Page page,@Param("secKillId") String secKillId);
+
+    @SqlParser(filter = true)
+    public SecKillActivitySpec getSecKillSpecByGoodsSpecId(@Param("goodsSpecId") String goodsSpecId);
+
+    /**
+     * 查询改商品的秒杀活动明细
+     */
+    SecKillActivitySpec getSecKillActivitySpecByGoodId(@Param("companyWechatId")String companyWechatId,@Param("goodId") String goodId);
+
+}

+ 19 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/SoldNumMapper.java

@@ -0,0 +1,19 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.user.ServiceWorkerBean;
+import com.gree.mall.miniapp.plus.entity.OrderDetail;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+@Mapper
+public interface SoldNumMapper {
+    @SqlParser(filter = true)
+    void updateGoods(@Param("orderDetail") OrderDetail orderDetail);
+
+    @SqlParser(filter = true)
+    void updateGoodsSpec(@Param("orderDetail") OrderDetail orderDetail);
+
+    @SqlParser(filter = true)
+    void updateSecGoodsSpec(@Param("orderDetail") OrderDetail orderDetail);
+
+}

+ 15 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/UserInfoMapper.java

@@ -0,0 +1,15 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.user.ServiceWorkerBean;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface UserInfoMapper {
+    @SqlParser(filter = true)
+    ServiceWorkerBean queryWebsit(@Param("userId") String userId);
+    @SqlParser(filter = true)
+    ServiceWorkerBean queryWebsitByWorkId(@Param("workUserId") String workUserId,@Param("corpId") String corpId);
+
+}

+ 37 - 0
src/main/java/com/gree/mall/miniapp/commonmapper/WxCustomerMapper.java

@@ -0,0 +1,37 @@
+package com.gree.mall.miniapp.commonmapper;
+
+import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.gree.mall.miniapp.bean.notice.NoticeParamBean;
+import com.gree.mall.miniapp.bean.tag.TagGroupBean;
+import com.gree.mall.miniapp.bean.tag.UserWxCustomerBean;
+import com.gree.mall.miniapp.plus.entity.NoticeParam;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface WxCustomerMapper {
+
+    @SqlParser(filter = true)
+    List<UserWxCustomerBean> queryCustomerByUser(@Param("userId") String userId,@Param("workUserId") String workUserId);
+
+    @SqlParser(filter = true)
+    List<TagGroupBean> queryTagList(@Param("unionId") String unionId);
+
+    @SqlParser(filter = true)
+    List<String> queryCustomTagList(@Param("unionId") String unionId,@Param("workUserId") String workUserId);
+
+    /**
+     * 映射小程序与公众号的openid关系
+     */
+    @SqlParser(filter = true)
+    public void updateMpMaRela();
+
+    /**
+     * 查询需要推送的通知信息
+     */
+    @SqlParser(filter = true)
+    public List<NoticeParamBean> queryNoticeParam(@Param("type") Integer type, @Param("errNum") Integer errNum, @Param("time") String time);
+
+}

+ 76 - 0
src/main/java/com/gree/mall/miniapp/component/StartRunner.java

@@ -0,0 +1,76 @@
+package com.gree.mall.miniapp.component;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
+
+
+@Component
+public class StartRunner implements ApplicationRunner {
+    @Value("${server.port}")
+    private String port;
+    @Value("${server.servlet.context-path}")
+    private String contextPath;
+
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        String url_format = "http://%s:%s%s/doc.html#";
+        String ip = null;
+        try {
+//            ip = IpUtil.getIpAddress();
+//            if (null == ip || "".equals(ip)) {
+//                ip = "127.0.0.1";
+//            }
+//            if (null == port || "".equals(port)) {
+//                port = "8080";
+//            }
+            String url = String.format(url_format, "127.0.0.1", port,contextPath);
+            browse(url);
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+    }
+
+    public String getPort() {
+        return port;
+    }
+
+    public void setPort(String port) {
+        this.port = port;
+    }
+
+    private void browse(String url) throws Exception {
+        // 获取操作系统的名字
+        String osName = System.getProperty("os.name", "");
+        if (osName.startsWith("Mac OS")) {
+            // 苹果的打开方式
+            Class fileMgr = Class.forName("com.apple.eio.FileManager");
+            Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[]{String.class});
+            openURL.invoke(null, new Object[]{url});
+        } else if (osName.startsWith("Windows")) {
+            // windows的打开方式。
+            Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
+        } else {
+            // Unix or Linux的打开方式
+            String[] browsers = {"firefox", "opera", "konqueror", "epiphany", "mozilla", "netscape"};
+            String browser = null;
+            for (int count = 0; count < browsers.length && browser == null; count++)
+                // 执行代码,在brower有值后跳出,
+                // 这里是如果进程创建成功了,==0是表示正常结束。
+                if (Runtime.getRuntime().exec(new String[]{"which", browsers[count]}).waitFor() == 0)
+                    browser = browsers[count];
+            if (browser == null)
+                throw new Exception("Could not find web browser");
+            else
+                // 这个值在上面已经成功的得到了一个进程。
+                Runtime.getRuntime().exec(new String[]{browser, url});
+        }
+    }
+}

+ 26 - 0
src/main/java/com/gree/mall/miniapp/config/CorsConfiguration.java

@@ -0,0 +1,26 @@
+package com.gree.mall.miniapp.config;
+
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+
+@Configuration
+public class CorsConfiguration {
+    @Bean
+    public CorsFilter corsFilter() {
+
+        LoggerFactory.getLogger(this.getClass()).info("CorsFilter 启动运行");
+
+        final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
+        final org.springframework.web.cors.CorsConfiguration corsConfiguration = new org.springframework.web.cors.CorsConfiguration();
+        corsConfiguration.setAllowCredentials(true);
+        corsConfiguration.addAllowedOrigin("*");
+        corsConfiguration.addAllowedHeader("*");
+        corsConfiguration.addAllowedMethod("*");
+        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
+        return new CorsFilter(urlBasedCorsConfigurationSource);
+    }
+}

+ 19 - 0
src/main/java/com/gree/mall/miniapp/config/FeignConfigure.java

@@ -0,0 +1,19 @@
+package com.gree.mall.miniapp.config;
+
+//@Configuration
+public class FeignConfigure {
+//    @Value("${ribbon.ConnectTimeout}")
+//    public int connectTimeout;
+//    @Value("${ribbon.ReadTimeout}")
+//    public int readTimeout;
+//    @Bean
+//    public Request.Options options() {
+//        return new Request.Options(connectTimeout, readTimeout);
+//    }
+//
+//    @Bean
+//    public Retryer feignRetryer() {
+//        return new Retryer.Default(1000, 3000, 3);
+//    }
+}
+

+ 61 - 0
src/main/java/com/gree/mall/miniapp/config/GlobalDefaultExceptionHandler.java

@@ -0,0 +1,61 @@
+package com.gree.mall.miniapp.config;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.gree.mall.miniapp.exception.RemoteServiceException;
+import com.gree.mall.miniapp.helper.ResponseHelper;
+import lombok.extern.slf4j.Slf4j;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+@ControllerAdvice
+@ResponseBody
+@Slf4j
+public class GlobalDefaultExceptionHandler {
+
+
+    @ExceptionHandler(value = Exception.class)
+    public ResponseHelper<Object> defaultErrorHandler(HttpServletRequest req, Exception ex) {
+
+        if(ex instanceof RemoteServiceException){
+            //自定义错误就不抛出栈异常
+            //log.error("网络异常:",ex);
+            log.error("网络异常:"+ex.getMessage()+req.getRequestURI()+JSONObject.toJSONString(this.bodyParam(req)));
+            return ResponseHelper.error(((RemoteServiceException) ex).getCode(),ex.getMessage());
+        }
+
+        log.error("系统错误:"+ex.getMessage()+req.getRequestURI()+JSONObject.toJSONString(this.bodyParam(req)),ex);
+        return ResponseHelper.error(501,"系统出小差了,请稍后再试");
+    }
+
+    private Map<String,Object> bodyParam(HttpServletRequest request){
+        Map<String,Object> params = new HashMap<String, Object>();
+//        BufferedReader br;
+//        try {
+//            br = request.getReader();
+//            String str, wholeStr = "";
+//            while((str = br.readLine()) != null){
+//                wholeStr += str;
+//            }
+//            if(StringUtils.isNotEmpty(wholeStr)){
+//                params = JSON.parseObject(wholeStr,Map.class);
+//            }
+//        } catch (IOException e1) {
+//            log.error(""+e1);
+//        }
+        return params;
+    }
+
+
+}

+ 64 - 0
src/main/java/com/gree/mall/miniapp/config/KaptchaConfig.java

@@ -0,0 +1,64 @@
+package com.gree.mall.miniapp.config;
+
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+/**
+ * 验证码
+ */
+
+@Configuration
+public class KaptchaConfig {
+    @Bean
+    public DefaultKaptcha getDefaultKaptcha() {
+        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
+        Properties properties = new Properties();
+        properties.setProperty("kaptcha.border", "no");
+        properties.setProperty("kaptcha.textproducer.char.length", "4");
+        properties.setProperty("kaptcha.session.key", "code");
+        properties.setProperty("kaptcha.textproducer.font.color", "black");
+//        properties.setProperty("kaptcha.noise.color", "red");
+        properties.setProperty("kaptcha.textproducer.char.space", "3");
+        properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.NoNoise");
+        //properties.setProperty("kaptcha.border.color", "105,179,90");
+        //properties.setProperty("kaptcha.image.width", "120");
+        //properties.setProperty("kaptcha.image.height", "45");
+        properties.setProperty("kaptcha.textproducer.font.size", "40");
+        //properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
+        Config config = new Config(properties);
+        defaultKaptcha.setConfig(config);
+
+        return defaultKaptcha;
+//        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
+//        Properties properties = new Properties();
+//        // 是否有边框 默认为true 我们可以自己设置yes,no
+//        properties.setProperty("kaptcha.border", "yes");
+//        // 边框颜色 默认为Color.BLACK
+//        properties.setProperty("kaptcha.border.color", "105,179,90");
+//        // 验证码文本字符颜色 默认为Color.BLACK
+//        properties.setProperty("kaptcha.textproducer.font.color", "blue");
+//        // 验证码图片宽度 默认为200
+//        properties.setProperty("kaptcha.image.width", "160");
+//        // 验证码图片高度 默认为50
+//        properties.setProperty("kaptcha.image.height", "60");
+//        // 验证码文本字符大小 默认为40
+//        properties.setProperty("kaptcha.textproducer.font.size", "30");
+//        // KAPTCHA_SESSION_KEY
+//        properties.setProperty("kaptcha.session.key", "kaptchaCode");
+//        // 验证码文本字符间距 默认为2
+//        properties.setProperty("kaptcha.textproducer.char.space", "3");
+//        // 验证码文本字符长度 默认为5
+//        properties.setProperty("kaptcha.textproducer.char.length", "5");
+//        // 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)
+//        properties.setProperty("kaptcha.textproducer.font.names", "Arial,Courier");
+//        // 验证码噪点颜色 默认为Color.BLACK
+//        properties.setProperty("kaptcha.noise.color", "white");
+//        Config config = new Config(properties);
+//        defaultKaptcha.setConfig(config);
+//        return defaultKaptcha;
+    }
+}

+ 22 - 0
src/main/java/com/gree/mall/miniapp/config/MulitpartConfig.java

@@ -0,0 +1,22 @@
+package com.gree.mall.miniapp.config;
+
+import org.springframework.boot.web.servlet.MultipartConfigFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.servlet.MultipartConfigElement;
+
+@Configuration
+public class MulitpartConfig {
+
+    /**
+     * 文件上传临时路径
+     */
+    @Bean
+    MultipartConfigElement multipartConfigElement() {
+        MultipartConfigFactory factory = new MultipartConfigFactory();
+        factory.setLocation("/app");
+        return factory.createMultipartConfig();
+    }
+
+}

+ 72 - 0
src/main/java/com/gree/mall/miniapp/config/MyBatisPlusConfig.java

@@ -0,0 +1,72 @@
+package com.gree.mall.miniapp.config;
+
+import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.core.parser.ISqlParser;
+import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
+import com.baomidou.mybatisplus.extension.parsers.BlockAttackSqlParser;
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Configuration
+public class MyBatisPlusConfig {
+    private final static Logger logger = LoggerFactory.getLogger(MyBatisPlusConfig.class);
+
+    /**
+     * @description: 配置分页插件
+     *
+     * @author: gradual
+     * @date: 2019/1/15 10:17
+     * @param: []
+     * @return: com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor
+     */
+    @Bean
+    public PaginationInterceptor paginationInterceptor() {
+        logger.debug("注册分页插件");
+        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
+
+
+        // 攻击 SQL 阻断解析器、加入解析链,阻止恶意的全表更新删除
+        List<ISqlParser> sqlParserList = new ArrayList<>();
+        sqlParserList.add(new BlockAttackSqlParser());
+        paginationInterceptor.setSqlParserList(sqlParserList);
+
+        return paginationInterceptor;
+    }
+
+
+    /**
+     * @description: SQL执行效率插件
+     *
+     * @author: gradual
+     * @date: 19-1-24 下午4:59
+     * @param: []
+     * @return: com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor
+     */
+//    @Bean
+//    @Profile({"dev","test"})// 设置 dev test 环境开启
+//    public PerformanceInterceptor performanceInterceptor() {
+//        PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
+//        performanceInterceptor.setFormat(true);
+//        performanceInterceptor.setMaxTime(5000);
+//        return performanceInterceptor;
+//    }
+
+    /**
+     * 逻辑删除用,3.1.1之后的版本可不需要配置该bean,但项目这里用的是3.1.0的
+     *
+     * @author David Hong
+     *
+     * @return com.baomidou.mybatisplus.core.injector.ISqlInjector
+     */
+    @Bean
+    public ISqlInjector sqlInjector() {
+        return new LogicSqlInjector();
+    }
+}

+ 43 - 0
src/main/java/com/gree/mall/miniapp/config/MySecurityConfig.java

@@ -0,0 +1,43 @@
+//package com.gree.mall.miniapp.config;
+//
+//import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+//
+///**
+// * 接口安全访问名单
+// * @Author: duke
+// * @Date: 2018/9/27 10:00 AM
+// */
+//@EnableWebSecurity
+//public class MySecurityConfig extends WebSecurityConfigurerAdapter {
+//    @Override
+//    protected void configure(HttpSecurity http) throws Exception {
+//        http.headers().frameOptions().disable();
+//        http.csrf().disable() //HTTP with Disable CSRF
+//                .authorizeRequests() //Authorize Request Configuration
+//                .antMatchers(
+//                        "/v2/api-docs",
+//                        "/swagger-resources/**",
+//                        "/swagger-ui.html**",
+//                        "/doc.html**",
+//                        "/webjars/**",
+//                        "favicon.ico"
+//                )
+//                .authenticated()
+//                .and()
+//                .authorizeRequests()
+//                .antMatchers("/**").permitAll()
+//                .and()
+//                .cors()
+//                .and()
+//                .formLogin();
+//
+//    }
+//
+//    @Override
+//    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
+//        super.configure(auth);
+//    }
+//}

+ 111 - 0
src/main/java/com/gree/mall/miniapp/config/RedisConfig.java

@@ -0,0 +1,111 @@
+package com.gree.mall.miniapp.config;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
+import com.gree.mall.miniapp.utils.RedisUtil;
+import com.gree.mall.miniapp.utils.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.cache.interceptor.KeyGenerator;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
+import org.springframework.data.redis.cache.RedisCacheWriter;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
+import org.springframework.data.redis.core.RedisOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import java.lang.reflect.Method;
+import java.time.Duration;
+
+
+@Configuration
+@EnableCaching
+@ConditionalOnClass(RedisOperations.class)
+@EnableConfigurationProperties(RedisProperties.class)
+@Slf4j
+public class RedisConfig {
+
+    @Bean
+    public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory factory) {
+        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
+        ObjectMapper om = new ObjectMapper();
+        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        //om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+        om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance ,
+                ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
+        jackson2JsonRedisSerializer.setObjectMapper(om);
+
+        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
+        RedisTemplate template = new RedisTemplate();
+        template.setConnectionFactory(factory);
+        template.setValueSerializer(jackson2JsonRedisSerializer);
+        template.setKeySerializer(stringRedisSerializer);
+        template.setHashKeySerializer(stringRedisSerializer);
+        template.setHashValueSerializer(jackson2JsonRedisSerializer);
+        template.afterPropertiesSet();
+        return template;
+    }
+
+    @Bean
+    public CacheManager cacheManager(RedisConnectionFactory connectionFactory) {
+        RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory);
+        RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig();
+        //设置默认超过期时间是30秒
+        defaultCacheConfig.entryTtl(Duration.ofSeconds(30));
+        //初始化RedisCacheManager
+        RedisCacheManager cacheManager = new RedisCacheManager(redisCacheWriter, defaultCacheConfig);
+        return cacheManager;
+    }
+
+    @Bean
+    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
+        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
+        container.setConnectionFactory(connectionFactory);
+       // container.addMessageListener(listenerAdapter, new PatternTopic("__keyevent@0__:expired"));
+        return container;
+    }
+
+
+    /**
+     * 注入封装RedisTemplate
+     * @Title: redisUtil
+     * @return RedisUtil
+     * @throws
+     */
+    @Bean(name = "redisUtil")
+    public RedisUtil redisUtilSingle(RedisTemplate<String, Object> redisTemplate) {
+        RedisUtil redisUtil = new RedisUtil();
+        redisUtil.setRedisTemplate(redisTemplate);
+        return redisUtil;
+    }
+
+    @Bean
+    public KeyGenerator keyGenerator() {
+        return new KeyGenerator() {
+            @Override
+            public Object generate(Object target, Method method, Object... params) {
+                StringBuilder sb = new StringBuilder();
+                sb.append(target.getClass().getName());
+                sb.append(":" + method.getName());
+                for (Object obj : params) {
+                    sb.append(":" + obj.toString());
+                }
+                return sb.toString();
+            }
+        };
+    }
+
+}

+ 17 - 0
src/main/java/com/gree/mall/miniapp/config/RedisLockConfiguration.java

@@ -0,0 +1,17 @@
+package com.gree.mall.miniapp.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.integration.redis.util.RedisLockRegistry;
+
+
+@Configuration
+public class RedisLockConfiguration {
+
+    @Bean
+    public RedisLockRegistry redisLockRegistry(RedisConnectionFactory redisConnectionFactory) {
+        return new RedisLockRegistry(redisConnectionFactory, "spring-cloud");
+    }
+
+}

+ 57 - 0
src/main/java/com/gree/mall/miniapp/config/RespondeBodyConfig.java

@@ -0,0 +1,57 @@
+//package com.gree.mall.miniapp.config;
+//
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.fasterxml.jackson.databind.ObjectMapper;
+//import com.gree.mall.miniapp.helper.ResponseHelper;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.core.MethodParameter;
+//import org.springframework.http.MediaType;
+//import org.springframework.http.ResponseEntity;
+//import org.springframework.http.server.ServerHttpRequest;
+//import org.springframework.http.server.ServerHttpResponse;
+//import org.springframework.web.bind.annotation.ControllerAdvice;
+//import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
+//
+//import java.text.SimpleDateFormat;
+//import java.util.Map;
+//
+///**
+// * 解决小程序不兼容datetime类型,格式化返回值
+// * created by lijh
+// *  2019-07-13
+// *
+// */
+//@ControllerAdvice
+//@Slf4j
+//public class RespondeBodyConfig implements ResponseBodyAdvice {
+//
+//
+//    @Override
+//    public Object beforeBodyWrite(Object resBody, MethodParameter arg1, MediaType arg2, Class arg3, ServerHttpRequest req,
+//                                  ServerHttpResponse res) {
+//        //resBody就是controller方法中返回的值,对其进行修改后再return就可以了
+//
+//        ObjectMapper mapper = new ObjectMapper();
+//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        mapper.setDateFormat(format);
+//
+//        try {
+//            if(resBody instanceof ResponseHelper) {
+//                String json = mapper.writeValueAsString(resBody);
+//                return JSONObject.parseObject(json, ResponseHelper.class);
+//            }
+//        } catch (Exception e) {
+//            log.error("【全局返回值处理失败】",e);
+//        }
+//        return resBody;
+//    }
+//
+//    @Override
+//    public boolean supports(MethodParameter arg0, Class arg1) {
+//        //这里直接返回true,表示对任何handler的responsebody都调用beforeBodyWrite方法
+//        return true;
+//    }
+//
+//
+//}

+ 21 - 0
src/main/java/com/gree/mall/miniapp/config/ScheduleConfig.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+
+import java.util.concurrent.Executors;
+
+/**
+ * schedule定时任务多线程
+ * 2019-02-21
+ */
+
+@Configuration
+public class ScheduleConfig implements SchedulingConfigurer {
+
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
+        scheduledTaskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));
+    }
+}

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