liujs há 3 anos atrás
pai
commit
bb9daec671
100 ficheiros alterados com 6624 adições e 0 exclusões
  1. 34 0
      .gitignore
  2. 33 0
      bsmanage-basic/.gitignore
  3. 233 0
      bsmanage-basic/pom.xml
  4. 25 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/BsmanageBasicApplication.java
  5. 91 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/aspect/ControllerAspect.java
  6. 44 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/aspect/EnableESAop.java
  7. 37 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/ChooseOptionsEnum.java
  8. 98 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/Constants.java
  9. 53 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/DeliveryStatusConstants.java
  10. 38 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/ExpressAccountConstants.java
  11. 151 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/RedisTypeEnum.java
  12. 30 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/AdminTypeEnum.java
  13. 44 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/ClassNameEnum.java
  14. 73 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/DeliverySignReturnEnum.java
  15. 78 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/DeliveryStatusEnum.java
  16. 17 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/EnumsData.java
  17. 83 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/PlatformEnum.java
  18. 70 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/SMSErrorCodeEnum.java
  19. 45 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/BeanUtil.java
  20. 301 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/CacheTool.java
  21. 226 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/Pager.java
  22. 163 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/redis/JedisClient.java
  23. 432 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/redis/JedisClientSingle.java
  24. 19 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/AmapConfig.java
  25. 54 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/JedisConfig.java
  26. 55 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/JedisProperties.java
  27. 78 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/JeesiteDatasourceConfig.java
  28. 76 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/JisuDatasourceConfig.java
  29. 35 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/MyMessagePostProcessor.java
  30. 98 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/RabbitConfig.java
  31. 30 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/RedisSessionConfig.java
  32. 35 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/WebCrossOrigin.java
  33. 35 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/configuration/LocalDateTimeSerializerConfig.java
  34. 92 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/configuration/OkHttpConfiguration.java
  35. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ADLogController.java
  36. 71 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/AdmnUserController.java
  37. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ApiLogController.java
  38. 86 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/CommonController.java
  39. 38 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/CompanyController.java
  40. 96 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ConfigurationController.java
  41. 74 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/DeliveryController.java
  42. 41 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/EnumsController.java
  43. 46 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ExpressController.java
  44. 177 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ExpressDeptController.java
  45. 149 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/FileManagementController.java
  46. 78 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/MenuController.java
  47. 45 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/NoticeController.java
  48. 40 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/PickupQueueController.java
  49. 39 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/PlatformController.java
  50. 152 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/RoleController.java
  51. 62 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/SmsController.java
  52. 36 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StatisticsController.java
  53. 57 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StatisticsReportController.java
  54. 83 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StoreManageController.java
  55. 92 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StoreStaffController.java
  56. 32 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StoreTemplateController.java
  57. 124 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/SysParamController.java
  58. 80 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/UserController.java
  59. 17 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AdLogMapper.java
  60. 34 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AddressCityMapper.java
  61. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AddressDistrictMapper.java
  62. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AddressProvinceMapper.java
  63. 18 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AddressTownMapper.java
  64. 26 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ApiLogMapper.java
  65. 32 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ConfigurationMapper.java
  66. 18 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/DeliveryRunningWaterMapper.java
  67. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExExpressTypeMapper.java
  68. 51 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExStoreMapper.java
  69. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExpDataStatisticalMapper.java
  70. 39 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExpressDeptAccountMapper.java
  71. 32 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExpressDeptMapper.java
  72. 19 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/PickupQueueMapper.java
  73. 29 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/PlatformMapper.java
  74. 19 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/RConfigGruopMapper.java
  75. 32 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/SignBackSwitchMapper.java
  76. 14 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/StoreImeiMapper.java
  77. 37 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/StoreTemplateMapper.java
  78. 41 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/SystemMapper.java
  79. 32 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/TBsChooseoptionMapper.java
  80. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/TBsCompanyMapper.java
  81. 35 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/TempNoticeMapper.java
  82. 40 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/AdminUserMapper.java
  83. 19 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/ConsumeRecordMapper.java
  84. 48 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/DeliveryMapper.java
  85. 38 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/ExpressAccountConsumeRecordMapper.java
  86. 25 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/ExpressAccountRechargeRecordMapper.java
  87. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/FjUserMapper.java
  88. 33 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/MenuMapper.java
  89. 49 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/RoleMapper.java
  90. 32 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/SmsRecordMapper.java
  91. 11 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/SmspurchaserecordMapper.java
  92. 27 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StatisticsReportMapper.java
  93. 32 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StoreDeliveryMsgTemplateConfigMapper.java
  94. 37 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StoreDeliveryMsgTemplateMapper.java
  95. 37 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StoreShelfMapper.java
  96. 68 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StoreStaffMapper.java
  97. 57 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/UserMapper.java
  98. 85 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/entity/AdLog.java
  99. 43 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/entity/AddressCity.java
  100. 450 0
      bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/entity/AddressCityExample.java

+ 34 - 0
.gitignore

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

+ 33 - 0
bsmanage-basic/.gitignore

@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**
+!**/src/test/**
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+
+### VS Code ###
+.vscode/
+
+/src/main/resources/generatorConfig.xml

+ 233 - 0
bsmanage-basic/pom.xml

@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>cn.bs</groupId>
+        <artifactId>bs-manage</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+    <groupId>cn.bs</groupId>
+    <artifactId>bsmanage-basic</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>bsmanage-basic</name>
+    <packaging>jar</packaging>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jdbc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jta-atomikos</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>httpclient</artifactId>
+                    <groupId>org.apache.httpcomponents</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <!--<scope>runtime</scope>-->
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.62</version>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.bs</groupId>
+            <artifactId>bsmanage-common</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>httpclient</artifactId>
+                    <groupId>org.apache.httpcomponents</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- spring-boot-devtools热启动依赖包 start-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <!--<optional>true</optional>-->
+            <!--<scope>true</scope>-->
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>redis.clients</groupId>
+            <artifactId>jedis</artifactId>
+            <version>2.9.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.squareup.okhttp3</groupId>
+            <artifactId>okhttp</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+        </dependency>
+<!--        阿里的OOS-->
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>3.8.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4.10</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.6</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>httpcore</artifactId>
+                    <groupId>org.apache.httpcomponents</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>httpclient</artifactId>
+                    <groupId>org.apache.httpcomponents</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>httpclient</artifactId>
+                    <groupId>org.apache.httpcomponents</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.session</groupId>
+            <artifactId>spring-session-data-redis</artifactId>
+        </dependency>
+    </dependencies>
+
+    <!--spring boot打包的话需要指定一个唯一的入门-->
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+                <includes>
+                    <include>application.yml</include>
+                    <include>application-${package.environment}.yml</include>
+                    <include>**/*.xml</include>
+                    <include>*.xml</include>
+                    <include>*.properties</include>
+                </includes>
+            </resource>
+<!--            <resource>
+                <directory>src/main/resources/${package.environment}</directory>
+                <includes>
+                    <include>*.properties</include>
+                    <include>*.xml</include>
+                    <include>*.conf</include>
+                    <include>*.pdf</include>
+                    <include>*.p12</include>
+                </includes>
+            </resource>-->
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.mybatis.generator</groupId>
+                <artifactId>mybatis-generator-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.1.6.RELEASE</version>
+                <configuration>
+                    <!-- 指定该Main Class为全局的唯一入口 -->
+                    <mainClass>cn.bs.bsmanagebasic.BsmanageBasicApplication</mainClass>
+                    <layout>ZIP</layout>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <profiles>
+        <profile>
+            <id>dev</id>
+            <properties>
+                <package.environment>dev</package.environment>
+            </properties>
+        </profile>
+        <profile>
+            <id>pro</id>
+            <properties>
+                <package.environment>pro</package.environment>
+            </properties>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+        </profile>
+    </profiles>
+</project>

+ 25 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/BsmanageBasicApplication.java

@@ -0,0 +1,25 @@
+package cn.bs.bsmanagebasic;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+import java.util.TimeZone;
+
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
+@EnableScheduling
+public class BsmanageBasicApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(BsmanageBasicApplication.class, args);
+    }
+
+    @Bean
+    public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() {
+        return jacksonObjectMapperBuilder ->
+                jacksonObjectMapperBuilder.timeZone(TimeZone.getTimeZone("GMT+8"));
+    }
+}

+ 91 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/aspect/ControllerAspect.java

@@ -0,0 +1,91 @@
+package cn.bs.bsmanagebasic.aspect;
+
+import cn.bs.bsmanagebasic.common.util.CacheTool;
+import cn.bs.bsmanagebasic.entity.User;
+import cn.bs.bsmanagecommon.exception.APIBusinessException;
+import cn.bs.bsmanagecommon.exception.BusinessException;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName ControllerAspect.java
+ * @Description 针对Conroller层的AOP拦截
+ * @createTime 2019年07月22日 12:27:00
+ */
+@Component
+@Aspect
+@Slf4j
+public class ControllerAspect {
+
+    @Around("execution(* cn.bs.bsmanagebasic.controller.*.*(..))")
+    public Object around(ProceedingJoinPoint pjp){
+        long startTime = System.currentTimeMillis();
+        ResultBean<?> result;
+        try {
+            User user = isLogin();
+            result = (ResultBean<?>) pjp.proceed();
+            log.info(pjp.getSignature().getName() + "  use time:" + (System.currentTimeMillis() - startTime));
+        } catch (Throwable e) {
+            result = handlerException(pjp, e);
+        }
+        return result;
+    }
+
+    private User isLogin(){
+        ServletRequestAttributes sra = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
+        HttpServletRequest request = sra.getRequest();
+        String url = request.getRequestURL().toString();
+        if(url.indexOf("/user/login")>0 ||
+                url.indexOf("/pickupQueue/insert")>0 ||
+                url.indexOf("/adlogs")>0 ||
+                url.indexOf("/delivery/getPickupCodeByPhone")>0){
+            return null;
+        }
+        HttpSession session= request.getSession();
+        User user = JSON.parseObject(session.getAttribute(session.getId()).toString(),User.class);
+        if(user == null){
+            throw new BusinessException("未登录,请重新登录");
+        }
+        return user;
+    }
+
+    @Around("execution(* cn.bs.bsmanagebasic.controller.*.*(..))")
+    public Object around2(ProceedingJoinPoint pjp){
+        return this.around(pjp);
+    }
+
+    private ResultBean<?> handlerException(ProceedingJoinPoint pjp, Throwable e) {
+        ResultBean<?> result = new ResultBean();
+
+        // 已知异常
+        if (e instanceof APIBusinessException){
+            result.setMsg(e.getMessage());
+            result.setCode(ResultBean.FAIL);
+        } else if(e instanceof BusinessException){
+            log.error(pjp.getSignature() + " error ", e);
+            result.setMsg(e.toString());
+            result.setCode(ResultBean.FAIL);
+        } else if(e instanceof Exception){
+            log.error(pjp.getSignature() + " error ", e);
+            result.setMsg(e.toString());
+            result.setCode(ResultBean.NO_LOGIN);
+        } else {
+            log.error(pjp.getSignature() + " error ", e);
+            result.setMsg("系统错误");
+            result.setCode(ResultBean.NO_LOGIN);
+        }
+        return result;
+    }
+}

+ 44 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/aspect/EnableESAop.java

@@ -0,0 +1,44 @@
+package cn.bs.bsmanagebasic.aspect;
+
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName EnableESAop.java
+ * @Description 拦截com.parksong.services.delivery.DeliveryESService/并根据配置判断是否使用es服务(数据同步,查询等)
+ * @createTime 2019年10月24日 10:22:00
+ */
+@Component
+@Aspect
+@Slf4j
+@ConfigurationProperties(prefix = "es-server")
+public class EnableESAop {
+
+    private boolean enable = false;
+
+    public boolean isEnable() {
+        return enable;
+    }
+
+    public void setEnable(boolean enable) {
+        this.enable = enable;
+    }
+
+    @Around("execution(* cn.bs.bsmanagebasic.service.DeliveryESService.*(..))")
+    public Object around(ProceedingJoinPoint pjp) {
+        try {
+            if (enable) {
+                return pjp.proceed();
+            }
+        } catch (Throwable throwable) {
+            throwable.printStackTrace();
+        }
+        return null;
+    }
+}

+ 37 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/ChooseOptionsEnum.java

@@ -0,0 +1,37 @@
+package cn.bs.bsmanagebasic.common.constants;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName ChooseOptions.java
+ * @Description chooseoptions 表code
+ * @createTime 2019年07月22日 18:29:00
+ */
+public enum ChooseOptionsEnum {
+    REMINDER_TYPE("REMINDER_TYPE","通知类型"),
+    STORE_TYPE("STORE_TYPE","门店类型");
+
+    private String code;
+    private String name;
+
+    private ChooseOptionsEnum(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 98 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/Constants.java

@@ -0,0 +1,98 @@
+package cn.bs.bsmanagebasic.common.constants;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName Constants.java
+ * @Description TODO
+ * @createTime 2019年09月03日 17:16:00
+ */
+public class Constants {
+    public static interface ConsumeRecordConstants {
+        /**
+         * @description 0代表ocr
+         * @author sunjj
+         */
+        String CONSUME_FLAG_OCR = "0";
+        /**
+         * @description 1代表短信
+         * @author sunjj
+         */
+        String CONSUME_FLAG_SMS = "1";
+        /**
+         * @description 2代表充值
+         * @author sunjj
+         */
+        String CONSUME_FLAG_RECHARGE = "2";
+        /**
+         * @description 3代表短信验证码
+         * @author sunjj
+         */
+        String CONSUME_FLAG_VERIFY_CODE = "3";
+        /**
+         * @description 4代表充值赠送
+         * @author sunjj
+         */
+        String CONSUME_FLAG_GIFT = "4";
+
+        /**
+         * @description 0 不计费
+         * @author sunjj
+         */
+        String CONSUME_STATUS_NOT = "0";
+        /**
+         * @description 1 消费成功
+         * @author sunjj
+         */
+        String CONSUME_STATUS_SUCESS = "1";
+        /**
+         * @description 2 消费失败(欠费)
+         * @author sunjj
+         */
+        String CONSUME_STATUS_FAIL = "2";
+    }
+
+    public interface SmspurchaserecordConstants {
+        /**
+         * @description 1 支付宝
+         * @author sunjj
+         */
+        int PAY_WAY_ALI_PAY = 1;
+        /**
+         * @description 2 微信
+         * @author sunjj
+         */
+        int PAY_WAY_WECHAT = 2;
+        /**
+         * @description 3 充值赠送
+         * @author sunjj
+         */
+        int pay_way_gift = 3;
+        /**
+         * @description 4 线下充值
+         * @author sunjj
+         */
+        int PAY_WAY_OFFLINE = 4;
+        /**
+         * @description 5 自动充值
+         * @author sunjj
+         */
+        int PAY_WAY_AUTOMATIC = 5;
+
+        /**
+         * @description 1 已经付款
+         * @author sunjj
+         */
+        int PAY_STATUS_PAID = 1;
+        /**
+         * @description 0 待付款
+         * @author sunjj
+         */
+        int PAY_STATUS_PENDING = 0;
+    }
+
+    public interface AppConfigConstants{
+        long GROUP_KEY_DEFAULT = 0;
+    }
+
+}

+ 53 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/DeliveryStatusConstants.java

@@ -0,0 +1,53 @@
+package cn.bs.bsmanagebasic.common.constants;
+
+/**
+ * @ClassName DeliveryStatusConstants
+ * @Description 派件订单状态
+ * @Author kael
+ * @Date 2019/9/16 0016 上午 11:10
+ * @Version 1.0
+ **/
+public class DeliveryStatusConstants {
+
+    /**
+     * 未到货
+     */
+    public static final int ORDER_STATUS_AFLOAT = 120;
+    /**
+     * 待入库
+     */
+    public static final int ORDER_STATUS_WAIT_IN_STORE = 245;
+    /**
+     * 已入库
+     */
+    public static final int ORDER_STATUS_STORED = 122;
+    /**
+     * 派送中
+     */
+    public static final int ORDER_STATUS_DISPATCHING = 124;
+    /**
+     * 麦客配送中
+     */
+    public static final int ORDER_STATUS_MAIKE_DISPATCHING = 125;
+    /**
+     * 已完成
+     */
+    public static final int ORDER_STATUS_COMPLETE = 126;
+    /**
+     * 已退件
+     */
+    public static final int ORDER_STATUS_LEAVE_STORE = 246;
+    /**
+     * 拒收离库
+     */
+    public static final int ORDER_STATUS_REJECT_LEAVE_STORE = 130;
+    /**
+     * 拒收在库
+     */
+    public static final int ORDER_STATUS_REJECT_PICK_UP = 128;
+
+    /**
+     *   滞留状态
+     */
+    public static final int ORDER_STATUS_REJECT_RETENTION = 225;
+}

+ 38 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/ExpressAccountConstants.java

@@ -0,0 +1,38 @@
+package cn.bs.bsmanagebasic.common.constants;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName ExpressAccountConstants.java
+ * @Description TODO
+ * @createTime 2019年11月28日 10:25:00
+ */
+public class ExpressAccountConstants {
+
+    /**
+     * 扣费节点 - 1:入库
+     */
+    public static final byte DEDUCTION_NODE_STORAGE = 1;
+
+    /**
+     * 扣费节点 - 2:出库
+     */
+    public static final byte DEDUCTION_NODE_COMPLETE = 2;
+
+    /**
+     * 消费记录类型 - 1:扣款
+     */
+    public static final int CONSUME_TYPE_DEDUCTION = 1;
+
+    /**
+     * 消费记录类型 - 2:退款
+     */
+    public static final int CONSUME_TYPE_REFUND = 2;
+
+    /**
+     * 消费记录类型 - 3:合并计算
+     */
+    public static final int CONSUME_TYPE_MERGE = 3;
+
+
+}

+ 151 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/constants/RedisTypeEnum.java

@@ -0,0 +1,151 @@
+package cn.bs.bsmanagebasic.common.constants;
+
+import com.google.common.base.Strings;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 缓存类型
+ */
+public enum RedisTypeEnum {
+
+    /**
+     * 代表所有缓存
+     */
+    ALL(0, "all","所有"),
+    /**
+     * 快递
+     */
+    EXPRESS(1, "express","快递"),
+    /**
+     * 菜单
+     */
+    MENU(2, "menu","菜单"),
+    /**
+     * 手机号码
+     */
+    PHONE(3, "phone","手机号码"),
+    /**
+     * 用户信息
+     */
+    USER(4, "user","用户"),
+    /**
+     * 货架
+     */
+    STORESHELFTOOL(5, "storeShelf","货架SS"),
+    /**
+     *
+     */
+    CONFIGURATION(6, "configuration","O"),
+    SHELFTOOL(7, "shelfTool","货架ST"),
+
+    /**
+     * 门店信息
+     */
+    STORE(8, "store","门店"),
+    /**
+     * 类型
+     */
+    TYPELIBRARYTOOL(9,"typeLibraryTool","类型"),
+
+    /**
+     * 类型
+     */
+    STOREMODEL(10,"storeModel","门店短信模板"),
+
+    /**
+     * 退件原因
+     */
+    SENDBACKREASON(10,"sendBackReason","退件原因");
+
+    private int code;
+    private String enName;
+    private String cnName;
+
+    private RedisTypeEnum(int code, String enName, String cnName){
+        this.code=code;
+        this.enName=enName;
+        this.cnName = cnName;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public String getCnName() {
+        return cnName;
+    }
+
+    public void setCnName(String cnName) {
+        this.cnName = cnName;
+    }
+
+    public static String of(int code) {
+        for (RedisTypeEnum returnCode : RedisTypeEnum.values()) {
+            if (returnCode.getCode()==code) {
+                return returnCode.getEnName();
+            }
+        }
+        return "没有对接回传接口";
+    }
+
+    /**
+     * 返回所有enName和cnName
+     * @return
+     */
+    public static Map<String,String> getValues(){
+        Map<String,String> values = new HashMap<>();
+        for (RedisTypeEnum returnCode : RedisTypeEnum.values()) {
+            values.put(returnCode.getEnName(),returnCode.cnName);
+        }
+        return values;
+    }
+
+    public static RedisTypeEnum getRedisType(String enName) {
+        if(Strings.isNullOrEmpty(enName)){
+            return  RedisTypeEnum.ALL;
+        }
+        switch (enName) {
+            case "all":
+                return RedisTypeEnum.ALL;
+            case "express":
+                return RedisTypeEnum.EXPRESS;
+            case "menu":
+                return RedisTypeEnum.MENU;
+            case "phone":
+                return RedisTypeEnum.PHONE;
+            case "user":
+                return RedisTypeEnum.USER;
+            case "storeShelf":
+                return RedisTypeEnum.STORESHELFTOOL;
+            case "configuration":
+                return RedisTypeEnum.CONFIGURATION;
+            case "shelfTool":
+                return RedisTypeEnum.SHELFTOOL;
+            case "store":
+                return RedisTypeEnum.STORE;
+            case "typeLibraryTool":
+                return RedisTypeEnum.TYPELIBRARYTOOL;
+            case "storeModel":
+                return RedisTypeEnum.STOREMODEL;
+            case "sendBackReason":
+                return RedisTypeEnum.SENDBACKREASON;
+            default:
+                return RedisTypeEnum.ALL;
+        }
+    }
+
+}

+ 30 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/AdminTypeEnum.java

@@ -0,0 +1,30 @@
+package cn.bs.bsmanagebasic.common.enums;
+
+/**
+ * @description: 管理员类型
+ * @author: chenxuebing
+ * @create: 2021-05-06 17:50
+ **/
+public enum AdminTypeEnum {
+
+    SYSTEM_ADMIN(1, "系统管理员"),
+    STORE_ADMIN(2, "门店"),
+    DELIVERER(3, "派送员"),
+    STORE_ADMIN_TEMPLATE(4, "门店角色模版");
+
+    private int type;
+    private String name;
+
+    AdminTypeEnum(int type, String name) {
+        this.type = type;
+        this.name = name;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 44 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/ClassNameEnum.java

@@ -0,0 +1,44 @@
+package cn.bs.bsmanagebasic.common.enums;
+
+/**
+ * 所有类型类名
+ * @author kael
+ */
+
+public enum ClassNameEnum {
+    DELIVERYSIGNRETURNENUM("PlatformEnum", "platform");
+
+    private String value;
+    private String key;
+
+    ClassNameEnum(String value, String key) {
+        this.value = value;
+        this.key = key;
+    }
+
+    public static ClassNameEnum getEnum(String Key) {
+        for (ClassNameEnum statusCode : ClassNameEnum.values()) {
+            if (statusCode.getKey().equals(Key)) {
+                return statusCode;
+            }
+        }
+        return null;
+    }
+
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+}

+ 73 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/DeliverySignReturnEnum.java

@@ -0,0 +1,73 @@
+package cn.bs.bsmanagebasic.common.enums;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 订单签收回传状态
+ * @author kael
+ */
+
+public enum DeliverySignReturnEnum {
+
+    SU_SIGN_FAIL("代签失败", 4),
+    SIGN_FAIL("签收失败", 2),
+    SU_SIGN_SUCCESS("代签成功", 3),
+    SIGN_SUCCESS("签收成功", 1);
+
+
+
+    private String value;
+    private int key;
+
+    DeliverySignReturnEnum(String value, int key) {
+        this.value = value;
+        this.key = key;
+    }
+
+    public static DeliverySignReturnEnum valueOf(int code) {
+        for (DeliverySignReturnEnum statusCode : DeliverySignReturnEnum.values()) {
+            if (statusCode.getKey() == code) {
+                return statusCode;
+            }
+        }
+        return null;
+    }
+
+    public static String of(int code) {
+        for (DeliverySignReturnEnum returnCode : DeliverySignReturnEnum.values()) {
+            if (returnCode.getKey()==code) {
+                return returnCode.getValue();
+            }
+        }
+//		 return code;
+        return "";
+    }
+
+    public static List<EnumsData> getType(){
+        List<EnumsData> list = new ArrayList<EnumsData>();
+        for(DeliverySignReturnEnum type : DeliverySignReturnEnum.values()){
+            EnumsData enumsData = new EnumsData();
+            enumsData.setKey(type.getKey());
+            enumsData.setValue(type.getValue());
+            list.add(enumsData);
+        }
+        return list;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public int getKey() {
+        return key;
+    }
+
+    public void setKey(int key) {
+        this.key = key;
+    }
+}

+ 78 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/DeliveryStatusEnum.java

@@ -0,0 +1,78 @@
+package cn.bs.bsmanagebasic.common.enums;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName DeliveryStatusEnum.java
+ * @Description TODO
+ * @createTime 2019年11月18日 15:54:00
+ */
+public enum DeliveryStatusEnum {
+    STATUS_120("未到货", 120),
+    STATUS_245("待入库", 245),
+    STATUS_122("在库", 122),
+    STATUS_124("派送中", 124),
+    STATUS_125("麦客配送中", 125),
+    STATUS_126("出库", 126),
+    STATUS_246("退回", 246),
+    STATUS_130("拒收离库", 130),
+    STATUS_128("拒收在库", 128),
+    STATUS_225("滞留", 225);
+
+    private String value;
+    private int key;
+
+    DeliveryStatusEnum(String value, int key) {
+        this.value = value;
+        this.key = key;
+    }
+
+    public static DeliveryStatusEnum valueOf(int code) {
+        for (DeliveryStatusEnum statusCode : DeliveryStatusEnum.values()) {
+            if (statusCode.getKey() == code) {
+                return statusCode;
+            }
+        }
+        return null;
+    }
+
+    public static String of(int code) {
+        for (DeliveryStatusEnum returnCode : DeliveryStatusEnum.values()) {
+            if (returnCode.getKey() == code) {
+                return returnCode.getValue();
+            }
+        }
+//		 return code;
+        return "";
+    }
+
+    public static List<EnumsData> getType() {
+        List<EnumsData> list = new ArrayList<EnumsData>();
+        for (DeliveryStatusEnum type : DeliveryStatusEnum.values()) {
+            EnumsData enumsData = new EnumsData();
+            enumsData.setKey(type.getKey());
+            enumsData.setValue(type.getValue());
+            list.add(enumsData);
+        }
+        return list;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public int getKey() {
+        return key;
+    }
+
+    public void setKey(int key) {
+        this.key = key;
+    }
+}

+ 17 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/EnumsData.java

@@ -0,0 +1,17 @@
+package cn.bs.bsmanagebasic.common.enums;
+
+import lombok.Data;
+
+/**
+ * @ClassName SignReturnStatus
+ * @Description 签收回传状态
+ * @Author kael
+ * @Date 2019/9/11 0011 上午 9:39
+ * @Version 1.0
+ **/
+@Data
+public class EnumsData {
+    private Integer key;
+    private String value;
+    private String cnValue;
+}

+ 83 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/PlatformEnum.java

@@ -0,0 +1,83 @@
+package cn.bs.bsmanagebasic.common.enums;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 平台<br>
+ *
+ * @className: PlatformEnum
+ * @package: com.bs.logisticslnfoapi.util.Enum
+ * @author: kael
+ * @date: 2019/10/23 0023 下午 14:23
+ */
+public enum PlatformEnum {
+    ALBB("ALBB","阿里巴巴", 1),
+    JHY("JHY", "居欢颜",2),
+    PDD("PDD", "拼多多",3),
+    YT("YT", "圆通",4),
+    YD("YD", "韵达",5),
+    STO("STO", "申通",6),
+    ZT("ZT", "中通",7),
+    HT("BEST", "百世汇通",8),
+    HKWS("HKWS", "海康威视",999),
+    RABBITMQ("RABBITMQ", "rabbitMQ",998),
+    QT("QT", "其他",999);
+
+
+
+    private String enValue;
+    private String cnValue;
+    private int key;
+
+    PlatformEnum(String enValue, String cnValue, int key) {
+        this.enValue = enValue;
+        this.cnValue = cnValue;
+        this.key = key;
+    }
+
+    public static String of(int code) {
+        for (PlatformEnum returnCode : PlatformEnum.values()) {
+            if (returnCode.getKey()==code) {
+                return returnCode.getEnValue();
+            }
+        }
+        return "";
+    }
+
+    public static List<EnumsData> getType(){
+        List<EnumsData> list = new ArrayList<EnumsData>();
+        for(PlatformEnum type : PlatformEnum.values()){
+            EnumsData enumsData = new EnumsData();
+            enumsData.setKey(type.getKey());
+            enumsData.setValue(type.getEnValue());
+            enumsData.setCnValue(type.getCnValue());
+            list.add(enumsData);
+        }
+        return list;
+    }
+
+    public String getEnValue() {
+        return enValue;
+    }
+
+    public void setEnValue(String enValue) {
+        this.enValue = enValue;
+    }
+
+    public String getCnValue() {
+        return cnValue;
+    }
+
+    public void setCnValue(String cnValue) {
+        this.cnValue = cnValue;
+    }
+
+    public int getKey() {
+        return key;
+    }
+
+    public void setKey(int key) {
+        this.key = key;
+    }
+}

+ 70 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/enums/SMSErrorCodeEnum.java

@@ -0,0 +1,70 @@
+package cn.bs.bsmanagebasic.common.enums;
+
+
+
+/**
+ * 短信错误码
+ * @author kael
+ */
+
+public enum SMSErrorCodeEnum {
+	
+	/**      移动        **/
+	MK_0012("MK:0012", "空号"),
+	MK_0001("MK:0001", "空号"),
+	MK_0005("MK:0005", "停机"),
+	MI_0029("MI:0029", "无信号或不在服务区"),
+	UNDELIV("UNDELIV", "号码状态异常"),
+	MI_0024("MI:0024", "关机或停机"),
+	MK_0000("MK:0000", "空号"),
+	MI_0013("MI:0013", "停机"),
+	MN_0001("MN:0001", "空号"),
+	EXPIRED("EXPIRED", "接收超时"),
+	MK_0010("MK:0010", "停机"),
+	
+	/**     联通      **/
+	LT_1("1", "空号"),
+	LT_12("12", "空号"),
+	LT_10("10", "无法接通"),
+	LT_24("24", "号码状态异常"),
+	LT_ERROR_1("Error:1", "空号"),
+	LT_ERROR_12("Error:12", "空号"),
+	LT_ERROR_10("Error:10", "无法接通"),
+	LT_ERROR_24("Error:24", "号码状态异常"),
+	
+	/**     电信      **/
+	DX_601("601", "空号");
+	
+	private String code;
+	private String content;
+	
+	private SMSErrorCodeEnum(String code, String content) {
+		this.code = code;
+		this.content = content;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getContent() {
+		return content;
+	}
+
+	public void setContent(String content) {
+		this.content = content;
+	}
+	
+	public static String of(String code) {
+		 for (SMSErrorCodeEnum errorCode : SMSErrorCodeEnum.values()) {
+		     if (errorCode.getCode().equals(code))
+		        return errorCode.getContent();
+		 }
+//		 return code;
+		return "未知原因";
+   }
+}

+ 45 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/BeanUtil.java

@@ -0,0 +1,45 @@
+package cn.bs.bsmanagebasic.common.util;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName BeanUtil.java
+ * @Description TODO
+ * @createTime 2019年07月28日 20:52:00
+ */
+@Component
+public class BeanUtil implements ApplicationContextAware {
+    private static ApplicationContext applicationContext;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        if(BeanUtil.applicationContext == null) {
+            BeanUtil.applicationContext = applicationContext;
+        }
+    }
+
+    public static ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    //通过name获取 Bean.
+    public static Object getBean(String name){
+        return getApplicationContext().getBean(name);
+    }
+
+    //通过class获取Bean.
+    public static <t> t getBean(Class<t> clazz){
+        return getApplicationContext().getBean(clazz);
+    }
+
+    //通过name,以及Clazz返回指定的Bean
+    public static <t> t getBean(String name, Class<t> clazz){
+        return getApplicationContext().getBean(name, clazz);
+    }
+
+}

+ 301 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/CacheTool.java

@@ -0,0 +1,301 @@
+package cn.bs.bsmanagebasic.common.util;
+
+import cn.bs.bsmanagebasic.common.util.redis.JedisClient;
+import cn.bs.bsmanagebasic.entity.*;
+import cn.bs.bsmanagebasic.entity.dto.StoreTemplateDto;
+import cn.bs.bsmanagebasic.entity.sys.SysParam;
+import cn.bs.bsmanagebasic.entity.sys.SysType;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+import org.springframework.web.context.ContextLoader;
+import org.springframework.web.context.WebApplicationContext;
+
+import java.util.List;
+import java.util.Set;
+
+
+/**
+ * 缓存数据的操作类
+ * @author Administrator
+ *
+ */
+public class CacheTool {
+    private JedisClient jedis = null;
+
+	private String jedisKey;
+	private Class className;
+
+	private static final String CACHE_NAMESPACE = "haliaeetus:";
+	private static final String CACHB_DX = "smsSender";
+	private static final String SMSCOUNT = "SMSCOUNT";
+	private static final String USERAVATAR = "userAvatar:";
+
+	public CacheTool(String Hashkey, Class className){
+		this.jedisKey = Hashkey;
+		this.className = className;
+//		this.jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+	}
+
+	public CacheTool(String Hashkey){
+		this.jedisKey = Hashkey;
+//		this.jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+	}
+
+
+	private static CacheTool storeTool = new CacheTool(CACHE_NAMESPACE + "S",ExStore.class);
+	private static CacheTool expressTool = new CacheTool(CACHE_NAMESPACE + "E",ExExpressType.class);
+//	private static CacheTool typeLibraryTool = new CacheTool(CACHE_NAMESPACE + "T", TypeLibrary.class);
+	private static CacheTool userTool = new CacheTool(CACHE_NAMESPACE + "U", User.class);
+	private static CacheTool storeShelfTool = new CacheTool(CACHE_NAMESPACE + "SS", StoreShelf.class);
+	private static CacheTool shelfTool = new CacheTool(CACHE_NAMESPACE + "ST", StoreShelf.class);
+	private static final String DELIVERY_STATUS = "delivery-status";
+	//	private static CacheTool provinceTool = new CacheTool(CACHE_NAMESPACE + "P", Province.class);
+//	private static CacheTool cityTool = new CacheTool(CACHE_NAMESPACE + "C", City.class);
+//	private static CacheTool areaTool = new CacheTool(CACHE_NAMESPACE + "A", Area.class);
+//	private static CacheTool menuTool = new CacheTool(CACHE_NAMESPACE+"M", Menu.class);
+//	private static CacheTool phoneTool = new CacheTool(CACHE_NAMESPACE+"PHONE", PhoneLibDto.class);
+	private static CacheTool configurationTool = new CacheTool(CACHE_NAMESPACE + "O",Configuration.class);
+//	private static CacheTool limitTool = new CacheTool(CACHE_NAMESPACE + "LI",StoreReqLimit.class);
+	private static CacheTool storeModelTool = new CacheTool(CACHE_NAMESPACE + "SMODEL",StoreTemplateDto.class);
+	private static CacheTool smsFlagTool = new CacheTool(CACHB_DX );
+	private static CacheTool smsCount = new CacheTool(SMSCOUNT + "SMSCOUNT",Long.class);
+	private static CacheTool pubObject = new CacheTool("",Long.class);
+	private static CacheTool platformConfigTool = new CacheTool(CACHE_NAMESPACE + "pfc",Platform.class);
+//	private static CacheTool sendBackReasonTool = new CacheTool(CACHE_NAMESPACE+"SENDBR", SendBackReason.class);
+    private static CacheTool deliveryStatusTool = new CacheTool(DELIVERY_STATUS);
+	private static CacheTool sysTypeTool = new CacheTool(CACHE_NAMESPACE + "sysType", SysType.class);
+	private static CacheTool sysParamTool = new CacheTool(CACHE_NAMESPACE + "sysParam", SysParam.class);
+	private static CacheTool expressAccountTool = new CacheTool(CACHE_NAMESPACE + "EA", ExpressDeptAccount.class);
+	private static CacheTool userAvatarTool = new CacheTool(USERAVATAR, String.class);
+
+	public CacheTool(){
+
+	}
+
+
+	public static CacheTool initPubObject(){
+		return pubObject;
+	}
+	public static CacheTool initSMSFlag(){
+		return smsFlagTool;
+	}
+	public static CacheTool initStore() {
+        return storeTool;
+    }
+	public static CacheTool initConfiguration() {
+		return configurationTool;
+	}
+//	public static CacheTool initLimit() {
+//		return limitTool;
+//	}
+	public static CacheTool initExpress(){
+		 return expressTool;
+	}
+//	public static CacheTool initTypeLibrary(){
+//		 return typeLibraryTool;
+//	}
+	public static CacheTool initUser(){
+		 return userTool;
+	}
+	public static CacheTool initStoreShelf(){
+		 return storeShelfTool;
+	}
+	public static CacheTool initShelf(){
+		 return shelfTool;
+	}
+//	public static CacheTool initProvince(){
+//		 return provinceTool;
+//	}
+//	public static CacheTool initCity(){
+//		 return cityTool;
+//	}
+//	public static CacheTool initArea(){
+//		 return areaTool;
+//	}
+//	public static CacheTool initMenu(){
+//		return menuTool;
+//	}
+//	public static CacheTool initPhone(){
+//		return phoneTool;
+//	}
+	public static CacheTool initStoreModel(){
+		return storeModelTool;
+	}
+	public static CacheTool initSmsCount(){
+		return smsCount;
+	}
+	public static CacheTool initPlatformConfig(){
+		return platformConfigTool;
+	}
+	public static CacheTool initDeliveryStatusTool(){
+		return deliveryStatusTool;
+	}
+	public static CacheTool initSysTypeTool(){
+		return sysTypeTool;
+	}
+	public static CacheTool initSysParamTool(){
+		return sysParamTool;
+	}
+//	public static CacheTool initSendBackReason(){
+//	    return sendBackReasonTool;
+//    }
+	public static CacheTool initExpressAccountTool(){
+		return expressAccountTool;
+	}
+	public static CacheTool initUserAvatarTool(){
+		return userAvatarTool;
+	}
+
+	/**
+	 * 根据key获取对象
+	 */
+	public Object getBean(String key ){
+		if(null == jedis){
+			WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+			jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+		}
+		String json = jedis.hget(this.jedisKey, key);
+		if("0".equals(key)){
+			//map or list
+			return json;
+		}else{
+			return JSON.parseObject(json, this.className);
+		}
+	}
+
+	/**
+	 * 根据key获取对象
+	 * @param <T>
+	 */
+	public <T> List<T> getBean(String key, Class<T> clazz){
+		if(null == jedis){
+			WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+			jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+		}
+		String json = jedis.hget(this.jedisKey, key);
+		return JSON.parseArray(json, clazz);
+
+	}
+
+
+
+	/**
+	 * 保存被序列化后的对象
+	 */
+	public boolean saveBean(String key, Object value){
+		long ret = -1;
+		if(null == jedis){
+			WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+			jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+		}
+
+		if(null == value){
+			//删除操作
+			ret = jedis.hdel(this.jedisKey, key);
+		}
+		else{
+			String json = JSON.toJSONString(value);
+			ret = jedis.hset(this.jedisKey, key, json);
+		}
+
+		return ret == 0 ? true: false;
+	}
+
+	/**
+	 * 根据key获取String
+	 */
+	public String getString(String key ){
+		if(null == jedis){
+			WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+			jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+		}
+		return jedis.hget(this.jedisKey, key);
+	}
+
+	/**
+	 * 根据key设置过期时间
+	 */
+	public boolean setExpire(String key,Integer Timestamp){
+		if(null == jedis){
+			WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+			jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+		}
+		String string = getString(key);
+
+		long expire = jedis.expire(key,Timestamp);
+		return expire > 0 ? true:false;
+	}
+
+    /**
+     * 根据key获取对象String
+     */
+    public String getStringKey(String key){
+        if(null == jedis){
+            WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+            jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+        }
+        return jedis.get(this.jedisKey+":"+key);
+    }
+
+    /**
+     * set对象String并获取过期时间
+     */
+    public void setStringandDatakey(String key,String value,Integer dataTime){
+        long ret = -1;
+        if(null == jedis){
+            WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+            jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+        }
+        jedis.set(this.jedisKey+":"+key, value, dataTime);
+    }
+
+    /**
+     * set对象Sting
+     */
+    public void setStringKey(String key,String value){
+        long ret = -1;
+        if(null == jedis){
+            WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+            jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+        }
+        jedis.set(this.jedisKey+":"+key, value);
+    }
+
+	/**
+	 * 获取所有key
+	 * @return
+	 */
+	public Set<byte[]> getKeys(){
+		if(null == jedis){
+			WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+			jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+		}
+		return jedis.keys(this.jedisKey+"*");
+	}
+
+	/**
+	 * 根据key删除数据
+	 * @return
+	 */
+	public void del(String key){
+		if(null == jedis){
+			WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+			jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+		}
+		jedis.del(this.jedisKey+":"+key);
+	}
+	/**
+	 * 根据key删除数据
+	 * @return
+	 */
+	public void hdel(String key){
+		if(null == jedis){
+			WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
+			jedis = BeanUtil.getBean("jedisClient",JedisClient.class);
+		}
+		jedis.hdel(this.jedisKey,key);
+	}
+
+}

+ 226 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/Pager.java

@@ -0,0 +1,226 @@
+package cn.bs.bsmanagebasic.common.util;
+
+import java.util.List;
+
+/**
+ * 用于分页的工具类
+ *
+ * @author
+ */
+public class Pager<T> {
+
+    /**
+     * 对象记录结果集
+     */
+    private List<T> list;
+    /**
+     * 总记录数
+     */
+    private long total = 0;
+    /**
+     * 每页显示记录数
+     */
+    private int pageSize = 20;
+    /**
+     * 总页数
+     */
+    private int pages = 1;
+    /**
+     * 当前页
+     */
+    private int pageNumber = 1;
+
+    /**
+     * 是否为第一页
+     */
+    private boolean isFirstPage = false;
+    /** 是否为最后一页*/
+    private boolean isLastPage = false;
+    /** 是否有前一页 */
+    private boolean hasPreviousPage = false;
+    //是否有下一页
+    private boolean hasNextPage = false;
+
+    //导航页码数
+    private int navigatePages = 8;
+    // 所有导航页号
+    private int[] navigatePageNumbers;
+
+    public Pager(long total, int pageNumber) {
+        init(total, pageNumber, pageSize);
+    }
+
+    public Pager(long total, int pageNumber, int pageSize) {
+        init(total, pageNumber, pageSize);
+    }
+
+    private void init(long total, int pageNumber, int pageSize) {
+        //设置基本参数
+        this.total = total;
+        this.pageSize = pageSize;
+        this.pages = (int) ((this.total - 1) / this.pageSize + 1);
+
+        //根据输入可能错误的当前号码进行自动纠正
+        if (pageNumber < 1) {
+            this.pageNumber = 1;
+        } else if (pageNumber > this.pages) {
+            this.pageNumber = this.pages;
+        } else {
+            this.pageNumber = pageNumber;
+        }
+
+        //基本参数设定之后进行导航页面的计算
+        calcNavigatePageNumbers();
+
+        //以及页面边界的判定
+        judgePageBoudary();
+    }
+
+    /**
+     * 计算导航页
+     */
+    private void calcNavigatePageNumbers() {
+        //当总页数小于或等于导航页码数时
+        if (pages <= navigatePages) {
+            navigatePageNumbers = new int[pages];
+            for (int i = 0; i < pages; i++) {
+                navigatePageNumbers[i] = i + 1;
+            }
+        } else { //当总页数大于导航页码数时
+            navigatePageNumbers = new int[navigatePages];
+            int startNum = pageNumber - navigatePages / 2;
+            int endNum = pageNumber + navigatePages / 2;
+
+            if (startNum < 1) {
+                startNum = 1;
+                //(最前navPageCount页
+                for (int i = 0; i < navigatePages; i++) {
+                    navigatePageNumbers[i] = startNum++;
+                }
+            } else if (endNum > pages) {
+                endNum = pages;
+                //最后navPageCount页
+                for (int i = navigatePages - 1; i >= 0; i--) {
+                    navigatePageNumbers[i] = endNum--;
+                }
+            } else {
+                //所有中间页
+                for (int i = 0; i < navigatePages; i++) {
+                    navigatePageNumbers[i] = startNum++;
+                }
+            }
+        }
+    }
+
+    /**
+     * 判定页面边界
+     */
+    private void judgePageBoudary() {
+        isFirstPage = pageNumber == 1;
+        isLastPage = pageNumber == pages && pageNumber != 1;
+        hasPreviousPage = pageNumber != 1;
+        hasNextPage = pageNumber != pages;
+    }
+
+
+    public void setList(List<T> list) {
+        this.list = list;
+    }
+
+    /**
+     * 得到当前页的内容
+     *
+     * @return {List}
+     */
+    public List<T> getList() {
+        return list;
+    }
+
+    /**
+     * 得到记录总数
+     *
+     * @return {int}
+     */
+    public long getTotal() {
+        return total;
+    }
+
+    /**
+     * 得到每页显示多少条记录
+     *
+     * @return {int}
+     */
+    public int getpageSize() {
+        return pageSize;
+    }
+
+    /**
+     * 得到页面总数
+     *
+     * @return {int}
+     */
+    public int getPages() {
+        return pages;
+    }
+
+    /**
+     * 得到当前页号
+     *
+     * @return {int}
+     */
+    public int getPageNumber() {
+        return pageNumber;
+    }
+
+
+    /**
+     * 得到所有导航页号
+     *
+     * @return {int[]}
+     */
+    public int[] getNavigatePageNumbers() {
+        return navigatePageNumbers;
+    }
+
+    public boolean isFirstPage() {
+        return isFirstPage;
+    }
+
+    public boolean isLastPage() {
+        return isLastPage;
+    }
+
+    public boolean hasPreviousPage() {
+        return hasPreviousPage;
+    }
+
+    public boolean hasNextPage() {
+        return hasNextPage;
+    }
+
+    @Override
+    public String toString() {
+        String str = new String();
+        str = "[" +
+                "total=" + total +
+                ",pages=" + pages +
+                ",pageNumber=" + pageNumber +
+                ",pageSize=" + pageSize +
+                //",navigatePages="+navigatePages+
+                ",isFirstPage=" + isFirstPage +
+                ",isLastPage=" + isLastPage +
+                ",hasPreviousPage=" + hasPreviousPage +
+                ",hasNextPage=" + hasNextPage +
+                ",navigatePageNumbers=";
+        int len = navigatePageNumbers.length;
+        if (len > 0) {
+            str += (navigatePageNumbers[0]);
+        }
+        for (int i = 1; i < len; i++) {
+            str += (" " + navigatePageNumbers[i]);
+        }
+        //sb+=",list="+list;
+        str += "]";
+        return str;
+    }
+}

+ 163 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/redis/JedisClient.java

@@ -0,0 +1,163 @@
+package cn.bs.bsmanagebasic.common.util.redis;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Created by Administrator on 2016/3/13.
+ */
+public interface JedisClient {
+    /**
+     * 获取缓存
+     * @param key
+     * @return
+     */
+    String get(String key);
+
+    byte[] get(byte[] key);
+
+    /**
+     * 设置缓存
+     * @param key
+     * @param value
+     * @return
+     */
+    String set(String key, String value);
+
+    /**
+     * 设置缓存
+     * @param key
+     * @param value
+     * @param expire 过去时间
+     * @return
+     */
+    String set(String key, String value, int expire);
+
+    String set(byte[] key, byte[] value);
+
+    String set(byte[] key, byte[] value, int expire);
+
+    /**
+     * 哈希 获取缓存
+     * @param hkey
+     * @param key
+     * @return
+     */
+    String hget(String hkey, String key);
+    
+    /**
+     * 哈希 获取哈希表缓存
+     * @param hkey
+     * @param key
+     * @return
+     */
+    Map<String,String> hgetall(String hkey);
+
+    /**
+     * 哈希 设置缓存
+     * @param hkey
+     * @param key
+     * @param value
+     * @return
+     */
+    long hset(String hkey, String key, String value);
+
+    /**
+     *获取自增值
+     * @param key
+     * @return
+     */
+    long incr(String key);
+
+    /**
+     *设置有效期
+     * @param key
+     * @param second
+     * @return
+     */
+    long expire(String key, int second);
+
+    /**
+     *获取有效期
+     * @param key
+     * @return
+     */
+    long ttl(String key);
+
+    /**
+     * 删除缓存
+     * @param key
+     * @return
+     */
+    long del(String key);
+
+    long del(byte[] key);
+
+    /**
+     * 删除哈希 缓存
+     * @param hkey
+     * @param key
+     * @return
+     */
+    long hdel(String hkey, String key);
+
+    Set<byte[]> keys(String pattern);
+
+    /**
+     * 添加集合元素
+     * @param key
+     * @return
+     */
+    public Long sadd(String key, String... members);
+    
+    /**
+     * 集合元素查看
+     * @param key
+     * @return
+     */
+    public Set<String> smembers(String key);
+    
+    /**
+     * 删除集合元素
+     * @param key
+     * @return
+     */
+    public Long srem(String key, String... members);
+    
+    /**
+     * 查看两个集合并集
+     * @param keys(集合名称1,集合名称2)
+     * @return
+     */
+    public Set<String> sunion(String... keys);
+    
+    /**
+     * 查看两个集合交集 
+     * @param keys(集合名称1,集合名称2)
+     * @return
+     */
+    public Long sinter(String dstkey, String... keys);
+    
+    /**
+     * 查看两个集合差集 
+     * @param keys(集合名称1,集合名称2)
+     * @return
+     */
+    public Set<String> sdiff(String... keys);
+    
+    /**
+     * 刷新数据
+     */
+    void flushDB();
+
+    Long dbSize();
+
+    /**
+     * 注意一定得设置过期时间
+     * @param key
+     * @param value
+     * @param time
+     * @return
+     */
+//    long setNx(String key,String value,long time);
+}

+ 432 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/common/util/redis/JedisClientSingle.java

@@ -0,0 +1,432 @@
+package cn.bs.bsmanagebasic.common.util.redis;
+
+import org.springframework.stereotype.Service;
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.JedisPool;
+
+import java.util.Map;
+import java.util.Set;
+
+public class JedisClientSingle implements JedisClient {
+
+    private JedisPool jedisPool;
+
+    public JedisClientSingle(JedisPool jedisPool) {
+        this.jedisPool = jedisPool;
+    }
+
+    @Override
+    public String get(String key) {
+        String value = null;
+        Jedis jedis = jedisPool.getResource();
+        try {
+            value = jedis.get(key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return value;
+    }
+
+    @Override
+    public byte[] get(byte[] key) {
+        byte[] value = null;
+        Jedis jedis = jedisPool.getResource();
+        try {
+            value = jedis.get(key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return value;
+    }
+
+    @Override
+    public String set(String key, String value) {
+        Jedis jedis = jedisPool.getResource();
+        try {
+            value = jedis.set(key, value);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return value;
+    }
+
+    @Override
+    public String set(String key, String value, int expire) {
+        Jedis jedis = jedisPool.getResource();
+        try {
+            value = jedis.set(key, value);
+            if (expire != 0) {
+                jedis.expire(key, expire);
+            }
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return value;
+    }
+
+    @Override
+    public String set(byte[] key, byte[] value) {
+        Jedis jedis = jedisPool.getResource();
+        String v = null;
+        try {
+            v = jedis.set(key, value);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return v;
+    }
+
+    @Override
+    public String set(byte[] key, byte[] value, int expire) {
+        Jedis jedis = jedisPool.getResource();
+        String v = null;
+        try {
+            v = jedis.set(key, value);
+            if (expire != 0) {
+                jedis.expire(key, expire);
+            }
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return v;
+    }
+
+    @Override
+    public String hget(String hkey, String key) {
+        String value = null;
+        Jedis jedis = jedisPool.getResource();
+        try {
+            value = jedis.hget(hkey, key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return value;
+    }
+
+    @Override
+    public long hset(String hkey, String key, String value) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.hset(hkey, key, value);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public long incr(String key) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.incr(key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public long expire(String key, int second) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.expire(key, second);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public long ttl(String key) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.ttl(key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public long del(String key) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.del(key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public long del(byte[] key) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.del(key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public long hdel(String hkey, String key) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.hdel(hkey, key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public Set<byte[]> keys(String pattern) {
+        Set<byte[]> keys = null;
+        Jedis jedis = null;
+        try {
+            jedis = jedisPool.getResource();
+        } catch (Exception e) {
+            return null;
+        }
+        try {
+            keys = jedis.keys(pattern.getBytes("utf-8"));
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return keys;
+    }
+
+    @Override
+    public void flushDB() {
+        Jedis jedis = jedisPool.getResource();
+        try {
+            jedis.flushDB();
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+    }
+
+    @Override
+    public Long dbSize() {
+        Long dbSize = 0L;
+        Jedis jedis = jedisPool.getResource();
+        try {
+            dbSize = jedis.dbSize();
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return dbSize;
+    }
+
+    @Override
+    public Long sadd(String key, String... members) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.sadd(key, members);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public Set<String> smembers(String key) {
+        Jedis jedis = jedisPool.getResource();
+        Set<String> result = null;
+        try {
+            result = jedis.smembers(key);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public Long srem(String key, String... members) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.srem(key, members);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public Set<String> sunion(String... keys) {
+        Jedis jedis = jedisPool.getResource();
+        Set<String> result = null;
+        try {
+            result = jedis.sunion(keys);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public Long sinter(String dstkey, String... keys) {
+        Jedis jedis = jedisPool.getResource();
+        Long result = Long.valueOf(0);
+        try {
+            result = jedis.sinterstore(dstkey, keys);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public Set<String> sdiff(String... keys) {
+        Jedis jedis = jedisPool.getResource();
+        Set<String> result = null;
+        try {
+            result = jedis.sdiff(keys);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public Map<String, String> hgetall(String hkey) {
+        Jedis jedis = jedisPool.getResource();
+        Map<String, String> result = null;
+        try {
+            result = jedis.hgetAll(hkey);
+        } catch (Exception e) {
+            //jedisPool.returnBrokenResource(jedis);
+        } finally {
+            //jedisPool.returnResource(jedis);
+            if (null != jedis) {
+                jedis.close();
+            }
+        }
+        return result;
+    }
+}

+ 19 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/AmapConfig.java

@@ -0,0 +1,19 @@
+package cn.bs.bsmanagebasic.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName AmapConfig
+ * @Description
+ * @Author SunJJ
+ * @Date 2020/7/8 10:28
+ * @Version V1.0
+ **/
+@Component
+@Data
+@ConfigurationProperties(prefix = "amap")
+public class AmapConfig {
+    private String key;
+}

+ 54 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/JedisConfig.java

@@ -0,0 +1,54 @@
+package cn.bs.bsmanagebasic.config;
+
+import cn.bs.bsmanagebasic.common.util.redis.JedisClient;
+import cn.bs.bsmanagebasic.common.util.redis.JedisClientSingle;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.JedisPoolConfig;
+
+/**
+ * @author taohaijun
+ * @Description:
+ * @date 2018/11/19 10:25
+ */
+@Configuration
+@EnableConfigurationProperties(JedisProperties.class)
+@ConditionalOnClass(JedisClient.class)
+@Slf4j
+public class JedisConfig {
+
+    @Autowired
+    private JedisProperties prop;
+
+    @Value("${spring.redis.pool.maxTotal}")
+    private int maxTotal;
+    @Value("${spring.redis.pool.min-idle}")
+    private int maxIdle;
+    @Value("${spring.redis.pool.maxWaitMillis}")
+    private int maxWaitMillis;
+
+    @Bean(name = "jedisPool")
+    public JedisPool jedisPool() {
+        JedisPoolConfig config = new JedisPoolConfig();
+        config.setMaxTotal(maxTotal);
+        config.setMaxIdle(maxIdle);
+        config.setMaxWaitMillis(maxWaitMillis);
+        return new JedisPool(config, prop.getHost(), prop.getPort(), prop.getTimeout(), prop.getPassword(), 0);
+    }
+
+    @Bean(name = "jedisClient")
+    @ConditionalOnMissingBean(JedisClient.class)
+    public JedisClient jedisClient(@Qualifier("jedisPool") JedisPool pool) {
+        log.info("初始化……Redis Client==Host={},Port={}", prop.getHost(), prop.getPort());
+        JedisClient redisClient = new JedisClientSingle(pool);
+        return redisClient;
+    }
+}

+ 55 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/JedisProperties.java

@@ -0,0 +1,55 @@
+package cn.bs.bsmanagebasic.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * @author taohaijun
+ * @Description:
+ * @date 2018/11/19 10:23
+ */
+@ConfigurationProperties(prefix = JedisProperties.JEDIS_PREFIX)
+public class JedisProperties {
+
+    public static final String JEDIS_PREFIX = "spring.redis";
+
+    private String host;
+
+    private int port;
+
+    private String password;
+
+    private int timeout;
+
+    public int getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(int timeout) {
+        this.timeout = timeout;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public void setPort(int port) {
+        this.port = port;
+    }
+
+}

+ 78 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/JeesiteDatasourceConfig.java

@@ -0,0 +1,78 @@
+package cn.bs.bsmanagebasic.config;
+
+import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+/**
+ *
+ */
+@Configuration
+@MapperScan(basePackages = JeesiteDatasourceConfig.PACKAGE, sqlSessionFactoryRef = "jeesiteSqlSessionFactory")
+public class JeesiteDatasourceConfig {
+
+    static final String PACKAGE = "cn.bs.bsmanagebasic.dao.jeesite";
+
+    private static final String DATA_SOURCE = "jeesiteDataSource";
+    private static final String SESSION_FACTORY = "jeesiteSqlSessionFactory";
+    private static final String XA_DATA_SOURCE = "xaJeeSiteDataSource";
+    private static final String XA_PROPERTIES = "spring.datasource.xa";
+    private static final String DATA_SOURCE_PROPERTIES = "spring.datasource.xa.jeesite-xa-properties";
+
+    /*
+    @Bean(name = "jeesiteDataSource")
+    @Primary
+    @ConfigurationProperties(prefix = "spring.datasource.hikari.jeesite")
+    public HikariDataSource dataSource() {
+        return new HikariDataSource();
+    }
+
+    @Bean(name = "jeesiteTransactionManager")
+    @Primary
+    public DataSourceTransactionManager transactionManager() {
+        return new DataSourceTransactionManager(this.dataSource());
+    }
+    */
+
+    @Bean(name = DATA_SOURCE)
+    @ConfigurationProperties(prefix = DATA_SOURCE_PROPERTIES)
+    public MysqlXADataSource dataSource() throws SQLException {
+        MysqlXADataSource xaDataSource = new MysqlXADataSource();
+        xaDataSource.setPinGlobalTxToPhysicalConnection(true);
+        xaDataSource.setPinGlobalTxToPhysicalConnection(true);
+        return xaDataSource;
+    }
+
+    @Bean(name = XA_DATA_SOURCE)
+    @Primary
+    @ConfigurationProperties(prefix = XA_PROPERTIES)
+    public AtomikosDataSourceBean jeeSiteAtomikosDataSource(@Qualifier(DATA_SOURCE) MysqlXADataSource dataSource) throws SQLException {
+        AtomikosDataSourceBean atomikosDataSourceBean = new AtomikosDataSourceBean();
+        atomikosDataSourceBean.setXaDataSource(dataSource);
+        atomikosDataSourceBean.setUniqueResourceName(XA_DATA_SOURCE);
+        return atomikosDataSourceBean;
+    }
+
+    @Bean(name = SESSION_FACTORY)
+    @Primary
+    public SqlSessionFactory sqlSessionFactory(@Qualifier(XA_DATA_SOURCE) DataSource dataSource) throws Exception {
+        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
+        sessionFactory.setDataSource(dataSource);
+        // sessionFactory.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
+        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/jeesite/*.xml"));
+        return sessionFactory.getObject();
+    }
+
+
+}

+ 76 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/JisuDatasourceConfig.java

@@ -0,0 +1,76 @@
+package cn.bs.bsmanagebasic.config;
+
+import com.mysql.jdbc.jdbc2.optional.MysqlXADataSource;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+@Configuration
+@MapperScan(basePackages = JisuDatasourceConfig.PACKAGE, sqlSessionFactoryRef = "jisuSqlSessionFactory")
+public class JisuDatasourceConfig {
+
+    static final String PACKAGE = "cn.bs.bsmanagebasic.dao.jisu";
+
+    private static final String DATA_SOURCE = "jisuDataSource";
+    private static final String SESSION_FACTORY = "jisuSqlSessionFactory";
+    private static final String XA_DATA_SOURCE = "xaJisuDataSource";
+    private static final String XA_PROPERTIES = "spring.datasource.xa";
+    private static final String DATA_SOURCE_PROPERTIES = "spring.datasource.xa.jisu-xa-properties";
+
+    /*
+    @Bean(name = "jisuDataSource")
+    @ConfigurationProperties(prefix = "spring.datasource.hikari.jisu")
+    public HikariDataSource dataSource() {
+        return DataSourceBuilder.create().type(HikariDataSource.class).build();
+    }
+
+    @Bean(name = "jisuTransactionManager")
+    public DataSourceTransactionManager transactionManager() {
+        return new DataSourceTransactionManager(this.dataSource());
+    }
+    */
+
+    @Bean(name = DATA_SOURCE)
+    @ConfigurationProperties(prefix = DATA_SOURCE_PROPERTIES)
+    public MysqlXADataSource dataSource() throws SQLException {
+        MysqlXADataSource xaDataSource = new MysqlXADataSource();
+        xaDataSource.setPinGlobalTxToPhysicalConnection(true);
+        xaDataSource.setPinGlobalTxToPhysicalConnection(true);
+        return xaDataSource;
+    }
+
+    @Bean(name = XA_DATA_SOURCE)
+    @ConfigurationProperties(prefix = XA_PROPERTIES)
+    public AtomikosDataSourceBean jiSuAtomikosDataSource(@Qualifier(DATA_SOURCE) MysqlXADataSource dataSource) throws SQLException {
+        AtomikosDataSourceBean atomikosDataSourceBean = new AtomikosDataSourceBean();
+        atomikosDataSourceBean.setXaDataSource(dataSource);
+        atomikosDataSourceBean.setUniqueResourceName("xaJisuSite");
+        return atomikosDataSourceBean;
+    }
+
+    @Bean(name = SESSION_FACTORY)
+    public SqlSessionFactory sqlSessionFactory(@Qualifier(XA_DATA_SOURCE) DataSource dataSource) throws Exception {
+        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
+        sessionFactory.setDataSource(dataSource);
+        // sessionFactory.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
+        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapper/jisu/*.xml"));
+        return sessionFactory.getObject();
+    }
+
+    @Bean(name = "jisuJdbcTemplate")
+    public JdbcTemplate primaryJdbcTemplate(@Qualifier(DATA_SOURCE) DataSource dataSource) {
+        return new JdbcTemplate(dataSource);
+    }
+
+
+}

+ 35 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/MyMessagePostProcessor.java

@@ -0,0 +1,35 @@
+package cn.bs.bsmanagebasic.config;
+
+import org.springframework.amqp.AmqpException;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.core.MessagePostProcessor;
+
+/**
+ * @ClassName MyMessagePostProcessor
+ * @Description TODO
+ * @Author kael
+ * @Date 2019/8/15 0015 上午 11:04
+ * @Version 1.0
+ **/
+public class MyMessagePostProcessor implements MessagePostProcessor {
+    /**
+     * 毫秒
+     */
+    private final Long ttl;
+    public MyMessagePostProcessor(Long ttl) {
+        this.ttl = ttl;
+    }
+
+    /**
+     * 设置per-message的失效时间
+     * @param message
+     * @return
+     * @throws AmqpException
+     */
+    @Override
+    public Message postProcessMessage(Message message) throws AmqpException {
+        message.getMessageProperties()
+                .setExpiration(ttl.toString());
+        return message;
+    }
+}

+ 98 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/RabbitConfig.java

@@ -0,0 +1,98 @@
+package cn.bs.bsmanagebasic.config;
+
+import lombok.Data;
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.DirectExchange;
+import org.springframework.amqp.core.Queue;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: Rabbitconfig
+ * @package: cn.bs.bsmanagebasic.utils
+ * @author: kael
+ * @date: 2019/11/11 0011 下午 14:44
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix = "spring.rabbitmq")
+@Configuration
+public class RabbitConfig {
+
+    /**
+     * Express
+     */
+    private String expressQueue;
+    private String expressExchange;
+    private String expressKey;
+    /**
+     * 极光推送
+     */
+    private String jPushQueueName;
+    private String jPushExchangeName;
+    private String jPushRoutingKey;
+
+
+    /**
+     * 定义ES删除队列
+     * @return
+     */
+    @Bean
+    public Queue expressQueue() {
+        return new Queue(expressQueue,true);
+    }
+
+    /**
+     * 定义ES删除交换机
+     * @return
+     */
+    @Bean
+    DirectExchange expressExchange() {
+        return new DirectExchange(expressExchange,true,false);
+    }
+
+    /**
+     * ES删除队列与交换机绑定
+     * @param expressQueue
+     * @param expressExchange
+     * @return
+     */
+    @Bean
+    public Binding bindingESDeleteExchange(Queue expressQueue, DirectExchange expressExchange) {
+        return BindingBuilder.bind(expressQueue).to(expressExchange).with(expressKey);
+    }
+
+    /**
+     * 定义极光推送队列
+     * @return
+     */
+    @Bean
+    public Queue jPushQueue() {
+        return new Queue(jPushQueueName,true);
+    }
+
+    /**
+     * 定义极光推送交换机
+     * @return
+     */
+    @Bean
+    DirectExchange jPushExchange() {
+        return new DirectExchange(jPushExchangeName,true,false);
+    }
+
+    /**
+     * 极光推送队列与交换机绑定
+     * @param jPushQueue
+     * @param jPushExchange
+     * @return
+     */
+    @Bean
+    public Binding bindingjPushExchange(Queue jPushQueue, DirectExchange jPushExchange) {
+        return BindingBuilder.bind(jPushQueue).to(jPushExchange).with(jPushRoutingKey);
+    }
+}

+ 30 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/RedisSessionConfig.java

@@ -0,0 +1,30 @@
+package cn.bs.bsmanagebasic.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.session.data.redis.config.ConfigureRedisAction;
+import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: RedisSessionConfig
+ * @package: cn.bs.bsmanagebasic.config
+ * @author: kael
+ * @date: 2019/12/23 0023 下午 13:44
+ */
+@EnableRedisHttpSession(maxInactiveIntervalInSeconds = -1)
+public class RedisSessionConfig {
+    @Bean
+    public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
+        return new StringRedisTemplate(redisConnectionFactory);
+    }
+
+    @Bean
+    public static ConfigureRedisAction configureRedisAction() {
+        return ConfigureRedisAction.NO_OP;
+    }
+}

+ 35 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/config/WebCrossOrigin.java

@@ -0,0 +1,35 @@
+package cn.bs.bsmanagebasic.config;
+
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+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;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: WebCrossOrigin
+ * @package: cn.bs.bsmanagebasic.config
+ * @author: kael
+ * @date: 2019/12/23 0023 上午 10:16
+ */
+@Configuration
+public class WebCrossOrigin {
+
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    @Bean
+    public FilterRegistrationBean corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        CorsConfiguration config = new CorsConfiguration();
+        config.setAllowCredentials(true);
+        config.addAllowedOrigin("*");
+        config.addAllowedHeader("*");
+        config.addAllowedMethod("*");
+        source.registerCorsConfiguration("/**", config);
+        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
+        bean.setOrder(0);
+        return bean;
+    }
+}

+ 35 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/configuration/LocalDateTimeSerializerConfig.java

@@ -0,0 +1,35 @@
+package cn.bs.bsmanagebasic.configuration;
+
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * 时间数据格式化<br>
+ *
+ * @className: LocalDateTimeSerializerConfig
+ * @package: cn.bs.bsmanagebasic.configuration
+ * @author: kael
+ * @date: 2019/10/31 0031 下午 17:02
+ */
+
+@Configuration
+public class LocalDateTimeSerializerConfig {
+    @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
+    private String pattern;
+
+    @Bean
+    public LocalDateTimeSerializer localDateTimeDeserializer() {
+        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
+    }
+
+    @Bean
+    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
+        return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer());
+    }
+}

+ 92 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/configuration/OkHttpConfiguration.java

@@ -0,0 +1,92 @@
+package cn.bs.bsmanagebasic.configuration;
+
+import okhttp3.ConnectionPool;
+import okhttp3.OkHttpClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * okhttp <br>
+ *
+ * @className: OkHttpConfiguration
+ * @package: cn.bs.bsmanagecommon.configuration
+ * @author: kael
+ * @date: 2019/10/17 0017 上午 10:43
+ */
+@Configuration
+public class OkHttpConfiguration {
+    private Integer connectTimeout = 30;
+
+    private Integer readTimeout = 30;
+
+    private Integer writeTimeout = 30;
+
+    private Integer maxIdleConnections = 200;
+
+    private Long keepAliveDuration = 60L;
+
+    @Bean
+    public OkHttpClient okHttpClient() {
+        return new OkHttpClient.Builder()
+                .sslSocketFactory(sslSocketFactory(), x509TrustManager())
+                // 是否开启缓存
+                .retryOnConnectionFailure(false)
+                .connectionPool(pool())
+                .connectTimeout(connectTimeout, TimeUnit.SECONDS)
+                .readTimeout(readTimeout, TimeUnit.SECONDS)
+                .writeTimeout(writeTimeout, TimeUnit.SECONDS)
+                .hostnameVerifier((hostname, session) -> true)
+                // 设置代理
+//            	.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8888)))
+                // 拦截器
+//                .addInterceptor()
+                .build();
+    }
+
+    @Bean
+    public X509TrustManager x509TrustManager() {
+        return new X509TrustManager() {
+            @Override
+            public void checkClientTrusted(X509Certificate[] chain, String authType)
+                    throws CertificateException {
+            }
+            @Override
+            public void checkServerTrusted(X509Certificate[] chain, String authType)
+                    throws CertificateException {
+            }
+            @Override
+            public X509Certificate[] getAcceptedIssuers() {
+                return new X509Certificate[0];
+            }
+        };
+    }
+
+    @Bean
+    public SSLSocketFactory sslSocketFactory() {
+        try {
+            // 信任任何链接
+            SSLContext sslContext = SSLContext.getInstance("TLS");
+            sslContext.init(null, new TrustManager[]{x509TrustManager()}, new SecureRandom());
+            return sslContext.getSocketFactory();
+        } catch (NoSuchAlgorithmException | KeyManagementException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    @Bean
+    public ConnectionPool pool() {
+        return new ConnectionPool(maxIdleConnections, keepAliveDuration, TimeUnit.SECONDS);
+    }
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ADLogController.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.AdLog;
+import cn.bs.bsmanagebasic.service.ADLogService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName ADLogController.java
+ * @Description TODO
+ * @createTime 2019年12月26日 14:38:00
+ */
+@RestController
+@RequestMapping("/adlogs")
+public class ADLogController {
+
+    @Autowired
+    private ADLogService adLogService;
+
+    @PostMapping("/save")
+    public ResultBean<Boolean> insertLog(@RequestBody String data) {
+        AdLog adLog = JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), AdLog.class);
+        return new ResultBean<>(adLogService.saveLog(adLog));
+    }
+}

+ 71 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/AdmnUserController.java

@@ -0,0 +1,71 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.util.Pager;
+import cn.bs.bsmanagebasic.entity.dto.AdminUserEditDto;
+import cn.bs.bsmanagebasic.entity.dto.AdminUserListDto;
+import cn.bs.bsmanagebasic.entity.user.AdminUser;
+import cn.bs.bsmanagebasic.service.AdminUserService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @description: 管理员管理
+ * @author: chenxuebing
+ * @create: 2021-04-30 16:43
+ **/
+@RestController
+public class AdmnUserController {
+
+    @Autowired
+    private AdminUserService adminUserService;
+
+    /**
+     * 根据类型(AdminTypeEnum)查询用户列表
+     * @param adminUserListDto
+     * @return
+     */
+    @GetMapping(value ="/adminUser/list")
+    public ResultBean<Pager<AdminUser>> listAdminUser(HttpServletRequest request, AdminUserListDto adminUserListDto){
+        return new ResultBean<Pager<AdminUser>>(adminUserService.listAdminUser(request, adminUserListDto));
+    }
+
+    /**
+     * 根据类型(AdminTypeEnum)添加用户
+     * @param adminUserEditDto
+     * @return
+     */
+    @PostMapping(value ="/adminUser/add")
+    public ResultBean<Pager<AdminUser>> addAdminUser(HttpServletRequest request, @RequestBody AdminUserEditDto adminUserEditDto){
+        return new ResultBean(adminUserService.addAdminUser(request, adminUserEditDto));
+    }
+    /**
+     * 根据类型(AdminTypeEnum)修改用户
+     * @param adminUserEditDto
+     * @return
+     */
+    @PostMapping(value ="/adminUser/update")
+    public ResultBean<Pager<AdminUser>> updateAdminUser(HttpServletRequest request, @RequestBody AdminUserEditDto adminUserEditDto){
+        return new ResultBean(adminUserService.updateAdminUser(request, adminUserEditDto));
+    }
+    /**
+     * 根据类型(AdminTypeEnum)获取用户
+     * @param userId
+     * @return
+     */
+    @GetMapping(value ="/adminUser/get")
+    public ResultBean<AdminUser> getAdminUser(HttpServletRequest request, String userId){
+        return new ResultBean(adminUserService.getAdminUser(request, userId));
+    }
+    /**
+     * 根据类型(AdminTypeEnum)删除用户
+     * @param userId
+     * @return
+     */
+    @GetMapping(value ="/adminUser/delete")
+    public ResultBean deleteAdminUser(HttpServletRequest request, String userId){
+        return new ResultBean(adminUserService.deleteAdminUser(request, userId));
+    }
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ApiLogController.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.util.Pager;
+import cn.bs.bsmanagebasic.entity.ApiLoggingEvent;
+import cn.bs.bsmanagebasic.entity.filter.ApiLogFilter;
+import cn.bs.bsmanagebasic.service.ApiLogService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: ApiLogController
+ * @package: cn.bs.bsmanagebasic.controller
+ * @author: kael
+ * @date: 2019/11/27 0027 下午 15:38
+ */
+@RestController
+@RequestMapping("/apiLog")
+@CrossOrigin(allowCredentials ="true")
+public class ApiLogController {
+
+    @Autowired
+    private ApiLogService apiLogService;
+
+    @PostMapping("/list")
+    public ResultBean<Pager<ApiLoggingEvent>> getList(@RequestBody String string) {
+        return new ResultBean(apiLogService.getList(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ApiLogFilter.class)));
+    }
+}

+ 86 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/CommonController.java

@@ -0,0 +1,86 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.constants.ChooseOptionsEnum;
+import cn.bs.bsmanagebasic.entity.*;
+import cn.bs.bsmanagebasic.service.*;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName CommonController.java
+ * @Description BSManage options请求
+ * @createTime 2019年07月22日 15:43:00
+ */
+@RestController
+@RequestMapping("/options")
+@CrossOrigin(allowCredentials ="true")
+public class CommonController {
+    @Autowired
+    private AddressCityService addressCityService;
+    @Autowired
+    private AddressProvinceService addressProvinceService;
+    @Autowired
+    private AddressDistrictService addressDistrictService;
+    @Autowired
+    private AddressTownService addressTownService;
+    @Autowired
+    private ChooseoptionService chooseoptionService;
+
+    /**
+     * @description 获取省份列表
+     * @author sunjj
+     */
+    @GetMapping("/getProvinces")
+    public ResultBean<List<AddressProvince>> getProvinces() {
+        return new ResultBean<List<AddressProvince>>(addressProvinceService.getProvinces());
+    }
+
+    /**
+     * 根据省份Id获取城市列表
+     */
+    @GetMapping(value = {"/getCities/{provinceId}", "/getCities"})
+    public ResultBean<List<AddressCity>> getCities(@PathVariable(required = false) Integer provinceId) {
+        return new ResultBean<List<AddressCity>>(addressCityService.getCities(provinceId));
+    }
+
+    /**
+     * 根据城市Id获取地区列表
+     */
+    @GetMapping(value = {"/getDistricts/{cityId}", "/getDistricts"})
+    public ResultBean<List<AddressDistrict>> getDistricts(@PathVariable(required = false) Long cityId) {
+        return new ResultBean<List<AddressDistrict>>(addressDistrictService.getDistricts(cityId));
+    }
+
+    /**
+     * 根据地区Id获取镇列表信息
+     */
+    @GetMapping(value = {"/getTownships/{areaName}", "/getTownships"})
+    public ResultBean<List<AddressTown>> getTownships(@PathVariable(required = false) Long areaName) {
+        return new ResultBean<List<AddressTown>>(addressTownService.getTownships(areaName));
+    }
+
+    /**
+     * @description 获取门店类型
+     * @author sunjj
+     */
+    @GetMapping("/getStoreType")
+    public ResultBean<List<TBsChooseoption>> getStoreType() {
+        return new ResultBean<List<TBsChooseoption>>(
+                chooseoptionService.getOptionsByCode(ChooseOptionsEnum.STORE_TYPE.getCode()));
+    }
+
+    /**
+     * @description 获取短信通知类型
+     * @author sunjj
+     */
+    @RequestMapping("/getReminderType")
+    public ResultBean<List<TBsChooseoption>> getReminderType() {
+        return new ResultBean<List<TBsChooseoption>>(
+                chooseoptionService.getOptionsByCode(ChooseOptionsEnum.REMINDER_TYPE.getCode()));
+    }
+}

+ 38 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/CompanyController.java

@@ -0,0 +1,38 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.TBsCompany;
+import cn.bs.bsmanagebasic.service.CompanyService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+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;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName CompanyController.java
+ * @Description 公司信息Controller
+ * @createTime 2019年07月23日 13:07:00
+ */
+@RestController
+@RequestMapping("/company")
+@CrossOrigin(allowCredentials ="true")
+public class CompanyController {
+    @Autowired
+    private CompanyService companyService;
+
+
+    /**
+     * @description 获取公司信息
+     * @author sunjj
+     */
+    @GetMapping("/getCompanies")
+    public ResultBean<List<TBsCompany>> getCompanies() {
+        return new ResultBean<List<TBsCompany>>(companyService.getAll());
+    }
+
+}

+ 96 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ConfigurationController.java

@@ -0,0 +1,96 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.Configuration;
+import cn.bs.bsmanagebasic.entity.PickupQueue;
+import cn.bs.bsmanagebasic.entity.Platform;
+import cn.bs.bsmanagebasic.service.ConfigurationService;
+import cn.bs.bsmanagebasic.service.PlatformService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: ConfigurationController
+ * @package: cn.bs.bsmanagebasic.controller
+ * @author: kael
+ * @date: 2019/11/26 0026 下午 15:41
+ */
+@RestController
+@RequestMapping("/config")
+@CrossOrigin(allowCredentials ="true")
+public class ConfigurationController {
+
+    @Autowired
+    private ConfigurationService configurationService;
+
+    @Autowired
+    private PlatformService platformService;
+
+    /**
+     * 获取列表
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/list", method = {RequestMethod.GET})
+    public ResultBean<List<Configuration>> list(){
+        return new ResultBean<>(configurationService.getList());
+    }
+
+    /**
+     * 保存
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/save", method = {RequestMethod.POST})
+    public ResultBean<Boolean> save(@RequestBody String data){
+        return new ResultBean<Boolean>(configurationService.save(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), Configuration.class)));
+    }
+
+    /**
+     * 通过id删除单条数据
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/delete", method = {RequestMethod.POST})
+    public ResultBean<Boolean> deleteById(@RequestBody String data) {
+        return new ResultBean<Boolean>(configurationService.deleteById(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), Configuration.class)));
+    }
+
+    /**
+     * 获取平台配置列表
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/platform/list", method = {RequestMethod.GET})
+    public ResultBean<List<Platform>> platformList(){
+        return new ResultBean<>(platformService.getAll());
+    }
+
+    /**
+     * 保存
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/platform/save", method = {RequestMethod.POST})
+    public ResultBean<Boolean> platformSave(@RequestBody String data){
+        return new ResultBean<Boolean>(platformService.save(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), Platform.class)));
+    }
+
+    /**
+     * 通过id删除单条数据
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/platform/delete", method = {RequestMethod.POST})
+    public ResultBean<Boolean> platformDeleteById(@RequestBody String data) {
+        return new ResultBean<Boolean>(platformService.deleteById(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), Platform.class)));
+    }
+}

+ 74 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/DeliveryController.java

@@ -0,0 +1,74 @@
+package cn.bs.bsmanagebasic.controller;
+import cn.bs.bsmanagebasic.entity.filter.DeliveryFilter;
+import cn.bs.bsmanagebasic.common.util.Pager;
+import cn.bs.bsmanagebasic.entity.bases.BatchDataMsg;
+import cn.bs.bsmanagebasic.entity.delivery.Delivery;
+import cn.bs.bsmanagebasic.service.DeliveryService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 订单业务<br>
+ *
+ * @className: DeliveryController
+ * @package: cn.bs.bsmanagebasic.controller
+ * @author: kael
+ * @date: 2019/11/11 0011 上午 11:06
+ */
+@RestController
+@RequestMapping("/delivery")
+@CrossOrigin(allowCredentials ="true")
+public class DeliveryController {
+
+    @Autowired
+    private DeliveryService deliveryService;
+
+    /**
+     * 新增
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/sign", method = {RequestMethod.POST})
+    public ResultBean<List<BatchDataMsg>> sign(@RequestBody String data){
+        return new ResultBean<>(deliveryService.sign(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(),DeliveryFilter.class)));
+    }
+
+    @PostMapping("/query")
+    public ResultBean<Pager<Delivery>> query(@RequestBody String data, HttpServletRequest request){
+        return new ResultBean<>(deliveryService.queryDeliverys(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), DeliveryFilter.class), request));
+    }
+	
+	/**
+     * 获取订单数据
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/list", method = {RequestMethod.POST})
+    public ResultBean<Pager<Delivery>> list(@RequestBody String data, HttpServletRequest request){
+        return new ResultBean<>(deliveryService.list(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), DeliveryFilter.class), request));
+    }
+
+    /**
+     * 修改快递状态
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/updateExpStatus",method = {RequestMethod.POST})
+    public ResultBean<List<BatchDataMsg>> updateExpStatus(@RequestBody String data){
+        return new ResultBean<>(deliveryService.updateExpStatus(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(),DeliveryFilter.class)));
+    }
+
+    /**
+     * 根据城市Id获取地区列表
+     */
+    @GetMapping(value = {"/getPickupCodeByPhone/{phone}", "/getDistricts"})
+    public ResultBean<List<String>> getPickupCodeByPhone(@PathVariable(required = false) String phone) {
+        return new ResultBean<List<String>>(deliveryService.getPickupCodeByPhone(phone));
+    }
+}

+ 41 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/EnumsController.java

@@ -0,0 +1,41 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.enums.EnumsData;
+import cn.bs.bsmanagebasic.service.EnumsStatusService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+
+/**
+ * @ClassName EnumsControllers
+ * @Description TODO
+ * @Author Administrator
+ * @Date 2019/9/11 0011 上午 9:34
+ * @Version 1.0
+ **/
+@RestController
+@RequestMapping("/enums")
+@CrossOrigin(allowCredentials ="true")
+public class EnumsController {
+
+    @Autowired
+    private EnumsStatusService enumsStatusService;
+
+    /**
+     * 获取状态
+     *
+     * @param platform
+     * @return
+     * @throws ClassNotFoundException
+     * @throws NoSuchMethodException
+     * @throws IllegalAccessException
+     * @throws InvocationTargetException
+     */
+    @RequestMapping(value = "/getType/{platform}", method = {RequestMethod.GET})
+    public ResultBean<List<EnumsData>> getType(@PathVariable String platform) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
+        return new ResultBean<List<EnumsData>>(enumsStatusService.getType(platform));
+    }
+}

+ 46 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ExpressController.java

@@ -0,0 +1,46 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.ExExpressType;
+import cn.bs.bsmanagebasic.service.ExpressService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName ExpressController.java
+ * @Description 快递公司
+ * @createTime 2019年07月23日 15:42:00
+ */
+
+@RestController
+@RequestMapping("/express")
+@CrossOrigin(allowCredentials ="true")
+public class ExpressController {
+
+    @Autowired
+    private ExpressService expressService;
+
+    /**
+     * @throws
+     * @description 获取可以签收回传的快递公司
+     * @author sunjj
+     */
+    @GetMapping("/getExpressWithSignBack")
+    public ResultBean<List<ExExpressType>> getExpressWithSignBack() {
+        return new ResultBean<>(expressService.getExpressWithSignBack());
+    }
+
+    /**
+     * 获取所有的快递公司
+     * @return
+     */
+    @GetMapping("/getAllExpress")
+    public ResultBean<List<ExExpressType>> getAllExpress() {
+        return new ResultBean<>(expressService.getAllExpress());
+    }
+
+}

+ 177 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/ExpressDeptController.java

@@ -0,0 +1,177 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.util.Pager;
+import cn.bs.bsmanagebasic.entity.ExpressDept;
+import cn.bs.bsmanagebasic.entity.ExpressDeptAccount;
+import cn.bs.bsmanagebasic.entity.dto.ExpressAccountConsumeRecordDto;
+import cn.bs.bsmanagebasic.entity.dto.ExpressAccountRechargeRecordDto;
+import cn.bs.bsmanagebasic.entity.filter.ExpressDeptFilter;
+import cn.bs.bsmanagebasic.service.ExpressDeptService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName ExpressDeptController.java
+ * @Description 快递公司分部管理
+ * @createTime 2019年11月18日 09:49:00
+ */
+@RestController
+@RequestMapping("/expressDept")
+@CrossOrigin
+public class ExpressDeptController {
+
+    @Autowired
+    private ExpressDeptService expressDeptService;
+
+    @PostMapping("/addDept")
+    public ResultBean addDept(@RequestBody String string) {
+        expressDeptService.addDept(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDept.class));
+        return new ResultBean();
+    }
+
+    @PostMapping("/getDepts")
+    public ResultBean<Pager<ExpressDept>> getDepts(@RequestBody String string) {
+        Pager<ExpressDept> page = expressDeptService.getDepts(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptFilter.class));
+        return new ResultBean(page);
+    }
+
+    @PostMapping("/getDeptDetail")
+    public ResultBean<ExpressDept> getDeptDetail(@RequestBody String string) {
+        ExpressDept dept = expressDeptService.getDeptDetail(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptFilter.class));
+        return new ResultBean<>(dept);
+    }
+
+    @PostMapping("/editDept")
+    public ResultBean editDept(@RequestBody String string) {
+        expressDeptService.editDept(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDept.class));
+        return new ResultBean();
+    }
+
+    @PostMapping("/addDeptAccount")
+    public ResultBean addDeptAccount(@RequestBody String string) {
+        expressDeptService.addDeptAccount(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptAccount.class));
+        return new ResultBean();
+    }
+
+    @PostMapping("/getDeptAccounts")
+    public ResultBean<Pager<ExpressDeptAccount>> getDeptAccounts(@RequestBody String string) {
+        Pager<ExpressDeptAccount> page = expressDeptService.getDeptAccounts(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptFilter.class));
+        return new ResultBean(page);
+    }
+
+    @PostMapping("/editDeptAccount")
+    public ResultBean editDeptAccount(@RequestBody String string) {
+        expressDeptService.editDeptAccount(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptAccount.class));
+        return new ResultBean();
+    }
+
+    @GetMapping(value = {"/getDeptsOption/{expId}", "/getDeptsOption"})
+    public ResultBean<List<ExpressDept>> getDeptsForOption(@PathVariable(required = false) Long expId) {
+        List<ExpressDept> depts = expressDeptService.getDeptsForOption(expId);
+        return new ResultBean<>(depts);
+    }
+
+    @PostMapping("/accountRecharge")
+    public ResultBean expressAccountRecharge(@RequestBody String string) {
+        expressDeptService.expressAccountRecharge(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptFilter.class));
+        return new ResultBean();
+    }
+
+    @PostMapping("/getRecords")
+    public ResultBean<Pager<ExpressAccountRechargeRecordDto>> getRecords(@RequestBody String string) {
+        Pager<ExpressAccountRechargeRecordDto> page = expressDeptService.getRecords(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptFilter.class));
+        return new ResultBean(page);
+    }
+
+
+    /**
+     * 通过id删除单条数据
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/delete/{id}", method = {RequestMethod.GET})
+    public ResultBean<Boolean> deleteById(@PathVariable Long id) {
+        return new ResultBean<Boolean>(expressDeptService.deleteById(id));
+    }
+
+    /**
+     * 保存dept
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/save", method = {RequestMethod.POST})
+    public ResultBean<Boolean> save(@RequestBody String data) {
+        return new ResultBean<Boolean>(expressDeptService.save(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), ExpressDept.class)));
+    }
+
+    /**
+     * 保存deptAcount
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/saveAcount", method = {RequestMethod.POST})
+    public ResultBean<Boolean> saveAcount(@RequestBody String data) {
+        return new ResultBean<Boolean>(expressDeptService.saveAcount(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), ExpressDeptAccount.class)));
+    }
+
+    /**
+     * 通过id启用
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/enable/{id}", method = {RequestMethod.GET})
+    public ResultBean<Boolean> enableById(@PathVariable Long id) {
+        return new ResultBean<Boolean>(expressDeptService.enableById(id));
+    }
+
+    /**
+     * 通过id删除单条数据
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/delete/account/{id}", method = {RequestMethod.GET})
+    public ResultBean<Boolean> deleteAccountById(@PathVariable Long id) {
+        return new ResultBean<Boolean>(expressDeptService.deleteAccountById(id));
+    }
+
+    /**
+     * 通过id启用
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/enable/account/{id}", method = {RequestMethod.GET})
+    public ResultBean<Boolean> enableAccountById(@PathVariable Long id) {
+        return new ResultBean<Boolean>(expressDeptService.enableAccountById(id));
+    }
+
+    @PostMapping("/getConsumeRecords")
+    public ResultBean<Pager<ExpressAccountConsumeRecordDto>> getConsumeRecords(@RequestBody String string) {
+        return new ResultBean<>(expressDeptService.getConsumeRecords(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptFilter.class)));
+    }
+
+    /**
+     * @description 快递管理-快件状态查询
+     * @author sunjj
+     * @updateTime
+     * @throws
+     */
+    @PostMapping("/getDeliveries")
+    public ResultBean<Pager<ExpressAccountConsumeRecordDto>> getDeliveries(@RequestBody String string){
+        return new ResultBean<>(expressDeptService.getDeliveries(JSON.parseObject(JSON.parseObject(string, RequestBean.class).getData(), ExpressDeptFilter.class)));
+    }
+
+
+}

+ 149 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/FileManagementController.java

@@ -0,0 +1,149 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.oss.BucketFilter;
+import cn.bs.bsmanagebasic.entity.oss.OssFileInfoDto;
+import cn.bs.bsmanagebasic.service.FileManagementService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import com.aliyun.oss.model.BucketInfo;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @packageName: cn.bs.bsmanagebasic.controller
+ * @className: FileManagementController
+ * @description: 文件管理功能(OSS)
+ * @author: liujs
+ * @date: 2019/12/16 0016 下午 13:51
+ * @version: 1.0
+ */
+@RestController
+@RequestMapping("/fileManagement")
+@CrossOrigin
+public class FileManagementController {
+    @Resource
+    private FileManagementService fileManagementService;
+
+    /**
+     * 创建存储空间
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/bucket/add",method = RequestMethod.POST)
+    public ResultBean<String> addBucket(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.addBucket(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), BucketFilter.class)));
+    }
+
+    /**
+     * 删除存储空间
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/bucket/delete",method = RequestMethod.POST)
+    public ResultBean<Boolean> deleteBucket(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.deleteBucket(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), BucketFilter.class)));
+    }
+
+    /**
+     * 获取存储空间名称
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/bucket/list",method = RequestMethod.POST)
+    public ResultBean<List<String>> bucketList(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.bucketList(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), BucketFilter.class)));
+    }
+
+    /**
+     * 获取存储空间的信息
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/bucket/info",method = RequestMethod.POST)
+    public ResultBean<BucketInfo> bucketInfo(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.bucketInfo(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), BucketFilter.class)));
+    }
+
+    /**
+     * 存储空间是否存在
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/bucket/isExist",method = RequestMethod.POST)
+    public ResultBean<Boolean> isExistBucket(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.isExistBucket(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), BucketFilter.class)));
+    }
+
+    /**
+     * 修改存储空间的权限
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/bucket/update",method = RequestMethod.POST)
+    public ResultBean<Boolean> updateBucket(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.updateBucket(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), BucketFilter.class)));
+    }
+
+    /**
+     * 文件上传(OSS简单上传_文件上传)
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "file/upload",method = RequestMethod.POST)
+    public ResultBean<Boolean> uploadFile(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.uploadFile(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), BucketFilter.class)));
+    }
+
+    /**
+     * 文件下载(OSS下载到本地文件)
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "file/download",method = RequestMethod.POST)
+    public ResultBean<Boolean> downloadFile(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.downloadFile(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), BucketFilter.class)));
+    }
+
+    /**
+     * 删除文件(批量删除)
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/file/delete",method = RequestMethod.POST)
+    public ResultBean<List<String>> deleteFile(@RequestBody String data){
+        return  new ResultBean<>(fileManagementService.deleteFile(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(),BucketFilter.class)));
+    }
+
+    /**
+     * 获取文件详情
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "file/info",method = RequestMethod.POST)
+    public ResultBean<OssFileInfoDto> fileInfo(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.fileInfo(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(),BucketFilter.class)));
+    }
+
+    /**
+     * 修改文件读写权限 存储权限
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "file/update",method = RequestMethod.POST)
+    public ResultBean<Boolean> updateFile(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.updateFile(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(),BucketFilter.class)));
+    }
+
+    /**
+     * 获取所有文件名称
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "file/list",method = RequestMethod.POST)
+    public ResultBean<List<OssFileInfoDto>> fileList(@RequestBody String data){
+        return new ResultBean<>(fileManagementService.fileList(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(),BucketFilter.class)));
+    }
+}

+ 78 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/MenuController.java

@@ -0,0 +1,78 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.Menu;
+import cn.bs.bsmanagebasic.entity.MenuRouter;
+import cn.bs.bsmanagebasic.service.MenuService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * @author LiuJS
+ * @Time 2021/4/26 16:19
+ * @Desc 菜单管理
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("menu")
+public class MenuController {
+    @Resource
+    private MenuService menuService;
+
+    /**
+     * 获取菜单列表
+     * @return
+     */
+    @GetMapping("list")
+    public ResultBean<List<Menu>> listMenu(){
+        return new ResultBean(menuService.list());
+    }
+
+    @PostMapping("add")
+    public ResultBean addResource(@RequestBody Menu menu) {
+        return new ResultBean(menuService.addMenu(menu));
+    }
+
+    @PostMapping("update")
+    public ResultBean updateResource(@RequestBody Menu menu) {
+        return new ResultBean(menuService.updateMenu(menu));
+    }
+
+    @GetMapping("delete")
+    public ResultBean deleteResource(Long id) {
+        return new ResultBean(menuService.deleteMenu(id));
+    }
+
+    /**
+     * 当前用户所拥有菜单
+     * @param request
+     * @return
+     */
+    @GetMapping("roleMenu/all")
+    public ResultBean listMenuAll(HttpServletRequest request) {
+        return new ResultBean(menuService.listMenuAll(request));
+    }
+
+    /**
+     * 菜单路由
+     * @param request
+     * @return
+     */
+    @GetMapping("role_router")
+    public ResultBean<List<MenuRouter>> getRoleRouter(HttpServletRequest request) {
+        return new ResultBean<>(menuService.getRoleRouter(request));
+    }
+
+    /**
+     * 按钮权限
+     * @param request
+     * @return
+     */
+    @GetMapping("get_api_permission")
+    public ResultBean<List<String>> getApiPermission(HttpServletRequest request) {
+        return new ResultBean<>(menuService.getApiPermission(request));
+    }
+}

+ 45 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/NoticeController.java

@@ -0,0 +1,45 @@
+package cn.bs.bsmanagebasic.controller;
+import cn.bs.bsmanagebasic.entity.TempNotice;
+import cn.bs.bsmanagebasic.entity.filter.NoticeFilter;
+import cn.bs.bsmanagebasic.service.NoticeService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author liujs
+ * @version 1.0.0
+ * @ClassName NoticeController
+ * @Description 公告业务
+ * @createTime 2019年11月26日 15:42:00
+ */
+@RestController
+@RequestMapping("/notice")
+@CrossOrigin(allowCredentials ="true")
+public class NoticeController {
+
+    @Autowired
+    private NoticeService noticeService;
+
+    /**
+     * 增加公告
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/add",method = RequestMethod.POST)
+    public ResultBean<Boolean> addNotice(@RequestBody String data){
+        return new ResultBean<>(noticeService.addNotice(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(), TempNotice.class)));
+    }
+
+    /**
+     * 发送公告
+     * @param data
+     * @return
+     */
+    @RequestMapping(value = "/send",method = RequestMethod.POST)
+    public ResultBean<Boolean> sendNotice(@RequestBody String data){
+        return new ResultBean<>(noticeService.sendNotice(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), NoticeFilter.class)));
+    }
+}

+ 40 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/PickupQueueController.java

@@ -0,0 +1,40 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.ExExpressType;
+import cn.bs.bsmanagebasic.entity.PickupQueue;
+import cn.bs.bsmanagebasic.entity.filter.SmsRecordFilter;
+import cn.bs.bsmanagebasic.service.PickupQueueService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: PickupQueueController
+ * @package: cn.bs.bsmanagebasic.controller
+ * @author: kael
+ * @date: 2019/11/6 0006 下午 14:43
+ */
+@RestController
+@RequestMapping("/pickupQueue")
+@CrossOrigin(allowCredentials ="true")
+public class PickupQueueController {
+
+    @Autowired
+    private PickupQueueService pickupQueueService;
+
+    /**
+     * 新增
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/insert", method = {RequestMethod.POST})
+    public ResultBean<String> insert(@RequestBody String data){
+        return new ResultBean<String>(pickupQueueService.insert(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), PickupQueue.class)));
+    }
+}

+ 39 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/PlatformController.java

@@ -0,0 +1,39 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.Platform;
+import cn.bs.bsmanagebasic.service.PlatformService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+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;
+
+/**
+ * 平台<br>
+ *
+ * @className: PlatformController
+ * @package: cn.bs.bsmanagebasic.controller
+ * @author: kael
+ * @date: 2019/10/29 0029 下午 15:12
+ */
+@RestController
+@RequestMapping("/platform")
+@CrossOrigin(allowCredentials ="true")
+public class PlatformController {
+
+    @Autowired
+    private PlatformService platformService;
+
+    /**
+     * @description 获取可以签收回传的快递公司
+     * @author sunjj
+     * @throws
+     */
+    @GetMapping("/getAll")
+    public ResultBean<List<Platform>> getAll(){
+        return new ResultBean<List<Platform>>(platformService.getAll());
+    }
+}

+ 152 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/RoleController.java

@@ -0,0 +1,152 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.enums.AdminTypeEnum;
+import cn.bs.bsmanagebasic.common.util.Pager;
+import cn.bs.bsmanagebasic.entity.User;
+import cn.bs.bsmanagebasic.entity.dto.RoleListDto;
+import cn.bs.bsmanagebasic.entity.dto.RoleMenuBindDto;
+import cn.bs.bsmanagebasic.entity.sys.Role;
+import cn.bs.bsmanagebasic.service.RoleService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author LiuJS
+ * @Time 2021/4/26 17:45
+ * @Desc
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("role")
+public class RoleController {
+
+    @Autowired
+    private RoleService roleService;
+
+    @GetMapping("list")
+    public ResultBean<Pager<Role>> ListRoles(HttpServletRequest request, RoleListDto roleListDto) {
+        HttpSession session = request.getSession();
+        User user = JSON.parseObject(session.getAttribute(session.getId()).toString(), User.class);
+        roleListDto.setParentId(user.getRoleId());
+        roleListDto.setRoleType(user.getAdminType());
+        roleListDto.setStoreId(user.getStoreId());
+        return new ResultBean(roleService.listRole(request, roleListDto));
+    }
+    @GetMapping("all")
+    public ResultBean<List<Role>> ListRoles(HttpServletRequest request) {
+        RoleListDto roleListDto = new RoleListDto();
+
+        HttpSession session = request.getSession();
+        User user = JSON.parseObject(session.getAttribute(session.getId()).toString(), User.class);
+        roleListDto.setParentId(user.getRoleId());
+        roleListDto.setRoleType(user.getAdminType());
+        roleListDto.setStoreId(user.getStoreId());
+        return new ResultBean(roleService.listRoleAll(roleListDto));
+    }
+
+    @GetMapping("get")
+    public ResultBean getRole(Long id) {
+        return new ResultBean(roleService.getRole(id));
+    }
+
+    @PostMapping("add")
+    public ResultBean addRole(HttpServletRequest request,@RequestBody Role role) {
+        HttpSession session = request.getSession();
+        User user = JSON.parseObject(session.getAttribute(session.getId()).toString(), User.class);
+        role.setRoleType(user.getAdminType());
+        role.setParentId(user.getRoleId());
+        role.setStoreId(user.getStoreId());
+        return new ResultBean(roleService.addRole(request, role));
+    }
+
+    @PostMapping("update")
+    public ResultBean updateRole(HttpServletRequest request, @RequestBody Role role) {
+        HttpSession session = request.getSession();
+        User user = JSON.parseObject(session.getAttribute(session.getId()).toString(), User.class);
+        role.setUpdateTime(new Date());
+        role.setRoleType(user.getAdminType());
+        role.setStoreId(user.getStoreId());
+        return new ResultBean(roleService.updateRole(request, role));
+    }
+
+    @GetMapping("delete")
+    public ResultBean deleteRole(HttpServletRequest request, Long id) {
+        return roleService.deleteRole(request, id);
+    }
+
+    @GetMapping("get_menu")
+    public ResultBean getRoleMenu(HttpServletRequest request,Long roleId) {
+        return new ResultBean(roleService.getRoleMenu(request, roleId));
+    }
+
+    /**
+     * 角色绑定菜单
+     * @param roleMenuBindDto
+     * @return
+     */
+    @PostMapping("bind_menu")
+    public ResultBean bindRoleMenu(@RequestBody RoleMenuBindDto roleMenuBindDto) {
+        return roleService.bindRoleMenu(roleMenuBindDto);
+    }
+
+    /**
+     * 查询角色拥有的模版权限菜单
+     * @param roleId
+     * @return
+     */
+    @GetMapping("get_role_template_menu")
+    public ResultBean getRoleTemplateMenu(Long roleId) {
+        return new ResultBean(roleService.getRoleTemplateMenu(roleId));
+    }
+
+    /**
+     * 查询门店角色模版列表
+     * @param request
+     * @param roleDto
+     * @return
+     */
+    @GetMapping("storeRoleTemplate/list")
+    public ResultBean<Pager<Role>> listStoreRoleTemplate(HttpServletRequest request, RoleListDto roleDto) {
+        HttpSession session = request.getSession();
+        User user = JSON.parseObject(session.getAttribute(session.getId()).toString(), User.class);
+        roleDto.setRoleType(AdminTypeEnum.STORE_ADMIN_TEMPLATE.getType());
+        roleDto.setStoreId(user.getStoreId());
+        return new ResultBean(roleService.listRole(request,roleDto));
+    }
+    /**
+     * 门店角色模版 添加
+     * @param request
+     * @param role
+     * @return
+     */
+    @PostMapping("storeRoleTemplate/add")
+    public ResultBean addStoreRoleTemplate(HttpServletRequest request,@RequestBody Role role) {
+        HttpSession session = request.getSession();
+        User user = JSON.parseObject(session.getAttribute(session.getId()).toString(), User.class);
+        role.setRoleType(AdminTypeEnum.STORE_ADMIN_TEMPLATE.getType());
+        role.setStoreId(user.getStoreId());
+        role.setParentId(0L);
+        return new ResultBean(roleService.addRole(request, role));
+    }
+    /**
+     * 门店角色模版 修改
+     * @param request
+     * @param role
+     * @return
+     */
+    @PostMapping("storeRoleTemplate/update")
+    public ResultBean<Pager<Role>> updateStoreRoleTemplate(HttpServletRequest request, @RequestBody Role role) {
+        HttpSession session = request.getSession();
+        User user = JSON.parseObject(session.getAttribute(session.getId()).toString(), User.class);
+        role.setRoleType(AdminTypeEnum.STORE_ADMIN_TEMPLATE.getType());
+        role.setStoreId(user.getStoreId());
+        return new ResultBean(roleService.updateRole(request, role));
+    }
+}

+ 62 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/SmsController.java

@@ -0,0 +1,62 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.util.Pager;
+import cn.bs.bsmanagebasic.entity.SmsRecord;
+import cn.bs.bsmanagebasic.entity.TempNotice;
+import cn.bs.bsmanagebasic.entity.filter.NoticeFilter;
+import cn.bs.bsmanagebasic.entity.filter.SmsRecordFilter;
+import cn.bs.bsmanagebasic.service.SmsService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: SmsController
+ * @package: cn.bs.bsmanagebasic.controller
+ * @author: Administrator
+ * @date: 2019/10/16 0016 下午 16:07
+ */
+@RestController
+@RequestMapping("/sms")
+@CrossOrigin(allowCredentials ="true")
+public class SmsController {
+
+    @Autowired
+    private SmsService smsService;
+
+    @RequestMapping(value ="/resendSms", method = {RequestMethod.POST})
+    public ResultBean<Boolean> resendSms(@RequestBody String data){
+        return new ResultBean<Boolean>(smsService.resendSms(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(), SmsRecordFilter.class)));
+    }
+
+    @RequestMapping(value ="/getSmsRecord", method = {RequestMethod.POST})
+    public ResultBean<Pager<SmsRecord>> getSmsRecord(@RequestBody String data, HttpServletRequest request){
+        return new ResultBean<Pager<SmsRecord>>(smsService.getList(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(), SmsRecordFilter.class), request));
+    }
+
+    @RequestMapping(value ="/getSmsRecordCount", method = {RequestMethod.POST})
+    public ResultBean<Integer> getSmsRecordCount(@RequestBody String data){
+        return new ResultBean<Integer>(smsService.getCount(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(), SmsRecordFilter.class)));
+    }
+
+    @RequestMapping(value ="/saveNotice", method = {RequestMethod.POST})
+    public ResultBean<Boolean> saveNotice(@RequestBody String data){
+        return new ResultBean<Boolean>(smsService.saveNotice(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(), TempNotice.class)));
+    }
+
+    @RequestMapping(value ="/getNotice", method = {RequestMethod.POST})
+    public ResultBean<Pager<TempNotice>> getNotice(@RequestBody String data){
+        return new ResultBean<Pager<TempNotice>>(smsService.getNotice(JSON.parseObject(JSON.parseObject(data,RequestBean.class).getData(), NoticeFilter.class)));
+    }
+
+    @RequestMapping(value ="/deleteNotice", method = {RequestMethod.POST})
+    public ResultBean<Boolean> deleteNotice(@RequestBody String data){
+        return new ResultBean<Boolean>(smsService.deleteNotice(JSON.parseArray(JSON.parseObject(data,RequestBean.class).getData(),Integer.class)));
+    }
+}

+ 36 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StatisticsController.java

@@ -0,0 +1,36 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.filter.StatisticsFilter;
+import cn.bs.bsmanagebasic.service.StatisticsService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName StatisticsController.java
+ * @Description TODO
+ * @createTime 2019年11月12日 15:39:00
+ */
+@RestController
+@RequestMapping("/statistics")
+@CrossOrigin(allowCredentials ="true")
+public class StatisticsController {
+
+    @Autowired
+    private StatisticsService statisticsService;
+
+    @PostMapping("/histogram")
+    public ResultBean histogram(@RequestBody String data) {
+        return statisticsService.getHistogram(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), StatisticsFilter.class));
+    }
+
+    @PostMapping("/pieChart")
+    public ResultBean pieChart(@RequestBody String data) {
+        return statisticsService.getPieChart(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), StatisticsFilter.class));
+    }
+
+}

+ 57 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StatisticsReportController.java

@@ -0,0 +1,57 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.dto.StatisticsReportDto;
+import cn.bs.bsmanagebasic.entity.filter.StatisticsReportFilter;
+import cn.bs.bsmanagebasic.service.StatisticsReportService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ *Time: 2021/5/13 14:35                                       
+ * Author: zhangHP
+ * @description:统计
+ */
+@RestController
+@RequestMapping("/statistics")
+@CrossOrigin(allowCredentials ="true")
+public class StatisticsReportController {
+
+    @Autowired
+    private StatisticsReportService statisticsService;
+
+    /**
+     * 根据快递公司进行统计 入库
+     * @param filter
+     * @return
+     */
+    @RequestMapping(value ="/expCompany",method = {RequestMethod.POST})
+    public ResultBean<List<StatisticsReportDto>> countGroupByCompany( StatisticsReportFilter filter){
+        return new ResultBean<>(statisticsService.countGroupByCompany(filter));
+    }
+
+    /**
+     *根据门店进行统计 入库
+     * @param filter
+     * @return
+     */
+    @RequestMapping(value ="/store",method = {RequestMethod.POST})
+    public ResultBean<List<StatisticsReportDto>> countGroupByStore( StatisticsReportFilter filter){
+        return new ResultBean<>(statisticsService.countGroupByStore(filter));
+    }
+
+    /**
+     * 根据外派员统计 入库
+     * @param filter
+     * @return
+     */
+    @RequestMapping(value ="/storeStaff",method = {RequestMethod.POST})
+    public ResultBean<List<StatisticsReportDto>> countGroupByStoreStaff( StatisticsReportFilter filter){
+        return new ResultBean<>(statisticsService.countGroupByStoreStaff(filter));
+    }
+
+
+}

+ 83 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StoreManageController.java

@@ -0,0 +1,83 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.util.Pager;
+import cn.bs.bsmanagebasic.entity.ExStore;
+import cn.bs.bsmanagebasic.entity.dto.StoreDto;
+import cn.bs.bsmanagebasic.service.StoreManageService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.util.List;
+
+@RestController
+@RequestMapping("/store")
+@CrossOrigin(allowCredentials ="true")
+public class StoreManageController {
+
+    @Autowired
+    private StoreManageService exStoreService;
+
+    /**
+     * @throws
+     * @title
+     * @description
+     * @author sunjj
+     * @updateTime
+     */
+    @PostMapping("/addStore")
+    public ResultBean addStore(@RequestBody String data) {
+        RequestBean requestBean = JSON.parseObject(data, RequestBean.class);
+        return new ResultBean<Boolean>(exStoreService.addStore(requestBean.getData()));
+    }
+
+    @PostMapping("/getList")
+    public ResultBean<Pager<StoreDto>> getList(@RequestBody String data, HttpServletRequest request) {
+        RequestBean requestBean = JSON.parseObject(data, RequestBean.class);
+        StoreDto dto = JSON.parseObject(requestBean.getData(), StoreDto.class);
+        return new ResultBean<Pager<StoreDto>>(exStoreService.getListByParam(dto, request));
+    }
+
+    @GetMapping("/getListStore")
+    public ResultBean<List<ExStore>> getListStore() {
+        return new ResultBean<List<ExStore>>(exStoreService.getListStore());
+    }
+
+    @PostMapping("/editInfo")
+    public ResultBean<Boolean> editInfo(@RequestBody String data){
+        RequestBean requestBean = JSON.parseObject(data, RequestBean.class);
+        StoreDto dto = JSON.parseObject(requestBean.getData(), StoreDto.class);
+        return new ResultBean<Boolean>(exStoreService.editInfo(dto));
+    }
+
+    @PostMapping("/money")
+    public ResultBean<Boolean> money(@RequestBody String data){
+        RequestBean requestBean = JSON.parseObject(data, RequestBean.class);
+        JSONObject jsonObject = JSON.parseObject(requestBean.getData());
+        BigDecimal money = jsonObject.getBigDecimal("money");
+        Long id = jsonObject.getLong("id");
+        return new ResultBean<Boolean>(exStoreService.money(id, money));
+    }
+
+    @PostMapping("/disable")
+    public ResultBean<Boolean> disable(@RequestBody String data){
+        RequestBean requestBean = JSON.parseObject(data, RequestBean.class);
+        StoreDto dto = JSON.parseObject(requestBean.getData(), StoreDto.class);
+        return new ResultBean<Boolean>(exStoreService.disable(dto));
+    }
+	
+	@PostMapping("/getStoreById")
+    public ResultBean<StoreDto> getStoreById(@RequestBody String data)  throws Exception{
+        RequestBean requestBean = JSON.parseObject(data, RequestBean.class);
+        StoreDto dto = JSON.parseObject(requestBean.getData(), StoreDto.class);
+        return new ResultBean<StoreDto>(exStoreService.getStoreById(dto));
+    }
+}
+
+
+

+ 92 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StoreStaffController.java

@@ -0,0 +1,92 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.common.util.Pager;
+import cn.bs.bsmanagebasic.entity.User;
+import cn.bs.bsmanagebasic.entity.dto.StoreStaffDto;
+import cn.bs.bsmanagebasic.entity.filter.StoreStaffFilter;
+import cn.bs.bsmanagebasic.service.StoreStaffService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 门店外派员
+ */
+
+@RestController
+@RequestMapping("/storeStaff")
+@CrossOrigin(allowCredentials ="true")
+public class StoreStaffController {
+
+    @Autowired
+   private StoreStaffService storeStaffService;
+
+    /**
+     * 获取外派员信息
+     * @param
+     * @return
+     */
+    @GetMapping(value ="/list")
+    public ResultBean<List<StoreStaffDto>> getStoreStaffList(){
+        return new ResultBean(storeStaffService.getStoreStaffList());
+    }
+
+    @GetMapping(value ="/page")
+    public ResultBean<Pager<StoreStaffDto>> getStoreStaffPage(StoreStaffFilter filter){
+        return new ResultBean(storeStaffService.getStoreStaffPage(filter));
+    }
+
+    /**
+     * 新增外派员
+     * @param user
+     * @return
+     */
+    @RequestMapping(value ="/addStaff",method = {RequestMethod.POST})
+    public ResultBean addStoreStaff(@RequestBody User user){
+        return new ResultBean(storeStaffService.addStoreStaff(user));
+    }
+
+    /**
+     * 修改外派员信息
+     * @param storeStaff
+     * @return
+     */
+    @RequestMapping(value ="/updateStaff",method = {RequestMethod.POST})
+    public ResultBean updateStoreStaffById(@RequestBody User storeStaff){
+        return new ResultBean(storeStaffService.updateStoreStaffById(storeStaff));
+    }
+
+    /**
+     * 删除
+     * @param userId
+     * @return
+     */
+    @RequestMapping(value ="/deleteStaff",method = {RequestMethod.POST})
+    public ResultBean deleteStoreStaffById(String userId){
+        return new ResultBean(storeStaffService.deleteStoreStaffById(userId));
+    }
+
+
+    /**
+     * 查询
+     * @param storeStaff
+     * @return
+     */
+    @RequestMapping(value ="/queryStaff",method = {RequestMethod.GET})
+    public ResultBean<List<StoreStaffDto>> queryStoreStaff(StoreStaffFilter storeStaff){
+        return new ResultBean<>(storeStaffService.queryStoreStaff(storeStaff));
+    }
+
+    /**
+     * 详情
+     * @param userId
+     * @return
+     */
+    @RequestMapping(value ="/detailStaff",method = {RequestMethod.GET})
+    public ResultBean<StoreStaffDto> detailStaff(String userId){
+        return new ResultBean(storeStaffService.detailStaff(userId));
+    }
+}

+ 32 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/StoreTemplateController.java

@@ -0,0 +1,32 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.StoreDeliveryMsgTemplate;
+import cn.bs.bsmanagebasic.service.StoreTemplateService;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author sunjj
+ * @version 1.0.0
+ * @ClassName StoreTemplateController.java
+ * @Description 短信模板处理API
+ * @createTime 2019年07月23日 11:27:00
+ */
+@RestController
+@RequestMapping("/storeTemplate")
+@CrossOrigin(allowCredentials ="true")
+public class StoreTemplateController {
+
+    @Autowired
+    private StoreTemplateService storeTemplateService;
+
+    @RequestMapping("/getTemplates")
+    public ResultBean<List<StoreDeliveryMsgTemplate>> getTemplates(){
+        return new ResultBean<List<StoreDeliveryMsgTemplate>>(storeTemplateService.getTemplates());
+    }
+}

+ 124 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/SysParamController.java

@@ -0,0 +1,124 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.sys.SysParam;
+import cn.bs.bsmanagebasic.entity.sys.SysType;
+import cn.bs.bsmanagebasic.service.SystemService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: SysParamController
+ * @package: cn.bs.bsmanagebasic.controller
+ * @author: kael
+ * @date: 2019/12/2 0002 上午 10:54
+ */
+@RestController
+@RequestMapping("/system")
+@CrossOrigin(allowCredentials ="true")
+public class SysParamController {
+
+    @Autowired
+    private SystemService systemService;
+
+    /**
+     * 获取快递和平台
+     * @return
+     */
+    @GetMapping("/getExpressAndPlatform")
+    public ResultBean<List<SysParam>> getExpressAndPlatform(){
+        return new ResultBean<List<SysParam>>(systemService.getExpressAndPlatform());
+    }
+
+    /**
+     * 获取系统参数
+     * @return
+     */
+    @GetMapping("/getAllListType")
+    public ResultBean<List<SysType>> getAllListType(){
+        return new ResultBean<List<SysType>>(systemService.getAllListType());
+    }
+
+    /**
+     * 通过type获取参数
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/getDataByType/{type}", method = {RequestMethod.GET})
+    public ResultBean<List<SysParam>> getDataByType(@PathVariable Integer type) {
+        return new ResultBean<List<SysParam>>(systemService.getDataByType(type));
+    }
+
+    /**
+     * 通过id启用禁用
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/type/enable/{id}", method = {RequestMethod.GET})
+    public ResultBean<Boolean> typeEnable(@PathVariable Integer id) {
+        return new ResultBean<Boolean>(systemService.typeEnable(id));
+    }
+
+    /**
+     * 保存
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/type/save", method = {RequestMethod.POST})
+    public ResultBean<Boolean> saveType(@RequestBody String data) {
+        return new ResultBean<Boolean>(systemService.saveType(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), SysType.class)));
+    }
+    /**
+     * 通过id删除
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/type/delete/{id}", method = {RequestMethod.GET})
+    public ResultBean<Boolean> deleteType(@PathVariable Integer id) {
+        return new ResultBean<Boolean>(systemService.deleteType(id));
+    }
+
+    /**
+     * 保存参数
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/param/save", method = {RequestMethod.POST})
+    public ResultBean<Boolean> saveParam(@RequestBody String data) {
+        return new ResultBean<Boolean>(systemService.saveParam(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), SysParam.class)));
+    }
+
+    /**
+     * 通过id删除参数
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/param/delete/{id}", method = {RequestMethod.GET})
+    public ResultBean<Boolean> deleteParam(@PathVariable Integer id) {
+        return new ResultBean<Boolean>(systemService.deleteParam(id));
+    }
+
+    /**
+     * 通过id启用禁用
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/param/enable/{id}/{typeId}", method = {RequestMethod.GET})
+    public ResultBean<Boolean> enableParam(@PathVariable Integer id,@PathVariable Integer typeId) {
+        return new ResultBean<Boolean>(systemService.enableParam(id,typeId));
+    }
+
+}

+ 80 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/controller/UserController.java

@@ -0,0 +1,80 @@
+package cn.bs.bsmanagebasic.controller;
+
+import cn.bs.bsmanagebasic.entity.filter.UserFilter;
+import cn.bs.bsmanagebasic.entity.user.LoginData;
+import cn.bs.bsmanagebasic.service.UserService;
+import cn.bs.bsmanagecommon.requst.RequestBean;
+import cn.bs.bsmanagecommon.result.ResultBean;
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: LoginController
+ * @package: cn.bs.bsmanagebasic.controller
+ * @author: kael
+ * @date: 2019/12/20 0020 下午 14:17
+ */
+@RestController
+@RequestMapping("/user")
+@CrossOrigin(allowCredentials ="true")
+public class UserController {
+
+    @Autowired
+    private UserService userService;
+
+    /**
+     * 用户登录
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/login", method = {RequestMethod.POST})
+    @ResponseBody
+    public ResultBean<LoginData> querySignReturn(@RequestBody String data){
+        return new ResultBean<LoginData>(userService.login(JSON.parseObject(data, UserFilter.class)));
+    }
+
+    /**
+     *
+     * @return
+     */
+    @GetMapping("/info")
+    public ResultBean<Map> info() {
+        return new ResultBean<Map>(userService.getRole());
+    }
+
+    /**
+     * 退出登录
+     * @return
+     */
+    @GetMapping("/logout")
+    public ResultBean<Boolean> logout() {
+        return new ResultBean<Boolean>(userService.logout());
+    }
+
+    /**
+     * 更新头像
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/updateUserAvatar", method = {RequestMethod.POST})
+    @ResponseBody
+    public ResultBean<Boolean> updateUserAvatar(@RequestBody String data){
+        return new ResultBean<Boolean>(userService.updateUserAvatar(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), UserFilter.class)));
+    }
+
+    /**
+     * 修改密码
+     * @param data
+     * @return
+     */
+    @RequestMapping(value ="/updateUserPassword", method = {RequestMethod.POST})
+    @ResponseBody
+    public ResultBean<Boolean> updateUserPassword(@RequestBody String data){
+        return new ResultBean<Boolean>(userService.updateUserPassword(JSON.parseObject(JSON.parseObject(data, RequestBean.class).getData(), UserFilter.class)));
+    }
+}

+ 17 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AdLogMapper.java

@@ -0,0 +1,17 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.AdLog;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface AdLogMapper {
+    int insert(AdLog record);
+
+    int insertSelective(AdLog record);
+
+    AdLog selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(AdLog record);
+
+    int updateByPrimaryKey(AdLog record);
+}

+ 34 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AddressCityMapper.java

@@ -0,0 +1,34 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.AddressCity;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.AddressCityExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface AddressCityMapper {
+    long countByExample(AddressCityExample example);
+
+    int deleteByExample(AddressCityExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(AddressCity record);
+
+    int insertSelective(AddressCity record);
+
+    List<AddressCity> selectByExample(AddressCityExample example);
+
+    AddressCity selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") AddressCity record, @Param("example") AddressCityExample example);
+
+    int updateByExample(@Param("record") AddressCity record, @Param("example") AddressCityExample example);
+
+    int updateByPrimaryKeySelective(AddressCity record);
+
+    int updateByPrimaryKey(AddressCity record);
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AddressDistrictMapper.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.AddressDistrict;
+import cn.bs.bsmanagebasic.entity.AddressDistrictExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface AddressDistrictMapper {
+    long countByExample(AddressDistrictExample example);
+
+    int deleteByExample(AddressDistrictExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(AddressDistrict record);
+
+    int insertSelective(AddressDistrict record);
+
+    List<AddressDistrict> selectByExample(AddressDistrictExample example);
+
+    AddressDistrict selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") AddressDistrict record, @Param("example") AddressDistrictExample example);
+
+    int updateByExample(@Param("record") AddressDistrict record, @Param("example") AddressDistrictExample example);
+
+    int updateByPrimaryKeySelective(AddressDistrict record);
+
+    int updateByPrimaryKey(AddressDistrict record);
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AddressProvinceMapper.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.AddressProvince;
+import cn.bs.bsmanagebasic.entity.AddressProvinceExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface AddressProvinceMapper {
+    long countByExample(AddressProvinceExample example);
+
+    int deleteByExample(AddressProvinceExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(AddressProvince record);
+
+    int insertSelective(AddressProvince record);
+
+    List<AddressProvince> selectByExample(AddressProvinceExample example);
+
+    AddressProvince selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") AddressProvince record, @Param("example") AddressProvinceExample example);
+
+    int updateByExample(@Param("record") AddressProvince record, @Param("example") AddressProvinceExample example);
+
+    int updateByPrimaryKeySelective(AddressProvince record);
+
+    int updateByPrimaryKey(AddressProvince record);
+}

+ 18 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/AddressTownMapper.java

@@ -0,0 +1,18 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.AddressTown;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author LiuJS
+ * @Time 2021/5/8 20:33
+ * @Desc
+ * @Version 1.0
+ */
+@Repository
+public interface AddressTownMapper {
+    List<AddressTown> getTownships(@Param("areaName") Long areaName);
+}

+ 26 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ApiLogMapper.java

@@ -0,0 +1,26 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.ApiLoggingEvent;
+import cn.bs.bsmanagebasic.entity.filter.ApiLogFilter;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @ProjectName: bs-manage
+ * @Package: cn.bs.bsmanagebasic.dao.jeesite
+ * @ClassName: ApiLogMapper
+ * @Author: kexl
+ * @Description: ${description}
+ * @Date: 2019/10/22 11:29
+ * @Version: 1.0
+ */
+@Repository
+public interface ApiLogMapper {
+
+    Integer addApiLog(ApiLoggingEvent apiLoggingEvent);
+
+    Long listCount(ApiLogFilter filter);
+
+    List<ApiLoggingEvent> getList(ApiLogFilter filter);
+}

+ 32 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ConfigurationMapper.java

@@ -0,0 +1,32 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.Configuration;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ *
+ * @author kael
+ */
+@Repository
+public interface ConfigurationMapper{
+    /**
+     * 通过code获取门店配置
+     * @param code
+     * @return
+     */
+    public Configuration getConfigurationByCode(String code);
+
+    public List<Configuration> getList();
+
+    public Integer insert(Configuration configuration);
+
+    public Integer update(Configuration configuration);
+
+    public Integer deleteById(Integer id);
+
+    public Configuration getConfigurationById(Integer id);
+
+}

+ 18 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/DeliveryRunningWaterMapper.java

@@ -0,0 +1,18 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.delivery.DeliveryRunningWater;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 订单流水
+ * @author kael
+ */
+@Repository
+public interface DeliveryRunningWaterMapper {
+    /**
+     * 新增
+     * @param deliveryRunningWater
+     * @return
+     */
+    Integer insert(DeliveryRunningWater deliveryRunningWater);
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExExpressTypeMapper.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.ExExpressType;
+import cn.bs.bsmanagebasic.entity.ExExpressTypeExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ExExpressTypeMapper {
+    long countByExample(ExExpressTypeExample example);
+
+    int deleteByExample(ExExpressTypeExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(ExExpressType record);
+
+    int insertSelective(ExExpressType record);
+
+    List<ExExpressType> selectByExample(ExExpressTypeExample example);
+
+    ExExpressType selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") ExExpressType record, @Param("example") ExExpressTypeExample example);
+
+    int updateByExample(@Param("record") ExExpressType record, @Param("example") ExExpressTypeExample example);
+
+    int updateByPrimaryKeySelective(ExExpressType record);
+
+    int updateByPrimaryKey(ExExpressType record);
+}

+ 51 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExStoreMapper.java

@@ -0,0 +1,51 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.ExStore;
+import cn.bs.bsmanagebasic.entity.ExStoreExample;
+import cn.bs.bsmanagebasic.entity.dto.StoreDto;
+import cn.bs.bsmanagebasic.entity.store.SignBackSwitchBean;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ExStoreMapper {
+    long countByExample(ExStoreExample example);
+
+    int deleteByExample(ExStoreExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(ExStore record);
+
+    int insertSelective(ExStore record);
+
+    List<ExStore> selectByExample(ExStoreExample example);
+
+    ExStore selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") ExStore record, @Param("example") ExStoreExample example);
+
+    int updateByExample(@Param("record") ExStore record, @Param("example") ExStoreExample example);
+
+    int updateByPrimaryKeySelective(ExStore record);
+
+    int updateByPrimaryKey(ExStore record);
+
+    List<StoreDto> selectDtoByParam(StoreDto dto);
+
+    long countByParam(StoreDto dto);
+
+    /**
+     * 通过门店id获取门店信息
+     *
+     * @param id
+     * @return
+     */
+    ExStore selectStoreById(Long id);
+
+    SignBackSwitchBean getSignBackSwitch(@Param("expId") Integer expId, @Param("storeId") Integer storeId);
+
+    List<Integer> selectIdByRegionCode(@Param("regionCode") String regionCode);
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExpDataStatisticalMapper.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.ExpDataStatistical;
+import cn.bs.bsmanagebasic.entity.dto.ExpDataStatisticalDto;
+import cn.bs.bsmanagebasic.entity.filter.StatisticsFilter;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ExpDataStatisticalMapper {
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(ExpDataStatistical record);
+
+    int insertSelective(ExpDataStatistical record);
+
+    ExpDataStatistical selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(ExpDataStatistical record);
+
+    int updateByPrimaryKey(ExpDataStatistical record);
+
+    ExpDataStatisticalDto selectSevendayOutbountRate();
+
+    ExpDataStatisticalDto selectOnline();
+
+    ExpDataStatisticalDto sumByFilter(StatisticsFilter filter);
+
+    List<ExpDataStatisticalDto> selectByFilterEachHour(StatisticsFilter filter);
+
+    List<ExpDataStatisticalDto> selectByFilterEachDay(StatisticsFilter filter);
+}

+ 39 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExpressDeptAccountMapper.java

@@ -0,0 +1,39 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.ExpressDeptAccount;
+import cn.bs.bsmanagebasic.entity.filter.ExpressDeptFilter;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ExpressDeptAccountMapper {
+    int insert(ExpressDeptAccount record);
+
+    int insertSelective(ExpressDeptAccount record);
+
+    ExpressDeptAccount selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(ExpressDeptAccount record);
+
+    int updateByPrimaryKey(ExpressDeptAccount record);
+
+    Long countByFilter(ExpressDeptFilter filter);
+
+    Long countByDeptId(@Param("deptId") Long id);
+
+    List<ExpressDeptAccount> selectByFilter(ExpressDeptFilter filter);
+
+    Integer deleteAccountById(Long id);
+
+    Integer enableAccountById(Long id);
+
+    ExpressDeptAccount selectAccountByStoreIdAndExpId(@Param("storeId") Long storeId, @Param("expId") Long expId);
+
+    List<ExpressDeptAccount> selectByDeptId(Long id);
+
+    int updateBalance(ExpressDeptAccount accountForUpdate);
+
+    ExpressDeptAccount selectAccountById(Long id);
+}

+ 32 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/ExpressDeptMapper.java

@@ -0,0 +1,32 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.ExpressDept;
+import cn.bs.bsmanagebasic.entity.filter.ExpressDeptFilter;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ExpressDeptMapper {
+    int insert(ExpressDept record);
+
+    int insertSelective(ExpressDept record);
+
+    ExpressDept selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(ExpressDept record);
+
+    int updateByPrimaryKey(ExpressDept record);
+
+    Long countByFilter(ExpressDeptFilter filter);
+
+    List<ExpressDept> selectByFilter(ExpressDeptFilter filter);
+
+    List<ExpressDept> selectForOption(@Param("expId") Long expId);
+
+    Integer deleteById(Long id);
+
+    Integer enableById(Long id);
+
+}

+ 19 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/PickupQueueMapper.java

@@ -0,0 +1,19 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.PickupQueue;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 排队<br>
+ *
+ * @className: PickupQueueDao
+ * @package: com.parksong.dao.store
+ * @author: kael
+ * @date: 2019/11/6 0006 上午 11:09
+ */
+@Repository
+public interface PickupQueueMapper {
+    Integer insert(PickupQueue pickupQueue);
+
+    PickupQueue getByPhone(String phone);
+}

+ 29 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/PlatformMapper.java

@@ -0,0 +1,29 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.Platform;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: PlatformMapper
+ * @package: cn.bs.bsmanagebasic.dao.jeesite
+ * @author: kael
+ * @date: 2019/10/29 0029 下午 15:20
+ */
+@Repository
+public interface PlatformMapper {
+    /**
+     * 查询所有
+     * @return
+     */
+    List<Platform> getAll();
+
+    Integer update(Platform platform);
+
+    Integer insert(Platform platform);
+
+    Integer deleteById(Integer id);
+}

+ 19 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/RConfigGruopMapper.java

@@ -0,0 +1,19 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.RConfigGruop;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface RConfigGruopMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(RConfigGruop record);
+
+    int insertSelective(RConfigGruop record);
+
+    RConfigGruop selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(RConfigGruop record);
+
+    int updateByPrimaryKey(RConfigGruop record);
+}

+ 32 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/SignBackSwitchMapper.java

@@ -0,0 +1,32 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.SignBackSwitch;
+import cn.bs.bsmanagebasic.entity.SignBackSwitchExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface SignBackSwitchMapper {
+    long countByExample(SignBackSwitchExample example);
+
+    int deleteByExample(SignBackSwitchExample example);
+
+    int insert(SignBackSwitch record);
+
+    int insertSelective(SignBackSwitch record);
+
+    List<SignBackSwitch> selectByExample(SignBackSwitchExample example);
+
+    int updateByExampleSelective(@Param("record") SignBackSwitch record, @Param("example") SignBackSwitchExample example);
+
+    int updateByExample(@Param("record") SignBackSwitch record, @Param("example") SignBackSwitchExample example);
+
+    /**
+     * @description 批量插入数据,只插入必须字段,其他使用数据库的默认值
+     * @author sunjj
+     */
+    int insertListByDefaultValue(List<SignBackSwitch> signBackSwitches);
+
+    int batchUpdateByStoreId(SignBackSwitch signBackSwitch);
+}

+ 14 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/StoreImeiMapper.java

@@ -0,0 +1,14 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author liujs
+ */
+@Repository
+public interface StoreImeiMapper {
+
+    List<String> getImeiByStoreId(Integer storeId);
+}

+ 37 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/StoreTemplateMapper.java

@@ -0,0 +1,37 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.StoreTemplate;
+import cn.bs.bsmanagebasic.entity.StoreTemplateExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface StoreTemplateMapper {
+    long countByExample(StoreTemplateExample example);
+
+    int deleteByExample(StoreTemplateExample example);
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(StoreTemplate record);
+
+    int insertSelective(StoreTemplate record);
+
+    List<StoreTemplate> selectByExample(StoreTemplateExample example);
+
+    StoreTemplate selectByPrimaryKey(Long id);
+
+    int updateByExampleSelective(@Param("record") StoreTemplate record, @Param("example") StoreTemplateExample example);
+
+    int updateByExample(@Param("record") StoreTemplate record, @Param("example") StoreTemplateExample example);
+
+    int updateByPrimaryKeySelective(StoreTemplate record);
+
+    int updateByPrimaryKey(StoreTemplate record);
+
+    int updateTemplateByStoreId(StoreTemplate storeTemplate);
+
+    int insertList(List<StoreTemplate> storeTemplates);
+}

+ 41 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/SystemMapper.java

@@ -0,0 +1,41 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.filter.SystemFilter;
+import cn.bs.bsmanagebasic.entity.sys.SysParam;
+import cn.bs.bsmanagebasic.entity.sys.SysType;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: SystemMapper
+ * @package: cn.bs.bsmanagebasic.dao.jeesite
+ * @author: kael
+ * @date: 2019/12/2 0002 上午 10:57
+ */
+@Repository
+public interface SystemMapper {
+    List<SysParam> getDataByType(SystemFilter filter);
+
+    List<SysType> getAllListType();
+
+    Integer enableById(Integer id);
+
+    Integer addType(SysType sysType);
+
+    Integer updateType(SysType sysType);
+
+    List<SysType> getTypeByName(SystemFilter filter);
+
+    Integer deleteType(Integer id);
+
+    Integer addParam(SysParam sysParam);
+
+    Integer updateParam(SysParam sysParam);
+
+    Integer deleteParam(Integer id);
+
+    Integer enableParamById(Integer id);
+}

+ 32 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/TBsChooseoptionMapper.java

@@ -0,0 +1,32 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.TBsChooseoption;
+import cn.bs.bsmanagebasic.entity.TBsChooseoptionExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface TBsChooseoptionMapper {
+    long countByExample(TBsChooseoptionExample example);
+
+    int deleteByExample(TBsChooseoptionExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(TBsChooseoption record);
+
+    int insertSelective(TBsChooseoption record);
+
+    List<TBsChooseoption> selectByExample(TBsChooseoptionExample example);
+
+    TBsChooseoption selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") TBsChooseoption record, @Param("example") TBsChooseoptionExample example);
+
+    int updateByExample(@Param("record") TBsChooseoption record, @Param("example") TBsChooseoptionExample example);
+
+    int updateByPrimaryKeySelective(TBsChooseoption record);
+
+    int updateByPrimaryKey(TBsChooseoption record);
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/TBsCompanyMapper.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.TBsCompany;
+import cn.bs.bsmanagebasic.entity.TBsCompanyExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface TBsCompanyMapper {
+    long countByExample(TBsCompanyExample example);
+
+    int deleteByExample(TBsCompanyExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(TBsCompany record);
+
+    int insertSelective(TBsCompany record);
+
+    List<TBsCompany> selectByExample(TBsCompanyExample example);
+
+    TBsCompany selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") TBsCompany record, @Param("example") TBsCompanyExample example);
+
+    int updateByExample(@Param("record") TBsCompany record, @Param("example") TBsCompanyExample example);
+
+    int updateByPrimaryKeySelective(TBsCompany record);
+
+    int updateByPrimaryKey(TBsCompany record);
+}

+ 35 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jeesite/TempNoticeMapper.java

@@ -0,0 +1,35 @@
+package cn.bs.bsmanagebasic.dao.jeesite;
+
+import cn.bs.bsmanagebasic.entity.TempNotice;
+import cn.bs.bsmanagebasic.entity.filter.NoticeFilter;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 公告<br>
+ *
+ * @className: TempNoticeMapper
+ * @package: com.parksong.dao.store
+ * @author: liujs
+ * @date: 2019/11/28 0006 上午 11:09
+ */
+@Repository
+public interface TempNoticeMapper {
+    /**
+     * 新增消息
+     * @param tempNotice
+     * @return
+     */
+    Integer insert(TempNotice tempNotice);
+
+    List<TempNotice> getSendNotice(NoticeFilter noticeFilter);
+
+    List<TempNotice> getList(NoticeFilter filter);
+
+    Integer getListCount(NoticeFilter filter);
+
+    Integer deleteNotice(List<Integer> ids);
+
+    Integer updateNotice(TempNotice notice);
+}

+ 40 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/AdminUserMapper.java

@@ -0,0 +1,40 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.dto.AdminUserEditDto;
+import cn.bs.bsmanagebasic.entity.dto.AdminUserListDto;
+import cn.bs.bsmanagebasic.entity.user.AdminUser;
+import cn.bs.bsmanagebasic.entity.user.UserRole;
+import cn.bs.bsmanagebasic.entity.vo.AdminUserVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @description:
+ * @author: chenxuebing
+ * @create: 2021-05-07 15:07
+ **/
+@Mapper
+public interface AdminUserMapper {
+    
+    List<AdminUser> listAdminUser(@Param("adminUserListDto") AdminUserListDto adminUserListDto);
+
+    int getAdminUserCount(AdminUserListDto adminUserListDto);
+
+    int addAdminUser(AdminUser adminUser);
+
+    /**
+     * 添加用户角色
+     * @return
+     */
+    int addAdminUserRole(UserRole userRole);
+
+    int deleteUserRole(AdminUserEditDto adminUserEditDto);
+
+    AdminUserVo getAdminUser(AdminUser adminUser);
+
+    int updateAdminUser(AdminUserEditDto adminUserEditDto);
+
+    int deleteAdminUser(AdminUser adminUser);
+}

+ 19 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/ConsumeRecordMapper.java

@@ -0,0 +1,19 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.ConsumeRecord;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ConsumeRecordMapper {
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(ConsumeRecord record);
+
+    int insertSelective(ConsumeRecord record);
+
+    ConsumeRecord selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(ConsumeRecord record);
+
+    int updateByPrimaryKey(ConsumeRecord record);
+}

+ 48 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/DeliveryMapper.java

@@ -0,0 +1,48 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.PickupQueue;
+import cn.bs.bsmanagebasic.entity.delivery.Delivery;
+import cn.bs.bsmanagebasic.entity.delivery.IdAndStoreIds;
+import cn.bs.bsmanagebasic.entity.filter.DeliveryFilter;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 〈功能概述〉<br>
+ *
+ * @className: DeliveryMapper
+ * @package: cn.bs.bsmanagebasic.dao.jisu
+ * @author: kael
+ * @date: 2019/11/6 0006 下午 15:44
+ */
+@Repository
+public interface DeliveryMapper {
+
+    List<String> getCount(PickupQueue pickupQueue);
+
+    List<Delivery> getListByFilter(DeliveryFilter filter);
+
+    List<Delivery> getList(DeliveryFilter filter);
+
+    Integer getListCount(DeliveryFilter filter);
+
+    void updateExpStatus(@Param("idAndStoreIdsList") List<IdAndStoreIds> idAndStoreIdsList);
+
+    void updateExpStatusFromDelivery(@Param("idAndStoreIdsList") List<IdAndStoreIds> idAndStoreIdsList);
+
+    Integer queryIdFromMasterDelivery(Delivery delivery);
+
+    List<Delivery> selectByFilterFromMaster(DeliveryFilter filter);
+
+    Long countByFilterFromMaster(DeliveryFilter filter);
+
+    List<Delivery> slectByMaster(@Param("storeId") Integer storeId, @Param("deliveries") List<Delivery> deliveries);
+
+    Delivery getByMasterId(Integer id);
+
+    Delivery getById(@Param("storeId") Integer storeId, @Param("id") Integer id);
+
+    List<Delivery> getPickupCodeByPhone(DeliveryFilter filter);
+}

+ 38 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/ExpressAccountConsumeRecordMapper.java

@@ -0,0 +1,38 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.ExpressAccountConsumeRecord;
+import cn.bs.bsmanagebasic.entity.dto.ExpressAccountConsumeRecordDto;
+import cn.bs.bsmanagebasic.entity.filter.ExpressDeptFilter;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ExpressAccountConsumeRecordMapper {
+    int insert(ExpressAccountConsumeRecord record);
+
+    int insertSelective(ExpressAccountConsumeRecord record);
+
+    ExpressAccountConsumeRecord selectByPrimaryKey(Long id);
+
+    Long countByFilter(ExpressDeptFilter filter);
+
+    List<ExpressAccountConsumeRecordDto> selectByFilter(ExpressDeptFilter filter);
+
+    List<ExpressAccountConsumeRecordDto> selectForDeliveryByFilter(ExpressDeptFilter filter);
+
+    Long countForDeliveryByFilter(ExpressDeptFilter filter);
+
+    ExpressAccountConsumeRecord selectLastRecord(@Param("deliveryId") int deliveryId, @Param("expId") int expId);
+
+    Integer insertList(@Param("records") List<ExpressAccountConsumeRecord> records);
+
+    ExpressAccountConsumeRecord selectTime();
+
+    List<ExpressAccountConsumeRecord> selectForStatisticsByFilter(ExpressDeptFilter filter);
+
+    int deleteForLock();
+
+    int insertForUNLock();
+}

+ 25 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/ExpressAccountRechargeRecordMapper.java

@@ -0,0 +1,25 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.ExpressAccountRechargeRecord;
+import cn.bs.bsmanagebasic.entity.dto.ExpressAccountRechargeRecordDto;
+import cn.bs.bsmanagebasic.entity.filter.ExpressDeptFilter;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ExpressAccountRechargeRecordMapper {
+    int insert(ExpressAccountRechargeRecord record);
+
+    int insertSelective(ExpressAccountRechargeRecord record);
+
+    ExpressAccountRechargeRecord selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(ExpressAccountRechargeRecord record);
+
+    int updateByPrimaryKey(ExpressAccountRechargeRecord record);
+
+    Long countByFilter(ExpressDeptFilter filter);
+
+    List<ExpressAccountRechargeRecordDto> selectByFilter(ExpressDeptFilter filter);
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/FjUserMapper.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.FjUser;
+import cn.bs.bsmanagebasic.entity.FjUserExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface FjUserMapper {
+    long countByExample(FjUserExample example);
+
+    int deleteByExample(FjUserExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(FjUser record);
+
+    int insertSelective(FjUser record);
+
+    List<FjUser> selectByExample(FjUserExample example);
+
+    FjUser selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") FjUser record, @Param("example") FjUserExample example);
+
+    int updateByExample(@Param("record") FjUser record, @Param("example") FjUserExample example);
+
+    int updateByPrimaryKeySelective(FjUser record);
+
+    int updateByPrimaryKey(FjUser record);
+}

+ 33 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/MenuMapper.java

@@ -0,0 +1,33 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.Menu;
+import cn.bs.bsmanagebasic.entity.User;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author LiuJS
+ * @Time 2021/4/26 16:24
+ * @Desc
+ * @Version 1.0
+ */
+@Mapper
+public interface MenuMapper {
+    List<Menu> list();
+
+    List<Menu> getRoleRouter(User user);
+
+    List<String> getApiPermission(String roleId);
+
+    void addResource(Menu menu);
+
+    void updateResource(Menu menu);
+
+    void deleteResource(Long id);
+
+    List<Menu> listMenuAll(Long roleId);
+
+    String getRoleIdByUserId(@Param("userId") String userId);
+}

+ 49 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/RoleMapper.java

@@ -0,0 +1,49 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.dto.RoleListDto;
+import cn.bs.bsmanagebasic.entity.dto.RoleMenuBindDto;
+import cn.bs.bsmanagebasic.entity.sys.Role;
+import cn.bs.bsmanagebasic.entity.sys.RoleMenu;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author LiuJS
+ * @Time 2021/4/26 17:47
+ * @Desc
+ * @Version 1.0
+ */
+@Mapper
+public interface RoleMapper {
+    /*List<String> getRole(@Param("userId") String userId);*/
+
+    List<Role> listRole(RoleListDto roleDto);
+
+    /*Role selectById(Long id);*/
+
+    boolean addRole(Role role);
+
+    boolean updateRole(Role role);
+
+    boolean deleteRole(Long id);
+
+    Long[] getRoleMenu(RoleMenu roleMenu);
+
+    int getRoleCount(RoleListDto roleDto);
+
+    Long[] getRoleTemplateMenu(Long roleId);
+
+    void deleteRoleMenu(RoleMenuBindDto roleMenuBindDto);
+
+    void addRoleMenu(RoleMenuBindDto roleMenuBindDto);
+
+    List<Role> getChildRole(Long id);
+
+    /**
+     * 获取商店管理员默认角色
+     * @param id
+     */
+    Long getStoreRoleDefault(int id);
+}

+ 32 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/SmsRecordMapper.java

@@ -0,0 +1,32 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.SmsRecord;
+import cn.bs.bsmanagebasic.entity.filter.SmsRecordFilter;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 短信记录 <br>
+ *
+ * @className: SmsRecordMapper
+ * @package: cn.bs.bsmanagebasic.dao.jeesite
+ * @author: kael
+ * @date: 2019/10/16 0016 下午 17:29
+ */
+@Repository
+public interface SmsRecordMapper {
+    /**
+     * 查询短信记录
+     * @param filter
+     * @return
+     */
+    List<SmsRecord> getSmsRecordList(SmsRecordFilter filter);
+
+    /**
+     * 查询总条数
+     * @param filter
+     * @return
+     */
+    Integer getSmsRecordCount(SmsRecordFilter filter);
+}

+ 11 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/SmspurchaserecordMapper.java

@@ -0,0 +1,11 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.Smspurchaserecord;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface SmspurchaserecordMapper {
+    int insert(Smspurchaserecord record);
+
+    int insertSelective(Smspurchaserecord record);
+}

+ 27 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StatisticsReportMapper.java

@@ -0,0 +1,27 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.dto.StatisticsReportDto;
+import cn.bs.bsmanagebasic.entity.filter.StatisticsReportFilter;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * Time: 2021/5/13 15:02
+ * Author: zhangHP
+ *
+ * @description: 统计
+ */
+
+@Mapper
+public interface StatisticsReportMapper {
+
+    //根据快递公司进行统计 入库
+     List<StatisticsReportDto> countGroupByCompany(StatisticsReportFilter filter) ;
+
+    //根据门店进行统计 入库
+    List<StatisticsReportDto> countGroupByStore(StatisticsReportFilter filter);
+
+    //根据外派员进行统计 入库
+    List<StatisticsReportDto> countGroupByStoreStaff(StatisticsReportFilter filter);
+}

+ 32 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StoreDeliveryMsgTemplateConfigMapper.java

@@ -0,0 +1,32 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.StoreDeliveryMsgTemplateConfig;
+import cn.bs.bsmanagebasic.entity.StoreDeliveryMsgTemplateConfigExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+@Repository
+public interface StoreDeliveryMsgTemplateConfigMapper {
+    long countByExample(StoreDeliveryMsgTemplateConfigExample example);
+
+    int deleteByExample(StoreDeliveryMsgTemplateConfigExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(StoreDeliveryMsgTemplateConfig record);
+
+    int insertSelective(StoreDeliveryMsgTemplateConfig record);
+
+    List<StoreDeliveryMsgTemplateConfig> selectByExample(StoreDeliveryMsgTemplateConfigExample example);
+
+    StoreDeliveryMsgTemplateConfig selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") StoreDeliveryMsgTemplateConfig record, @Param("example") StoreDeliveryMsgTemplateConfigExample example);
+
+    int updateByExample(@Param("record") StoreDeliveryMsgTemplateConfig record, @Param("example") StoreDeliveryMsgTemplateConfigExample example);
+
+    int updateByPrimaryKeySelective(StoreDeliveryMsgTemplateConfig record);
+
+    int updateByPrimaryKey(StoreDeliveryMsgTemplateConfig record);
+}

+ 37 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StoreDeliveryMsgTemplateMapper.java

@@ -0,0 +1,37 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.StoreDeliveryMsgTemplate;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.StoreDeliveryMsgTemplateExample;
+import cn.bs.bsmanagebasic.entity.dto.StoreTemplateDto;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface StoreDeliveryMsgTemplateMapper {
+    long countByExample(StoreDeliveryMsgTemplateExample example);
+
+    int deleteByExample(StoreDeliveryMsgTemplateExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(StoreDeliveryMsgTemplate record);
+
+    int insertSelective(StoreDeliveryMsgTemplate record);
+
+    List<StoreDeliveryMsgTemplate> selectByExample(StoreDeliveryMsgTemplateExample example);
+
+    StoreDeliveryMsgTemplate selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") StoreDeliveryMsgTemplate record, @Param("example") StoreDeliveryMsgTemplateExample example);
+
+    int updateByExample(@Param("record") StoreDeliveryMsgTemplate record, @Param("example") StoreDeliveryMsgTemplateExample example);
+
+    int updateByPrimaryKeySelective(StoreDeliveryMsgTemplate record);
+
+    int updateByPrimaryKey(StoreDeliveryMsgTemplate record);
+
+    List<StoreTemplateDto> getTemplateByStoreId(@Param("storeId") Long storeId);
+}

+ 37 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StoreShelfMapper.java

@@ -0,0 +1,37 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.StoreShelf;
+import cn.bs.bsmanagebasic.entity.StoreShelfExample;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface StoreShelfMapper {
+    long countByExample(StoreShelfExample example);
+
+    int deleteByExample(StoreShelfExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(StoreShelf record);
+
+    int insertSelective(StoreShelf record);
+
+    StoreShelf getById(Integer id);
+
+    List<StoreShelf> selectByExample(StoreShelfExample example);
+
+    StoreShelf selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") StoreShelf record, @Param("example") StoreShelfExample example);
+
+    int updateByExample(@Param("record") StoreShelf record, @Param("example") StoreShelfExample example);
+
+    int updateByPrimaryKeySelective(StoreShelf record);
+
+    int updateByPrimaryKey(StoreShelf record);
+
+    void insertList(@Param("list") List<StoreShelf> storeShelf);
+}

+ 68 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/StoreStaffMapper.java

@@ -0,0 +1,68 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import cn.bs.bsmanagebasic.entity.User;
+import cn.bs.bsmanagebasic.entity.dto.StoreStaffDto;
+import cn.bs.bsmanagebasic.entity.filter.StoreStaffFilter;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 门店外派员信息
+ */
+@Mapper
+public interface StoreStaffMapper {
+
+    /**
+     * 获取外派员信息列表
+     * @param storeId
+     * @return
+     */
+    List<StoreStaffDto> getStoreStaffList(@Param("storeId") Long storeId);
+
+    /**
+     * 新增外派员
+     * @param user
+     * @return
+     */
+    boolean addStoreStaff(@Param("storeStaff") User user);
+
+    /**
+     * 修改
+     * @param storeStaff
+     * @return
+     */
+    boolean updateStoreStaffById(User storeStaff);
+
+    /**
+     * 删除
+     * @param userId
+     * @return
+     */
+    boolean deleteStoreStaffById(String userId);
+
+
+    /**
+     * 查询
+     * @param storeStaff
+     * @return
+     */
+    List<StoreStaffDto> queryStoreStaff(StoreStaffFilter storeStaff);
+
+    /**
+     * 条数
+     * @param filter
+     * @return
+     */
+    Integer listCount(StoreStaffFilter filter);
+
+    /**
+     * 详情
+     * @param userId
+     * @return
+     */
+    StoreStaffDto detailStaff(String userId);
+
+    List<StoreStaffDto> getStoreStaffPage(StoreStaffFilter filter);
+}

+ 57 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/dao/jisu/UserMapper.java

@@ -0,0 +1,57 @@
+package cn.bs.bsmanagebasic.dao.jisu;
+
+import java.util.List;
+
+import cn.bs.bsmanagebasic.entity.User;
+import cn.bs.bsmanagebasic.entity.UserExample;
+import cn.bs.bsmanagebasic.entity.dto.AdminUserListDto;
+import cn.bs.bsmanagebasic.entity.user.AdminUser;
+import cn.bs.bsmanagebasic.entity.user.UserRole;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface UserMapper {
+    long countByExample(UserExample example);
+
+    int deleteByExample(UserExample example);
+
+    int deleteByPrimaryKey(String userId);
+
+    int insert(User record);
+
+    int insertSelective(User record);
+
+    List<User> selectByExample(UserExample example);
+
+    User selectByPrimaryKey(String userId);
+
+    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);
+
+    int updateByExample(@Param("record") User record, @Param("example") UserExample example);
+
+    int updateByPrimaryKeySelective(User record);
+
+    int updateByPrimaryKey(User record);
+
+    /**
+     * 添加用户角色
+     * @param userRole
+     * @return
+     */
+    int addUserRole(UserRole userRole);
+
+    /**
+     * 根据用户类型查询用户总条数 AdminTypEnum
+     * @param adminUserListDto
+     * @return
+     */
+    int getAdminUserCount(AdminUserListDto adminUserListDto);
+
+    /**
+     * 根据用户类型查询用户 AdminTypEnum
+     * @param adminUserListDto
+     * @return
+     */
+    List<AdminUser> listAdminUser(AdminUserListDto adminUserListDto);
+}

+ 85 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/entity/AdLog.java

@@ -0,0 +1,85 @@
+package cn.bs.bsmanagebasic.entity;
+
+import java.util.Date;
+
+public class AdLog {
+    private Integer id;
+
+    private Integer storeId;
+
+    private String phone;
+
+    private String appid;
+
+    private String adLink;
+
+    private Byte source;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getAppid() {
+        return appid;
+    }
+
+    public void setAppid(String appid) {
+        this.appid = appid;
+    }
+
+    public String getAdLink() {
+        return adLink;
+    }
+
+    public void setAdLink(String adLink) {
+        this.adLink = adLink;
+    }
+
+    public Byte getSource() {
+        return source;
+    }
+
+    public void setSource(Byte source) {
+        this.source = source;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 43 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/entity/AddressCity.java

@@ -0,0 +1,43 @@
+package cn.bs.bsmanagebasic.entity;
+
+public class AddressCity {
+    private Integer id;
+
+    private Integer provinceId;
+
+    private Long cityId;
+
+    private String cityName;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getProvinceId() {
+        return provinceId;
+    }
+
+    public void setProvinceId(Integer provinceId) {
+        this.provinceId = provinceId;
+    }
+
+    public Long getCityId() {
+        return cityId;
+    }
+
+    public void setCityId(Long cityId) {
+        this.cityId = cityId;
+    }
+
+    public String getCityName() {
+        return cityName;
+    }
+
+    public void setCityName(String cityName) {
+        this.cityName = cityName == null ? null : cityName.trim();
+    }
+}

+ 450 - 0
bsmanage-basic/src/main/java/cn/bs/bsmanagebasic/entity/AddressCityExample.java

@@ -0,0 +1,450 @@
+package cn.bs.bsmanagebasic.entity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AddressCityExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public AddressCityExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdIsNull() {
+            addCriterion("province_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdIsNotNull() {
+            addCriterion("province_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdEqualTo(Integer value) {
+            addCriterion("province_id =", value, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdNotEqualTo(Integer value) {
+            addCriterion("province_id <>", value, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdGreaterThan(Integer value) {
+            addCriterion("province_id >", value, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("province_id >=", value, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdLessThan(Integer value) {
+            addCriterion("province_id <", value, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdLessThanOrEqualTo(Integer value) {
+            addCriterion("province_id <=", value, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdIn(List<Integer> values) {
+            addCriterion("province_id in", values, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdNotIn(List<Integer> values) {
+            addCriterion("province_id not in", values, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdBetween(Integer value1, Integer value2) {
+            addCriterion("province_id between", value1, value2, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andProvinceIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("province_id not between", value1, value2, "province_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdIsNull() {
+            addCriterion("city_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdIsNotNull() {
+            addCriterion("city_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdEqualTo(Long value) {
+            addCriterion("city_id =", value, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdNotEqualTo(Long value) {
+            addCriterion("city_id <>", value, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdGreaterThan(Long value) {
+            addCriterion("city_id >", value, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdGreaterThanOrEqualTo(Long value) {
+            addCriterion("city_id >=", value, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdLessThan(Long value) {
+            addCriterion("city_id <", value, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdLessThanOrEqualTo(Long value) {
+            addCriterion("city_id <=", value, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdIn(List<Long> values) {
+            addCriterion("city_id in", values, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdNotIn(List<Long> values) {
+            addCriterion("city_id not in", values, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdBetween(Long value1, Long value2) {
+            addCriterion("city_id between", value1, value2, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityIdNotBetween(Long value1, Long value2) {
+            addCriterion("city_id not between", value1, value2, "city_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameIsNull() {
+            addCriterion("city_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameIsNotNull() {
+            addCriterion("city_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameEqualTo(String value) {
+            addCriterion("city_name =", value, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameNotEqualTo(String value) {
+            addCriterion("city_name <>", value, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameGreaterThan(String value) {
+            addCriterion("city_name >", value, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameGreaterThanOrEqualTo(String value) {
+            addCriterion("city_name >=", value, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameLessThan(String value) {
+            addCriterion("city_name <", value, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameLessThanOrEqualTo(String value) {
+            addCriterion("city_name <=", value, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameLike(String value) {
+            addCriterion("city_name like", value, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameNotLike(String value) {
+            addCriterion("city_name not like", value, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameIn(List<String> values) {
+            addCriterion("city_name in", values, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameNotIn(List<String> values) {
+            addCriterion("city_name not in", values, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameBetween(String value1, String value2) {
+            addCriterion("city_name between", value1, value2, "city_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andCityNameNotBetween(String value1, String value2) {
+            addCriterion("city_name not between", value1, value2, "city_name");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff