lym 1 tydzień temu
rodzic
commit
caeee42869
100 zmienionych plików z 6846 dodań i 0 usunięć
  1. 128 0
      forest-admin/admin-server/pom.xml
  2. 26 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/AdminApplication.java
  3. 33 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/annotation/DataPermission.java
  4. 66 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/bo/AdminUserDetails.java
  5. 61 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/bo/WebLog.java
  6. 43 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/component/BindingResultAspect.java
  7. 124 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/component/WebLogAspect.java
  8. 35 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/GlobalCorsConfig.java
  9. 53 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/MallSecurityConfig.java
  10. 15 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/MyBatisConfig.java
  11. 82 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/Swagger2Config.java
  12. 18 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/WebMvcConfig.java
  13. 28 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/exclud/MybatisAutoConfiguration.java
  14. 198 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/BigCompanyController.java
  15. 179 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/BigScreamController.java
  16. 62 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/CmsPrefrenceAreaController.java
  17. 94 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/CmsSubjectCategoryController.java
  18. 140 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/CmsSubjectController.java
  19. 60 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/CompanyToCompanyController.java
  20. 28 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/ConfigController.java
  21. 32 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/FileUploadController.java
  22. 35 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsCompanyAddressController.java
  23. 132 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderController.java
  24. 31 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderExpressController.java
  25. 69 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderReturnApplyController.java
  26. 87 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderReturnReasonController.java
  27. 41 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderSettingController.java
  28. 51 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsPreItemController.java
  29. 131 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsBrandController.java
  30. 86 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductAttributeCategoryController.java
  31. 94 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductAttributeController.java
  32. 48 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductBigDataController.java
  33. 120 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductCategoryController.java
  34. 248 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductController.java
  35. 43 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsSkuStockController.java
  36. 78 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsCouponController.java
  37. 40 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsCouponHistoryController.java
  38. 87 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsFlashPromotionController.java
  39. 78 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsFlashPromotionProductRelationController.java
  40. 93 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsFlashPromotionSessionController.java
  41. 92 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeAdvertiseController.java
  42. 80 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeBrandController.java
  43. 80 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeNewProductController.java
  44. 79 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeRecommendProductController.java
  45. 80 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeRecommendSubjectController.java
  46. 254 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsAdminController.java
  47. 169 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsCompanyController.java
  48. 69 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsCompanyShareController.java
  49. 35 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsMemberLevelController.java
  50. 161 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsMemberOriginController.java
  51. 85 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsMemberOriginProductController.java
  52. 102 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsMenuController.java
  53. 73 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsPermissionController.java
  54. 69 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsResourceCategoryController.java
  55. 99 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsResourceController.java
  56. 142 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsRoleController.java
  57. 175 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsRollBuyController.java
  58. 672 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UploadCompanyInfoAndProductController.java
  59. 10 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/AdvertiseDao.java
  60. 13 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/BigCompanyDao.java
  61. 34 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/BigScreamDao.java
  62. 24 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/CmsPrefrenceAreaProductRelationDao.java
  63. 25 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/CmsSubjectProductRelationDao.java
  64. 31 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/OmsOrderDao.java
  65. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/OmsOrderOperateHistoryDao.java
  66. 24 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/OmsOrderReturnApplyDao.java
  67. 22 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/OmsPreItemDao.java
  68. 13 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsBrandDao.java
  69. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsMemberPriceDao.java
  70. 16 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductAttributeCategoryDao.java
  71. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductAttributeDao.java
  72. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductAttributeValueDao.java
  73. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductCategoryAttributeRelationDao.java
  74. 21 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductCategoryDao.java
  75. 23 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductDao.java
  76. 36 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductExcelDao.java
  77. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductFullReductionDao.java
  78. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductLadderDao.java
  79. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductVertifyRecordDao.java
  80. 22 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsSkuStockDao.java
  81. 15 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/SmsCouponDao.java
  82. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/SmsCouponProductCategoryRelationDao.java
  83. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/SmsCouponProductRelationDao.java
  84. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/SmsFlashPromotionProductRelationDao.java
  85. 11 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsAdminDao.java
  86. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsAdminPermissionRelationDao.java
  87. 45 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsAdminRoleRelationDao.java
  88. 17 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsCompanyInfoDao.java
  89. 24 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsCompanyShopDao.java
  90. 37 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsMemberOriginDao.java
  91. 35 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsMemberOriginProductDao.java
  92. 28 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsRoleDao.java
  93. 23 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsRolePermissionRelationDao.java
  94. 33 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsRollBuyDao.java
  95. 52 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/ConfirmStatus.java
  96. 53 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/OrderType.java
  97. 55 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/PayType.java
  98. 52 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/SourceType.java
  99. 57 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/Status.java
  100. 178 0
      forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/model/OmsOrderExcel.java

+ 128 - 0
forest-admin/admin-server/pom.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>forest-admin</artifactId>
+        <groupId>com.hwrj.cloud.admin</groupId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>admin-server</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.hwrj.cloud.common</groupId>
+            <artifactId>forest-common</artifactId>
+            <version>${forest.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.hwrj.cloud.admin.common</groupId>
+            <artifactId>admin-common</artifactId>
+            <version>${forest.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.tomcat.embed</groupId>
+                    <artifactId>tomcat-embed-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.hwrj.cloud.security</groupId>
+            <artifactId>forest-security</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <!-- nacos discovery-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+        <!-- nacos config -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+        <!--zipkin-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-zipkin</artifactId>
+        </dependency>
+        <!-- spring boot admin client -->
+        <dependency>
+            <groupId>de.codecentric</groupId>
+            <artifactId>spring-boot-admin-starter-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>net.logstash.logback</groupId>
+            <artifactId>logstash-logback-encoder</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.hwrj.cloud.admin</groupId>
+            <artifactId>admin-mbg</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+        <!-- xls格式excel依赖包 -->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <!--xlsx格式excel依赖包-->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <!--easyexcel,推荐使用2.0 以上版本,功能更加完善-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>2.2.6</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <version>5.1.7.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>1.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>qiniu-java-sdk</artifactId>
+            <version>7.2.28</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-micro-spring-boot-starter</artifactId>
+            <version>2.0.4</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 26 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/AdminApplication.java

@@ -0,0 +1,26 @@
+package com.hwrj.cloud.admin;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.FilterType;
+import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.scheduling.annotation.EnableAsync;
+
+
+
+@Slf4j
+@EnableAsync
+@SpringBootApplication
+@ComponentScan(basePackages = {"com.hwrj.cloud"},  excludeFilters = @ComponentScan.Filter(
+        type = FilterType.REGEX,
+        pattern = "com.hwrj.cloud.admin.config.exclud.*"))
+public class AdminApplication {
+    public static void main(String[] args) {
+        ConfigurableApplicationContext application=SpringApplication.run(AdminApplication.class, args);
+        ConfigurableEnvironment environment = application.getEnvironment();
+        System.out.println("---------------------后台启动成功!---------------------");
+    }
+}

+ 33 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/annotation/DataPermission.java

@@ -0,0 +1,33 @@
+package com.hwrj.cloud.admin.annotation;
+
+import java.lang.annotation.*;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface DataPermission {
+
+    /**
+     * mapper层需要数据权限过滤的方法名集合
+     *
+     * @return 方法名数组
+     */
+    String[] methods() default {};
+
+    /**
+     * mapper层需要数据过滤的方法名前缀,
+     * 比如指定为find,表示所有以find开头的方法
+     * 都会进行数据权限过滤
+     *
+     * @return 方法名前缀
+     */
+    String methodPrefix() default "";
+
+    /**
+     * 数据权限关联字段
+     * 目前系统数据权限通过dept_id关联
+     *
+     * @return String
+     */
+    String field() default "comp_id";
+}

+ 66 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/bo/AdminUserDetails.java

@@ -0,0 +1,66 @@
+package com.hwrj.cloud.admin.bo;
+
+import com.hwrj.cloud.admin.model.UmsAdmin;
+import com.hwrj.cloud.admin.model.UmsResource;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * SpringSecurity需要的用户详情
+ * Created by macro on 2018/4/26.
+ */
+public class AdminUserDetails implements UserDetails {
+    private UmsAdmin umsAdmin;
+    private List<UmsResource> resourceList;
+    public AdminUserDetails(UmsAdmin umsAdmin,List<UmsResource> resourceList) {
+        this.umsAdmin = umsAdmin;
+        this.resourceList = resourceList;
+    }
+
+    @Override
+    public Collection<? extends GrantedAuthority> getAuthorities() {
+        //返回当前用户的角色
+        return resourceList.stream()
+                .map(role ->new SimpleGrantedAuthority(role.getId()+":"+role.getName()))
+                .collect(Collectors.toList());
+    }
+
+    @Override
+    public String getPassword() {
+        return umsAdmin.getPassword();
+    }
+
+    @Override
+    public String getUsername() {
+        return umsAdmin.getUsername();
+    }
+
+    @Override
+    public boolean isAccountNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isAccountNonLocked() {
+        return true;
+    }
+
+    @Override
+    public boolean isCredentialsNonExpired() {
+        return true;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return umsAdmin.getStatus().equals(1);
+    }
+
+    public UmsAdmin getUmsAdmin(){
+        return umsAdmin;
+    }
+}

+ 61 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/bo/WebLog.java

@@ -0,0 +1,61 @@
+package com.hwrj.cloud.admin.bo;
+
+import lombok.Data;
+
+/**
+ * Controller层的日志封装类
+ * Created by macro on 2018/4/26.
+ */
+@Data
+public class WebLog {
+    /**
+     * 操作描述
+     */
+    private String description;
+
+    /**
+     * 操作用户
+     */
+    private String username;
+
+    /**
+     * 操作时间
+     */
+    private Long startTime;
+
+    /**
+     * 消耗时间
+     */
+    private Integer spendTime;
+
+    /**
+     * 根路径
+     */
+    private String basePath;
+
+    /**
+     * URI
+     */
+    private String uri;
+
+    /**
+     * URL
+     */
+    private String url;
+
+    /**
+     * 请求类型
+     */
+    private String method;
+
+    /**
+     * IP地址
+     */
+    private String ip;
+
+    private Object parameter;
+
+    private Object result;
+
+
+}

+ 43 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/component/BindingResultAspect.java

@@ -0,0 +1,43 @@
+package com.hwrj.cloud.admin.component;
+
+import com.hwrj.cloud.common.api.CommonResult;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+
+/**
+ * HibernateValidator错误结果处理切面
+ * Created by macro on 2018/4/26.
+ */
+@Aspect
+@Component
+@Order(2)
+public class BindingResultAspect {
+    @Pointcut("execution(public * com.hwrj.cloud.admin.controller.*.*(..))")
+    public void BindingResult() {
+    }
+
+    @Around("BindingResult()")
+    public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
+        Object[] args = joinPoint.getArgs();
+        for (Object arg : args) {
+            if (arg instanceof BindingResult) {
+                BindingResult result = (BindingResult) arg;
+                if (result.hasErrors()) {
+                    FieldError fieldError = result.getFieldError();
+                    if(fieldError!=null){
+                        return CommonResult.validateFailed(fieldError.getDefaultMessage());
+                    }else{
+                        return CommonResult.validateFailed();
+                    }
+                }
+            }
+        }
+        return joinPoint.proceed();
+    }
+}

+ 124 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/component/WebLogAspect.java

@@ -0,0 +1,124 @@
+package com.hwrj.cloud.admin.component;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.URLUtil;
+import cn.hutool.json.JSONUtil;
+import com.hwrj.cloud.admin.bo.WebLog;
+import io.swagger.annotations.ApiOperation;
+import net.logstash.logback.marker.Markers;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+import java.lang.reflect.Parameter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 统一日志处理切面
+ * Created by macro on 2018/4/26.
+ */
+@Aspect
+@Component
+@Order(1)
+public class WebLogAspect {
+    private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class);
+
+    @Pointcut("execution(public * com.hwrj.cloud.admin.controller.*.*(..))")
+    public void webLog() {
+    }
+
+    @Before("webLog()")
+    public void doBefore(JoinPoint joinPoint) throws Throwable {
+    }
+
+    @AfterReturning(value = "webLog()", returning = "ret")
+    public void doAfterReturning(Object ret) throws Throwable {
+    }
+
+    @Around("webLog()")
+    public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
+        long startTime = System.currentTimeMillis();
+        //获取当前请求对象
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        HttpServletRequest request = attributes.getRequest();
+        //记录请求信息(通过Logstash传入Elasticsearch)
+        WebLog webLog = new WebLog();
+        Object result = joinPoint.proceed();
+        Signature signature = joinPoint.getSignature();
+        MethodSignature methodSignature = (MethodSignature) signature;
+        Method method = methodSignature.getMethod();
+        if (method.isAnnotationPresent(ApiOperation.class)) {
+            ApiOperation log = method.getAnnotation(ApiOperation.class);
+            webLog.setDescription(log.value());
+        }
+        long endTime = System.currentTimeMillis();
+        String urlStr = request.getRequestURL().toString();
+        webLog.setBasePath(StrUtil.removeSuffix(urlStr, URLUtil.url(urlStr).getPath()));
+        webLog.setIp(request.getRemoteUser());
+        webLog.setMethod(request.getMethod());
+        webLog.setParameter(getParameter(method, joinPoint.getArgs()));
+        webLog.setResult(result);
+        webLog.setSpendTime((int) (endTime - startTime));
+        webLog.setStartTime(startTime);
+        webLog.setUri(request.getRequestURI());
+        webLog.setUrl(request.getRequestURL().toString());
+        Map<String,Object> logMap = new HashMap<>();
+        logMap.put("url",webLog.getUrl());
+        logMap.put("method",webLog.getMethod());
+        logMap.put("parameter",webLog.getParameter());
+        logMap.put("spendTime",webLog.getSpendTime());
+        logMap.put("description",webLog.getDescription());
+//        LOGGER.info("{}", JSONUtil.parse(webLog));
+        LOGGER.info(Markers.appendEntries(logMap), JSONUtil.parse(webLog).toString());
+        return result;
+    }
+
+    /**
+     * 根据方法和传入的参数获取请求参数
+     */
+    private Object getParameter(Method method, Object[] args) {
+        List<Object> argList = new ArrayList<>();
+        Parameter[] parameters = method.getParameters();
+        for (int i = 0; i < parameters.length; i++) {
+            //将RequestBody注解修饰的参数作为请求参数
+            RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class);
+            if (requestBody != null) {
+                argList.add(args[i]);
+            }
+            //将RequestParam注解修饰的参数作为请求参数
+            RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class);
+            if (requestParam != null) {
+                Map<String, Object> map = new HashMap<>();
+                String key = parameters[i].getName();
+                if (!StringUtils.isEmpty(requestParam.value())) {
+                    key = requestParam.value();
+                }
+                map.put(key, args[i]);
+                argList.add(map);
+            }
+        }
+        if (argList.size() == 0) {
+            return null;
+        } else if (argList.size() == 1) {
+            return argList.get(0);
+        } else {
+            return argList;
+        }
+    }
+}

+ 35 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/GlobalCorsConfig.java

@@ -0,0 +1,35 @@
+package com.hwrj.cloud.admin.config;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+/**
+ * 全局跨域相关配置
+ * Created by macro on 2019/7/27.
+ */
+//@Configuration
+public class GlobalCorsConfig {
+
+    /**
+     * 允许跨域调用的过滤器
+     */
+//    @Bean
+//    public CorsFilter corsFilter() {
+//        CorsConfiguration config = new CorsConfiguration();
+//        //允许所有域名进行跨域调用
+//        config.addAllowedOrigin("*");
+//        //允许跨越发送cookie
+//        config.setAllowCredentials(true);
+//        //放行全部原始头信息
+//        config.addAllowedHeader("*");
+//        //允许所有请求方法跨域调用
+//        config.addAllowedMethod("*");
+//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+//        source.registerCorsConfiguration("/**", config);
+//        return new CorsFilter(source);
+//    }
+}

+ 53 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/MallSecurityConfig.java

@@ -0,0 +1,53 @@
+package com.hwrj.cloud.admin.config;
+
+import com.hwrj.cloud.admin.model.UmsResource;
+import com.hwrj.cloud.security.component.DynamicSecurityService;
+import com.hwrj.cloud.security.config.SecurityConfig;
+import com.hwrj.cloud.admin.service.UmsAdminService;
+import com.hwrj.cloud.admin.service.UmsResourceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.access.ConfigAttribute;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.core.userdetails.UserDetailsService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * mall-security模块相关配置
+ * Created by macro on 2019/11/9.
+ */
+@Configuration
+@EnableWebSecurity
+@EnableGlobalMethodSecurity(prePostEnabled = true)
+public class MallSecurityConfig extends SecurityConfig {
+
+    @Autowired
+    private UmsAdminService adminService;
+    @Autowired
+    private UmsResourceService resourceService;
+
+
+    @Bean
+    @Override
+    public UserDetailsService userDetailsService() {
+        //获取登录用户信息
+        return username -> adminService.loadUserByUsername(username);
+    }
+
+    @Bean
+    public DynamicSecurityService dynamicSecurityService() {
+        return () -> {
+            Map<String, ConfigAttribute> map = new ConcurrentHashMap<>();
+            List<UmsResource> resourceList = resourceService.listAll();
+            for (UmsResource resource : resourceList) {
+                map.put(resource.getUrl(), new org.springframework.security.access.SecurityConfig(resource.getId() + ":" + resource.getName()));
+            }
+            return map;
+        };
+    }
+}

+ 15 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/MyBatisConfig.java

@@ -0,0 +1,15 @@
+package com.hwrj.cloud.admin.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * MyBatis相关配置
+ * Created by macro on 2019/4/8.
+ */
+@Configuration
+@EnableTransactionManagement
+@MapperScan({"com.hwrj.cloud.admin.mapper","com.hwrj.cloud.admin.dao"})
+public class MyBatisConfig {
+}

+ 82 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/Swagger2Config.java

@@ -0,0 +1,82 @@
+package com.hwrj.cloud.admin.config;
+
+import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.*;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  Swagger API文档相关配置
+ * Created by macro on 2018/4/26.
+ */
+@Configuration
+@EnableSwagger2
+@EnableKnife4j
+@Import(BeanValidatorPluginsConfiguration.class)
+public class Swagger2Config {
+    @Bean
+    public Docket createRestApi(){
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(apiInfo())
+                .select()
+                .apis(RequestHandlerSelectors.basePackage("com.hwrj.cloud.admin.controller"))
+                .paths(PathSelectors.any())
+                .build()
+                .securitySchemes(securitySchemes())
+                .securityContexts(securityContexts());
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+                .title("mall后台系统")
+                .description("mall后台模块")
+                .contact(new Contact("macro","",""))
+                .version("1.0")
+                .build();
+    }
+
+    private List<ApiKey> securitySchemes() {
+        //设置请求头信息
+        List<ApiKey> result = new ArrayList<>();
+        ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header");
+        result.add(apiKey);
+        return result;
+    }
+
+    private List<SecurityContext> securityContexts() {
+        //设置需要登录认证的路径
+        List<SecurityContext> result = new ArrayList<>();
+        result.add(getContextByPath("/brand/.*"));
+        result.add(getContextByPath("/product/.*"));
+        result.add(getContextByPath("/productCategory/.*"));
+        return result;
+    }
+
+    private SecurityContext getContextByPath(String pathRegex){
+        return SecurityContext.builder()
+                .securityReferences(defaultAuth())
+                .forPaths(PathSelectors.regex(pathRegex))
+                .build();
+    }
+
+    private List<SecurityReference> defaultAuth() {
+        List<SecurityReference> result = new ArrayList<>();
+        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+        authorizationScopes[0] = authorizationScope;
+        result.add(new SecurityReference("Authorization", authorizationScopes));
+        return result;
+    }
+}

+ 18 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/WebMvcConfig.java

@@ -0,0 +1,18 @@
+package com.hwrj.cloud.admin.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+//@Configuration
+public class WebMvcConfig extends WebMvcConfigurationSupport {
+
+//    @Override
+//    public void addCorsMappings(CorsRegistry registry) {
+//        registry.addMapping("/**")
+//                .allowedOrigins("*")
+//                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
+//                .maxAge(3600)
+//                .allowCredentials(true);
+//    }
+}

+ 28 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/config/exclud/MybatisAutoConfiguration.java

@@ -0,0 +1,28 @@
+package com.hwrj.cloud.admin.config.exclud;
+
+import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
+import com.hwrj.cloud.admin.inteceptor.DataPermissionInterceptor;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
+
+@Configuration
+@AutoConfigureAfter(PageHelperAutoConfiguration.class)
+public class MybatisAutoConfiguration {
+
+
+    @Autowired
+    private List<SqlSessionFactory> sqlSessionFactoryList;
+
+    @PostConstruct
+    public void addMyInterceptor() {
+        DataPermissionInterceptor e = new DataPermissionInterceptor();
+        for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
+            sqlSessionFactory.getConfiguration().addInterceptor(e);
+        }
+    }
+}

+ 198 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/BigCompanyController.java

@@ -0,0 +1,198 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.dto.UmsCompanyDto;
+import com.hwrj.cloud.admin.dto.UmsMemberOriginParam;
+import com.hwrj.cloud.admin.dto.param.BigDataCompanyInfo;
+import com.hwrj.cloud.admin.service.BigCompanyService;
+import com.hwrj.cloud.admin.service.UmsCompanyService;
+import com.hwrj.cloud.admin.service.UmsMemberOriginService;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.math.BigDecimal;
+import java.util.*;
+
+@RestController
+@RequestMapping("/big/company")
+@Api(tags = "BigCompanyController",description ="涉林大屏数据")
+public class BigCompanyController {
+
+    @Autowired
+    private BigCompanyService bigCompanyService;
+
+    @Autowired
+    private UmsCompanyService umsCompanyService;
+
+    @Autowired
+    private UmsMemberOriginService umsMemberOriginService;
+
+    @GetMapping("/list")
+    @ApiOperation("涉林分布-供应商信息获取")
+    public CommonResult compList(@RequestParam(value = "id",required = false)Long id, @RequestParam(value = "key",required = false)String key){
+        List<Map<String, Object>> companyList = bigCompanyService.getCompanyList(id, key);
+        List<Map<String,Object>> sh = new ArrayList<>();
+        for (Map<String,Object> map:companyList){
+            List<String> strings = new LinkedList<>();
+            if (map.containsKey("lng")){
+                strings.add(map.get("lng").toString());
+            }
+            if (map.containsKey("latitude")){
+                strings.add(map.get("latitude").toString());
+            }
+
+
+            map.put("laglat",strings);
+            map.put("legend","1");
+            List<Map<String,Object>> list = new LinkedList<>();
+
+            if (map.containsKey("address")){
+                Map<String,Object> map2 = new HashMap<>();
+                map2.put("value","联系地址:"+map.get("address"));
+                list.add(map2);
+            }
+            if (map.containsKey("compConPerson")){
+                Map<String,Object> map1 = new HashMap<>();
+//                map1.put("value","联系人:"+map.get("compConPerson"));
+                map1.put("value","");
+                list.add(map1);
+            }
+            map.put("info",list);
+            sh.add(map);
+        }
+        return CommonResult.success(companyList);
+    }
+
+    @GetMapping("/detail")
+    @ApiOperation("涉林分布-供应商详细信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "供应商id",value = "分类id",required = false,paramType = "Long"),
+    })
+    public CommonResult compDetail(@RequestParam(value = "id",required = true)Long id){
+        UmsCompanyDto detailCompany = umsCompanyService.getDetailCompany(id);
+        UmsMemberOriginParam param = new UmsMemberOriginParam();
+        param.setCompId(detailCompany.getId());
+        List<UmsMemberOriginParam> list = umsMemberOriginService.list(param);
+        List<BigDataCompanyInfo> listBate = new ArrayList<>();
+        BigDataCompanyInfo big1 = new BigDataCompanyInfo();
+        big1.setId("1");
+        big1.setTitle("企业名称");
+        big1.setData(detailCompany.getCompName());
+        listBate.add(big1);
+        BigDataCompanyInfo big2 = new BigDataCompanyInfo();
+        big2.setId("2");
+        big2.setTitle("联系人");
+        big2.setData(detailCompany.getCompConPerson());
+        listBate.add(big2);
+        BigDataCompanyInfo big3 = new BigDataCompanyInfo();
+        big3.setId("3");
+        big3.setTitle("联系方式");
+        big3.setData(detailCompany.getCompConNum());
+        listBate.add(big3);
+
+        BigDataCompanyInfo big4 = new BigDataCompanyInfo();
+
+        big4.setId("4");
+        big4.setTitle("资质");
+        big4.setData(detailCompany.getCompQual());
+        listBate.add(big4);
+
+        BigDataCompanyInfo big5 = new BigDataCompanyInfo();
+        big5.setId("5");
+        big5.setTitle("类型");
+        big5.setData(detailCompany.getCompanyType());
+        listBate.add(big5);
+
+        BigDataCompanyInfo big6 = new BigDataCompanyInfo();
+        big6.setId("6");
+        big6.setTitle("是否有种植基地");
+        if (list != null && list.size()>0){
+            big6.setData("有");
+        }else {
+            big6.setData("没有");
+        }
+        listBate.add(big6);
+        BigDataCompanyInfo big7 = new BigDataCompanyInfo();
+        big7.setId("7");
+        big7.setTitle("地址");
+        big7.setData(detailCompany.getProvinceId()+detailCompany.getCityId()+detailCompany.getCountyId());
+        listBate.add(big7);
+        Map<String,Object> map = new HashMap<>();
+        map.put("desc",detailCompany.getCompSum());
+        map.put("list",listBate);
+
+        return CommonResult.success(map);
+    }
+
+    @GetMapping("/cat")
+    @ApiOperation("涉林分布-产品分类信息(刺梨,竹子,竹笋)")
+    public CommonResult cat(){
+        String[] title = {"id","type","num"};
+        List<String> dto = bigCompanyService.getCat();
+        List<Map<String, Object>> title1 = getTitle(dto, title);
+        Map<String,Object> list = new HashMap<>();
+        list.put("list",title1);
+        return CommonResult.success(title1);
+    }
+
+    /**
+     *
+     * @param strings 数据
+     * @param params
+     * @return
+     */
+    public List<Map<String,Object>> getTitle(List<String> strings,String[] params){
+        if (strings == null|| strings.size()<1){
+            return null;
+        }
+        Map<String,Object> maps = new HashMap<>();
+        maps.put("id",null);
+        maps.put("type","全部");
+
+        List<Map<String,Object>> list = new ArrayList<>();
+        BigDecimal bigDecimal = new BigDecimal("0");
+        for (String str:strings) {
+            Map<String,Object> map = new HashMap<>();
+            String[] split = str.split("---");
+            String titles = null;
+            BigDecimal decimal = new BigDecimal("0");
+            for (int i = 0;i<split.length;i++){
+                String param = params[i];
+                String s = split[i];
+                map.put(param,s);
+                if ("num".equals(param)){
+                    try {
+                        decimal = new BigDecimal(s);
+                        bigDecimal =bigDecimal.add(decimal);
+                    }catch (Exception e){
+
+                    }
+
+                }
+                if ("type".equals(param)){
+                    titles=s;
+                }
+
+            }
+
+            if (Integer.valueOf(decimal.toString())>0){
+                map.put("title",titles+"涉林企统计");
+                list.add(map);
+            }
+
+        }
+        maps.put("num",bigDecimal);
+        maps.put("title","全部涉林企业分布");
+        List<Map<String,Object>> list1 = new ArrayList<>();
+        list1.add(maps);
+        list1.addAll(list);
+        return list1;
+    }
+}

+ 179 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/BigScreamController.java

@@ -0,0 +1,179 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.service.BigScreamService;
+import com.hwrj.cloud.admin.service.UmsCompanyService;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.*;
+
+@RestController
+@Api(tags = "BigScreamController",description = "大屏数据展示")
+@RequestMapping("/big")
+@Slf4j
+public class BigScreamController  {
+    @Autowired
+    private BigScreamService bigScreamService;
+
+    @Autowired
+    private UmsCompanyService companyService;
+
+    @ApiOperation("林业态势-获取平台信息")
+    @GetMapping("/1/data1")
+    public CommonResult data11(@RequestParam(value = "id",required = false,defaultValue = "1")Long id){
+        Map<String, Object> map = bigScreamService.data1(id);
+        return CommonResult.success(map);
+    }
+
+    @ApiOperation("林业态势-获取供应商分布信息")
+    @GetMapping("/1/data2")
+    public CommonResult data12(@RequestParam(value = "compType",required = false)String compType){
+        List<Map<String, Object>> map = bigScreamService.date2(compType);
+        List<Map<String, Object>> maps = new ArrayList<>();
+        for (Map<String,Object> m:map) {
+            if (m.containsKey("lng")&&m.containsKey("lat")){
+                String lng = m.get("lng").toString();
+                String lat = m.get("lat").toString();
+                List<String> str = new LinkedList<>();
+                str.add(lng);
+                str.add(lat);
+                m.put("lnglat",str);
+            }
+            maps.add(m);
+        }
+        return CommonResult.success(maps);
+    }
+
+    @ApiOperation("产品现状-获取产品分布信息")
+    @GetMapping("/1/data3")
+    public CommonResult data13(){
+        List<Map<String, Object>> map = bigScreamService.data4();
+        List<Map<String,Object>>  list = new ArrayList<>();
+        return CommonResult.success(map);
+    }
+
+    @ApiOperation("林业态势-获取产品分布信息")
+    @GetMapping("/1/data6")
+    public CommonResult data16(){
+
+        String title = "供应信息";
+        String[] titles = {"供应商名称","供应产品","规格","参考价格"};
+        List<String> strings = bigScreamService.data6();
+        Map<String, Object> listData = getListData(title, titles, strings);
+
+        return CommonResult.success(listData);
+    }
+
+    @ApiOperation("林业态势-需求信息")
+    @GetMapping("/1/data7")
+    public CommonResult data17(){
+
+        String title = "需求信息";
+        String[] titles = {"需求主体","需求产品"};
+        List<String> strings = bigScreamService.data7();
+        Map<String, Object> listData = getListData(title, titles, strings);
+
+        return CommonResult.success(listData);
+    }
+
+    @ApiOperation("林业态势-左下角")
+    @GetMapping("/1/data8")
+    public CommonResult data18(){
+
+
+        String[] titles = {"id","name","num"};
+        List<String> strings = bigScreamService.data8();
+        List<Map<String, Object>> title = getTitle(strings, titles, "name", "企业分布");
+        return CommonResult.success(title);
+    }
+
+    @ApiOperation("林业态势-幽魂")
+    @GetMapping("/1/data9")
+    public CommonResult data19(){
+
+
+        String[] titles = {"id","name"};
+        String title1 = "黔林优选企业名录";
+
+        Map<String,Object> maps = new HashMap<>();
+        maps.put("title",title1);
+
+        List<String> strings = bigScreamService.data9();
+        List<Map<String, Object>> title = getTitle(strings, titles, null, null);
+        maps.put("detail",title);
+        return CommonResult.success(maps);
+    }
+
+    /**
+     * 分装返回大屏数据
+     * @param title
+     * @param titles
+     * @param strings 必须用---分割成和titles一样长度的数组的字符串
+     * @return
+     */
+    public Map<String,Object> getListData(String title,String[] titles,List<String> strings){
+        Map<String,Object> has = new HashMap<>();
+        has.put("title",title);
+        List<Map<String,Object>> tabHeader = new LinkedList<>();
+        for (int i = 0 ;i<titles.length;i++) {
+            Map<String,Object> map = new HashMap<>();
+            map.put("name",titles[i]);
+            tabHeader.add(map);
+        }
+        has.put("tabHeader",tabHeader);
+        List<List<Map<String,Object>>> list = new ArrayList<>();
+        for (String str:strings) {
+            if (!StringUtils.isEmpty(str)){
+                String[] split = str.split("---");
+                List<Map<String,Object>> maps = new LinkedList<>();
+                for (int i = 0;i<split.length;i++){
+                    Map<String,Object> map = new HashMap<>();
+                    map.put("value",split[i]);
+                    maps.add(map);
+                }
+                list.add(maps);
+            }
+
+        }
+        has.put("list",list);
+        return has;
+    }
+
+    /**
+     *
+     * @param strings 数据
+     * @param params
+     * @return
+     */
+    public List<Map<String,Object>> getTitle(List<String> strings,String[] params,String title,String addStr){
+        if (strings == null|| strings.size()<1){
+            return null;
+        }
+        List<Map<String,Object>> list = new ArrayList<>();
+        for (String str:strings) {
+            Map<String,Object> map = new HashMap<>();
+            String[] split = str.split("---");
+            for (int i = 0;i<split.length;i++){
+                String param = params[i];
+                String s = split[i];
+                if ((!StringUtils.isEmpty(title))&&title.equals(param)){
+                    s=s+addStr;
+                }
+                map.put(param,s);
+            }
+            list.add(map);
+        }
+        return list;
+    }
+
+
+
+}

+ 62 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/CmsPrefrenceAreaController.java

@@ -0,0 +1,62 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.common.CmsPrefrenceAreaProductRelationInput;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.CmsPrefrenceArea;
+import com.hwrj.cloud.admin.service.CmsPrefrenceAreaService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品优选管理Controller
+ * Created by macro on 2018/6/1.
+ */
+@Controller
+@Api(tags = "CmsPrefrenceAreaController", description = "商品优选管理")
+@RequestMapping("/prefrenceArea")
+public class CmsPrefrenceAreaController {
+    @Autowired
+    private CmsPrefrenceAreaService prefrenceAreaService;
+
+    @ApiOperation("获取所有商品优选")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<CmsPrefrenceArea>> listAll() {
+        List<CmsPrefrenceArea> prefrenceAreaList = prefrenceAreaService.listAll();
+        return CommonResult.success(prefrenceAreaList);
+    }
+
+    @ApiOperation("批量关联专题")
+    @RequestMapping(value = "/relateAndInsertList", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult relateAndInsertList(@RequestBody List<CmsPrefrenceAreaProductRelationInput> productRelationInput,
+                                            @RequestParam("productId") Long productId) {
+        prefrenceAreaService.relateAndInsertList(productRelationInput, productId);
+        return CommonResult.success(null);
+    }
+
+    @ApiOperation("批量更新关联专题")
+    @RequestMapping(value = "/relateAndUpdateList", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult relateAndUpdateList(@RequestBody List<CmsPrefrenceAreaProductRelationInput> productRelationInput,
+                                            @RequestParam("productId") Long productId) {
+
+        prefrenceAreaService.relateAndUpdateList(productRelationInput, productId);
+        return CommonResult.success(null);
+    }
+
+
+    @ApiOperation("通过id查询关联专题")
+    @RequestMapping(value = "/relationByProductId", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<CmsPrefrenceAreaProductRelationInput>> relationByProductId(@RequestParam("productId") Long productId) {
+        List<CmsPrefrenceAreaProductRelationInput> productRelationList = prefrenceAreaService.relationByProductId(productId);
+        return CommonResult.success(productRelationList);
+    }
+
+}

+ 94 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/CmsSubjectCategoryController.java

@@ -0,0 +1,94 @@
+package com.hwrj.cloud.admin.controller;
+
+
+import com.hwrj.cloud.admin.common.CmsSubjectProductRelationInput;
+import com.hwrj.cloud.admin.model.CmsSubject;
+import com.hwrj.cloud.admin.model.CmsSubjectCategory;
+import com.hwrj.cloud.admin.service.CmsSubjectCategoryService;
+import com.hwrj.cloud.admin.service.CmsSubjectService;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品专题Controller
+ */
+@Controller
+@Api(tags = "CmsSubjectCategoryController", description = "专题类型管理")
+@RequestMapping("/subject/category")
+public class CmsSubjectCategoryController {
+    @Autowired
+    private CmsSubjectCategoryService subjectCategoryService;
+
+    @ApiOperation("获取全部")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<CmsSubjectCategory>> listAll(@RequestParam(value = "keyword",required = false)String keyword) {
+        List<CmsSubjectCategory> listAll = subjectCategoryService.listAll(keyword);
+        return CommonResult.success(listAll);
+    }
+
+
+
+    @ApiOperation("添加")
+    @PostMapping("/add")
+    @ResponseBody
+    public CommonResult add(@RequestBody CmsSubjectCategory subject){
+        int i = subjectCategoryService.add(subject);
+        if (i==0){
+           return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+    @ApiOperation("修改")
+    @PostMapping("/update")
+    @ResponseBody
+    public CommonResult update(@RequestBody CmsSubjectCategory subject){
+        int i = subjectCategoryService.update(subject);
+        if (i==0){
+            return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+
+    @ApiOperation("删除")
+    @PostMapping("/del")
+    @ResponseBody
+    public CommonResult delete(@RequestParam(value = "id")Long id){
+        int i = subjectCategoryService.delete(id);
+        if (i==0){
+            return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+    @ApiOperation("详细信息")
+    @PostMapping("/get")
+    @ResponseBody
+    public CommonResult<CmsSubjectCategory> get(@RequestParam(value = "id")Long id){
+        CmsSubjectCategory i = subjectCategoryService.info(id);
+        if (i==null){
+            return CommonResult.failed();
+        }
+        return CommonResult.success(i);
+    }
+
+    @ApiOperation("分页获取")
+    @PostMapping("/page")
+    @ResponseBody
+    public CommonResult<CommonPage<CmsSubjectCategory>> get(@RequestParam(value = "keyword",required = false)String keyword
+            ,@RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum
+            ,@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){
+        List<CmsSubjectCategory> categories = subjectCategoryService.pageInfo(keyword, pageNum, pageSize);
+
+        return CommonResult.success(CommonPage.restPage(categories));
+    }
+}

+ 140 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/CmsSubjectController.java

@@ -0,0 +1,140 @@
+package com.hwrj.cloud.admin.controller;
+
+
+import com.hwrj.cloud.admin.common.CmsSubjectProductRelationInput;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.CmsSubject;
+import com.hwrj.cloud.admin.service.CmsSubjectService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品专题Controller
+ */
+@Controller
+@Api(tags = "CmsSubjectController", description = "商品专题管理")
+@RequestMapping("/subject")
+public class CmsSubjectController {
+    @Autowired
+    private CmsSubjectService subjectService;
+
+    @ApiOperation("获取全部商品专题")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<CmsSubject>> listAll() {
+        List<CmsSubject> subjectList = subjectService.listAll();
+        return CommonResult.success(subjectList);
+    }
+
+    @ApiOperation(value = "根据专题名称分页获取专题")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<CmsSubject>> getList(@RequestParam(value = "keyword", required = false) String keyword,
+                                                        @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
+                                                        @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize) {
+        List<CmsSubject> subjectList = subjectService.list(keyword, pageNum, pageSize);
+        return CommonResult.success(CommonPage.restPage(subjectList));
+    }
+
+    @ApiOperation("批量插入关联优选")
+    @RequestMapping(value = "/relateAndInsertList", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult relateAndInsertList(@RequestBody List<CmsSubjectProductRelationInput> productRelationInputs ,
+                                            @RequestParam("productId") Long productId ) {
+        subjectService.relateAndInsertList(productRelationInputs,productId);
+        return CommonResult.success(null);
+    }
+
+    @ApiOperation("批量更新关联优选")
+    @RequestMapping(value = "/relateAndUpdateList", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult relateAndUpdateList(@RequestBody List<CmsSubjectProductRelationInput> productRelationInputs ,
+                                            @RequestParam("productId") Long productId ) {
+        subjectService.relateAndUpdateList(productRelationInputs,productId);
+        return CommonResult.success(null);
+    }
+
+    @ApiOperation("通过id查询关联优选")
+    @RequestMapping(value = "/relationByProductId", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<CmsSubjectProductRelationInput>> relationByProductId(@RequestParam("productId") Long productId ) {
+        List<CmsSubjectProductRelationInput> productRelationList = subjectService.relationByProductId(productId);
+        return CommonResult.success(productRelationList);
+    }
+
+
+    @ApiOperation("添加专题")
+    @PostMapping("/add")
+    @ResponseBody
+    public CommonResult add(@RequestBody CmsSubject subject){
+        int i = subjectService.add(subject);
+        if (i==0){
+           return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+    @ApiOperation("修改")
+    @PostMapping("/update")
+    @ResponseBody
+    public CommonResult update(@RequestBody CmsSubject subject){
+        int i = subjectService.update(subject);
+        if (i==0){
+            return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+
+    @ApiOperation("删除专题")
+    @PostMapping("/del")
+    @ResponseBody
+    public CommonResult delete(@RequestParam(value = "id")Long id){
+        int i = subjectService.delete(id);
+        if (i==0){
+            return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+    @ApiOperation("获取专题详细信息")
+    @PostMapping("/get")
+    @ResponseBody
+    public CommonResult<CmsSubject> get(@RequestParam(value = "id")Long id){
+        CmsSubject i = subjectService.info(id);
+        if (i==null){
+            return CommonResult.failed();
+        }
+        return CommonResult.success(i);
+    }
+
+
+    @ApiOperation("是否展示专题")
+    @PostMapping("/is-show")
+    @ResponseBody
+    public CommonResult isShow(@RequestParam(value = "id")Long id,@ApiParam(name = "0-不显示,1-展示") @RequestParam(value = "showStatus",required = true)Integer showStatus){
+        int i = subjectService.show(id,showStatus);
+        if (i<0){
+            return CommonResult.failed();
+        }
+        return CommonResult.success(i);
+    }
+
+    @ApiOperation("获取所有专题")
+    @PostMapping("/all")
+    @ResponseBody
+    public CommonResult<List<CmsSubject>> get(@RequestParam(value = "keyword",required = false)String keyword){
+        List<CmsSubject> i = subjectService.all(keyword);
+        if (i==null){
+            return CommonResult.failed();
+        }
+        return CommonResult.success(i);
+    }
+}

+ 60 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/CompanyToCompanyController.java

@@ -0,0 +1,60 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.model.UmsAdmin;
+import com.hwrj.cloud.admin.model.UmsCompanyInfo;
+import com.hwrj.cloud.admin.service.UmsAdminService;
+import com.hwrj.cloud.admin.service.UmsCompanyService;
+import com.hwrj.cloud.admin.service.impl.UmsCompanyInfoServiceImpl;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Authorization;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.security.Principal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@RestController
+@Api(tags = "通过数据权限获取")
+@RequestMapping(value = "/comp")
+public class CompanyToCompanyController {
+    @Autowired
+    private UmsCompanyService umsCompanyService;
+
+    @Autowired
+    private UmsAdminService adminService;
+
+    @ApiOperation("通用性获取供应商")
+    @GetMapping("/search")
+    public CommonResult searchCompany(@RequestParam(required = false,defaultValue = "")String key,@RequestParam(defaultValue = "1")int pageNo,@RequestParam(defaultValue = "15")int pageSize, Principal principal){
+        if (principal == null){
+            return CommonResult.unauthorized(null);
+        }
+        String username = principal.getName();
+        UmsAdmin umsAdmin = adminService.getAdminByUsername(username);
+        if(umsAdmin == null){
+            return CommonResult.unauthorized(null);
+        }
+        Long compId = umsAdmin.getCompId();
+        int type = 0;
+        if (compId == null){
+            type = 1;
+        }
+        List<UmsCompanyInfo> infos = umsCompanyService.searchCompanyInfo(key, pageNo, pageSize, compId);
+        CommonPage<UmsCompanyInfo> infoCommonPage = CommonPage.restPage(infos);
+        Map<String,Object> map = new HashMap<>();
+        map.put("type",type);
+        map.put("data",infoCommonPage);
+        return CommonResult.success(map);
+    }
+}

+ 28 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/ConfigController.java

@@ -0,0 +1,28 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonResult;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author mtcarpenter
+ * @github https://github.com/mtcarpenter/mall-cloud-alibaba
+ * @desc 微信公众号:山间木匠
+ */
+@RestController
+@RequestMapping("/config")
+@RefreshScope
+public class ConfigController {
+
+    @Value("${spring.application.name}")
+    private String applicationName;
+
+    @RequestMapping("/get")
+    public CommonResult get() {
+        return CommonResult.success("nacos config RefreshScope :" + applicationName);
+    }
+
+
+}

+ 32 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/FileUploadController.java

@@ -0,0 +1,32 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.util.OrderNo;
+import com.hwrj.cloud.admin.util.UploadFileUtil;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+@Api(tags = "FileUploadController",description = "图片上传接口")
+@RestController
+@RequestMapping("/upload")
+public class FileUploadController  {
+
+    @Autowired
+    private UploadFileUtil uploadFileUtil;
+
+    @ApiOperation("上传接口")
+    @PostMapping("/fileImg")
+    public CommonResult uploadFile(@RequestParam(value = "file") MultipartFile file,String type){
+        type =1+"";
+        if ((!"123456".contains(type))||type.length()>1){
+            return CommonResult.failed("上传失败");
+        }
+        String s = uploadFileUtil.uploadQiNiuFiles(file, "0/" + type + "/" + OrderNo.NextOrderNo());
+        return CommonResult.success(s);
+    }
+
+
+}

+ 35 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsCompanyAddressController.java

@@ -0,0 +1,35 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.model.OmsCompanyAddress;
+import com.hwrj.cloud.common.api.CommonResult;
+
+import com.hwrj.cloud.admin.service.OmsCompanyAddressService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 收货地址管理Controller
+ * Created by macro on 2018/10/18.
+ */
+@Controller
+@Api(tags = "OmsCompanyAddressController", description = "收货地址管理")
+@RequestMapping("/companyAddress")
+public class OmsCompanyAddressController {
+    @Autowired
+    private OmsCompanyAddressService companyAddressService;
+
+    @ApiOperation("获取所有收货地址")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<OmsCompanyAddress>> list() {
+        List<OmsCompanyAddress> companyAddressList = companyAddressService.list();
+        return CommonResult.success(companyAddressList);
+    }
+}

+ 132 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderController.java

@@ -0,0 +1,132 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.hwrj.cloud.admin.dao.excel.model.OmsOrderExcel;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.*;
+import com.hwrj.cloud.admin.model.OmsOrder;
+import com.hwrj.cloud.admin.service.OmsOrderService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLEncoder;
+import java.util.List;
+
+/**
+ * 订单管理Controller
+ * Created by macro on 2018/10/11.
+ */
+@Controller
+@Api(tags = "订单管理")
+@RequestMapping("/order")
+public class OmsOrderController {
+    @Autowired
+    private OmsOrderService orderService;
+
+    @ApiOperation("查询订单")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<OmsOrder>> list(OmsOrderQueryParam queryParam,
+                                                   @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                   @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<OmsOrder> orderList = orderService.list(queryParam, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(orderList));
+    }
+
+    @ApiOperation("订单导出")
+    @RequestMapping(value = "/list/excel", method = RequestMethod.GET)
+    public void listExcel(HttpServletResponse response,OmsOrderQueryParam queryParam) throws Exception{
+        List<OmsOrderExcel> orderList = orderService.listExcel(queryParam);
+
+        // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+        String fileName = URLEncoder.encode("测试", "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        EasyExcel.write(response.getOutputStream(), OmsOrderExcel.class).sheet("模板").doWrite(orderList);
+    }
+
+
+
+    @ApiOperation("批量发货")
+    @RequestMapping(value = "/update/delivery", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delivery(@RequestBody List<OmsOrderDeliveryParam> deliveryParamList) {
+        int count = orderService.delivery(deliveryParamList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量关闭订单")
+    @RequestMapping(value = "/update/close", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult close(@RequestParam("ids") List<Long> ids, @RequestParam String note) {
+        int count = orderService.close(ids, note);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除订单")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = orderService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取订单详情:订单信息、商品信息、操作记录")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<OmsOrderDetail> detail(@PathVariable Long id) {
+        OmsOrderDetail orderDetailResult = orderService.detail(id);
+        return CommonResult.success(orderDetailResult);
+    }
+
+    @ApiOperation("修改收货人信息")
+    @RequestMapping(value = "/update/receiverInfo", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateReceiverInfo(@RequestBody OmsReceiverInfoParam receiverInfoParam) {
+        int count = orderService.updateReceiverInfo(receiverInfoParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改订单费用信息")
+    @RequestMapping(value = "/update/moneyInfo", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateReceiverInfo(@RequestBody OmsMoneyInfoParam moneyInfoParam) {
+        int count = orderService.updateMoneyInfo(moneyInfoParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("备注订单")
+    @RequestMapping(value = "/update/note", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateNote(@RequestParam("id") Long id,
+                                   @RequestParam("note") String note,
+                                   @RequestParam("status") Integer status) {
+        int count = orderService.updateNote(id, note, status);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+}

+ 31 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderExpressController.java

@@ -0,0 +1,31 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.dto.param.SelectNewVo;
+import com.hwrj.cloud.admin.model.OmsPreItem;
+import com.hwrj.cloud.admin.service.OmsOrderExpressService;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@Api(tags = "OmsOrderController", description = "快递公司管理")
+@RequestMapping("/express")
+public class OmsOrderExpressController {
+
+    @Autowired
+    private OmsOrderExpressService omsOrderExpressService;
+
+    @ApiOperation(value = "获取快递公司列表")
+    @GetMapping("/select")
+    public CommonResult select(){
+        List<SelectNewVo> select = omsOrderExpressService.select();
+        return CommonResult.success(select);
+    }
+}

+ 69 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderReturnApplyController.java

@@ -0,0 +1,69 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.OmsOrderReturnApplyResult;
+import com.hwrj.cloud.admin.dto.OmsReturnApplyQueryParam;
+import com.hwrj.cloud.admin.dto.OmsUpdateStatusParam;
+import com.hwrj.cloud.admin.model.OmsOrderReturnApply;
+import com.hwrj.cloud.admin.service.OmsOrderReturnApplyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 订单退货申请管理
+ * Created by macro on 2018/10/18.
+ */
+@Controller
+@Api(tags = "OmsOrderReturnApplyController", description = "订单退货申请管理")
+@RequestMapping("/returnApply")
+public class OmsOrderReturnApplyController {
+    @Autowired
+    private OmsOrderReturnApplyService returnApplyService;
+
+    @ApiOperation("分页查询退货申请")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<OmsOrderReturnApply>> list(OmsReturnApplyQueryParam queryParam,
+                                                              @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                              @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<OmsOrderReturnApply> returnApplyList = returnApplyService.list(queryParam, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(returnApplyList));
+    }
+
+    @ApiOperation("批量删除申请")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = returnApplyService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取退货申请详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult getItem(@PathVariable Long id) {
+        OmsOrderReturnApplyResult result = returnApplyService.getItem(id);
+        return CommonResult.success(result);
+    }
+
+    @ApiOperation("修改申请状态")
+    @RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, @RequestBody OmsUpdateStatusParam statusParam) {
+        int count = returnApplyService.updateStatus(id, statusParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+}

+ 87 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderReturnReasonController.java

@@ -0,0 +1,87 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.OmsOrderReturnReason;
+import com.hwrj.cloud.admin.service.OmsOrderReturnReasonService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 退货原因管理Controller
+ * Created by macro on 2018/10/17.
+ */
+@Controller
+@Api(tags = "OmsOrderReturnReasonController", description = "退货原因管理")
+@RequestMapping("/returnReason")
+public class OmsOrderReturnReasonController {
+    @Autowired
+    private OmsOrderReturnReasonService orderReturnReasonService;
+
+    @ApiOperation("添加退货原因")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody OmsOrderReturnReason returnReason) {
+        int count = orderReturnReasonService.create(returnReason);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改退货原因")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody OmsOrderReturnReason returnReason) {
+        int count = orderReturnReasonService.update(id, returnReason);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除退货原因")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = orderReturnReasonService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询全部退货原因")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<OmsOrderReturnReason>> list(@RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                               @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<OmsOrderReturnReason> reasonList = orderReturnReasonService.list(pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(reasonList));
+    }
+
+    @ApiOperation("获取单个退货原因详情信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<OmsOrderReturnReason> getItem(@PathVariable Long id) {
+        OmsOrderReturnReason reason = orderReturnReasonService.getItem(id);
+        return CommonResult.success(reason);
+    }
+
+    @ApiOperation("修改退货原因启用状态")
+    @RequestMapping(value = "/update/status", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@RequestParam(value = "status") Integer status,
+                                     @RequestParam("ids") List<Long> ids) {
+        int count = orderReturnReasonService.updateStatus(ids, status);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+}

+ 41 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsOrderSettingController.java

@@ -0,0 +1,41 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.OmsOrderSetting;
+import com.hwrj.cloud.admin.service.OmsOrderSettingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 订单设置Controller
+ * Created by macro on 2018/10/16.
+ */
+@Controller
+@Api(tags = "OmsOrderSettingController", description = "订单设置管理")
+@RequestMapping("/orderSetting")
+public class OmsOrderSettingController {
+    @Autowired
+    private OmsOrderSettingService orderSettingService;
+
+    @ApiOperation("获取指定订单设置")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<OmsOrderSetting> getItem(@PathVariable Long id) {
+        OmsOrderSetting orderSetting = orderSettingService.getItem(id);
+        return CommonResult.success(orderSetting);
+    }
+
+    @ApiOperation("修改指定订单设置")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody OmsOrderSetting orderSetting) {
+        int count = orderSettingService.update(id,orderSetting);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+}

+ 51 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/OmsPreItemController.java

@@ -0,0 +1,51 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.dao.OmsPreItemDao;
+import com.hwrj.cloud.admin.dto.param.PreItemWebPageParm;
+import com.hwrj.cloud.admin.model.OmsPreItem;
+import com.hwrj.cloud.admin.service.OmsPreItemService;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@RestController
+@Slf4j
+@Api(tags = "意向商品接口")
+@RequestMapping("/oms/pre")
+public class OmsPreItemController {
+    @Autowired
+    private OmsPreItemService omsPreItemService;
+
+    @GetMapping("get")
+    @ApiOperation(value = "获取意向商品接口")
+    public CommonResult getOmsPreItem(){
+        List<OmsPreItem> omsPreItems = omsPreItemService.selectOmsPreItem();
+        return CommonResult.success(omsPreItems);
+    }
+
+    @GetMapping(value = "/web/list")
+    @ApiOperation("后台后去意向详情")
+    @ResponseBody
+    public CommonResult weblist(PreItemWebPageParm preItemWebPageParm){
+
+        List<OmsPreItem> omsPreItemListOwn = omsPreItemService.weblist(preItemWebPageParm);
+
+        return CommonResult.success(CommonPage.restPage(omsPreItemListOwn));
+    }
+
+
+    @ApiOperation(value = "删除商品意向")
+    @DeleteMapping
+    public CommonResult delete(@RequestParam(value = "id",required = true)Long id){
+
+        omsPreItemService.delete(id);
+        return CommonResult.success();
+    }
+}

+ 131 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsBrandController.java

@@ -0,0 +1,131 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.dto.param.PmsBrandWebFrom;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.PmsBrandParam;
+import com.hwrj.cloud.admin.model.PmsBrand;
+import com.hwrj.cloud.admin.service.PmsBrandService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 品牌功能Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsBrandController", description = "商品品牌管理")
+@RequestMapping("/brand")
+public class PmsBrandController {
+    @Autowired
+    private PmsBrandService brandService;
+
+    @ApiOperation(value = "获取全部品牌列表")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsBrand>> getList() {
+        return CommonResult.success(brandService.listAllBrand());
+    }
+
+    @ApiOperation(value = "添加品牌")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@Validated @RequestBody PmsBrandParam pmsBrand, BindingResult result) {
+        CommonResult commonResult;
+        int count = brandService.createBrand(pmsBrand);
+        if (count == 1) {
+            commonResult = CommonResult.success(count);
+        } else {
+            commonResult = CommonResult.failed();
+        }
+        return commonResult;
+    }
+
+    @ApiOperation(value = "更新品牌")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable("id") Long id,
+                               @Validated @RequestBody PmsBrandParam pmsBrandParam,
+                               BindingResult result) {
+        CommonResult commonResult;
+        int count = brandService.updateBrand(id, pmsBrandParam);
+        if (count == 1) {
+            commonResult = CommonResult.success(count);
+        } else {
+            commonResult = CommonResult.failed();
+        }
+        return commonResult;
+    }
+
+    @ApiOperation(value = "删除品牌")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult delete(@PathVariable("id") Long id) {
+        int count = brandService.deleteBrand(id);
+        if (count == 1) {
+            return CommonResult.success(null);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "根据品牌名称分页获取品牌列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsBrand>> getList(PmsBrandWebFrom pmsBrandWebFrom) {
+        List<PmsBrand> brandList = brandService.listBrand(pmsBrandWebFrom);
+        return CommonResult.success(CommonPage.restPage(brandList));
+    }
+
+    @ApiOperation(value = "根据编号查询品牌信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsBrand> getItem(@PathVariable("id") Long id) {
+        return CommonResult.success(brandService.getBrand(id));
+    }
+
+    @ApiOperation(value = "批量删除品牌")
+    @RequestMapping(value = "/delete/batch", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult deleteBatch(@RequestParam("ids") List<Long> ids) {
+        int count = brandService.deleteBrand(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "批量更新显示状态")
+    @RequestMapping(value = "/update/showStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateShowStatus(@RequestParam("ids") List<Long> ids,
+                                   @RequestParam("showStatus") Integer showStatus) {
+        int count = brandService.updateShowStatus(ids, showStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "批量更新厂家制造商状态")
+    @RequestMapping(value = "/update/factoryStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateFactoryStatus(@RequestParam("ids") List<Long> ids,
+                                      @RequestParam("factoryStatus") Integer factoryStatus) {
+        int count = brandService.updateFactoryStatus(ids, factoryStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+}

+ 86 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductAttributeCategoryController.java

@@ -0,0 +1,86 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.PmsProductAttributeCategoryItem;
+import com.hwrj.cloud.admin.model.PmsProductAttributeCategory;
+import com.hwrj.cloud.admin.service.PmsProductAttributeCategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品属性分类Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsProductAttributeCategoryController", description = "商品属性分类管理")
+@RequestMapping("/productAttribute/category")
+public class PmsProductAttributeCategoryController {
+    @Autowired
+    private PmsProductAttributeCategoryService productAttributeCategoryService;
+
+    @ApiOperation("添加商品属性分类")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestParam String name) {
+        int count = productAttributeCategoryService.create(name);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改商品属性分类")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestParam String name) {
+        int count = productAttributeCategoryService.update(id, name);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("删除单个商品属性分类")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = productAttributeCategoryService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("获取单个商品属性分类信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductAttributeCategory> getItem(@PathVariable Long id) {
+        PmsProductAttributeCategory productAttributeCategory = productAttributeCategoryService.getItem(id);
+        return CommonResult.success(productAttributeCategory);
+    }
+
+    @ApiOperation("分页获取所有商品属性分类")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsProductAttributeCategory>> getList(@RequestParam(defaultValue = "5") Integer pageSize, @RequestParam(defaultValue = "1") Integer pageNum) {
+        List<PmsProductAttributeCategory> productAttributeCategoryList = productAttributeCategoryService.getList(pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(productAttributeCategoryList));
+    }
+
+    @ApiOperation("获取所有商品属性分类及其下属性")
+    @RequestMapping(value = "/list/withAttr", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsProductAttributeCategoryItem>> getListWithAttr() {
+        List<PmsProductAttributeCategoryItem> productAttributeCategoryResultList = productAttributeCategoryService.getListWithAttr();
+        return CommonResult.success(productAttributeCategoryResultList);
+    }
+}

+ 94 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductAttributeController.java

@@ -0,0 +1,94 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.PmsProductAttributeParam;
+import com.hwrj.cloud.admin.dto.ProductAttrInfo;
+import com.hwrj.cloud.admin.model.PmsProductAttribute;
+import com.hwrj.cloud.admin.service.PmsProductAttributeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品属性管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsProductAttributeController", description = "商品属性管理")
+@RequestMapping("/productAttribute")
+public class PmsProductAttributeController {
+    @Autowired
+    private PmsProductAttributeService productAttributeService;
+
+    @ApiOperation("根据分类查询属性列表或参数列表")
+    @ApiImplicitParams({@ApiImplicitParam(name = "type", value = "0表示属性,1表示参数", required = true, paramType = "query", dataType = "integer")})
+    @RequestMapping(value = "/list/{cid}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsProductAttribute>> getList(@PathVariable Long cid,
+                                                                 @RequestParam(value = "type") Integer type,
+                                                                 @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                 @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<PmsProductAttribute> productAttributeList = productAttributeService.getList(cid, type, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(productAttributeList));
+    }
+
+    @ApiOperation("添加商品属性信息")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody PmsProductAttributeParam productAttributeParam, BindingResult bindingResult) {
+        int count = productAttributeService.create(productAttributeParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改商品属性信息")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody PmsProductAttributeParam productAttributeParam, BindingResult bindingResult) {
+        int count = productAttributeService.update(id, productAttributeParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("查询单个商品属性")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductAttribute> getItem(@PathVariable Long id) {
+        PmsProductAttribute productAttribute = productAttributeService.getItem(id);
+        return CommonResult.success(productAttribute);
+    }
+
+    @ApiOperation("批量删除商品属性")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = productAttributeService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据商品分类的id获取商品属性及属性分类")
+    @RequestMapping(value = "/attrInfo/{productCategoryId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<ProductAttrInfo>> getAttrInfo(@PathVariable Long productCategoryId) {
+        List<ProductAttrInfo> productAttrInfoList = productAttributeService.getProductAttrInfo(productCategoryId);
+        return CommonResult.success(productAttrInfoList);
+    }
+}

+ 48 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductBigDataController.java

@@ -0,0 +1,48 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.dto.param.BigDataListInfoVo;
+import com.hwrj.cloud.admin.dto.param.BigDataListParam;
+import com.hwrj.cloud.admin.dto.param.BigDataListVo;
+import com.hwrj.cloud.admin.dto.param.SelectVo;
+import com.hwrj.cloud.admin.service.PmsProductService;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import net.sf.jsqlparser.statement.select.SelectBody;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+import java.util.List;
+
+@RestController
+@RequestMapping("/bigData")
+@Api(tags = "产品大屏接口",description = "获取大屏数据")
+public class PmsProductBigDataController {
+    @Autowired
+    private PmsProductService productService;
+
+    @ApiOperation("产品列表查询")
+    @GetMapping(value = "/product/list")
+    public CommonResult<CommonPage<BigDataListInfoVo>> bigDataList(BigDataListParam bigDataListParam) throws IOException {
+        List<BigDataListInfoVo> list = productService.bigDataList(bigDataListParam);
+        return CommonResult.success(CommonPage.restPage(list));
+    }
+
+    @ApiOperation("产品类别查询")
+    @GetMapping(value = "/product/type")
+    public CommonResult<List<SelectVo> > bigDataType() throws IOException {
+        List<SelectVo> list = productService.bigDataType();
+        return CommonResult.success(list);
+    }
+
+    @ApiOperation("产品详细信息查询")
+    @GetMapping(value = "/product/info")
+    public CommonResult<BigDataListInfoVo> bigDatainfo(Long id) {
+        BigDataListInfoVo bigDataListInfoVo = productService.bigDatainfo(id);
+        return CommonResult.success(bigDataListInfoVo);
+    }
+}

+ 120 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductCategoryController.java

@@ -0,0 +1,120 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.PmsProductCategoryParam;
+import com.hwrj.cloud.admin.dto.PmsProductCategoryWithChildrenItem;
+import com.hwrj.cloud.admin.model.PmsProductCategory;
+import com.hwrj.cloud.admin.service.PmsProductCategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品分类模块Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsProductCategoryController", description = "商品分类管理")
+@RequestMapping("/productCategory")
+public class PmsProductCategoryController {
+    @Autowired
+    private PmsProductCategoryService productCategoryService;
+
+    @ApiOperation("添加产品分类")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@Validated @RequestBody PmsProductCategoryParam productCategoryParam,
+                         BindingResult result) {
+        int count = productCategoryService.create(productCategoryParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改商品分类")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,
+                         @Validated
+                         @RequestBody PmsProductCategoryParam productCategoryParam,
+                         BindingResult result) {
+        int count = productCategoryService.update(id, productCategoryParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("分页查询商品分类")
+    @RequestMapping(value = "/list/{parentId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult getList(@PathVariable Long parentId,
+                                                                @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        PageInfo<PmsProductCategory> productCategoryList = productCategoryService.getList(parentId, pageSize, pageNum);
+        return CommonResult.success(productCategoryList);
+    }
+
+    @ApiOperation("根据id获取商品分类")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductCategory> getItem(@PathVariable Long id) {
+        PmsProductCategory productCategory = productCategoryService.getItem(id);
+        return CommonResult.success(productCategory);
+    }
+
+    @ApiOperation("删除商品分类")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = productCategoryService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改导航栏显示状态")
+    @RequestMapping(value = "/update/navStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateNavStatus(@RequestParam("ids") List<Long> ids, @RequestParam("navStatus") Integer navStatus) {
+        int count = productCategoryService.updateNavStatus(ids, navStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改显示状态")
+    @RequestMapping(value = "/update/showStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateShowStatus(@RequestParam("ids") List<Long> ids, @RequestParam("showStatus") Integer showStatus) {
+        int count = productCategoryService.updateShowStatus(ids, showStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("查询所有一级分类及子分类")
+    @RequestMapping(value = "/list/withChildren", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsProductCategoryWithChildrenItem>> listWithChildren() {
+        List<PmsProductCategoryWithChildrenItem> list = productCategoryService.listWithChildren();
+        return CommonResult.success(list);
+    }
+}

+ 248 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsProductController.java

@@ -0,0 +1,248 @@
+package com.hwrj.cloud.admin.controller;
+
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelReader;
+import com.alibaba.excel.read.metadata.ReadSheet;
+import com.hwrj.cloud.admin.common.PmsProductOutput;
+import com.hwrj.cloud.admin.dao.PmsProductExcelDao;
+import com.hwrj.cloud.admin.dto.PmsProductQueryParam;
+import com.hwrj.cloud.admin.dto.PmsProductResult;
+import com.hwrj.cloud.admin.dto.param.PmsProductExcel;
+import com.hwrj.cloud.admin.dto.param.SelectVo;
+import com.hwrj.cloud.admin.listener.PmsProductExcelListener;
+import com.hwrj.cloud.admin.model.PmsProduct;
+import com.hwrj.cloud.admin.service.PmsProductService;
+import com.hwrj.cloud.admin.util.CurrUserUtil;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.springframework.util.StringUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.URLEncoder;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 商品管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@RestController
+@Api(tags = "商品管理", description = "商品管理")
+@RequestMapping("/product")
+public class PmsProductController {
+    @Autowired
+    private PmsProductService productService;
+
+    @ApiOperation("创建商品")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@Validated @RequestBody com.hwrj.cloud.admin.dto.PmsProductParam productParam, BindingResult bindingResult) {
+        int count = productService.create(productParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据商品id获取商品编辑信息")
+    @RequestMapping(value = "/updateInfo/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductResult> getUpdateInfo(@PathVariable Long id) {
+        PmsProductResult productResult = productService.getUpdateInfo(id);
+        return CommonResult.success(productResult);
+    }
+
+    @ApiOperation("更新商品")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @Validated @RequestBody com.hwrj.cloud.admin.dto.PmsProductParam productParam, BindingResult bindingResult) {
+
+        int count = productService.update(id, productParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据供应商选择生产地")
+    @GetMapping(value = "/plOfPro/select")
+    @ResponseBody
+    public CommonResult plOfProSelect(@RequestParam(value = "compId", required = false) Long compId) {
+
+        List<SelectVo> plOfProSelect = productService.plOfProSelect(compId);
+        return CommonResult.success(plOfProSelect);
+    }
+
+    @ApiOperation("查询商品")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsProduct>> getList(PmsProductQueryParam productQueryParam,
+                                                        @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                        @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<PmsProduct> productList = productService.list(productQueryParam, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(productList));
+    }
+
+    @ApiOperation("根据商品名称或货号模糊查询")
+    @RequestMapping(value = "/simpleList", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsProduct>> getList(String keyword) {
+        List<PmsProduct> productList = productService.list(keyword);
+        return CommonResult.success(productList);
+    }
+
+    @ApiOperation("批量修改审核状态")
+    @RequestMapping(value = "/update/verifyStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateVerifyStatus(@RequestParam("ids") List<Long> ids,
+                                           @RequestParam("verifyStatus") Integer verifyStatus,
+                                           @RequestParam("detail") String detail) {
+        int count = productService.updateVerifyStatus(ids, verifyStatus, detail);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改审核状态")
+    @PutMapping(value = "/update/verify/{id}")
+    @ResponseBody
+    public CommonResult verify(@PathVariable("id") Long id) {
+        int count = productService.verify(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("批量上下架")
+    @RequestMapping(value = "/update/publishStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updatePublishStatus(@RequestParam("ids") List<Long> ids,
+                                            @RequestParam("publishStatus") Integer publishStatus) {
+        int count = productService.updatePublishStatus(ids, publishStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("批量推荐商品")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids,
+                                              @RequestParam("recommendStatus") Integer recommendStatus) {
+        int count = productService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("批量设为新品")
+    @RequestMapping(value = "/update/newStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateNewStatus(@RequestParam("ids") List<Long> ids,
+                                        @RequestParam("newStatus") Integer newStatus) {
+        int count = productService.updateNewStatus(ids, newStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("批量修改删除状态")
+    @RequestMapping(value = "/update/deleteStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateDeleteStatus(@RequestParam("ids") List<Long> ids,
+                                           @RequestParam("deleteStatus") Integer deleteStatus) {
+        int count = productService.updateDeleteStatus(ids, deleteStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+
+    @ApiOperation("通过id查询商品信息")
+    @RequestMapping(value = "/getProductByProductId", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductOutput> getProductByProductId(@RequestParam("productId") Long productId) {
+        PmsProductOutput pmsProduct = productService.getProductByProductId(productId);
+        return CommonResult.success(pmsProduct);
+    }
+
+
+    @PostMapping(value = "/import")
+    public CommonResult importBasic(MultipartFile file, HttpServletResponse response) throws IOException {
+
+        productService.importBasic(file);
+        return CommonResult.success();
+    }
+
+    @PostMapping(value = "/out")
+    public void out(HttpServletResponse response) throws IOException {
+
+        //定义文件名和文件地址
+        String downloadUrl = "excel/model/productModel.xlsx";
+        Resource resource = null;
+        try {
+            //获取资源文件
+            resource = new ClassPathResource(downloadUrl);
+        } catch (Exception e) {
+            //自定义业务异常
+            throw new RuntimeException("导出模板失败!");
+        }
+        byte[] buff = new byte[1024];
+        BufferedInputStream bis = null;
+        OutputStream os = null;
+        try {
+            // 配置文件下载
+            response.setHeader("content-type", "application/octet-stream");
+            response.setContentType("application/octet-stream");
+            // 下载文件能正常显示中文
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("商品导入模板.xlsx", "UTF-8"));
+
+            os = response.getOutputStream();
+            bis = new BufferedInputStream(resource.getInputStream());
+            int i = bis.read(buff);
+            while (i != -1) {
+                os.write(buff, 0, buff.length);
+                os.flush();
+                i = bis.read(buff);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw new RuntimeException("文件下载出错!");
+        } finally {
+            if (bis != null) {
+                try {
+                    bis.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+
+    }
+}

+ 43 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/PmsSkuStockController.java

@@ -0,0 +1,43 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.PmsSkuStock;
+import com.hwrj.cloud.admin.service.PmsSkuStockService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * sku库存Controller
+ * Created by macro on 2018/4/27.
+ */
+@Controller
+@Api(tags = "PmsSkuStockController", description = "sku商品库存管理")
+@RequestMapping("/sku")
+public class PmsSkuStockController {
+    @Autowired
+    private PmsSkuStockService skuStockService;
+
+    @ApiOperation("根据商品编号及编号模糊搜索sku库存")
+    @RequestMapping(value = "/{pid}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsSkuStock>> getList(@PathVariable Long pid, @RequestParam(value = "keyword",required = false) String keyword) {
+        List<PmsSkuStock> skuStockList = skuStockService.getList(pid, keyword);
+        return CommonResult.success(skuStockList);
+    }
+    @ApiOperation("批量更新库存信息")
+    @RequestMapping(value ="/update/{pid}",method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long pid, @RequestBody List<PmsSkuStock> skuStockList){
+        int count = skuStockService.update(pid,skuStockList);
+        if(count>0){
+            return CommonResult.success(count);
+        }else{
+            return CommonResult.failed();
+        }
+    }
+}

+ 78 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsCouponController.java

@@ -0,0 +1,78 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.SmsCouponParam;
+import com.hwrj.cloud.admin.model.SmsCoupon;
+import com.hwrj.cloud.admin.service.SmsCouponService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 优惠券管理Controller
+ * Created by macro on 2018/8/28.
+ */
+@Controller
+@Api(tags = "SmsCouponController", description = "优惠券管理")
+@RequestMapping("/coupon")
+public class SmsCouponController {
+    @Autowired
+    private SmsCouponService couponService;
+    @ApiOperation("添加优惠券")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult add(@RequestBody SmsCouponParam couponParam) {
+        int count = couponService.create(couponParam);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除优惠券")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = couponService.delete(id);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改优惠券")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody SmsCouponParam couponParam) {
+        int count = couponService.update(id,couponParam);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("根据优惠券名称和类型分页获取优惠券列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsCoupon>> list(
+            @RequestParam(value = "name",required = false) String name,
+            @RequestParam(value = "type",required = false) Integer type,
+            @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+            @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsCoupon> couponList = couponService.list(name,type,pageSize,pageNum);
+        return CommonResult.success(CommonPage.restPage(couponList));
+    }
+
+    @ApiOperation("获取单个优惠券的详细信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<SmsCouponParam> getItem(@PathVariable Long id) {
+        SmsCouponParam couponParam = couponService.getItem(id);
+        return CommonResult.success(couponParam);
+    }
+}

+ 40 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsCouponHistoryController.java

@@ -0,0 +1,40 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.SmsCouponHistory;
+import com.hwrj.cloud.admin.service.SmsCouponHistoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 优惠券领取记录管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsCouponHistoryController", description = "优惠券领取记录管理")
+@RequestMapping("/couponHistory")
+public class SmsCouponHistoryController {
+    @Autowired
+    private SmsCouponHistoryService historyService;
+
+    @ApiOperation("根据优惠券id,使用状态,订单编号分页获取领取记录")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsCouponHistory>> list(@RequestParam(value = "couponId", required = false) Long couponId,
+                                                           @RequestParam(value = "useStatus", required = false) Integer useStatus,
+                                                           @RequestParam(value = "orderSn", required = false) String orderSn,
+                                                           @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                           @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsCouponHistory> historyList = historyService.list(couponId, useStatus, orderSn, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(historyList));
+    }
+}

+ 87 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsFlashPromotionController.java

@@ -0,0 +1,87 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.SmsFlashPromotion;
+import com.hwrj.cloud.admin.service.SmsFlashPromotionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 限时购活动管理Controller
+ * Created by macro on 2018/11/16.
+ */
+@Controller
+@Api(tags = "SmsFlashPromotionController", description = "限时购活动管理")
+@RequestMapping("/flash")
+public class SmsFlashPromotionController {
+    @Autowired
+    private SmsFlashPromotionService flashPromotionService;
+
+    @ApiOperation("添加活动")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody SmsFlashPromotion flashPromotion) {
+        int count = flashPromotionService.create(flashPromotion);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("编辑活动信息")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public Object update(@PathVariable Long id, @RequestBody SmsFlashPromotion flashPromotion) {
+        int count = flashPromotionService.update(id, flashPromotion);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除活动信息")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public Object delete(@PathVariable Long id) {
+        int count = flashPromotionService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改上下线状态")
+    @RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public Object update(@PathVariable Long id, Integer status) {
+        int count = flashPromotionService.updateStatus(id, status);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取活动详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public Object getItem(@PathVariable Long id) {
+        SmsFlashPromotion flashPromotion = flashPromotionService.getItem(id);
+        return CommonResult.success(flashPromotion);
+    }
+
+    @ApiOperation("根据活动名称分页查询")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public Object getItem(@RequestParam(value = "keyword", required = false) String keyword,
+                          @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                          @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsFlashPromotion> flashPromotionList = flashPromotionService.list(keyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(flashPromotionList));
+    }
+}

+ 78 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsFlashPromotionProductRelationController.java

@@ -0,0 +1,78 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.SmsFlashPromotionProduct;
+import com.hwrj.cloud.admin.model.SmsFlashPromotionProductRelation;
+import com.hwrj.cloud.admin.service.SmsFlashPromotionProductRelationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 限时购和商品关系管理Controller
+ * Created by macro on 2018/11/16.
+ */
+@Controller
+@Api(tags = "SmsFlashPromotionProductRelationController", description = "限时购和商品关系管理")
+@RequestMapping("/flashProductRelation")
+public class SmsFlashPromotionProductRelationController {
+    @Autowired
+    private SmsFlashPromotionProductRelationService relationService;
+
+    @ApiOperation("批量选择商品添加关联")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsFlashPromotionProductRelation> relationList) {
+        int count = relationService.create(relationList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改关联相关信息")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody SmsFlashPromotionProductRelation relation) {
+        int count = relationService.update(id, relation);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除关联")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = relationService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取管理商品促销信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<SmsFlashPromotionProductRelation> getItem(@PathVariable Long id) {
+        SmsFlashPromotionProductRelation relation = relationService.getItem(id);
+        return CommonResult.success(relation);
+    }
+
+    @ApiOperation("分页查询不同场次关联及商品信息")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsFlashPromotionProduct>> list(@RequestParam(value = "flashPromotionId") Long flashPromotionId,
+                                                                   @RequestParam(value = "flashPromotionSessionId") Long flashPromotionSessionId,
+                                                                   @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                   @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsFlashPromotionProduct> flashPromotionProductList = relationService.list(flashPromotionId, flashPromotionSessionId, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(flashPromotionProductList));
+    }
+}

+ 93 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsFlashPromotionSessionController.java

@@ -0,0 +1,93 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.SmsFlashPromotionSessionDetail;
+import com.hwrj.cloud.admin.model.SmsFlashPromotionSession;
+import com.hwrj.cloud.admin.service.SmsFlashPromotionSessionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 限时购场次管理Controller
+ * Created by macro on 2018/11/16.
+ */
+@Controller
+@Api(tags = "SmsFlashPromotionSessionController", description = "限时购场次管理")
+@RequestMapping("/flashSession")
+public class SmsFlashPromotionSessionController {
+    @Autowired
+    private SmsFlashPromotionSessionService flashPromotionSessionService;
+
+    @ApiOperation("添加场次")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody SmsFlashPromotionSession promotionSession) {
+        int count = flashPromotionSessionService.create(promotionSession);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改场次")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody SmsFlashPromotionSession promotionSession) {
+        int count = flashPromotionSessionService.update(id, promotionSession);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改启用状态")
+    @RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, Integer status) {
+        int count = flashPromotionSessionService.updateStatus(id, status);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除场次")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = flashPromotionSessionService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取场次详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<SmsFlashPromotionSession> getItem(@PathVariable Long id) {
+        SmsFlashPromotionSession promotionSession = flashPromotionSessionService.getItem(id);
+        return CommonResult.success(promotionSession);
+    }
+
+    @ApiOperation("获取全部场次")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<SmsFlashPromotionSession>> list() {
+        List<SmsFlashPromotionSession> promotionSessionList = flashPromotionSessionService.list();
+        return CommonResult.success(promotionSessionList);
+    }
+
+    @ApiOperation("获取全部可选场次及其数量")
+    @RequestMapping(value = "/selectList", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<SmsFlashPromotionSessionDetail>> selectList(Long flashPromotionId) {
+        List<SmsFlashPromotionSessionDetail> promotionSessionList = flashPromotionSessionService.selectList(flashPromotionId);
+        return CommonResult.success(promotionSessionList);
+    }
+}

+ 92 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeAdvertiseController.java

@@ -0,0 +1,92 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.SmsHomeAdvertise;
+import com.hwrj.cloud.admin.service.SmsHomeAdvertiseService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页轮播广告管理Controller
+ * Created by macro on 2018/11/7.
+ */
+@Controller
+@Api(tags = "SmsHomeAdvertiseController", description = "首页轮播广告管理")
+@RequestMapping("/home/extension")
+public class SmsHomeAdvertiseController {
+    @Autowired
+    private SmsHomeAdvertiseService advertiseService;
+
+    @ApiOperation("添加广告")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody SmsHomeAdvertise advertise) {
+        int count = advertiseService.create(advertise);
+        if (count > 0)
+            return CommonResult.success(count);
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除广告")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = advertiseService.delete(ids);
+        if (count > 0)
+            return CommonResult.success(count);
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改上下线状态")
+    @RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, Integer status) {
+        int count = advertiseService.updateStatus(id, status);
+        if (count > 0)
+            return CommonResult.success(count);
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取广告详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<SmsHomeAdvertise> getItem(@PathVariable Long id) {
+        SmsHomeAdvertise advertise = advertiseService.getItem(id);
+        return CommonResult.success(advertise);
+    }
+
+    @ApiOperation("修改广告")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody SmsHomeAdvertise advertise) {
+        int count = advertiseService.update(id, advertise);
+        if (count > 0)
+            return CommonResult.success(count);
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询广告")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeAdvertise>> list(@RequestParam(value = "name", required = false) String name,
+                                                           @RequestParam(value = "type", required = false) Integer type,
+                                                           @RequestParam(value = "endTime", required = false) String endTime,
+                                                           @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                           @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeAdvertise> advertiseList = advertiseService.list(name, type, endTime, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(advertiseList));
+    }
+
+
+
+
+
+
+
+}

+ 80 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeBrandController.java

@@ -0,0 +1,80 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.SmsHomeBrand;
+import com.hwrj.cloud.admin.service.SmsHomeBrandService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页品牌管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsHomeBrandController", description = "首页品牌管理")
+@RequestMapping("/home/brand")
+public class SmsHomeBrandController {
+    @Autowired
+    private SmsHomeBrandService homeBrandService;
+
+    @ApiOperation("添加首页推荐品牌")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsHomeBrand> homeBrandList) {
+        int count = homeBrandService.create(homeBrandList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改品牌排序")
+    @RequestMapping(value = "/update/sort/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateSort(@PathVariable Long id, Integer sort) {
+        int count = homeBrandService.updateSort(id, sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除推荐品牌")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = homeBrandService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量修改推荐状态")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
+        int count = homeBrandService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询推荐品牌")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeBrand>> list(@RequestParam(value = "brandName", required = false) String brandName,
+                                                       @RequestParam(value = "recommendStatus", required = false) Integer recommendStatus,
+                                                       @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                       @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeBrand> homeBrandList = homeBrandService.list(brandName, recommendStatus, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(homeBrandList));
+    }
+}

+ 80 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeNewProductController.java

@@ -0,0 +1,80 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.SmsHomeNewProduct;
+import com.hwrj.cloud.admin.service.SmsHomeNewProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页新品管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsHomeNewProductController", description = "首页新品管理")
+@RequestMapping("/home/newProduct")
+public class SmsHomeNewProductController {
+    @Autowired
+    private SmsHomeNewProductService homeNewProductService;
+
+    @ApiOperation("添加首页推荐品牌")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsHomeNewProduct> homeBrandList) {
+        int count = homeNewProductService.create(homeBrandList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改推荐排序")
+    @RequestMapping(value = "/update/sort/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateSort(@PathVariable Long id, Integer sort) {
+        int count = homeNewProductService.updateSort(id, sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除推荐")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = homeNewProductService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量修改推荐状态")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
+        int count = homeNewProductService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询推荐")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeNewProduct>> list(@RequestParam(value = "productName", required = false) String productName,
+                                                            @RequestParam(value = "recommendStatus", required = false) Integer recommendStatus,
+                                                            @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                            @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeNewProduct> homeBrandList = homeNewProductService.list(productName, recommendStatus, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(homeBrandList));
+    }
+}

+ 79 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeRecommendProductController.java

@@ -0,0 +1,79 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.SmsHomeRecommendProduct;
+import com.hwrj.cloud.admin.service.SmsHomeRecommendProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页人气推荐管理Controller
+ */
+@Controller
+@Api(tags = "SmsHomeRecommendProductController", description = "首页人气推荐管理")
+@RequestMapping("/home/recommendProduct")
+public class SmsHomeRecommendProductController {
+    @Autowired
+    private SmsHomeRecommendProductService recommendProductService;
+
+    @ApiOperation("添加首页推荐")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsHomeRecommendProduct> homeBrandList) {
+        int count = recommendProductService.create(homeBrandList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改推荐排序")
+    @RequestMapping(value = "/update/sort/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateSort(@PathVariable Long id, Integer sort) {
+        int count = recommendProductService.updateSort(id, sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除推荐")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = recommendProductService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量修改推荐状态")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
+        int count = recommendProductService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询推荐")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeRecommendProduct>> list(@RequestParam(value = "productName", required = false) String productName,
+                                                                  @RequestParam(value = "recommendStatus", required = false) Integer recommendStatus,
+                                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeRecommendProduct> homeBrandList = recommendProductService.list(productName, recommendStatus, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(homeBrandList));
+    }
+}

+ 80 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/SmsHomeRecommendSubjectController.java

@@ -0,0 +1,80 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.SmsHomeRecommendSubject;
+import com.hwrj.cloud.admin.service.SmsHomeRecommendSubjectService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页专题推荐管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsHomeRecommendSubjectController", description = "首页专题推荐管理")
+@RequestMapping("/home/recommendSubject")
+public class SmsHomeRecommendSubjectController {
+    @Autowired
+    private SmsHomeRecommendSubjectService recommendSubjectService;
+
+    @ApiOperation("添加首页推荐专题")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsHomeRecommendSubject> homeBrandList) {
+        int count = recommendSubjectService.create(homeBrandList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改推荐排序")
+    @RequestMapping(value = "/update/sort/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateSort(@PathVariable Long id, Integer sort) {
+        int count = recommendSubjectService.updateSort(id, sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除推荐")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = recommendSubjectService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量修改推荐状态")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
+        int count = recommendSubjectService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询推荐")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeRecommendSubject>> list(@RequestParam(value = "subjectName", required = false) String subjectName,
+                                                                  @RequestParam(value = "recommendStatus", required = false) Integer recommendStatus,
+                                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeRecommendSubject> homeBrandList = recommendSubjectService.list(subjectName, recommendStatus, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(homeBrandList));
+    }
+}

+ 254 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsAdminController.java

@@ -0,0 +1,254 @@
+package com.hwrj.cloud.admin.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import com.hwrj.cloud.admin.model.*;
+import com.hwrj.cloud.admin.util.CurrUserUtil;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.UmsAdminLoginParam;
+import com.hwrj.cloud.admin.dto.UmsAdminParam;
+import com.hwrj.cloud.admin.dto.UpdateAdminPasswordParam;
+import com.hwrj.cloud.admin.service.UmsAdminCacheService;
+import com.hwrj.cloud.admin.service.UmsAdminService;
+import com.hwrj.cloud.admin.service.UmsRoleService;
+import com.hwrj.cloud.common.exception.GlobalException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.security.Principal;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 后台用户管理
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "UmsAdminController", description = "后台用户管理")
+@RequestMapping("/admin")
+public class UmsAdminController {
+    @Value("${jwt.tokenHeader}")
+    private String tokenHeader;
+    @Value("${jwt.tokenHead}")
+    private String tokenHead;
+    @Autowired
+    private UmsAdminService adminService;
+    @Autowired
+    private UmsRoleService roleService;
+
+    @Autowired
+    private UmsAdminCacheService umsAdminCacheService;
+
+    @ApiOperation(value = "用户注册")
+    @RequestMapping(value = "/register", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult<UmsAdmin> register(@RequestBody @Validated UmsAdminParam umsAdminParam, BindingResult result) {
+        UmsAdmin umsAdmin = adminService.register(umsAdminParam);
+        if (umsAdmin == null) {
+            CommonResult.failed();
+        }
+        return CommonResult.success(umsAdmin);
+    }
+
+    @ApiOperation(value = "登录以后返回token")
+    @RequestMapping(value = "/login", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) {
+        String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword());
+        if (token == null) {
+            return CommonResult.validateFailed("用户名或密码错误");
+        }
+        Map<String, String> tokenMap = new HashMap<>();
+        tokenMap.put("token", token);
+        tokenMap.put("tokenHead", tokenHead);
+        return CommonResult.success(tokenMap);
+    }
+
+    @ApiOperation(value = "刷新token")
+    @RequestMapping(value = "/refreshToken", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult refreshToken(HttpServletRequest request) {
+        String token = request.getHeader(tokenHeader);
+        String refreshToken = adminService.refreshToken(token);
+        UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+        if (refreshToken == null) {
+            umsAdminCacheService.delToken(userDetails.getUsername());
+            return CommonResult.failed("token已经过期!");
+        }
+        Map<String, String> tokenMap = new HashMap<>();
+        tokenMap.put("token", refreshToken);
+        tokenMap.put("tokenHead", tokenHead);
+        umsAdminCacheService.setToken(userDetails.getUsername(), tokenHead + refreshToken);
+        return CommonResult.success(tokenMap);
+    }
+
+    @ApiOperation(value = "获取当前登录用户信息")
+    @RequestMapping(value = "/info", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult getAdminInfo(Principal principal) {
+        if (principal == null) {
+            return CommonResult.unauthorized(null);
+        }
+        String username = principal.getName();
+        UmsAdmin umsAdmin = adminService.getAdminByUsername(username);
+        Long id = umsAdmin.getId();
+        Map<String, Object> data = new HashMap<>();
+        data.put("username", umsAdmin.getUsername());
+        data.put("icon", umsAdmin.getIcon());
+        List<UmsMenu> menuList = roleService.getMenuList(id);
+        data.put("menus", menuList);
+        //判断是不是admin 是admin 全部权限
+        List<UmsResource> resourceList = adminService.getResourceList(id);
+        if (CollUtil.isNotEmpty(resourceList)) {
+            List<String> roles = resourceList.stream().map(UmsResource::getUrl).collect(Collectors.toList());
+            data.put("resource", roles);
+        }
+        List<UmsRole> roleList = adminService.getRoleList(id);
+        if (CollUtil.isNotEmpty(roleList)) {
+            List<String> roles = roleList.stream().map(UmsRole::getName).collect(Collectors.toList());
+            data.put("roles", roles);
+        }
+        return CommonResult.success(data);
+    }
+
+    @Autowired
+    private UmsAdminCacheService adminCacheService;
+
+    @ApiOperation(value = "登出功能")
+    @RequestMapping(value = "/logout", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult logout() {
+        adminCacheService.delToken(CurrUserUtil.getUmsAdmin().getUsername());
+        adminCacheService.delAdmin((long) CurrUserUtil.getUserId());
+        adminCacheService.delResourceList((long) CurrUserUtil.getUserId());
+        return CommonResult.success(null);
+    }
+
+    @ApiOperation("根据用户名或姓名分页获取用户列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsAdmin>> list(@RequestParam(value = "keyword", required = false) String keyword,
+                                                   @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                   @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<UmsAdmin> adminList = adminService.list(keyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(adminList));
+    }
+
+    @ApiOperation("获取指定用户信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<UmsAdmin> getItem(@PathVariable Long id) {
+        UmsAdmin admin = adminService.getItem(id);
+        return CommonResult.success(admin);
+    }
+
+    @ApiOperation("修改指定用户信息")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody @Validated UmsAdminParam umsAdminParam) {
+
+        UmsAdmin admin = new UmsAdmin();
+        BeanUtils.copyProperties(umsAdminParam, admin);
+        int count = adminService.update(id, admin);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改指定用户密码")
+    @RequestMapping(value = "/updatePassword", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updatePassword(@RequestBody UpdateAdminPasswordParam updatePasswordParam) {
+        int status = adminService.updatePassword(updatePasswordParam);
+        if (status > 0) {
+            return CommonResult.success(status);
+        } else if (status == -1) {
+            return CommonResult.failed("提交参数不合法");
+        } else if (status == -2) {
+            return CommonResult.failed("找不到该用户");
+        } else if (status == -3) {
+            return CommonResult.failed("旧密码错误");
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("删除指定用户信息")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = adminService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改帐号状态")
+    @RequestMapping(value = "/updateStatus/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, @RequestParam(value = "status") Integer status) {
+
+        UmsAdmin umsAdmin = new UmsAdmin();
+        umsAdmin.setStatus(status);
+        int count = adminService.updateStatus(id, umsAdmin);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("给用户分配角色")
+    @RequestMapping(value = "/role/update", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRole(@RequestParam("adminId") Long adminId,
+                                   @RequestParam("roleIds") List<Long> roleIds) {
+        int count = adminService.updateRole(adminId, roleIds);
+        if (count >= 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取指定用户的角色")
+    @RequestMapping(value = "/role/{adminId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsRole>> getRoleList(@PathVariable Long adminId) {
+        List<UmsRole> roleList = adminService.getRoleList(adminId);
+        return CommonResult.success(roleList);
+    }
+
+    @ApiOperation("给用户分配+-权限")
+    @RequestMapping(value = "/permission/update", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updatePermission(@RequestParam Long adminId,
+                                         @RequestParam("permissionIds") List<Long> permissionIds) {
+        int count = adminService.updatePermission(adminId, permissionIds);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取用户所有权限(包括+-权限)")
+    @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsPermission>> getPermissionList(@PathVariable Long adminId) {
+        List<UmsPermission> permissionList = adminService.getPermissionList(adminId);
+        return CommonResult.success(permissionList);
+    }
+}

+ 169 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsCompanyController.java

@@ -0,0 +1,169 @@
+package com.hwrj.cloud.admin.controller;
+
+
+import com.hwrj.cloud.admin.dto.UmsCompanyDto;
+import com.hwrj.cloud.admin.dto.param.CompanyWebPageParam;
+import com.hwrj.cloud.admin.dto.param.SelectNewVo;
+import com.hwrj.cloud.admin.dto.param.SelectVo;
+import com.hwrj.cloud.admin.excelEntity.UmsCompanyInfoExcel;
+import com.hwrj.cloud.admin.model.UmsAdmin;
+import com.hwrj.cloud.admin.service.UmsAdminService;
+import com.hwrj.cloud.admin.service.UmsCompanyService;
+import com.hwrj.cloud.admin.util.CurrUserUtil;
+import com.hwrj.cloud.admin.util.EasyExcelUtil;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.models.Model;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@Api(tags = "UmsCompanyController", description = "供应商信息")
+@RequestMapping("/umsCompany")
+@Slf4j
+public class UmsCompanyController {
+
+
+    @Autowired
+    private UmsCompanyService umsCompanyService;
+
+    @Autowired
+    private UmsAdminService adminService;
+
+    @ApiOperation(value = "添加供应商")
+    @PutMapping("/info/add")
+    @ResponseBody
+    public CommonResult infoAdd(@RequestBody UmsCompanyDto dto,Principal principal){
+        Long userId = getUserId(principal);
+
+        dto.setCreateId(userId);
+        umsCompanyService.add(dto);
+        return CommonResult.success();
+    }
+
+    @ApiOperation(value = "修改供应商")
+    @PutMapping("/info/update")
+    @ResponseBody
+    public CommonResult infoUpdate(@RequestBody UmsCompanyDto dto,Principal principal){
+        Long userId = getUserId(principal);
+
+        dto.setCreateId(userId);
+        umsCompanyService.update(dto);
+        return CommonResult.success();
+    }
+
+    @ApiOperation(value = "删除供应商")
+    @GetMapping("/info/delete")
+    @ResponseBody
+    public CommonResult infoDelete(@RequestParam(value = "compId")Long compId,Principal principal){
+        Long userId = getUserId(principal);
+
+        umsCompanyService.delete(compId);
+        return CommonResult.success();
+    }
+
+    @ApiOperation(value = "获取供应商列表")
+    @GetMapping("/dt/list")
+    @ResponseBody
+    public CommonResult list(CompanyWebPageParam companyWebPageParam){
+
+        Map<String,Object> obj= umsCompanyService.getCompanyInfoList(companyWebPageParam);
+        return CommonResult.success(obj);
+    }
+
+    @ApiOperation(value = "获取供应商列表")
+    @GetMapping("/select/list")
+    @ResponseBody
+    public CommonResult selectList(){
+
+        List<SelectNewVo> list = umsCompanyService.selectList();
+        return CommonResult.success(list);
+    }
+
+    @ApiOperation(value = "获取供应商列表")
+    @GetMapping("/select/alllist")
+    @ResponseBody
+    public CommonResult alllist(){
+
+        List<SelectVo> list = umsCompanyService.alllist();
+        return CommonResult.success(list);
+    }
+
+    @ApiOperation(value = "获取供应商详细信息")
+    @GetMapping("/dt/detail")
+    @ResponseBody
+    public CommonResult detail(@RequestParam(value = "compId")Long compId){
+
+        UmsCompanyDto dto = umsCompanyService.getDetailCompany(compId);
+        return CommonResult.success(dto);
+    }
+
+
+
+
+    /**
+     * 导入excel
+     * @param request
+     * @param model
+     * @param files
+     * @return
+     * @throws Exception
+     */
+    @ApiOperation(value = "供应商导入")
+    @RequestMapping(value = "excelImport", method = {RequestMethod.GET, RequestMethod.POST })
+    @ResponseBody
+    public CommonResult excelImport(HttpServletRequest request, Model model, @RequestParam("uploadFile") MultipartFile[] files, Principal principal) throws Exception {
+        Long userId = getUserId(principal);
+        List<UmsCompanyInfoExcel> listAll = new ArrayList<>();
+        if(files != null && files.length > 0){
+            MultipartFile file = files[0];
+            List<Object> list = EasyExcelUtil.readExcel(file, new UmsCompanyInfoExcel(),1,2);
+            if(list != null && list.size() > 0){
+                for(Object o : list){
+                    UmsCompanyInfoExcel umsCompanyInfoExcel = (UmsCompanyInfoExcel) o;
+                    umsCompanyInfoExcel.setCreateId(userId);
+                    listAll.add(umsCompanyInfoExcel);
+                }
+            }
+        }
+        umsCompanyService.importExcel(listAll);
+
+        return CommonResult.success(listAll);
+    }
+
+
+    public Long getUserId(Principal principal){
+        Long userId = null;
+        try {
+            String username = principal.getName();
+
+            if (!StringUtils.isEmpty(username)){
+                UmsAdmin umsAdmin = adminService.getAdminByUsername(username);
+                userId = umsAdmin.getId();
+            }
+        }catch (Exception e){
+            log.info("获取用户id失败");
+        }
+        return userId;
+    }
+
+    public CommonResult deleteFile(@RequestParam(value = "id")Long id){
+
+        return CommonResult.success();
+    }
+
+
+
+}

+ 69 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsCompanyShareController.java

@@ -0,0 +1,69 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.model.UmsCompanyShare;
+import com.hwrj.cloud.admin.service.UmsCompanyShareService;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@Api(tags = "UmsCompanyShareController",description = "供应商分享码id")
+@RestController
+@RequestMapping("/comp/share")
+public class UmsCompanyShareController {
+    @Autowired
+    private UmsCompanyShareService umsCompanyShareService;
+
+    @ApiOperation(value = "分享码生成")
+    @GetMapping("/add")
+    public CommonResult shareCodeAdd(@RequestParam(required = true,value = "compId")Long compId, @RequestParam(required = true,value = "compName")String compName){
+        String s = umsCompanyShareService.addShare(compId, compName);
+        if (StringUtils.isEmpty(s)){
+            return CommonResult.failed("邀请码生成失败");
+        }
+        return CommonResult.success();
+    }
+
+    @ApiOperation(value = "获取供应商的分享码列表")
+    @GetMapping("/list")
+    public CommonResult shareCodeList(@RequestParam("compId")Long compId,
+                                      @RequestParam(required = false,value = "status",defaultValue = "8")int status,
+                                      @RequestParam(required = false,value = "pageNo",defaultValue = "0")int pageNo,
+                                      @RequestParam(required = false,value = "pageSize",defaultValue = "10")int pageSize){
+        List<UmsCompanyShare> shares = umsCompanyShareService.shareList(compId, status, pageNo, pageSize);
+        if (shares == null||shares.size()<1){
+            return CommonResult.success();
+        }
+        return CommonResult.success(CommonPage.restPage(shares));
+    }
+
+    @ApiOperation(value = "获取供应商的分享码列表")
+    @GetMapping("/detail")
+    public CommonResult shareCodeList(@RequestParam("id")Long id){
+        UmsCompanyShare share = umsCompanyShareService.shareDetail(id);
+        if (share == null){
+            return CommonResult.failed("获取详情失败");
+        }
+        return CommonResult.success(share);
+    }
+
+
+    @ApiOperation(value = "删除供应商分享码")
+    @GetMapping("/delete")
+    public CommonResult shareCodeDelete(@RequestParam("id")Long id){
+        umsCompanyShareService.shareUpdate(id,2);
+        return CommonResult.success();
+    }
+
+
+}

+ 35 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsMemberLevelController.java

@@ -0,0 +1,35 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.UmsMemberLevel;
+import com.hwrj.cloud.admin.service.UmsMemberLevelService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 会员等级管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "UmsMemberLevelController", description = "会员等级管理")
+@RequestMapping("/memberLevel")
+public class UmsMemberLevelController {
+    @Autowired
+    private UmsMemberLevelService memberLevelService;
+
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ApiOperation("查询所有会员等级")
+    @ResponseBody
+    public CommonResult<List<UmsMemberLevel>> list(@RequestParam("defaultStatus") Integer defaultStatus) {
+        List<UmsMemberLevel> memberLevelList = memberLevelService.list(defaultStatus);
+        return CommonResult.success(memberLevelList);
+    }
+}

+ 161 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsMemberOriginController.java

@@ -0,0 +1,161 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.dto.UmsMemberOriginParam;
+import com.hwrj.cloud.admin.dto.param.MemberWebPageParam;
+import com.hwrj.cloud.admin.dto.param.SelectVo;
+import com.hwrj.cloud.admin.excelEntity.UmsMemberOriginExcel;
+import com.hwrj.cloud.admin.listener.ImportExcelEventListener;
+import com.hwrj.cloud.admin.service.UmsMemberOriginService;
+import com.hwrj.cloud.admin.util.CurrUserUtil;
+import com.hwrj.cloud.admin.util.EasyExcelUtil;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.common.exception.GlobalException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+import java.io.IOException;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @className:
+ * @description: 生产地信息表
+ * @author: lym
+ * @date: 2020/9/5 10:38
+ */
+@RestController
+@Api(description = "生产地信息管理")
+@RequestMapping("/origin")
+public class UmsMemberOriginController {
+
+    @Autowired
+    private UmsMemberOriginService umsMemberOriginService;
+    @Autowired
+    private ImportExcelEventListener importExcelEventListener;
+
+    @ApiOperation(value = "导入生产地信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file",value = "导入文件",required = true,paramType = "MultipartFile" )
+    })
+    @GetMapping("/import")
+    public CommonResult importExcel(@RequestParam("file") MultipartFile file, Principal principal){
+        List<UmsMemberOriginExcel> listAll = new ArrayList<>();
+        if(file != null){
+            List<Object> list = null;
+            try {
+                list = EasyExcelUtil.readExcel(file, new UmsMemberOriginExcel(),2,2);
+            } catch (IOException e) {
+                //e.printStackTrace();
+                throw new GlobalException(1,"上传文件错误!");
+            }
+            if(list != null && list.size() > 0){
+                for(Object obj : list){
+                    UmsMemberOriginExcel excel = (UmsMemberOriginExcel) obj;
+                    excel.setCreateId(CurrUserUtil.getUserId());
+                    excel.setState(0);
+                    listAll.add(excel);
+                }
+            }
+        }
+        int saveNum = 0;
+        if (listAll != null && listAll.size() > 0){
+            int batchNum = 500;
+            if (listAll.size() > batchNum){
+                List<UmsMemberOriginExcel> list = listAll.subList(0,batchNum);
+                saveNum = umsMemberOriginService.batchSave(list);
+                //if (saveNum > 0){ //存在前面数据已存在情况
+                    //异步导入
+                    importExcelEventListener.batchSaveOriginExcel(listAll.subList(batchNum,listAll.size()));
+                    return CommonResult.success(null,"正在导入数据,请稍后刷新!");
+                //}
+            }
+            saveNum = umsMemberOriginService.batchSave(listAll);
+            if (saveNum < 1){
+                return CommonResult.success(null,"导入数据已存在,请勿重复导入");
+            }
+        }
+
+        return CommonResult.success();
+    }
+
+    @ApiOperation(value = "查询列表",notes = "查询列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "origin",value = "生产地信息",required = true,paramType = "UmsMemberOriginProductParam")
+    })
+    @PostMapping("/list")
+    public CommonResult list(@RequestBody MemberWebPageParam origin){
+        List<UmsMemberOriginParam> list = umsMemberOriginService.list(origin);
+        return CommonResult.success(CommonPage.restPage(list));
+    }
+
+    @ApiOperation(value = "生产地下拉列表",notes = "查询列表")
+    @PostMapping("/list/select")
+    public CommonResult listSelect(){
+        List<SelectVo> list = umsMemberOriginService.listSelect(CurrUserUtil.getCompId());
+        return CommonResult.success(list);
+    }
+
+    @ApiOperation(value = "新增生产地信息",notes = "新增生产地信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "origin",value = "生产地信息",required = true,paramType = "UmsMemberOriginProductParam")
+    })
+    @PostMapping("/save")
+    public CommonResult save(@RequestBody @Valid UmsMemberOriginParam origin){
+//        if (StringUtils.isEmpty(CurrUserUtil.getCompId())){
+//            throw new GlobalException(1,"用户未绑定供应商不能添加生产地!");
+//        }
+//        origin.setCompId(CurrUserUtil.getCompId());
+//        origin.setCompName(CurrUserUtil.getCompName());
+//        origin.setCreateId(CurrUserUtil.getUserId());
+        int i = umsMemberOriginService.save(origin);
+        return CommonResult.success(i);
+    }
+
+    @ApiOperation(value = "修改生产地信息",notes = "修改生产地信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "origin",value = "生产地信息",required = true,paramType = "UmsMemberOriginProductParam")
+    })
+    @PostMapping("/update")
+    public CommonResult update(@RequestBody @Valid UmsMemberOriginParam origin){
+//        if (StringUtils.isEmpty(CurrUserUtil.getCompId())){
+//            throw new GlobalException(1,"用户未绑定供应商不能编辑生产地!");
+//        }
+//        origin.setCompId(CurrUserUtil.getCompId());
+//        origin.setCompName(CurrUserUtil.getCompName());
+//        origin.setUpdateId(CurrUserUtil.getUserId());
+        int i= umsMemberOriginService.update(origin);
+        if (i > 0){
+            return CommonResult.success(i);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation(value = "查询生产地详细信息",notes = "查询生产地详细信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id",value = "主键",required = true,paramType = "Long")
+    })
+    @GetMapping("/findById")
+    public CommonResult findById(@RequestParam("id") long id){
+        UmsMemberOriginParam param = umsMemberOriginService.findById(id);
+        return CommonResult.success(param);
+    }
+
+    @ApiOperation(value = "删除生产地信息",notes = "删除生产地信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id",value = "主键",required = true,paramType = "Long")
+    })
+    @GetMapping("/delete")
+    public CommonResult delete(@RequestParam("id") long id){
+        int i = umsMemberOriginService.delete(id);
+        return CommonResult.success(i);
+    }
+}

+ 85 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsMemberOriginProductController.java

@@ -0,0 +1,85 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.admin.dto.UmsMemberOriginProductParam;
+import com.hwrj.cloud.admin.model.UmsMemberOriginProduct;
+import com.hwrj.cloud.admin.service.UmsMemberOriginProductService;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.common.exception.GlobalException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @className:
+ * @description:
+ * @author: lym
+ * @date: 2020/9/7 9:57
+ */
+@RestController
+@RequestMapping("/originProduct")
+@Api(description = "生产地产出物管理")
+public class UmsMemberOriginProductController {
+
+    @Autowired
+    private UmsMemberOriginProductService umsMemberOriginProductService;
+
+    @ApiOperation(value = "查询列表",notes = "查询列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "originProduct",value = "",required = true,paramType = "UmsMemberOriginProductParam")
+    })
+    @PostMapping("/list")
+    public CommonResult list(@RequestBody UmsMemberOriginProductParam originProduct){
+        List<UmsMemberOriginProduct> list = umsMemberOriginProductService.list(originProduct);
+        return CommonResult.success(CommonPage.restPage(list));
+    }
+
+    @ApiOperation(value = "添加产出物信息",notes = "添加产出物信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "originProduct",value = "产出物信息",required = true,paramType = "UmsMemberOriginProductParam")
+    })
+    @PostMapping("/save")
+    public CommonResult save(@RequestBody @Valid UmsMemberOriginProductParam originProduct){
+        int i = umsMemberOriginProductService.save(originProduct);
+        if (i > 0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation(value = "修改产出物信息",notes = "修改产出物信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "originProduct",value = "产出物信息",required = true,paramType = "UmsMemberOriginProductParam")
+    })
+    @PostMapping("/update")
+    public CommonResult update(@RequestBody @Valid UmsMemberOriginProductParam originProduct){
+        if (StringUtils.isEmpty(originProduct.getId())){
+            throw new GlobalException(500,"主键不为空!");
+        }
+        int i = umsMemberOriginProductService.update(originProduct);
+        if (i > 0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation(value = "删除产出物信息",notes = "删除产出物信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id",value = "主键",required = true,paramType = "String")
+    })
+    @GetMapping("/delete")
+    public CommonResult delete(@RequestParam("id") long id){
+        int i = umsMemberOriginProductService.delete(id);
+        if (i > 0){
+            return CommonResult.success();
+        }
+        return CommonResult.failed();
+    }
+}

+ 102 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsMenuController.java

@@ -0,0 +1,102 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.UmsMenuNode;
+import com.hwrj.cloud.admin.model.UmsMenu;
+import com.hwrj.cloud.admin.service.UmsMenuService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台菜单管理Controller
+ * Created by macro on 2020/2/4.
+ */
+@Controller
+@Api(tags = "UmsMenuController", description = "后台菜单管理")
+@RequestMapping("/menu")
+public class UmsMenuController {
+
+    @Autowired
+    private UmsMenuService menuService;
+
+    @ApiOperation("添加后台菜单")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsMenu umsMenu) {
+        int count = menuService.create(umsMenu);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改后台菜单")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,
+                               @RequestBody UmsMenu umsMenu) {
+        int count = menuService.update(id, umsMenu);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据ID获取菜单详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<UmsMenu> getItem(@PathVariable Long id) {
+        UmsMenu umsMenu = menuService.getItem(id);
+        return CommonResult.success(umsMenu);
+    }
+
+    @ApiOperation("根据ID删除后台菜单")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = menuService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("分页查询后台菜单")
+    @RequestMapping(value = "/list/{parentId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsMenu>> list(@PathVariable Long parentId,
+                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<UmsMenu> menuList = menuService.list(parentId, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(menuList));
+    }
+
+    @ApiOperation("树形结构返回所有菜单列表")
+    @RequestMapping(value = "/treeList", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsMenuNode>> treeList() {
+        List<UmsMenuNode> list = menuService.treeList();
+        return CommonResult.success(list);
+    }
+
+    @ApiOperation("修改菜单显示状态")
+    @RequestMapping(value = "/updateHidden/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateHidden(@PathVariable Long id, @RequestParam("hidden") Integer hidden) {
+        int count = menuService.updateHidden(id, hidden);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+}

+ 73 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsPermissionController.java

@@ -0,0 +1,73 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.dto.UmsPermissionNode;
+import com.hwrj.cloud.admin.model.UmsPermission;
+import com.hwrj.cloud.admin.service.UmsPermissionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台用户权限管理
+ * Created by macro on 2018/9/29.
+ */
+@Controller
+@Api(tags = "UmsPermissionController", description = "后台用户权限管理")
+@RequestMapping("/permission")
+public class UmsPermissionController {
+    @Autowired
+    private UmsPermissionService permissionService;
+    @ApiOperation("添加权限")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsPermission permission) {
+        int count = permissionService.create(permission);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改权限")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody UmsPermission permission) {
+        int count = permissionService.update(id,permission);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("根据id批量删除权限")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = permissionService.delete(ids);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("以层级结构返回所有权限")
+    @RequestMapping(value = "/treeList", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsPermissionNode>> treeList() {
+        List<UmsPermissionNode> permissionNodeList = permissionService.treeList();
+        return CommonResult.success(permissionNodeList);
+    }
+
+    @ApiOperation("获取所有权限列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsPermission>> list() {
+        List<UmsPermission> permissionList = permissionService.list();
+        return CommonResult.success(permissionList);
+    }
+}

+ 69 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsResourceCategoryController.java

@@ -0,0 +1,69 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.UmsResourceCategory;
+import com.hwrj.cloud.admin.service.UmsResourceCategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台资源分类管理Controller
+ * Created by macro on 2020/2/5.
+ */
+@Controller
+@Api(tags = "UmsResourceCategoryController", description = "后台资源分类管理")
+@RequestMapping("/resourceCategory")
+public class UmsResourceCategoryController {
+    @Autowired
+    private UmsResourceCategoryService resourceCategoryService;
+
+    @ApiOperation("查询所有后台资源分类")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsResourceCategory>> listAll() {
+        List<UmsResourceCategory> resourceList = resourceCategoryService.listAll();
+        return CommonResult.success(resourceList);
+    }
+
+    @ApiOperation("添加后台资源分类")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsResourceCategory umsResourceCategory) {
+        int count = resourceCategoryService.create(umsResourceCategory);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改后台资源分类")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,
+                               @RequestBody UmsResourceCategory umsResourceCategory) {
+        int count = resourceCategoryService.update(id, umsResourceCategory);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据ID删除后台资源")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = resourceCategoryService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+}

+ 99 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsResourceController.java

@@ -0,0 +1,99 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.UmsResource;
+
+import com.hwrj.cloud.admin.service.UmsResourceService;
+import com.hwrj.cloud.security.component.DynamicSecurityMetadataSource;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台资源管理Controller
+ * Created by macro on 2020/2/4.
+ */
+@Controller
+@Api(tags = "UmsResourceController", description = "后台资源管理")
+@RequestMapping("/resource")
+public class UmsResourceController {
+
+    @Autowired
+    private UmsResourceService resourceService;
+    @Autowired
+    private DynamicSecurityMetadataSource dynamicSecurityMetadataSource;
+
+    @ApiOperation("添加后台资源")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsResource umsResource) {
+        int count = resourceService.create(umsResource);
+        dynamicSecurityMetadataSource.clearDataSource();
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改后台资源")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,
+                               @RequestBody UmsResource umsResource) {
+        int count = resourceService.update(id, umsResource);
+        dynamicSecurityMetadataSource.clearDataSource();
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据ID获取资源详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<UmsResource> getItem(@PathVariable Long id) {
+        UmsResource umsResource = resourceService.getItem(id);
+        return CommonResult.success(umsResource);
+    }
+
+    @ApiOperation("根据ID删除后台资源")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = resourceService.delete(id);
+        dynamicSecurityMetadataSource.clearDataSource();
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("分页模糊查询后台资源")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsResource>> list(@RequestParam(required = false) Long categoryId,
+                                                      @RequestParam(required = false) String nameKeyword,
+                                                      @RequestParam(required = false) String urlKeyword,
+                                                      @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                      @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<UmsResource> resourceList = resourceService.list(categoryId,nameKeyword, urlKeyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(resourceList));
+    }
+
+    @ApiOperation("查询所有后台资源")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsResource>> listAll() {
+        List<UmsResource> resourceList = resourceService.listAll();
+
+        return CommonResult.success(resourceList);
+    }
+}

+ 142 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsRoleController.java

@@ -0,0 +1,142 @@
+package com.hwrj.cloud.admin.controller;
+
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import com.hwrj.cloud.admin.model.*;
+import com.hwrj.cloud.admin.service.UmsRoleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台用户角色管理
+ * Created by macro on 2018/9/30.
+ */
+@Controller
+@Api(tags = "UmsRoleController", description = "后台用户角色管理")
+@RequestMapping("/role")
+public class UmsRoleController {
+    @Autowired
+    private UmsRoleService roleService;
+
+    @ApiOperation("添加角色")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsRole role) {
+        int count = roleService.create(role);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改角色")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody UmsRole role) {
+        int count = roleService.update(id, role);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除角色")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = roleService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取相应角色权限")
+    @RequestMapping(value = "/permission/{roleId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsPermission>> getPermissionList(@PathVariable Long roleId) {
+        List<UmsPermission> permissionList = roleService.getPermissionList(roleId);
+        return CommonResult.success(permissionList);
+    }
+
+    @ApiOperation("修改角色权限")
+    @RequestMapping(value = "/permission/update", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updatePermission(@RequestParam Long roleId,
+                                         @RequestParam("permissionIds") List<Long> permissionIds) {
+        int count = roleService.updatePermission(roleId, permissionIds);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取所有角色")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsRole>> listAll() {
+        List<UmsRole> roleList = roleService.list();
+        return CommonResult.success(roleList);
+    }
+
+    @ApiOperation("根据角色名称分页获取角色列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsRole>> list(@RequestParam(value = "keyword", required = false) String keyword,
+                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<UmsRole> roleList = roleService.list(keyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(roleList));
+    }
+
+    @ApiOperation("修改角色状态")
+    @RequestMapping(value = "/updateStatus/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, @RequestParam(value = "status") Integer status) {
+        UmsRole umsRole = new UmsRole();
+        umsRole.setStatus(status);
+        int count = roleService.update(id, umsRole);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取角色相关菜单")
+    @RequestMapping(value = "/listMenu/{roleId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsMenu>> listMenu(@PathVariable Long roleId) {
+        List<UmsMenu> roleList = roleService.listMenu(roleId);
+        return CommonResult.success(roleList);
+    }
+
+    @ApiOperation("获取角色相关资源")
+    @RequestMapping(value = "/listResource/{roleId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsResource>> listResource(@PathVariable Long roleId) {
+        List<UmsResource> roleList = roleService.listResource(roleId);
+        return CommonResult.success(roleList);
+    }
+
+    @ApiOperation("给角色分配菜单")
+    @RequestMapping(value = "/allocMenu", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult allocMenu(@RequestParam Long roleId, @RequestParam List<Long> menuIds) {
+        int count = roleService.allocMenu(roleId, menuIds);
+        return CommonResult.success(count);
+    }
+
+    @ApiOperation("给角色分配资源")
+    @RequestMapping(value = "/allocResource", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult allocResource(@RequestParam Long roleId, @RequestParam List<Long> resourceIds) {
+        int count = roleService.allocResource(roleId, resourceIds);
+        return CommonResult.success(count);
+    }
+
+}

+ 175 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UmsRollBuyController.java

@@ -0,0 +1,175 @@
+package com.hwrj.cloud.admin.controller;
+
+
+
+import com.hwrj.cloud.admin.excelEntity.UmsRollBuyParam;
+import com.hwrj.cloud.admin.model.UmsRollBuy;
+import com.hwrj.cloud.admin.service.UmsRollBuyService;
+import com.hwrj.cloud.admin.util.EasyExcelUtil;
+import com.hwrj.cloud.common.api.CommonPage;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 走马灯Controller
+ */
+@Controller
+@Api(tags = "UmsRollBuyController", description = "走马灯")
+@RequestMapping("/rollbuy")
+public class UmsRollBuyController {
+    @Autowired
+    private UmsRollBuyService umsRollBuyService;
+
+
+
+
+    @ApiOperation("添加")
+    @PostMapping("/add")
+    @ResponseBody
+    public CommonResult add(@RequestBody UmsRollBuy subject){
+        int i = umsRollBuyService.add(subject);
+        if (i==0){
+           return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+    @ApiOperation("修改")
+    @PostMapping("/update")
+    @ResponseBody
+    public CommonResult update(@RequestBody UmsRollBuy subject){
+        int i = umsRollBuyService.update(subject);
+        if (i==0){
+            return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+
+    @ApiOperation("删除")
+    @GetMapping("/del")
+    @ResponseBody
+    public CommonResult delete(@RequestParam(value = "id")Long id){
+        int i = umsRollBuyService.delete(id);
+        if (i==0){
+            return CommonResult.failed();
+        }
+        return CommonResult.success();
+    }
+
+    @ApiOperation("详细信息")
+    @GetMapping("/get")
+    @ResponseBody
+    public CommonResult<UmsRollBuy> get(@RequestParam(value = "id")Long id){
+        UmsRollBuy i = umsRollBuyService.info(id);
+        if (i==null){
+            return CommonResult.failed();
+        }
+        return CommonResult.success(i);
+    }
+
+    @ApiOperation("分页获取")
+    @GetMapping("/page")
+    @ResponseBody
+    public CommonResult<CommonPage<UmsRollBuy>> get(@RequestParam(value = "keyword",required = false)String keyword
+            ,@RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum
+            ,@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){
+        List<UmsRollBuy> categories = umsRollBuyService.page(keyword, pageNum, pageSize);
+
+        return CommonResult.success(CommonPage.restPage(categories));
+    }
+
+    /**
+     * 导入excel
+     * @param files
+     * @return
+     * @throws Exception
+     */
+    @ApiOperation(value = "导入")
+    @RequestMapping(value = "excelImport", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult excelImport( @RequestParam("uploadFile") MultipartFile[] files,@RequestParam(value = "type",required = false)Integer type) throws Exception {
+        List<UmsRollBuy> listAll = new ArrayList<>();
+        if(files != null && files.length > 0){
+            MultipartFile file = files[0];
+            List<Object> list = EasyExcelUtil.readExcel(file, new UmsRollBuyParam(),1,2);
+            if(list != null && list.size() > 0){
+                for(Object o : list){
+                    UmsRollBuyParam umsRollBuyParam = (UmsRollBuyParam) o;
+                    UmsRollBuy umsRollBuy = new UmsRollBuy();
+                    BeanUtils.copyProperties(umsRollBuyParam,umsRollBuy);
+                    listAll.add(umsRollBuy);
+                }
+            }
+        }
+        int i = umsRollBuyService.importExcel(listAll);
+        if (i<1){
+            return CommonResult.failed();
+        }
+
+        return CommonResult.success();
+    }
+    @ApiOperation("导出模板")
+    @PostMapping(value = "/out")
+    public void out(HttpServletResponse response) throws IOException {
+
+        //定义文件名和文件地址
+        String downloadUrl = "excel/model/zoumaModel.xlsx";
+        Resource resource = null;
+        try {
+            //获取资源文件
+            resource = new ClassPathResource(downloadUrl);
+        } catch (Exception e) {
+            //自定义业务异常
+            throw new RuntimeException("导出模板失败!");
+        }
+        byte[] buff = new byte[1024];
+        BufferedInputStream bis = null;
+        OutputStream os = null;
+        try {
+            // 配置文件下载
+            response.setHeader("content-type", "application/octet-stream");
+            response.setContentType("application/octet-stream");
+            // 下载文件能正常显示中文
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("商品导入模板.xlsx", "UTF-8"));
+
+            os = response.getOutputStream();
+            bis = new BufferedInputStream(resource.getInputStream());
+            int i = bis.read(buff);
+            while (i != -1) {
+                os.write(buff, 0, buff.length);
+                os.flush();
+                i = bis.read(buff);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw new RuntimeException("文件下载出错!");
+        } finally {
+            if (bis != null) {
+                try {
+                    bis.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+
+    }
+}

+ 672 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/controller/UploadCompanyInfoAndProductController.java

@@ -0,0 +1,672 @@
+package com.hwrj.cloud.admin.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.hwrj.cloud.admin.dao.PmsProductExcelDao;
+import com.hwrj.cloud.admin.dto.param.ForestPath;
+import com.hwrj.cloud.admin.dto.param.PmsProductExcel;
+import com.hwrj.cloud.admin.dto.param.PmsProductExcelParam;
+import com.hwrj.cloud.admin.dto.utilEntity.LagLatEntity;
+import com.hwrj.cloud.admin.excelEntity.UmsCompanyInfoExcel;
+import com.hwrj.cloud.admin.excelEntity.UmsMemberOriginExcel;
+import com.hwrj.cloud.admin.listener.ImportExcelEventListener;
+import com.hwrj.cloud.admin.mapper.PmsProductMapper;
+import com.hwrj.cloud.admin.mapper.UmsCompanyFileMapper;
+import com.hwrj.cloud.admin.mapper.UmsCompanyInfoMapper;
+import com.hwrj.cloud.admin.mapper.UmsMemberOriginMapper;
+import com.hwrj.cloud.admin.model.*;
+import com.hwrj.cloud.admin.service.UmsCompanyService;
+import com.hwrj.cloud.admin.service.UmsMemberOriginService;
+import com.hwrj.cloud.admin.util.*;
+import com.hwrj.cloud.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.entity.ContentType;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("/first")
+@Api(tags = "第一次上传用")
+@Slf4j
+public class UploadCompanyInfoAndProductController {
+
+    @Autowired
+    private UploadFileUtil uploadFileUtil;
+
+
+    @Value("${qiniu.path}")
+    private String url;
+    @Autowired
+    private CompanyLatLagGet companyLatLagGet;
+
+    List<PmsProductExcelParam> listAll = new ArrayList<>();
+
+
+    @ApiOperation("上传文件")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "paths", value = "文件路径", required = true),
+            @ApiImplicitParam(name = "type", value = "上传类型", required = true, allowableValues = "1,2,3"),
+            @ApiImplicitParam(name = "compName", value = "公司名称", required = false)
+    })
+    @PostMapping("/upload")
+    @Transactional
+    public CommonResult readFile(@RequestParam(value = "paths") String paths, @RequestParam(value = "type") String type, @RequestParam(value = "compName", required = false) String compName) {
+
+        if ("1".equals(type)) {
+            String filepath = paths;
+            List<String> file = getDirectory(filepath);
+            List<ForestPath> list = new ArrayList<>();
+            file.stream().forEach(item -> {
+                ForestPath forestPath = new ForestPath();
+                forestPath.setCompanyName(item);
+                forestPath.setPath(filepath + "\\" + item);
+                forestPath.setType("1");
+                System.out.println(item);
+                list.add(forestPath);
+            });
+            for (ForestPath path : list) {
+                return excelPut(path);
+            }
+        } else if ("2".equals(type)) {
+            ForestPath fs = new ForestPath();
+            fs.setCompanyName(compName);
+            fs.setPath(paths);
+            return excelPut(fs);
+        } else if ("3".equals(type)) {
+            ForestPath fs = new ForestPath();
+            fs.setPath(paths + "\\" + compName);
+            fs.setCompanyName(compName);
+            return excelPut(fs);
+        }
+
+        return CommonResult.success();
+
+    }
+
+    /**
+     * 上传公司的excel
+     *
+     * @param forestPath
+     */
+    public CommonResult excelPut(ForestPath forestPath) {
+        String company = forestPath.getCompanyName();
+
+
+        List<String> strings = getDirectory(forestPath.getPath());
+        List<String> excel = getFile(forestPath.getPath());
+        for (String path : excel) {
+            if (path.endsWith(".xlsx")) {
+                company = addCompanyInfo(new File(forestPath.getPath() + "\\" + path), company);
+                System.out.println("供应商导入表格--" + path);
+            }
+        }
+        if (StringUtils.isEmpty(company)) {
+            return CommonResult.failed("导表失败");
+        }
+        Long companyId = companyId(company);
+        List<ForestPath> list = new ArrayList<>();
+        for (String str : strings) {
+            ForestPath forestPath1 = new ForestPath();
+            forestPath1.setType("2");
+            forestPath1.setPath(forestPath.getPath() + "\\" + str);
+            forestPath1.setCompanyName(str);
+            list.add(forestPath1);
+
+        }
+        for (ForestPath p : list) {
+            if ("产品".equals(p.getCompanyName())) {
+                addProductImg(p, company, companyId);
+            } else if ("供应商".equals(p.getCompanyName())) {
+                addCompanyImg(p, company, companyId);
+            } else if ("生产地".equals(p.getCompanyName())) {
+                addOriginImg(p, company, companyId);
+            } else {
+                System.out.println("没有对应文件夹的处理方式---" + p.getCompanyName());
+            }
+        }
+        return CommonResult.success();
+
+
+    }
+
+    @Autowired
+    private UmsCompanyFileMapper umsCompanyFileMapper;
+
+    public void addCompanyImg(ForestPath forestPath, String companyName, Long companyId) {
+        String path = forestPath.getPath();
+        List<String> file = getFile(path);
+        String br = "0/3/" + companyId + "/";
+        int i = 0;
+        List<UmsCompanyFile> files = new ArrayList<>();
+        for (String str : file) {
+            String s = OrderNo.NextOrderNo();
+            UmsCompanyFile infoFile = new UmsCompanyFile();
+            infoFile.setUpdateTime(new Date());
+            infoFile.setCompId(companyId(companyName));
+            infoFile.setFileStatus(0);
+            String imgName = br + s;
+            str = str.toLowerCase();
+            String[] split = null;
+            try {
+                split = str.split("\\.");
+            } catch (Exception e) {
+                throw new RuntimeException("获取文件后缀出错!=======>" + split);
+            }
+            imgName = imgName + "." + split[1];
+            String filePath = path + "\\" + str;
+            infoFile.setFileUrl(url + imgName);
+            if (str.contains("公众号二维码")) {
+                infoFile.setFileType("qrl");
+                uploadFileUtil.uploadLocalFile(filePath, imgName);
+            } else if (str.contains("logo")) {
+                infoFile.setFileType("logo");
+                uploadFileUtil.uploadLocalFile(filePath, imgName);
+
+            } else if (str.contains("供应商资质")) {
+                infoFile.setFileType("cert");
+                uploadFileUtil.uploadLocalFile(filePath, imgName);
+
+
+            } else if (str.contains("供应商图片")) {
+                infoFile.setFileType("company");
+                uploadFileUtil.uploadLocalFile(filePath, imgName);
+            } else {
+                i = 1;
+                System.err.println("没有对应的照片");
+            }
+
+            if (i == 0) {
+                infoFile.setCreateTime(new Date());
+                umsCompanyFileMapper.insertSelective(infoFile);
+            }
+            i = 0;
+        }
+
+    }
+
+
+    @Autowired
+    private UmsCompanyInfoMapper umsCompanyInfoMapper;
+
+    public Long companyId(String compName) {
+        if (StringUtils.isEmpty(compName)) {
+            return null;
+        }
+        UmsCompanyInfoExample example = new UmsCompanyInfoExample();
+        UmsCompanyInfoExample.Criteria criteria = example.createCriteria();
+        criteria.andCompNameEqualTo(compName);
+        example.setOrderByClause("create_time desc");
+        List<UmsCompanyInfo> umsCompanyInfos = umsCompanyInfoMapper.selectByExample(example);
+        if (umsCompanyInfos != null && umsCompanyInfos.size() > 0) {
+            return umsCompanyInfos.get(0).getId();
+        } else {
+            return null;
+        }
+    }
+
+    public void addOriginImg(ForestPath forestPath, String companyName, Long companyId) {
+
+        List<String> file = getFile(forestPath.getPath());
+
+        if (file != null && file.size() > 0) {
+
+            Long aLong = originId(companyName, null);
+            if (aLong == null) {
+                System.err.println("添加图片失败--" + forestPath.getPath());
+                return;
+            } else {
+                addImg(file, forestPath.getPath(), aLong);
+
+            }
+            return;
+        }
+        List<String> list = getDirectory(forestPath.getPath());
+        List<UmsMemberOrigin> origin = origin(companyName);
+        if (list == null || origin == null || origin.size() < list.size()) {
+            return;
+        }
+        if (list != null && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                Long aLong = origin.get(i).getId();
+                String str = list.get(i);
+                if (aLong != null) {
+                    List<String> file1 = getFile(forestPath.getPath() + "\\" + str);
+                    if (file1 != null && file1.size() > 0) {
+                        addImg(file1, forestPath.getPath() + "\\" + str, aLong);
+                    }
+                } else {
+                    System.err.println("找不到对应的文件--" + str);
+
+                }
+            }
+        }
+
+
+    }
+
+    //生产地图片
+    public void addImg(List<String> file, String path, Long aLong) {
+        String br = "0/1/" + aLong + "/";
+        UmsMemberOrigin u = new UmsMemberOrigin();
+        u.setId(aLong);
+        StringBuffer bu = new StringBuffer();
+        for (int i = 0; i < file.size(); i++) {
+            String oldFileName = file.get(i);
+            String s = OrderNo.NextOrderNo();
+            String[] split = null;
+            try {
+                split = oldFileName.split("\\.");
+            } catch (Exception e) {
+                throw new RuntimeException("获取文件后缀出错!=======>" + split);
+            }
+            String fileName = br + s + "." + split[1];
+            uploadFileUtil.uploadLocalFile(path + "\\" + oldFileName, fileName);
+            if (i > 0) {
+                bu.append("," + url + fileName);
+            } else {
+                bu.append(url + fileName);
+            }
+        }
+        u.setImgUrl(bu.toString());
+        umsMemberOriginMapper.updateByPrimaryKeySelective(u);
+    }
+
+    @Autowired
+    private UmsMemberOriginMapper umsMemberOriginMapper;
+
+    public Long originId(String compName, String originName) {
+        if (StringUtils.isEmpty(compName)) {
+            return null;
+        }
+        UmsMemberOriginExample example = new UmsMemberOriginExample();
+        UmsMemberOriginExample.Criteria criteria = example.createCriteria();
+        criteria.andCompNameEqualTo(compName);
+        if (!StringUtils.isEmpty(originName)) {
+            criteria.andOriginNameEqualTo(originName);
+        }
+
+        example.setOrderByClause("id desc");
+        List<UmsMemberOrigin> umsMemberOrigins = umsMemberOriginMapper.selectByExample(example);
+        if (umsMemberOrigins != null && umsMemberOrigins.size() > 0) {
+            return umsMemberOrigins.get(0).getId();
+        }
+        return null;
+    }
+
+    public List<UmsMemberOrigin> origin(String compName) {
+        if (StringUtils.isEmpty(compName)) {
+            return null;
+        }
+        UmsMemberOriginExample example = new UmsMemberOriginExample();
+        UmsMemberOriginExample.Criteria criteria = example.createCriteria();
+        criteria.andCompNameEqualTo(compName);
+
+
+        example.setOrderByClause("id asc");
+        List<UmsMemberOrigin> umsMemberOrigins = umsMemberOriginMapper.selectByExample(example);
+        return umsMemberOrigins;
+    }
+
+
+    public void addProductImg(ForestPath forestPath, String companyName, Long companyId) {
+        List<String> directory = getDirectory(forestPath.getPath());
+        if (listAll != null || listAll.size() < 1) {
+            log.info("好像没有数据哦");
+        }
+        for (PmsProductExcelParam pms : listAll) {
+            if (directory.contains(pms.getProductNo())) {
+                updateFile(forestPath.getPath(), pms.getId(), pms.getProductNo());
+            }
+        }
+
+
+    }
+
+    @Test
+    public void productImg() {
+        List<String> directory = getDirectory("D:\\developerUtil\\code\\hwrj\\forest\\到数据\\上传\\石阡县猫寨农林专业合作社\\产品");
+        List<PmsProduct> products = selectProduct("石阡县猫寨农林专业合作");
+        if (products != null && directory != null && products.size() > 0 && directory.size() > 0 && products.size() == directory.size()) {
+            for (int i = 0; i < directory.size(); i++) {
+                updateFile("D:\\developerUtil\\code\\hwrj\\forest\\到数据\\上传\\石阡县猫寨农林专业合作社\\产品", products.get(i).getId(), directory.get(i));
+            }
+        }
+
+
+    }
+
+
+    public void updateFile(String path, Long along, String str) {
+        String upPath = path + "\\" + str;
+        String br = "0/2/" + along + "/";
+        List<String> file = getFile(upPath);
+        if (file != null && file.size() > 0) {
+            PmsProduct p = new PmsProduct();
+            p.setId(along);
+            StringBuilder builder = new StringBuilder();
+            for (String s : file) {
+                String fs = br + OrderNo.NextOrderNo();
+                String[] split = null;
+                try {
+                    split = s.split("\\.");
+                } catch (Exception e) {
+                    throw new RuntimeException("获取文件后缀出错!=======>" + split);
+                }
+                fs = fs + "." + split[1];
+                uploadFileUtil.uploadLocalFile(upPath + "\\" + s, fs);
+                if (s.contains("首图")) {
+                    p.setPic(url + fs);
+                } else {
+                    builder.append(url + fs + ",");
+                }
+            }
+            String st = null;
+            if (!StringUtils.isEmpty(builder.toString())) {
+                String s = builder.toString();
+                st = s.substring(0, s.lastIndexOf(","));
+            }
+            p.setAlbumPics(st);
+            pmsProductMapper.updateByPrimaryKeySelective(p);
+        }
+
+    }
+
+
+    @Autowired
+    private PmsProductMapper pmsProductMapper;
+
+    public List<PmsProduct> selectProduct(String companyName) {
+        PmsProductExample pms = new PmsProductExample();
+        PmsProductExample.Criteria criteria = pms.createCriteria();
+
+        criteria.andCompNameEqualTo(companyName);
+
+//        criteria.andUmsCompanyInfoIdEqualTo(companyId);
+        pms.setOrderByClause("id asc");
+        List<PmsProduct> pmsProducts = pmsProductMapper.selectByExample(pms);
+        return pmsProducts;
+    }
+
+    public List<String> getDirectory(String path) {
+        List<String> paths = new ArrayList<>();
+        File file = new File(path);//File类型可以是文件也可以是文件夹
+        File[] fileList = file.listFiles();//将该目录下的所有文件放置在一个File类型的数组中
+        for (int j = 0; j < fileList.length; j++) {
+            File f = fileList[j];
+            if (f.isDirectory()) {
+                paths.add(f.getName());
+            }
+        }
+        return paths;
+
+    }
+
+    public List<String> getFile(String path) {
+        List<String> paths = new ArrayList<>();
+        File file = new File(path);//File类型可以是文件也可以是文件夹
+        File[] fileList = file.listFiles();//将该目录下的所有文件放置在一个File类型的数组中
+        for (int j = 0; j < fileList.length; j++) {
+            File f = fileList[j];
+            if (f.isFile()) {
+                paths.add(f.getName());
+            }
+        }
+        return paths;
+    }
+
+    public String addCompanyInfo(File pdf, String companyName) {
+        try {
+//                    File pdf = fileList[i];
+            System.out.println(pdf.getPath());
+            FileInputStream fileInputStream = null;
+            fileInputStream = new FileInputStream(pdf);
+            MultipartFile multipartFile = new MockMultipartFile(pdf.getName(), pdf.getName(),
+                    ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
+//                        String url = ossFileUtils.upload(multipartFile.getOriginalFilename(), multipartFile);
+            String name = importExcel(multipartFile, companyName);
+            return name;
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+
+        }
+        return null;
+
+    }
+
+    @Autowired
+    private UmsCompanyService umsCompanyService;
+
+    @Autowired
+    private UmsMemberOriginService umsMemberOriginService;
+
+
+    @Transactional(rollbackFor = Exception.class)
+    public String importExcel(MultipartFile file, String companyName) throws Exception {
+
+        //导入公司
+        String companyId = null;
+        List<UmsCompanyInfoExcel> listAll = new ArrayList<>();
+        List<Object> list = EasyExcelUtil.readExcel(file, new UmsCompanyInfoExcel(), 1, 2);
+        if (list != null && list.size() > 0) {
+            for (Object o : list) {
+                UmsCompanyInfoExcel umsCompanyInfoExcel = (UmsCompanyInfoExcel) o;
+                umsCompanyInfoExcel.setCreateId(0l);
+                companyId = umsCompanyInfoExcel.getCompName();
+                LagLatEntity lagLat = companyLatLagGet.getLagLat(umsCompanyInfoExcel.getCityId(), umsCompanyInfoExcel.getCountyId(), umsCompanyInfoExcel.getDetailAddress());
+                if (lagLat != null) {
+                    umsCompanyInfoExcel.setLatitude(new BigDecimal(lagLat.getLat()));
+                    umsCompanyInfoExcel.setLongitude(new BigDecimal(lagLat.getLag()));
+                }
+                listAll.add(umsCompanyInfoExcel);
+            }
+        }
+        umsCompanyService.importExcel(listAll);
+
+        if (StringUtils.isEmpty(companyId)) {
+            return null;
+        }
+        //导入生产地
+        importOriginExcel(file, companyId);
+
+        //导入商品
+        importBasic(file);
+
+        return companyId;
+    }
+
+
+    @Autowired
+    private ImportExcelEventListener importExcelEventListener;
+
+    public void importOriginExcel(MultipartFile file, String companyName) {
+        List<UmsMemberOriginExcel> listAll = new ArrayList<>();
+        if (file != null) {
+            List<Object> list = null;
+            try {
+                list = EasyExcelUtil.readExcel(file, new UmsMemberOriginExcel(), 2, 2);
+            } catch (IOException e) {
+                //e.printStackTrace();
+                throw new RuntimeException("上传文件错误!");
+            }
+            if (list != null && list.size() > 0) {
+                for (Object obj : list) {
+                    UmsMemberOriginExcel excel = (UmsMemberOriginExcel) obj;
+                    excel.setCreateId(1);
+                    excel.setState(0);
+                    LagLatEntity lagLat = companyLatLagGet.getLagLat(excel.getCityName(), excel.getCountyName(), excel.getDetailAddress());
+                    if (lagLat != null) {
+                        excel.setLatitude(lagLat.getLat());
+                        excel.setLongitude(lagLat.getLag());
+                    }
+                    excel.setCompName(companyName);
+                    listAll.add(excel);
+                }
+            }
+        }
+        int saveNum = 0;
+        if (listAll != null && listAll.size() > 0) {
+            int batchNum = 500;
+            if (listAll.size() > batchNum) {
+                List<UmsMemberOriginExcel> list = listAll.subList(0, batchNum);
+                saveNum = umsMemberOriginService.batchSave(list);
+                //if (saveNum > 0){ //存在前面数据已存在情况
+                //异步导入
+                importExcelEventListener.batchSaveOriginExcel(listAll.subList(batchNum, listAll.size()));
+                log.info("正在导入数据,请稍后刷新!");
+                //}
+            }
+            saveNum = umsMemberOriginService.batchSave(listAll);
+            if (saveNum < 1) {
+                log.info("导入数据已存在,请勿重复导入");
+            }
+        }
+
+    }
+
+    @Autowired
+    private PmsProductExcelDao productExcelDao;
+
+    public void importBasic(MultipartFile file) throws IOException {
+
+
+        listAll = new ArrayList<>();
+        if (file != null) {
+            List<Object> list = null;
+            try {
+                list = EasyExcelUtil.readExcel(file, new PmsProductExcel(), 3, 2);
+            } catch (IOException e) {
+                //e.printStackTrace();
+                throw new RuntimeException("上传文件错误!");
+            }
+            if (list != null && list.size() > 0) {
+                for (Object obj : list) {
+                    PmsProductExcel excel = (PmsProductExcel) obj;
+                    PmsProductExcelParam pmsProductExcelParam = addData(excel);
+                    listAll.add(pmsProductExcelParam);
+                }
+            }
+        }
+        List<PmsBrand> bandlist = new ArrayList<>();
+        //去除品牌里面的空格以及空字符
+        for (PmsProductExcelParam pmsProductExcelParam : listAll) {
+            String brandName = pmsProductExcelParam.getBrandName();
+            pmsProductExcelParam.setBrandName(MyStringUtils.replaceBlank(brandName));
+        }
+        log.info("开始插入品牌数据");
+        List<String> BandNames = listAll.stream().map(PmsProductExcelParam::getBrandName).distinct().collect(Collectors.toList());
+        for (String bandName : BandNames) {
+            PmsBrand pmsBrand = new PmsBrand();
+            pmsBrand.setName(bandName);
+            pmsBrand.setFirstLetter(ChineseCharToEn.getAllFirstLetter(bandName));
+            pmsBrand.setShowStatus(1);
+            pmsBrand.setSort(1);
+            pmsBrand.setFactoryStatus(1);
+            pmsBrand.setProductCount(listAll.size());
+            pmsBrand.setCreateId((long) 1);
+            pmsBrand.setCreateTime(new Date());
+            bandlist.add(pmsBrand);
+        }
+        if (BandNames.size() > 0) {
+            productExcelDao.saveBrandData(bandlist);
+        }
+        log.info("开始插入商品数据");
+        if (listAll.size() > 0) {
+            log.info(JSONObject.toJSONString(listAll));
+            productExcelDao.saveData(listAll);
+        }
+        List<String> compNames = listAll.stream().map(PmsProductExcelParam::getUmsCompanyInfo).distinct().collect(Collectors.toList());
+        if (compNames.size() > 0) {
+            //更新大小类以及品牌生产地
+            updateProductType(compNames);
+        }
+
+    }
+
+    //更新大小类
+    public void updateProductType(List<String> compName) {
+        List<Long> ids = listAll.stream().map(PmsProductExcelParam::getId).distinct().collect(Collectors.toList());
+        productExcelDao.updateBrand(compName, ids);
+        productExcelDao.updateBigType(compName, ids);
+        productExcelDao.updateSimType(compName, ids);
+        productExcelDao.updateMemberOrigin(compName, ids);
+        productExcelDao.updateBrandComp(compName, ids);
+    }
+
+
+    private PmsProductExcelParam addData(PmsProductExcel pmsProductExcel) {
+
+        PmsProductExcelParam pmsProductExcelParam = new PmsProductExcelParam();
+        BeanUtils.copyProperties(pmsProductExcel, pmsProductExcelParam);
+        //名称
+        String name = pmsProductExcel.getName();
+        //价格
+        BigDecimal price = pmsProductExcel.getPrice();
+        //标题
+        pmsProductExcelParam.setDetailTitle(name);
+        //笔记
+        pmsProductExcelParam.setNote(name);
+        //关键字
+        pmsProductExcelParam.setKeywords(name);
+
+        String description = replaceBlank(pmsProductExcel.getDescription());
+
+        pmsProductExcelParam.setUmsCompanyInfoId(companyId(pmsProductExcel.getUmsCompanyInfo()));
+
+        //商品描述
+        pmsProductExcelParam.setDescription(description);
+        //简述
+        pmsProductExcelParam.setSubTitle(description);
+        //使用说明
+        String instructions = replaceBlank(pmsProductExcel.getInstructions());
+        //默认文本
+        pmsProductExcelParam.setDetailDesc(instructions);
+        //web网页显示
+        pmsProductExcelParam.setDetailHtml(instructions);
+        //手机网页显示
+        pmsProductExcelParam.setDetailMobileHtml(instructions);
+        //市场价
+        pmsProductExcelParam.setOriginalPrice(price);
+        //创建人 admin 1
+        pmsProductExcelParam.setCreateUser((long) 1);
+        //创建时间
+        pmsProductExcelParam.setCreateTime(new Date());
+        return pmsProductExcelParam;
+    }
+
+    public static String replaceBlank(String str) {
+        String dest = "";
+        if (str != null) {
+            Pattern p = Pattern.compile("\\s*|\t|\r|\n");
+            Matcher m = p.matcher(str);
+            dest = m.replaceAll("");
+        }
+        return dest;
+    }
+
+
+}

+ 10 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/AdvertiseDao.java

@@ -0,0 +1,10 @@
+package com.hwrj.cloud.admin.dao;
+
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+
+public interface AdvertiseDao {
+
+    public Integer checkAdvertiseJumpTime(@Param(value = "startTime") Date startTime,@Param(value = "endTime")Date endTime,@Param("id")Long id);
+}

+ 13 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/BigCompanyDao.java

@@ -0,0 +1,13 @@
+package com.hwrj.cloud.admin.dao;
+
+import io.lettuce.core.dynamic.annotation.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface BigCompanyDao {
+
+    public List<Map<String,Object>> bigCompanyInfo(@Param("key")String key,@Param("catId")Long catId);
+
+    public List<String> getCat();
+}

+ 34 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/BigScreamDao.java

@@ -0,0 +1,34 @@
+package com.hwrj.cloud.admin.dao;
+
+import io.lettuce.core.dynamic.annotation.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface BigScreamDao {
+    public Map<String,Object> data1(@Param("id")Long id);
+
+    public List<Map<String,Object>> data2(@Param("compType")String compType);
+
+    /**
+     * 获取产品分布信息
+     * lym
+     * @return
+     */
+    public List<Map<String,Object>> data4();
+
+    /**
+     * 获取产品种植面积分布信息
+     * lym
+     * @return
+     */
+    public List<Map<String,Object>> data5(@org.apache.ibatis.annotations.Param("productName") String productName);
+
+    public List<String> data6();
+
+    public List<String> data7();
+
+    public List<String> data8();
+
+    public List<String> data9();
+}

+ 24 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/CmsPrefrenceAreaProductRelationDao.java

@@ -0,0 +1,24 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.CmsPrefrenceAreaProductRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义优选和商品关系操作Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface CmsPrefrenceAreaProductRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<CmsPrefrenceAreaProductRelation> prefrenceAreaProductRelationList);
+
+    /**
+     * 根据商品 id 获取 优选
+     * @param productId
+     * @return
+     */
+    List<CmsPrefrenceAreaProductRelation> selectPrefrenceAreaProductRelationByProductId(@Param("productId") Long productId);
+ }

+ 25 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/CmsSubjectProductRelationDao.java

@@ -0,0 +1,25 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.CmsSubjectProductRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品和专题关系操作Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface CmsSubjectProductRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<CmsSubjectProductRelation> subjectProductRelationList);
+
+    /**
+     * 根据商品id 查询专题信息
+     * @param productId
+     * @return
+     */
+    List<CmsSubjectProductRelation> selectSubjectProductRelationByProductId(@Param("productId") Long productId);
+
+}

+ 31 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/OmsOrderDao.java

@@ -0,0 +1,31 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.OmsOrderDeliveryParam;
+import com.hwrj.cloud.admin.dto.OmsOrderDetail;
+import com.hwrj.cloud.admin.dto.OmsOrderQueryParam;
+import com.hwrj.cloud.admin.model.OmsOrder;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 订单自定义查询Dao
+ * Created by macro on 2018/10/12.
+ */
+public interface OmsOrderDao {
+    /**
+     * 条件查询订单
+     */
+    List<OmsOrder> getList(@Param("queryParam") OmsOrderQueryParam queryParam);
+
+    /**
+     * 批量发货
+     */
+    int delivery(@Param("list") List<OmsOrderDeliveryParam> deliveryParamList);
+
+    /**
+     * 获取订单详情
+     */
+    OmsOrderDetail getDetail(@Param("id") Long id);
+
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/OmsOrderOperateHistoryDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.OmsOrderOperateHistory;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 订单操作记录自定义Dao
+ * Created by macro on 2018/10/12.
+ */
+public interface OmsOrderOperateHistoryDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<OmsOrderOperateHistory> orderOperateHistoryList);
+}

+ 24 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/OmsOrderReturnApplyDao.java

@@ -0,0 +1,24 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.OmsOrderReturnApplyResult;
+import com.hwrj.cloud.admin.dto.OmsReturnApplyQueryParam;
+import com.hwrj.cloud.admin.model.OmsOrderReturnApply;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 订单退货申请自定义Dao
+ * Created by macro on 2018/10/18.
+ */
+public interface OmsOrderReturnApplyDao {
+    /**
+     * 查询申请列表
+     */
+    List<OmsOrderReturnApply> getList(@Param("queryParam") OmsReturnApplyQueryParam queryParam);
+
+    /**
+     * 获取申请详情
+     */
+    OmsOrderReturnApplyResult getDetail(@Param("id") Long id);
+}

+ 22 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/OmsPreItemDao.java

@@ -0,0 +1,22 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.annotation.DataPermission;
+import com.hwrj.cloud.admin.dto.param.PreItemWebPageParm;
+import com.hwrj.cloud.admin.model.OmsPreItem;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义注解
+ */
+@DataPermission(methods = {"searchOmsPreItemDao","deletePreItemDao"})
+public interface OmsPreItemDao {
+
+    public List<OmsPreItem> searchOmsPreItemDao();
+
+    public int deletePreItemDao(@Param("id")Long id);
+
+
+    List<OmsPreItem> weblist(PreItemWebPageParm preItemWebPageParm);
+}

+ 13 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsBrandDao.java

@@ -0,0 +1,13 @@
+package com.hwrj.cloud.admin.dao;
+
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PmsBrandDao {
+    long insertCheck(String name);
+
+    long deleteCheck(@Param("ids") List<Long> ids);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsMemberPriceDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.PmsMemberPrice;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义会员价格Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsMemberPriceDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsMemberPrice> memberPriceList);
+}

+ 16 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductAttributeCategoryDao.java

@@ -0,0 +1,16 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.PmsProductAttributeCategoryItem;
+
+import java.util.List;
+
+/**
+ * 自定义商品属性分类Dao
+ * Created by macro on 2018/5/24.
+ */
+public interface PmsProductAttributeCategoryDao {
+    /**
+     * 获取包含属性的商品属性分类
+     */
+    List<PmsProductAttributeCategoryItem> getListWithAttr();
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductAttributeDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.ProductAttrInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品属性Dao
+ * Created by macro on 2018/5/23.
+ */
+public interface PmsProductAttributeDao {
+    /**
+     * 获取商品属性信息
+     */
+    List<ProductAttrInfo> getProductAttrInfo(@Param("id") Long productCategoryId);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductAttributeValueDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.PmsProductAttributeValue;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品参数,商品自定义规格属性Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductAttributeValueDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductAttributeValue> productAttributeValueList);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductCategoryAttributeRelationDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.PmsProductCategoryAttributeRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品分类和属性关系Dao
+ * Created by macro on 2018/5/23.
+ */
+public interface PmsProductCategoryAttributeRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductCategoryAttributeRelation> productCategoryAttributeRelationList);
+}

+ 21 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductCategoryDao.java

@@ -0,0 +1,21 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.PmsProductCategoryWithChildrenItem;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品分类自定义Dao
+ * Created by macro on 2018/5/25.
+ */
+public interface PmsProductCategoryDao {
+    /**
+     * 获取商品分类及其子分类
+     */
+    List<PmsProductCategoryWithChildrenItem> listWithChildren();
+
+    long deleteCheck(Long id);
+
+    Integer productNum(@Param("parentId") Long parentId,@Param("id") Long id);
+}

+ 23 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductDao.java

@@ -0,0 +1,23 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.PmsProductResult;
+import com.hwrj.cloud.admin.model.PmsProduct;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * 自定义商品管理Dao
+ */
+public interface PmsProductDao {
+    /**
+     * 获取商品编辑信息
+     */
+    PmsProductResult getUpdateInfo(@Param("id") Long id);
+
+
+    long check(@Param("ids") List<Long> ids);
+
+
+}

+ 36 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductExcelDao.java

@@ -0,0 +1,36 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.param.*;
+import com.hwrj.cloud.admin.model.PmsBrand;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+@Mapper
+public interface PmsProductExcelDao {
+    void saveData(@Param("list") List<PmsProductExcelParam> list);
+
+    void saveBrandData(@Param("list") List<PmsBrand> list);
+
+    List<BigDataListInfoVo> bigDataList(BigDataListParam bigDataListParam);
+
+    BigDataListInfoVo bigDatainfo(@Param("id")Long id);
+
+    List<SelectVo> bigDataType();
+
+    Long checkOne(@Param("check")String check);
+
+    List<SelectVo> plOfProSelect(@Param("compId")Long compId);
+
+    void updateBrand(@Param("list")List<String> list,@Param("ids") List<Long> ids);
+
+    void updateBigType(@Param("list")List<String> list,@Param("ids") List<Long> ids);
+
+    void updateSimType(@Param("list")List<String> list,@Param("ids") List<Long> ids);
+
+    void updateMemberOrigin(@Param("list")List<String> list,@Param("ids") List<Long> ids);
+
+    void updateBrandComp(@Param("list")List<String> list,@Param("ids") List<Long> ids);
+
+    void updateComp(@Param("list")List<String> list,@Param("ids") List<Long> ids );
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductFullReductionDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.PmsProductFullReduction;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品满减Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductFullReductionDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductFullReduction> productFullReductionList);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductLadderDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.PmsProductLadder;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义会员阶梯价格Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductLadderDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductLadder> productLadderList);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsProductVertifyRecordDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.PmsProductVertifyRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品审核日志管理Dao
+ * Created by macro on 2018/4/27.
+ */
+public interface PmsProductVertifyRecordDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductVertifyRecord> list);
+}

+ 22 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/PmsSkuStockDao.java

@@ -0,0 +1,22 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.PmsSkuStock;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义商品SKU管理Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsSkuStockDao {
+    /**
+     * 批量插入操作
+     */
+    int insertList(@Param("list") List<PmsSkuStock> skuStockList);
+
+    /**
+     * 批量插入或替换操作
+     */
+    int replaceList(@Param("list") List<PmsSkuStock> skuStockList);
+}

+ 15 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/SmsCouponDao.java

@@ -0,0 +1,15 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.SmsCouponParam;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 自定义优惠券管理Dao
+ * Created by macro on 2018/8/29.
+ */
+public interface SmsCouponDao {
+    /**
+     * 获取优惠券详情包括绑定关系
+     */
+    SmsCouponParam getItem(@Param("id") Long id);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/SmsCouponProductCategoryRelationDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.SmsCouponProductCategoryRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义优惠券和商品分类关系管理Dao
+ * Created by macro on 2018/8/28.
+ */
+public interface SmsCouponProductCategoryRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<SmsCouponProductCategoryRelation> productCategoryRelationList);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/SmsCouponProductRelationDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.SmsCouponProductRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义优惠券和商品关系关系Dao
+ * Created by macro on 2018/8/28.
+ */
+public interface SmsCouponProductRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<SmsCouponProductRelation> productRelationList);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/SmsFlashPromotionProductRelationDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.SmsFlashPromotionProduct;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义限时购商品关系管理Dao
+ * Created by macro on 2018/11/16.
+ */
+public interface SmsFlashPromotionProductRelationDao {
+    /**
+     * 获取限时购及相关商品信息
+     */
+    List<SmsFlashPromotionProduct> getList(@Param("flashPromotionId") Long flashPromotionId, @Param("flashPromotionSessionId") Long flashPromotionSessionId);
+}

+ 11 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsAdminDao.java

@@ -0,0 +1,11 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.UmsResource;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface UmsAdminDao {
+    List<UmsResource> getAllResourceList(Long id);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsAdminPermissionRelationDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.UmsAdminPermissionRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义用户权限关系管理Dao
+ * Created by macro on 2018/10/8.
+ */
+public interface UmsAdminPermissionRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<UmsAdminPermissionRelation> list);
+}

+ 45 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsAdminRoleRelationDao.java

@@ -0,0 +1,45 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.UmsAdminRoleRelation;
+import com.hwrj.cloud.admin.model.UmsPermission;
+import com.hwrj.cloud.admin.model.UmsResource;
+import com.hwrj.cloud.admin.model.UmsRole;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义后台用户与角色管理Dao
+ * Created by macro on 2018/10/8.
+ */
+public interface UmsAdminRoleRelationDao {
+    /**
+     * 批量插入用户角色关系
+     */
+    int insertList(@Param("list") List<UmsAdminRoleRelation> adminRoleRelationList);
+
+    /**
+     * 获取用于所有角色
+     */
+    List<UmsRole> getRoleList(@Param("adminId") Long adminId);
+
+    /**
+     * 获取用户所有角色权限
+     */
+    List<UmsPermission> getRolePermissionList(@Param("adminId") Long adminId);
+
+    /**
+     * 获取用户所有权限(包括+-权限)
+     */
+    List<UmsPermission> getPermissionList(@Param("adminId") Long adminId);
+
+    /**
+     * 获取用户所有可访问资源
+     */
+    List<UmsResource> getResourceList(@Param("adminId") Long adminId);
+
+    /**
+     * 获取资源相关用户ID列表
+     */
+    List<Long> getAdminIdList(@Param("resourceId") Long resourceId);
+}

+ 17 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsCompanyInfoDao.java

@@ -0,0 +1,17 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.param.SelectNewVo;
+import com.hwrj.cloud.admin.dto.param.SelectVo;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface UmsCompanyInfoDao {
+    long deleteCheck(Long id);
+
+    List<SelectNewVo> selectList(@Param("compId") Long compId);
+
+    List<SelectVo> alllist();
+}

+ 24 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsCompanyShopDao.java

@@ -0,0 +1,24 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.UmsCompanyFile;
+import com.hwrj.cloud.admin.model.UmsCompanyShop;
+
+import java.util.List;
+
+public interface UmsCompanyShopDao {
+    /**
+     * 批量添加shop
+     * @param list
+     * @return
+     */
+    int addUmsCompanyShopList(List<UmsCompanyShop> list);
+
+    /**
+     * 批量添加files
+     * @param list
+     * @return
+     */
+    int insertFile(List<UmsCompanyFile> list);
+
+
+}

+ 37 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsMemberOriginDao.java

@@ -0,0 +1,37 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.dto.UmsMemberOriginParam;
+import com.hwrj.cloud.admin.dto.param.MemberWebPageParam;
+import com.hwrj.cloud.admin.dto.param.SelectVo;
+import com.hwrj.cloud.admin.model.UmsMemberOrigin;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @className:
+ * @description:
+ * @author: lym
+ * @date: 2020/9/6 17:39
+ */
+public interface UmsMemberOriginDao {
+
+    /**
+     * 检验是否存在
+     * lym
+     * @param umsMemberOrigin
+     * @return
+     */
+    int isExist(UmsMemberOrigin umsMemberOrigin);
+
+    List<UmsMemberOriginParam> pageList(MemberWebPageParam memberWebPageParam);
+
+    List<UmsMemberOriginParam> list(UmsMemberOriginParam umsMemberOriginParam);
+
+
+    UmsMemberOriginParam findById(long id);
+
+    long deleteOneDataCheck(long id);
+
+    List<SelectVo> listSelect(@Param("compId") long compId);
+}

+ 35 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsMemberOriginProductDao.java

@@ -0,0 +1,35 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.UmsMemberOriginProduct;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @className:
+ * @description:
+ * @author: lym
+ * @date: 2020/9/6 11:27
+ */
+public interface UmsMemberOriginProductDao {
+
+    int batchSave(@Param("list") List<UmsMemberOriginProduct> list);
+
+    /**
+     * 查询生产地产出物
+     * lym
+     * @param originId
+     * @return
+     */
+    List<UmsMemberOriginProduct> selectByOriginId(@Param("originId") Long originId);
+
+    /**
+     * 删除不存在产物
+     * lym
+     * @param ids
+     * @return
+     */
+    int delNotEqIds(@Param("ids") List<Long> ids,@Param("originId") Long originId);
+
+    int batchUpdate(@Param("list") List<UmsMemberOriginProduct> list);
+}

+ 28 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsRoleDao.java

@@ -0,0 +1,28 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.UmsMenu;
+import com.hwrj.cloud.admin.model.UmsResource;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义后台角色管理Dao
+ * Created by macro on 2020/2/2.
+ */
+public interface UmsRoleDao {
+    /**
+     * 根据后台用户ID获取菜单
+     */
+    List<UmsMenu> getMenuList(@Param("adminId") Long adminId);
+    /**
+     * 根据角色ID获取菜单
+     */
+    List<UmsMenu> getMenuListByRoleId(@Param("roleId") Long roleId);
+    /**
+     * 根据角色ID获取资源
+     */
+    List<UmsResource> getResourceListByRoleId(@Param("roleId") Long roleId);
+
+    Long deleteCheck(@Param("ids") List<Long> ids);
+}

+ 23 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsRolePermissionRelationDao.java

@@ -0,0 +1,23 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.UmsPermission;
+import com.hwrj.cloud.admin.model.UmsRolePermissionRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 自定义角色权限关系管理Dao
+ * Created by macro on 2018/9/30.
+ */
+public interface UmsRolePermissionRelationDao {
+    /**
+     * 批量插入角色和权限关系
+     */
+    int insertList(@Param("list") List<UmsRolePermissionRelation> list);
+
+    /**
+     * 根据角色获取权限
+     */
+    List<UmsPermission> getPermissionList(@Param("roleId") Long roleId);
+}

+ 33 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/UmsRollBuyDao.java

@@ -0,0 +1,33 @@
+package com.hwrj.cloud.admin.dao;
+
+import com.hwrj.cloud.admin.model.UmsRollBuy;
+import com.hwrj.cloud.admin.model.UmsRollBuyExample;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface UmsRollBuyDao {
+    long countByExample(UmsRollBuyExample example);
+
+    int deleteByExample(UmsRollBuyExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(UmsRollBuy record);
+
+    int insertSelective(UmsRollBuy record);
+
+    List<UmsRollBuy> selectByExample(UmsRollBuyExample example);
+
+    UmsRollBuy selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") UmsRollBuy record, @Param("example") UmsRollBuyExample example);
+
+    int updateByExample(@Param("record") UmsRollBuy record, @Param("example") UmsRollBuyExample example);
+
+    int updateByPrimaryKeySelective(UmsRollBuy record);
+
+    int updateByPrimaryKey(UmsRollBuy record);
+
+    int insertList(List<UmsRollBuy> list);
+}

+ 52 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/ConfirmStatus.java

@@ -0,0 +1,52 @@
+package com.hwrj.cloud.admin.dao.excel.enumbo;
+
+public enum ConfirmStatus {
+    NOT_CONFIRMED(0, "未确认"),
+    CONFIRMED(1, "已确认"),
+    DEFAULT(99, "未知");
+
+    private Integer key;
+
+    private String name;
+
+    /**
+     * @param key
+     * @param name
+     */
+    ConfirmStatus(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    /**
+     * @return Returns the key.
+     */
+    public Integer getKey() {
+        return key;
+    }
+
+    /**
+     * @return Returns the name.
+     */
+    public String getName() {
+        return name;
+    }
+
+
+    /**
+     * 根据Key得到枚举的Value
+     * 普通for循环遍历,比较判断
+     *
+     * @param key
+     * @return
+     */
+    public static ConfirmStatus getEnumType(Integer key) {
+        ConfirmStatus[] alarmGrades = ConfirmStatus.values();
+        for (int i = 0; i < alarmGrades.length; i++) {
+            if (alarmGrades[i].getKey().equals(key)) {
+                return alarmGrades[i];
+            }
+        }
+        return ConfirmStatus.DEFAULT;
+    }
+}

+ 53 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/OrderType.java

@@ -0,0 +1,53 @@
+package com.hwrj.cloud.admin.dao.excel.enumbo;
+
+public enum OrderType {
+
+    NORMAL_ORDER(0, "正常订单"),
+    SECKILL_ORDER(1, "秒杀订单"),
+    DEFAULT(99, "未知");
+
+    private Integer key;
+
+    private String name;
+
+    /**
+     * @param key
+     * @param name
+     */
+    OrderType(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    /**
+     * @return Returns the key.
+     */
+    public Integer getKey() {
+        return key;
+    }
+
+    /**
+     * @return Returns the name.
+     */
+    public String getName() {
+        return name;
+    }
+
+
+    /**
+     * 根据Key得到枚举的Value
+     * 普通for循环遍历,比较判断
+     *
+     * @param key
+     * @return
+     */
+    public static OrderType getEnumType(Integer key) {
+        OrderType[] alarmGrades = OrderType.values();
+        for (int i = 0; i < alarmGrades.length; i++) {
+            if (alarmGrades[i].getKey().equals(key)) {
+                return alarmGrades[i];
+            }
+        }
+        return OrderType.DEFAULT;
+    }
+}

+ 55 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/PayType.java

@@ -0,0 +1,55 @@
+package com.hwrj.cloud.admin.dao.excel.enumbo;
+
+public enum PayType {
+
+
+    UNPAID(0, "未支付"),
+    ALIPAY(1, "支付宝"),
+    WECHAT(2, "微信"),
+    DEFAULT(99, "未知");
+
+    private Integer key;
+
+    private String name;
+
+    /**
+     * @param key
+     * @param name
+     */
+    PayType(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    /**
+     * @return Returns the key.
+     */
+    public Integer getKey() {
+        return key;
+    }
+
+    /**
+     * @return Returns the name.
+     */
+    public String getName() {
+        return name;
+    }
+
+
+    /**
+     * 根据Key得到枚举的Value
+     * 普通for循环遍历,比较判断
+     *
+     * @param key
+     * @return
+     */
+    public static PayType getEnumType(Integer key) {
+        PayType[] alarmGrades = PayType.values();
+        for (int i = 0; i < alarmGrades.length; i++) {
+            if (alarmGrades[i].getKey().equals(key)) {
+                return alarmGrades[i];
+            }
+        }
+        return PayType.DEFAULT;
+    }
+}

+ 52 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/SourceType.java

@@ -0,0 +1,52 @@
+package com.hwrj.cloud.admin.dao.excel.enumbo;
+
+public enum SourceType {
+
+    APP(1, "app订单"),
+    PC(0, "PC订单");
+
+    private Integer key;
+
+    private String name;
+
+    /**
+     * @param key
+     * @param name
+     */
+    SourceType(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    /**
+     * @return Returns the key.
+     */
+    public Integer getKey() {
+        return key;
+    }
+
+    /**
+     * @return Returns the name.
+     */
+    public String getName() {
+        return name;
+    }
+
+
+    /**
+     * 根据Key得到枚举的Value
+     * 普通for循环遍历,比较判断
+     *
+     * @param key
+     * @return
+     */
+    public static SourceType getEnumType(Integer key) {
+        SourceType[] alarmGrades = SourceType.values();
+        for (int i = 0; i < alarmGrades.length; i++) {
+            if (alarmGrades[i].getKey().equals(key)) {
+                return alarmGrades[i];
+            }
+        }
+        return SourceType.PC;
+    }
+}

+ 57 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/enumbo/Status.java

@@ -0,0 +1,57 @@
+package com.hwrj.cloud.admin.dao.excel.enumbo;
+
+public enum Status {
+
+    TO_BE_PAID(0, "待付款"),
+    TO_BE_DELIVERED(1, "待发货"),
+    DELIVERED(2, "已发货"),
+    COMPLETED(3, "已完成"),
+    CLOSED(4, "已关闭"),
+    INVALID_ORDER(5, "无效订单"),
+    DEFAULT(99, "未知");
+
+    private Integer key;
+
+    private String name;
+
+    /**
+     * @param key
+     * @param name
+     */
+    Status(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    /**
+     * @return Returns the key.
+     */
+    public Integer getKey() {
+        return key;
+    }
+
+    /**
+     * @return Returns the name.
+     */
+    public String getName() {
+        return name;
+    }
+
+
+    /**
+     * 根据Key得到枚举的Value
+     * 普通for循环遍历,比较判断
+     *
+     * @param key
+     * @return
+     */
+    public static Status getEnumType(Integer key) {
+        Status[] alarmGrades = Status.values();
+        for (int i = 0; i < alarmGrades.length; i++) {
+            if (alarmGrades[i].getKey().equals(key)) {
+                return alarmGrades[i];
+            }
+        }
+        return Status.DEFAULT;
+    }
+}

+ 178 - 0
forest-admin/admin-server/src/main/java/com/hwrj/cloud/admin/dao/excel/model/OmsOrderExcel.java

@@ -0,0 +1,178 @@
+package com.hwrj.cloud.admin.dao.excel.model;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel("订单excel导出实体")
+public class OmsOrderExcel {
+
+    @ApiModelProperty(value = "订单编号")
+    @ExcelProperty(value = {"订单编号"})
+    private String orderSn;
+
+    @ApiModelProperty(value = "提交时间")
+    @ExcelProperty(value = {"提交时间"})
+    private Date createTime;
+
+    @ApiModelProperty(value = "用户帐号")
+    @ExcelProperty(value = {"用户帐号"})
+    private String memberUsername;
+
+    @ApiModelProperty(value = "订单总金额")
+    @ExcelProperty(value = {"订单总金额"})
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty(value = "应付金额(实际支付金额)")
+    @ExcelProperty(value = {"应付金额(实际支付金额)"})
+    private BigDecimal payAmount;
+
+//    @ApiModelProperty(value = "运费金额")
+//    @ExcelProperty(value = {"运费金额"})
+//    private BigDecimal freightAmount;
+//
+//    @ApiModelProperty(value = "促销优化金额(促销价、满减、阶梯价)")
+//    @ExcelProperty(value = {"促销优化金额(促销价、满减、阶梯价)"})
+//    private BigDecimal promotionAmount;
+//
+//    @ApiModelProperty(value = "积分抵扣金额")
+//    @ExcelProperty(value = {"积分抵扣金额"})
+//    private BigDecimal integrationAmount;
+//
+//    @ApiModelProperty(value = "优惠券抵扣金额")
+//    @ExcelProperty(value = {"优惠券抵扣金额"})
+//    private BigDecimal couponAmount;
+//
+//    @ApiModelProperty(value = "管理员后台调整订单使用的折扣金额")
+//    @ExcelProperty(value = {"管理员后台调整订单使用的折扣金额"})
+//    private BigDecimal discountAmount;
+
+    @ApiModelProperty(value = "支付方式:0->未支付;1->支付宝;2->微信")
+    @ExcelProperty(value = {"支付方式"})
+    private String payType;
+
+    @ApiModelProperty(value = "订单来源:0->PC订单;1->app订单")
+    @ExcelProperty(value = {"订单来源"})
+    private String sourceType;
+
+    @ApiModelProperty(value = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单")
+    @ExcelProperty(value = {"订单状态"})
+    private String status;
+
+    @ApiModelProperty(value = "订单类型:0->正常订单;1->秒杀订单")
+    @ExcelProperty(value = {"订单类型"})
+    private String orderType;
+
+    @ApiModelProperty(value = "物流公司(配送方式)")
+    @ExcelProperty(value = {"物流公司(配送方式)"})
+    private String deliveryCompany;
+
+    @ApiModelProperty(value = "物流单号")
+    @ExcelProperty(value = {"物流单号"})
+    private String deliverySn;
+
+//    @ApiModelProperty(value = "自动确认时间(天)")
+//    @ExcelProperty(value = {"自动确认时间(天)"})
+//    private Integer autoConfirmDay;
+//
+//    @ApiModelProperty(value = "可以获得的积分")
+//    @ExcelProperty(value = {"可以获得的积分"})
+//    private Integer integration;
+//
+//    @ApiModelProperty(value = "可以活动的成长值")
+//    @ExcelProperty(value = {"可以活动的成长值"})
+//    private Integer growth;
+//
+//    @ApiModelProperty(value = "活动信息")
+//    @ExcelProperty(value = {"活动信息"})
+//    private String promotionInfo;
+
+//    @ApiModelProperty(value = "发票类型:0->不开发票;1->电子发票;2->纸质发票")
+//    @ExcelProperty(value = {"发票类型:0->不开发票;1->电子发票;2->纸质发票"})
+//    private Integer billType;
+
+//    @ApiModelProperty(value = "发票抬头")
+//    @ExcelProperty(value = {"发票抬头"})
+//    private String billHeader;
+//
+//    @ApiModelProperty(value = "发票内容")
+//    @ExcelProperty(value = {"发票内容"})
+//    private String billContent;
+
+//    @ApiModelProperty(value = "收票人电话")
+//    @ExcelProperty(value = {"收票人电话"})
+//    private String billReceiverPhone;
+//
+//    @ApiModelProperty(value = "收票人邮箱")
+//    @ExcelProperty(value = {"收票人邮箱"})
+//    private String billReceiverEmail;
+
+    @ApiModelProperty(value = "收货人姓名")
+    @ExcelProperty(value = {"收货人姓名"})
+    private String receiverName;
+
+    @ApiModelProperty(value = "收货人电话")
+    @ExcelProperty(value = {"收货人电话"})
+    private String receiverPhone;
+
+    @ApiModelProperty(value = "收货人邮编")
+    @ExcelProperty(value = {"收货人邮编"})
+    private String receiverPostCode;
+
+    @ApiModelProperty(value = "省份/直辖市")
+    @ExcelProperty(value = {"省份/直辖市"})
+    private String receiverProvince;
+
+    @ApiModelProperty(value = "城市")
+    @ExcelProperty(value = {"城市"})
+    private String receiverCity;
+
+    @ApiModelProperty(value = "区")
+    @ExcelProperty(value = {"区"})
+    private String receiverRegion;
+
+    @ApiModelProperty(value = "详细地址")
+    @ExcelProperty(value = {"详细地址"})
+    private String receiverDetailAddress;
+
+    @ApiModelProperty(value = "订单备注")
+    @ExcelProperty(value = {"订单备注"})
+    private String note;
+
+    @ApiModelProperty(value = "确认收货状态:0->未确认;1->已确认")
+    @ExcelProperty(value = {"确认收货状态"})
+    private Integer confirmStatus;
+
+//    @ApiModelProperty(value = "删除状态:0->未删除;1->已删除")
+//    @ExcelProperty(value = {"删除状态:0->未删除;1->已删除"})
+//    private Integer deleteStatus;
+
+//    @ApiModelProperty(value = "下单时使用的积分")
+//    @ExcelProperty(value = {"下单时使用的积分"})
+//    private Integer useIntegration;
+
+    @ApiModelProperty(value = "支付时间")
+    @ExcelProperty(value = {"支付时间"})
+    private Date paymentTime;
+
+    @ApiModelProperty(value = "发货时间")
+    @ExcelProperty(value = {"发货时间"})
+    private Date deliveryTime;
+
+    @ApiModelProperty(value = "确认收货时间")
+    @ExcelProperty(value = {"确认收货时间"})
+    private Date receiveTime;
+
+//    @ApiModelProperty(value = "评价时间")
+//    @ExcelProperty(value = {"评价时间"})
+//    private Date commentTime;
+//
+//    @ApiModelProperty(value = "修改时间")
+//    @ExcelProperty(value = {"修改时间"})
+//    private Date modifyTime;
+}

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików