Sfoglia il codice sorgente

完成benyun-core与ruoyi整合

JensionDzero 1 anno fa
parent
commit
c25f9f1df5
100 ha cambiato i file con 907 aggiunte e 1216 eliminazioni
  1. 0 37
      .run/bailian-admin.run.xml
  2. 0 19
      benyun-core/pom.xml
  3. 0 60
      benyun-core/src/main/java/com/benyun/core/config/DataSourceHealthConfig.java
  4. 0 16
      benyun-core/src/main/java/com/benyun/core/dao/TopologicalBuildWdDao.java
  5. 0 14
      benyun-core/src/main/java/com/benyun/core/dao/TopologicalBuildWdStatisticsCategoryDao.java
  6. 0 17
      benyun-core/src/main/java/com/benyun/core/dao/TopologicalEnterpriseWdDao.java
  7. 0 16
      benyun-core/src/main/java/com/benyun/core/dao/TopologicalHouseWdDao.java
  8. 0 14
      benyun-core/src/main/java/com/benyun/core/dao/TopologicalHouseWdStatisticsDataDao.java
  9. 0 18
      benyun-core/src/main/java/com/benyun/core/dao/TopologicalStoreWdDao.java
  10. 0 16
      benyun-core/src/main/java/com/benyun/core/dao/TopologicalStoreWdStatisticsCategoryDao.java
  11. 0 13
      benyun-core/src/main/java/com/benyun/core/dao/WdInfoDao.java
  12. 0 125
      benyun-core/src/main/java/com/benyun/core/init/BenyunCoreInit.java
  13. 0 39
      benyun-core/src/main/java/com/benyun/core/job/AnalyseJob.java
  14. 0 11
      benyun-core/src/main/java/com/benyun/core/service/TopologicalEnterpriseWdService.java
  15. 0 16
      benyun-core/src/main/java/com/benyun/core/service/TopologicalHouseWdService.java
  16. 0 16
      benyun-core/src/main/java/com/benyun/core/service/TopologicalStoreWdService.java
  17. 0 18
      benyun-core/src/main/java/com/benyun/core/service/WdRecycleService.java
  18. 0 382
      benyun-core/src/main/java/com/benyun/core/service/impl/AnalyseWdServiceImpl.java
  19. 0 35
      benyun-core/src/main/java/com/benyun/core/utils/DistanceUtil.java
  20. 0 44
      benyun-core/src/main/java/com/benyun/core/utils/SpringUtil.java
  21. 0 57
      benyun-core/src/main/java/com/benyun/core/utils/sharding/ConsistenceHashAlgorithm.java
  22. 0 58
      benyun-core/src/main/java/com/benyun/core/utils/sharding/InitTableNodesToHashLoop.java
  23. 1 4
      benyun-core/src/main/java/com/ruoyi/benyun/BenyunCoreApplication.java
  24. 60 0
      benyun-core/src/main/java/com/ruoyi/benyun/config/DataSourceHealthConfig.java
  25. 3 3
      benyun-core/src/main/java/com/ruoyi/benyun/config/QuartzConfig.java
  26. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/config/RedisConfiguration.java
  27. 6 0
      benyun-core/src/main/java/com/ruoyi/benyun/constant/ChannelMapContant.java
  28. 4 3
      benyun-core/src/main/java/com/ruoyi/benyun/constant/RedisContant.java
  29. 159 0
      benyun-core/src/main/java/com/ruoyi/benyun/controller/BrandController.java
  30. 4 5
      benyun-core/src/main/java/com/ruoyi/benyun/controller/BrandRecycleController.java
  31. 41 0
      benyun-core/src/main/java/com/ruoyi/benyun/controller/CategoryCotroller.java
  32. 34 35
      benyun-core/src/main/java/com/ruoyi/benyun/controller/ChannelAnalyseController.java
  33. 153 0
      benyun-core/src/main/java/com/ruoyi/benyun/controller/ChannelMapController.java
  34. 32 0
      benyun-core/src/main/java/com/ruoyi/benyun/controller/CommonController.java
  35. 8 11
      benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalBuildWdController.java
  36. 7 8
      benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalCommonController.java
  37. 7 9
      benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalEnterpriseWdController.java
  38. 8 10
      benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalHouseWdController.java
  39. 8 11
      benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalStoreWdController.java
  40. 5 6
      benyun-core/src/main/java/com/ruoyi/benyun/controller/WdInfoController.java
  41. 4 6
      benyun-core/src/main/java/com/ruoyi/benyun/controller/WdRecycleController.java
  42. 187 0
      benyun-core/src/main/java/com/ruoyi/benyun/controller/WorkTableController.java
  43. 29 0
      benyun-core/src/main/java/com/ruoyi/benyun/entity/AddrCategory.java
  44. 40 0
      benyun-core/src/main/java/com/ruoyi/benyun/entity/AttentionPool.java
  45. 34 0
      benyun-core/src/main/java/com/ruoyi/benyun/entity/AttentionPoolStatistics.java
  46. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/Brand.java
  47. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandCity.java
  48. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandEvolve.java
  49. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandProvince.java
  50. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandStatistics.java
  51. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandStoreOpclose.java
  52. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandZone.java
  53. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/BuildWd.java
  54. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/BusinessOpportunitiesClue.java
  55. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/Category.java
  56. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/CityTierBody.java
  57. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/Enterprise.java
  58. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/EnterpriseWd.java
  59. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/FollowUpRecord.java
  60. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/HouseWd.java
  61. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/ManageType.java
  62. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/StoreWd.java
  63. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalBuildWdStatisticsCategory.java
  64. 1 2
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalBuildingWd.java
  65. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalEnterpriseWd.java
  66. 1 2
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalHouseWd.java
  67. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalHouseWdStatisticsData.java
  68. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalStoreWd.java
  69. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalStoreWdStatisticsCategory.java
  70. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TrafficWd.java
  71. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/TypeBy.java
  72. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/WdInfo.java
  73. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/WdOpclose.java
  74. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/WdToologicalItem.java
  75. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/WdTopological.java
  76. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/WdTopologicalInfo.java
  77. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/AttentionPoolBo.java
  78. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/AttentionPoolStatisticsBo.java
  79. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BStoreData.java
  80. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandAddrDistribution.java
  81. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandDisCloud.java
  82. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandDisItem.java
  83. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandDistribution.java
  84. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandGeoLabelBo.java
  85. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandInfo.java
  86. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandOpcloseBo.java
  87. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandProperty.java
  88. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandProvinceBo.java
  89. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandSearch.java
  90. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandSimilar.java
  91. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandStatus.java
  92. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandTotal.java
  93. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BuildWdCategoryCount.java
  94. 7 3
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BuildWdInfoBo.java
  95. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BusinessOpportunitiesClueBo.java
  96. 7 3
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/EnterpriseWdInfoBo.java
  97. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/FollowUpRecordBo.java
  98. 6 3
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/HouseWdInfoBo.java
  99. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/Info.java
  100. 1 1
      benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/StoreWdCategoryCount.java

+ 0 - 37
.run/bailian-admin.run.xml

@@ -1,37 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="bailian-admin" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
-    <deployment type="dockerfile">
-      <settings>
-        <option name="imageTag" value="bailian-admin:4.8.0" />
-        <option name="containerName" value="bailian-admin" />
-        <option name="envVars">
-          <list>
-            <DockerEnvVarImpl>
-              <option name="name" value="TZ" />
-              <option name="value" value="Shanghai" />
-            </DockerEnvVarImpl>
-          </list>
-        </option>
-        <option name="commandLineOptions" value="--network host" />
-        <option name="sourceFilePath" value="ruoyi-admin/Dockerfile" />
-        <option name="volumeBindings">
-          <list>
-            <DockerVolumeBindingImpl>
-              <option name="containerPath" value="/data/bailian-admin/logs" />
-              <option name="hostPath" value="/data/bailian-admin/logs" />
-            </DockerVolumeBindingImpl>
-            <DockerVolumeBindingImpl>
-              <option name="containerPath" value="/data/bailian-admin/temp" />
-              <option name="hostPath" value="/data/bailian-admin/temp" />
-            </DockerVolumeBindingImpl>
-            <DockerVolumeBindingImpl>
-              <option name="containerPath" value="/data/bailian-admin/agent" />
-              <option name="hostPath" value="/data/bailian-admin/agent" />
-            </DockerVolumeBindingImpl>
-          </list>
-        </option>
-      </settings>
-    </deployment>
-    <method v="2" />
-  </configuration>
-</component>

+ 0 - 19
benyun-core/pom.xml

@@ -125,25 +125,6 @@
             <version>1.4.2</version>
         </dependency>
 
-        <!--shardingsphere start-->
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
-            <version>4.0.0-RC1</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>sharding-jdbc-spring-namespace</artifactId>
-            <version>4.0.0-RC1</version>
-        </dependency>
-
-        <!--  计算两经纬度之间的距离  -->
-        <dependency>
-            <groupId>org.gavaghan</groupId>
-            <artifactId>geodesy</artifactId>
-            <version>1.1.3</version>
-        </dependency>
     </dependencies>
 
     <build>

+ 0 - 60
benyun-core/src/main/java/com/benyun/core/config/DataSourceHealthConfig.java

@@ -1,60 +0,0 @@
-package com.benyun.core.config;
-
-import com.zaxxer.hikari.HikariDataSource;
-import org.springframework.boot.jdbc.metadata.DataSourcePoolMetadata;
-import org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider;
-import org.springframework.boot.jdbc.metadata.HikariDataSourcePoolMetadata;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-
-@Configuration
-public class DataSourceHealthConfig{
-
-    /**
-     * 解决新版Spring中,集成sharding jdbc 健康检查异常
-     */
-    @Bean
-    DataSourcePoolMetadataProvider dataSourcePoolMetadataProvider() {
-        return dataSource -> dataSource instanceof HikariDataSource
-            ? new HikariDataSourcePoolMetadata((HikariDataSource) dataSource)
-            : new NotAvailableDataSourcePoolMetadata();
-    }
-
-    /**
-     * 不可用的数据源池元数据.
-     */
-    private static class NotAvailableDataSourcePoolMetadata implements DataSourcePoolMetadata {
-        @Override
-        public Float getUsage() {
-            return null;
-        }
-
-        @Override
-        public Integer getActive() {
-            return null;
-        }
-
-        @Override
-        public Integer getMax() {
-            return null;
-        }
-
-        @Override
-        public Integer getMin() {
-            return null;
-        }
-
-        @Override
-        public String getValidationQuery() {
-            return "select 1";
-        }
-
-        @Override
-        public Boolean getDefaultAutoCommit() {
-            return null;
-        }
-    }
-
-}
-

+ 0 - 16
benyun-core/src/main/java/com/benyun/core/dao/TopologicalBuildWdDao.java

@@ -1,16 +0,0 @@
-package com.benyun.core.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.benyun.core.entity.TopologicalBuildingWd;
-import com.benyun.core.entity.TopologicalStoreWd;
-import com.benyun.core.entity.WdTopological;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface TopologicalBuildWdDao extends BaseMapper<TopologicalBuildingWd> {
-    public void insertList(@Param("topologicalBuildingWds") List<TopologicalBuildingWd> topologicalBuildingWds);
-    List<TopologicalBuildingWd> list(@Param("centerWdId") String centerWdId, @Param("radius") int radius);
-}

+ 0 - 14
benyun-core/src/main/java/com/benyun/core/dao/TopologicalBuildWdStatisticsCategoryDao.java

@@ -1,14 +0,0 @@
-package com.benyun.core.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.benyun.core.entity.TopologicalBuildWdStatisticsCategory;
-import com.benyun.core.entity.TopologicalEnterpriseWd;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface TopologicalBuildWdStatisticsCategoryDao extends BaseMapper<TopologicalBuildWdStatisticsCategory> {
-    public void insertList(@Param("topologicalBuildWdStatisticsCategoryList")List<TopologicalBuildWdStatisticsCategory> topologicalBuildWdStatisticsCategoryList);
-}

+ 0 - 17
benyun-core/src/main/java/com/benyun/core/dao/TopologicalEnterpriseWdDao.java

@@ -1,17 +0,0 @@
-package com.benyun.core.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.benyun.core.entity.TopologicalBuildingWd;
-import com.benyun.core.entity.TopologicalEnterpriseWd;
-import com.benyun.core.entity.TopologicalStoreWd;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface TopologicalEnterpriseWdDao extends BaseMapper<TopologicalEnterpriseWd> {
-    public void insertList(@Param("topologicalEnterpriseWds") List<TopologicalEnterpriseWd> topologicalEnterpriseWds);
-
-    List<TopologicalEnterpriseWd> list(@Param("centerWdId") String centerWdId, @Param("radius") int radius);
-}

+ 0 - 16
benyun-core/src/main/java/com/benyun/core/dao/TopologicalHouseWdDao.java

@@ -1,16 +0,0 @@
-package com.benyun.core.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.benyun.core.entity.TopologicalHouseWd;
-import com.benyun.core.entity.TopologicalStoreWd;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface TopologicalHouseWdDao extends BaseMapper<TopologicalHouseWd> {
-    public void insertList(@Param("topologicalHouseWds") List<TopologicalHouseWd> topologicalHouseWds);
-
-    List<TopologicalHouseWd> list(@Param("centerWdId") String centerWdId, @Param("radius") int radius);
-}

+ 0 - 14
benyun-core/src/main/java/com/benyun/core/dao/TopologicalHouseWdStatisticsDataDao.java

@@ -1,14 +0,0 @@
-package com.benyun.core.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.benyun.core.entity.TopologicalBuildWdStatisticsCategory;
-import com.benyun.core.entity.TopologicalHouseWdStatisticsData;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface TopologicalHouseWdStatisticsDataDao extends BaseMapper<TopologicalHouseWdStatisticsData> {
-    public void insertList(@Param("topologicalHouseWdStatisticsDataList")List<TopologicalHouseWdStatisticsData> topologicalHouseWdStatisticsDataList);
-}

+ 0 - 18
benyun-core/src/main/java/com/benyun/core/dao/TopologicalStoreWdDao.java

@@ -1,18 +0,0 @@
-package com.benyun.core.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.benyun.core.entity.TopologicalBuildingWd;
-import com.benyun.core.entity.TopologicalStoreWd;
-import com.benyun.core.entity.TopologicalStoreWdStatisticsCategory;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface TopologicalStoreWdDao extends BaseMapper<TopologicalStoreWd> {
-    public void insertList(@Param("topologicalStoreWds")List<TopologicalStoreWd> topologicalStoreWds);
-
-    List<TopologicalStoreWd> list(@Param("centerWdId") String centerWdId,@Param("radius") int radius);
-
-}

+ 0 - 16
benyun-core/src/main/java/com/benyun/core/dao/TopologicalStoreWdStatisticsCategoryDao.java

@@ -1,16 +0,0 @@
-package com.benyun.core.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.benyun.core.entity.TopologicalBuildWdStatisticsCategory;
-import com.benyun.core.entity.TopologicalStoreWdStatisticsCategory;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface TopologicalStoreWdStatisticsCategoryDao extends BaseMapper<TopologicalStoreWdStatisticsCategory> {
-    public void insertList(@Param("topologicalStoreWdStatisticsCategoryList")List<TopologicalStoreWdStatisticsCategory> topologicalStoreWdStatisticsCategoryList);
-    List<TopologicalStoreWdStatisticsCategory> category(TopologicalWdAceeptVo topologicalWdAceeptVo);
-}

+ 0 - 13
benyun-core/src/main/java/com/benyun/core/dao/WdInfoDao.java

@@ -1,13 +0,0 @@
-package com.benyun.core.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.benyun.core.entity.WdInfo;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.context.annotation.Lazy;
-
-import java.util.List;
-
-@Mapper
-public interface WdInfoDao extends BaseMapper<WdInfo> {
-}

+ 0 - 125
benyun-core/src/main/java/com/benyun/core/init/BenyunCoreInit.java

@@ -1,125 +0,0 @@
-package com.benyun.core.init;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.benyun.core.dao.AddrCategoryDao;
-import com.benyun.core.dao.TypeByDao;
-import com.benyun.core.entity.AddrCategory;
-import com.benyun.core.entity.ManageType;
-import com.benyun.core.entity.TypeBy;
-import com.benyun.core.service.ManageTypeService;
-import com.benyun.core.utils.HashUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.concurrent.*;
-
-@Configuration
-public class BenyunCoreInit {
-    @Autowired
-    AddrCategoryDao addrCategoryDao;
-
-    @Autowired
-    ManageTypeService manageTypeService;
-
-    @Autowired
-    TypeByDao byDao;
-
-    @Bean("executor")
-    public ExecutorService getExecutor(){
-        return Executors.newFixedThreadPool(10);
-    }
-
-    /**
-     * HashMap<地区Code,城市等级>
-     * */
-    @Bean("cityTierMap")
-    public HashMap<String, String> getCityTierMap(){
-        HashMap<String, String> hashMap = new HashMap<>();
-
-        QueryWrapper<AddrCategory> queryWrapper = new QueryWrapper<>();
-        queryWrapper.isNotNull("city_tier");
-        for (AddrCategory addrCategory : addrCategoryDao.selectList(queryWrapper)) {
-            if(addrCategory.getCityTier() != null && !addrCategory.getCityTier().equals("")){
-                hashMap.put(addrCategory.getAddrCode().substring(0,4), addrCategory.getCityTier());
-            }
-        }
-        return hashMap;
-    }
-
-    /**
-     * 一线城市的addrCode
-     * */
-    @Bean("cityTierListMap")
-    public HashMap<String,List<String>> getCityTierListMap(){
-        List<String> one = new ArrayList<>();
-        List<String> two = new ArrayList<>();
-        List<String> three = new ArrayList<>();
-        List<String> four = new ArrayList<>();
-        List<String> five = new ArrayList<>();
-
-        HashMap<String, String> cityTierMap = getCityTierMap();
-        for (String s : cityTierMap.keySet()) {
-            String s1 = cityTierMap.get(s);
-            switch (s1){
-                case "一线":
-                    one.add(s);
-                    break;
-                case "二线":
-                    two.add(s);
-                    break;
-                case "三线":
-                    three.add(s);
-                    break;
-                case "四线":
-                    four.add(s);
-                    break;
-                case "五线":
-                    five.add(s);
-                    break;
-            }
-        }
-        HashMap<String,List<String>> util = new HashMap<>();
-        util.put("一线",one);
-        util.put("二线",two);
-        util.put("三线",three);
-        util.put("四线",four);
-        util.put("五线",five);
-        return util;
-    }
-
-
-
-
-    @Bean("ManageType")
-    public HashMap getManageType(){
-        HashMap<String,ManageType> hashMap = new HashMap<>();
-        for (ManageType datum : manageTypeService.getData()) {
-            if(!datum.getManageTypeCode().equals(""))
-                hashMap.put(datum.getManageTypeCode(),datum);
-        }
-        return hashMap;
-    }
-
-
-    @Bean("addrCodeMap")
-    public HashMap getAddrCodeMap(){
-        HashMap<String,String> hashMap = new HashMap<>();
-        for (AddrCategory addrCode : addrCategoryDao.selectList(null)) {
-            hashMap.put(addrCode.getAddrCode(),addrCode.getAddrInfo());
-        }
-        return hashMap;
-    }
-
-    @Bean("typeByMap")
-    public HashMap getTypeByMap(){
-        HashMap<String,String> hashMap = new HashMap<>();
-        for (TypeBy datum : byDao.selectList(null)) {
-            hashMap.put(datum.getTypeCodeBy(),datum.getFullInfo());
-        }
-        return hashMap;
-    }
-}

+ 0 - 39
benyun-core/src/main/java/com/benyun/core/job/AnalyseJob.java

@@ -1,39 +0,0 @@
-package com.benyun.core.job;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.benyun.core.dao.WdInfoDao;
-import com.benyun.core.entity.WdInfo;
-import com.benyun.core.service.AnalyseWdService;
-import com.benyun.core.utils.WdRedisStoreage;
-import lombok.extern.slf4j.Slf4j;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-@Slf4j
-@Component
-public class AnalyseJob implements Job {
-
-    @Autowired
-    WdRedisStoreage wdRedisStoreage;
-
-    @Autowired
-    WdInfoDao wdInfoDao;
-
-    @Override
-    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
-        wdRedisStoreage.writeWdGeoRedis();
-    }
-}

+ 0 - 11
benyun-core/src/main/java/com/benyun/core/service/TopologicalEnterpriseWdService.java

@@ -1,11 +0,0 @@
-package com.benyun.core.service;
-
-import com.benyun.core.entity.TopologicalEnterpriseWd;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import com.github.pagehelper.PageInfo;
-
-import java.util.List;
-
-public interface TopologicalEnterpriseWdService {
-    public List<TopologicalEnterpriseWd> list(TopologicalWdAceeptVo topologicalWdAceeptVo);
-}

+ 0 - 16
benyun-core/src/main/java/com/benyun/core/service/TopologicalHouseWdService.java

@@ -1,16 +0,0 @@
-package com.benyun.core.service;
-
-import com.benyun.core.entity.TopologicalHouseWd;
-import com.benyun.core.entity.TopologicalHouseWdStatisticsData;
-import com.benyun.core.entity.TopologicalStoreWd;
-import com.benyun.core.entity.bo.StoreWdCategoryCountBody;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import com.github.pagehelper.PageInfo;
-
-import java.util.List;
-
-public interface TopologicalHouseWdService {
-    public List<TopologicalHouseWd> list(TopologicalWdAceeptVo topologicalWdAceeptVo);
-
-    public TopologicalHouseWdStatisticsData info(TopologicalWdAceeptVo topologicalWdAceeptVo);
-}

+ 0 - 16
benyun-core/src/main/java/com/benyun/core/service/TopologicalStoreWdService.java

@@ -1,16 +0,0 @@
-package com.benyun.core.service;
-
-
-import com.benyun.core.entity.TopologicalStoreWd;
-import com.benyun.core.entity.bo.StoreWdCategoryCount;
-import com.benyun.core.entity.bo.StoreWdCategoryCountBody;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import com.github.pagehelper.PageInfo;
-
-import java.util.List;
-
-public interface TopologicalStoreWdService {
-    public List<TopologicalStoreWd> list(TopologicalWdAceeptVo topologicalWdAceeptVo);
-
-    List<StoreWdCategoryCount> category(TopologicalWdAceeptVo topologicalWdAceeptVo);
-}

+ 0 - 18
benyun-core/src/main/java/com/benyun/core/service/WdRecycleService.java

@@ -1,18 +0,0 @@
-package com.benyun.core.service;
-
-import com.benyun.core.entity.AddrCategory;
-import com.benyun.core.entity.vo.AddrCategoryBody;
-import com.benyun.core.entity.vo.TypeByBody;
-import com.benyun.core.entity.vo.WdInfoVo;
-
-import java.util.HashMap;
-import java.util.List;
-
-public interface WdRecycleService {
-
-    HashMap<String, Object> list(WdInfoVo wdInfo);
-
-    void deleteWd(String wdId);
-
-    void recoverWd(String wdId);
-}

+ 0 - 382
benyun-core/src/main/java/com/benyun/core/service/impl/AnalyseWdServiceImpl.java

@@ -1,382 +0,0 @@
-package com.benyun.core.service.impl;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.benyun.core.dao.*;
-import com.benyun.core.entity.*;
-import com.benyun.core.service.AnalyseWdService;
-import com.benyun.core.utils.DistanceUtil;
-import org.gavaghan.geodesy.Ellipsoid;
-import org.gavaghan.geodesy.GlobalCoordinates;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.*;
-
-
-@Service
-@Transactional
-public class AnalyseWdServiceImpl implements AnalyseWdService {
-
-    //分析范围集
-    List<Integer> anly = Arrays.asList(2000, 1000, 500);
-
-    @Autowired
-    WdInfoDao wdInfoDao;
-
-    @Autowired
-    StoreWdDao storeWdDao;
-
-    @Autowired
-    HouseWdDao houseWdDao;
-
-    @Autowired
-    BuildWdDao buildWdDao;
-
-    @Autowired
-    EnterpriseWdDao enterpriseWdDao;
-
-    @Autowired
-    EnterpriseDao enterpriseDao;
-
-    /*分析信息*/
-    @Autowired
-    WdTopologicalDao wdTopologicalDao;
-
-    @Autowired
-    TopologicalBuildWdDao topologicalBuildWdDao;
-
-
-    @Autowired
-    TopologicalStoreWdDao topologicalStoreWdDao;
-
-    @Autowired
-    TopologicalHouseWdDao topologicalHouseWdDao;
-
-    @Autowired
-    TopologicalEnterpriseWdDao topologicalEnterpriseWdDao;
-
-    /*统计信息*/
-    @Autowired
-    TopologicalHouseWdStatisticsDataDao houseWdStatisticsDataDao;
-    @Autowired
-    TopologicalBuildWdStatisticsCategoryDao buildWdStatisticsCategoryDao;
-    @Autowired
-    TopologicalStoreWdStatisticsCategoryDao storeWdStatisticsCategoryDao;
-    @Autowired
-    WdTopologicalInfoDao wdTopologicalInfoDao;
-
-
-    @Autowired
-    @Qualifier("addrCodeMap")
-    HashMap<String,String> addrCodeMap;
-
-
-    @Override
-    public void analyse(WdInfo wdInfo,LocalDateTime now,int size,int index) {
-
-            //1.找到该点半径 r = 4.89km 内的所有点
-            QueryWrapper<WdInfo> queryWrapper = new QueryWrapper<>();
-            queryWrapper.likeRight("geo_hash", wdInfo.getGeoHash().substring(0, 5));
-            List<WdInfo> wdInfos = wdInfoDao.selectList(queryWrapper);
-
-            //2.初始化
-            //关键信息统计
-            HashMap<String, HashMap<String, Integer>>[] storeCategory = new HashMap[anly.size()];  //经营分类统计:<中类,<小类,数量>>
-            HashMap<String, Double>[] houseData = new HashMap[anly.size()];  //小区分析统计:key:totalHouseholds、totalPeopleCount、totalRent
-            HashMap<String, Integer>[] buildCategory = new HashMap[anly.size()];   //楼宇网点分析统计,key:甲类、乙类...
-            HashMap<String, Integer>[] wdTopologicalInfoHash = new HashMap[anly.size()];  //分类tag:key:byCode value:数量
-            List<WdToologicalItem>[] wdToologicalItemList = new ArrayList[anly.size()];
-
-            for (int i = 0; i < anly.size(); i++) {
-                storeCategory[i] = new HashMap<>();
-                houseData[i] = new HashMap<>();
-                houseData[i].put("houseWdCount", 0.0);
-                houseData[i].put("totalHouseholds", 0.0);   //总户数
-                houseData[i].put("totalPeopleCount", 0.0);  //总人口数
-                houseData[i].put("totalRent", 0.0); //房价
-                buildCategory[i] = new HashMap<>();
-                wdTopologicalInfoHash[i] = new HashMap<>();
-                wdToologicalItemList[i] = new ArrayList<>();
-            }
-
-            //关键信息集合
-            List<TopologicalStoreWdStatisticsCategory> storeWdStatisticsCategoryList = new ArrayList<>();
-            List<TopologicalBuildWdStatisticsCategory> buildWdStatisticsCategoryList = new ArrayList<>();
-            List<TopologicalHouseWdStatisticsData> houseWdStatisticsDataList = new ArrayList<>();
-            List<WdTopologicalInfo> wdTopologicalInfoList = new ArrayList<>();
-
-            //各拓扑网点集合
-            List<WdTopological> wdTopologicals = new ArrayList<>();
-            System.out.println("process:" + size + "/" + index);
-
-            //WdTopological
-            WdTopological wdTopological = new WdTopological();
-            wdTopological.setCenterWdId(wdInfo.getWdId());
-            wdTopological.setCenterWdName(wdInfo.getWdName());
-            wdTopological.setAnalyseTime(now);
-
-            //3.开始分析
-            for (WdInfo info : wdInfos) {
-
-                //网点等于自己不要
-                if (info.getWdId().equals(wdInfo.getWdId()))
-                    continue;
-
-                //计算距离
-                GlobalCoordinates source = new GlobalCoordinates(wdInfo.getLat().doubleValue(), wdInfo.getLng().doubleValue());
-                GlobalCoordinates target = new GlobalCoordinates(info.getLat().doubleValue(), info.getLng().doubleValue());
-                double meter2 = DistanceUtil.getDistanceMeter(source, target, Ellipsoid.WGS84);
-
-                //大于4.89Km不要
-                if (meter2 > anly.get(0))
-                    continue;
-
-                Integer r = anly.get(anly.size() - 1);
-                int p = anly.size() - 1; //记录r位置
-                for (int i = 1; i < anly.size(); i++) {
-                    if (meter2 > anly.get(i)) {
-                        r = anly.get(i - 1);
-                        p = i - 1;
-                        break;
-                    } else if (meter2 == anly.get(i)) {
-                        r = anly.get(i);
-                        p = i;
-                        break;
-                    }
-                }
-
-                //3.2 组装WdTologicalItem
-                WdToologicalItem wdToologicalItem = new WdToologicalItem();
-                wdToologicalItem.setAroundWdId(info.getWdId());
-                wdToologicalItem.setAroundWdName(info.getWdName());
-                wdToologicalItem.setAddrCodeInfo(addrCodeMap.get(info.getAddrCode()));
-                wdToologicalItem.setAddrCode(info.getAddrCode());
-                wdToologicalItem.setAddrInfo(info.getAddrInfo());
-                wdToologicalItem.setLat(info.getLat());
-                wdToologicalItem.setLng(info.getLng());
-                wdToologicalItem.setAroundWdTypeCode(info.getWdTypeCode());
-                wdToologicalItem.setAroundTypeCodeBy(info.getTypeCodeBy());
-                wdToologicalItem.setDistance(meter2);
-
-                //3.3 将WdTologicalItem放入满足半径的区域
-                for(int i=p;i>=0;i--){
-                    wdToologicalItemList[p].add(wdToologicalItem);
-                }
-
-                //3.4 犇云标签统计
-                if (info.getTypeCodeBy() != null && !info.getTypeCodeBy().equals("")) {
-                    for(int i=p;i>=0;i--){
-                        HashMap<String, Integer> wdTopologicalInfoHash1 = wdTopologicalInfoHash[i];
-                        Integer put = wdTopologicalInfoHash1.get(info.getTypeCodeBy());
-                        if (put == null) {
-                            wdTopologicalInfoHash1.put(info.getTypeCodeBy(), 1);
-                        } else {
-                            wdTopologicalInfoHash1.put(info.getTypeCodeBy(), wdTopologicalInfoHash1.get(info.getTypeCodeBy()) + 1);
-                        }
-                    }
-                }
-
-
-                if (wdToologicalItem.getAroundWdTypeCode().equals("1")) {
-                    //门店分析
-                    StoreWd storeWd = storeWdDao.selectById(info.getWdId());
-                    if (storeWd != null) {
-                        String manageTypeCode = storeWd.getManageTypeCode();
-
-                        //TODO 分析经营分类
-                        if (manageTypeCode != null && !manageTypeCode.equals("")) {
-                            for(int i=p;i>=0;i--){
-                                HashMap<String, HashMap<String, Integer>> stringHashMapHashMap = storeCategory[i];
-                                HashMap<String, Integer> hashMap = stringHashMapHashMap.get(manageTypeCode.substring(0, 4));
-                                if (hashMap == null) {
-                                    HashMap<String, Integer> map = new HashMap<>();
-                                    map.put(manageTypeCode, 1);
-                                    stringHashMapHashMap.put(manageTypeCode.substring(0, 4),map);
-                                } else {
-                                    Integer integer = hashMap.get(manageTypeCode);
-                                    if (integer == null)
-                                        hashMap.put(manageTypeCode, 1);
-                                    else
-                                        hashMap.put(manageTypeCode, hashMap.get(manageTypeCode) + 1);
-                                }
-                            }
-                        }
-                    }
-                } else if (wdToologicalItem.getAroundWdTypeCode().equals("2")) {
-                    //小区分析
-                    HouseWd houseWd = houseWdDao.selectById(info.getWdId());
-                    //小区关键信息
-                    for(int i=p;i>=0;i--){
-                        HashMap<String, Double> houseDatum = houseData[i];
-                        houseDatum.put("houseWdCount", houseDatum.get("houseWdCount") + 1.0);
-
-                        //小区关键信息统计
-                        if (houseWd != null) {
-                            houseDatum.put("totalRent", houseDatum.get("totalRent") + info.getRent());
-                            houseDatum.put("totalHouseholds", houseDatum.get("totalHouseholds") + houseWd.getHouseholds());
-                            houseDatum.put("totalPeopleCount", houseDatum.get("totalPeopleCount") + houseWd.getPeopleCount());
-                        }
-                    }
-                } else if (wdToologicalItem.getAroundWdTypeCode().equals("3")) {
-                    //楼宇分析
-                    BuildWd buildWd = buildWdDao.selectById(info.getWdId());
-                    if (buildWd != null) {
-                        //分析楼宇分类
-                        if (buildWd.getPropertyType() != null && !buildWd.getPropertyType().trim().equals("")) {
-                            for(int i=p;i>=0;i--){
-                                HashMap<String, Integer> buildCategoryMap = buildCategory[i];
-                                Integer integer = buildCategoryMap.get(buildWd.getPropertyType());
-                                if (integer == null) {
-                                    buildCategoryMap.put(buildWd.getPropertyType(), 1);
-                                } else
-                                    buildCategoryMap.put(buildWd.getPropertyType(), buildCategoryMap.get(buildWd.getPropertyType()) + 1);
-                            }
-                        }
-                    }
-
-                }
-            }
-
-            //TODO 门店分类
-            for (int i = 0; i < anly.size(); i++) {
-                HashMap<String, HashMap<String, Integer>> stringHashMapHashMap = storeCategory[i];
-                for (String s : stringHashMapHashMap.keySet()) {
-                    TopologicalStoreWdStatisticsCategory storeWdStatisticsCategory = new TopologicalStoreWdStatisticsCategory();
-                    storeWdStatisticsCategory.setCenterWdId(wdInfo.getWdId());
-                    storeWdStatisticsCategory.setRadius(anly.get(i));
-                    storeWdStatisticsCategory.setBigManageTypeCode(s.substring(0, 2) + "0000");
-
-                    HashMap<String, Integer> hashMap = stringHashMapHashMap.get(s);
-                    StringBuilder stringBuilder = new StringBuilder();
-                    int total = 0;
-                    for (String s1 : hashMap.keySet()) {
-                        total+=hashMap.get(s1);
-
-                        if(!s.equals(s1)){
-                            stringBuilder.append(s1);
-                            stringBuilder.append(":");
-                            stringBuilder.append(hashMap.get(s1));
-                            stringBuilder.append(";");
-                        }else
-                            break;
-                    }
-                    storeWdStatisticsCategory.setMidManageTypeCode(s+":"+total);
-                    storeWdStatisticsCategory.setSubCategoryCodeStatistics(stringBuilder.toString());
-                    storeWdStatisticsCategory.setAnalyseTime(now);
-                    storeWdStatisticsCategoryList.add(storeWdStatisticsCategory);
-                }
-            }
-
-            //TODO 楼宇分类
-            for (int i = 0; i < anly.size(); i++) {
-                TopologicalBuildWdStatisticsCategory buildWdStatisticsCategory = new TopologicalBuildWdStatisticsCategory();
-                buildWdStatisticsCategory.setCenterWdId(wdInfo.getWdId());
-                buildWdStatisticsCategory.setRadius(anly.get(i));
-
-                HashMap<String, Integer> hashMap = buildCategory[i];
-                StringBuilder stringBuilder = new StringBuilder();
-                for (String s : hashMap.keySet()) {
-                    stringBuilder.append(s + ":" + hashMap.get(s) + ";");
-                }
-                buildWdStatisticsCategory.setPropertyTypeStatistics(stringBuilder.toString());
-                buildWdStatisticsCategory.setAnalyseTime(now);
-                buildWdStatisticsCategoryList.add(buildWdStatisticsCategory);
-            }
-
-            //TODO 社区关键数据
-            for (int i = 0; i < anly.size(); i++) {
-                TopologicalHouseWdStatisticsData houseWdStatisticsData = new TopologicalHouseWdStatisticsData();
-                houseWdStatisticsData.setCenterWdId(wdInfo.getWdId());
-                houseWdStatisticsData.setRadius(anly.get(i));
-                HashMap<String, Double> houseDatum = houseData[i];
-                double houseWdCount = houseDatum.get("houseWdCount");
-                double totalHouseholds = houseDatum.get("totalHouseholds");
-                double totalPeopleCount = houseDatum.get("totalPeopleCount");
-                double totalRent = houseDatum.get("totalRent");
-                houseWdStatisticsData.setHouseWdCount((int) houseWdCount);
-                houseWdStatisticsData.setTotalHouseholds((int) totalHouseholds);
-                houseWdStatisticsData.setTotalPeopleCount((int) totalPeopleCount);
-                if(houseWdCount != 0.0)
-                    houseWdStatisticsData.setAverageRent(totalRent / houseWdCount);
-                else
-                    houseWdStatisticsData.setAverageRent(0.0);
-
-                houseWdStatisticsData.setAnalyseTime(now);
-                houseWdStatisticsDataList.add(houseWdStatisticsData);
-            }
-
-            //TODO 网点拓扑信息
-            for (int i = 0; i < anly.size(); i++) {
-                WdTopologicalInfo wdTopologicalInfo = new WdTopologicalInfo();
-                wdTopologicalInfo.setCenterWdId(wdInfo.getWdId());
-                wdTopologicalInfo.setCenterWdName(wdInfo.getWdName());
-                wdTopologicalInfo.setCenterWdTypeCode(wdInfo.getWdTypeCode());
-                wdTopologicalInfo.setTypeCodeBy(wdInfo.getTypeCodeBy());
-                wdTopologicalInfo.setLat(wdInfo.getLat());
-                wdTopologicalInfo.setLng(wdInfo.getLng());
-                wdTopologicalInfo.setRadius(anly.get(i));
-                wdTopologicalInfo.setAddrCode(wdInfo.getAddrCode());
-                wdTopologicalInfo.setAddrCodeInfo(addrCodeMap.get(wdInfo.getAddrCode()));
-                wdTopologicalInfo.setAddrInfo(wdInfo.getAddrInfo());
-                wdTopologicalInfo.setGeoHash(wdInfo.getGeoHash());
-                wdTopologicalInfo.setAnalyseTime(now);
-
-                HashMap<String, Integer> wdTopologicalInfoHash1 = wdTopologicalInfoHash[i];
-                StringBuilder stringBuilder = new StringBuilder();
-                for (String s : wdTopologicalInfoHash1.keySet()) {
-                    stringBuilder.append(s + ":" + wdTopologicalInfoHash1.get(s) + ";");
-                }
-                wdTopologicalInfo.setTag(stringBuilder.toString());
-                wdTopologicalInfoList.add(wdTopologicalInfo);
-            }
-
-            //TODO 网点拓扑
-            for (int i = 0; i < anly.size(); i++) {
-                int start = 0,end = 100;
-                while(start < wdToologicalItemList[i].size()){
-                    if(end >= wdToologicalItemList[i].size()){
-                        end = wdToologicalItemList[i].size();
-                    }
-
-                    WdTopological wdTopological1 = new WdTopological();
-                    wdTopological1.setCenterWdId(wdInfo.getWdId());
-                    wdTopological1.setCenterWdName(wdInfo.getWdName());
-                    wdTopological1.setAnalyseTime(now);
-                    wdTopological1.setRadius(anly.get(i));
-                    List<WdToologicalItem> wdToologicalItemList1 = wdToologicalItemList[i].subList(start, end);
-                    String json = JSON.toJSON(wdToologicalItemList1).toString();
-                    wdTopological1.setAroundWdInfo(json);
-                    wdTopologicals.add(wdTopological1);
-
-                    start = end;
-                    end+=100;
-                }
-            }
-
-            System.out.println("完成------");
-
-
-            //4.导入数据库
-            if (!wdTopologicals.isEmpty())
-                wdTopologicalDao.insertList(wdTopologicals);//保存网点拓扑
-
-
-            //4.2 保存其他相关统计信息
-            if (!storeWdStatisticsCategoryList.isEmpty())
-                storeWdStatisticsCategoryDao.insertList(storeWdStatisticsCategoryList);
-            if (!houseWdStatisticsDataList.isEmpty())
-                houseWdStatisticsDataDao.insertList(houseWdStatisticsDataList);
-            if (!buildWdStatisticsCategoryList.isEmpty())
-                buildWdStatisticsCategoryDao.insertList(buildWdStatisticsCategoryList);
-            if (!wdTopologicalInfoList.isEmpty())
-                wdTopologicalInfoDao.insertList(wdTopologicalInfoList);
-
-        }
-
-}

+ 0 - 35
benyun-core/src/main/java/com/benyun/core/utils/DistanceUtil.java

@@ -1,35 +0,0 @@
-package com.benyun.core.utils;
-
-
-import org.gavaghan.geodesy.Ellipsoid;
-import org.gavaghan.geodesy.GeodeticCalculator;
-import org.gavaghan.geodesy.GeodeticCurve;
-import org.gavaghan.geodesy.GlobalCoordinates;
-
-/***
- * 坐标经纬度距离公式
- */
-public class DistanceUtil {
-
-    public static double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid) {
-        //创建GeodeticCalculator,调用计算方法,传入坐标系、经纬度用于计算距离
-        GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo);
-        return geoCurve.getEllipsoidalDistance();
-    }
-
-    public static void main(String[] args) {
-        GlobalCoordinates source = new GlobalCoordinates(24.331757, 109.444606);
-        GlobalCoordinates target = new GlobalCoordinates(24.331757, 109.444706);
-        double meter1 = getDistanceMeter(source, target, Ellipsoid.Sphere);
-        double meter2 = getDistanceMeter(source, target, Ellipsoid.WGS84);
-        System.out.println("Sphere坐标系计算结果:" + meter1 + "米");
-        System.out.println("WGS84 坐标系计算结果:" + meter2 + "米");
-
-    }
-}
-
-
-
-
-
-

+ 0 - 44
benyun-core/src/main/java/com/benyun/core/utils/SpringUtil.java

@@ -1,44 +0,0 @@
-package com.benyun.core.utils;
-
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.stereotype.Component;
-
-@Component
-public class SpringUtil implements ApplicationContextAware {
-
-    private static ApplicationContext applicationContext;
-
-    @Override
-    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-        if(SpringUtil.applicationContext == null) {
-            SpringUtil.applicationContext = applicationContext;
-        }
-
-//        System.out.println("========ApplicationContext配置成功,在普通类可以通过调用SpringUtils.getAppContext()获取applicationContext对象,applicationContext="+SpringUtil.applicationContext+"========");
-//
-//        System.out.println("---------------------------------------------------------------------");
-    }
-
-    //获取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);
-    }
-
-}

+ 0 - 57
benyun-core/src/main/java/com/benyun/core/utils/sharding/ConsistenceHashAlgorithm.java

@@ -1,57 +0,0 @@
-package com.benyun.core.utils.sharding;
-
-import com.benyun.core.utils.SpringUtil;
-import org.apache.shardingsphere.api.sharding.standard.PreciseShardingAlgorithm;
-import org.apache.shardingsphere.api.sharding.standard.PreciseShardingValue;
-import org.apache.shardingsphere.api.sharding.standard.RangeShardingAlgorithm;
-import org.apache.shardingsphere.api.sharding.standard.RangeShardingValue;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.SortedMap;
-
-@Component
-public class ConsistenceHashAlgorithm implements RangeShardingAlgorithm<Long>, PreciseShardingAlgorithm<Long> {
-
-
-    /**
-     * 范围查找时需要用到改分片算法,这里暂不完善了
-     * @param collection
-     * @param rangeShardingValue
-     * @return
-     */
-    @Override
-    public Collection<String> doSharding(Collection collection, RangeShardingValue rangeShardingValue) {
-        System.out.println(collection);
-        System.out.println(rangeShardingValue);
-        return collection;
-    }
-
-    /**
-     * @param collection collection 配置文件中解析到的所有分片节点
-     * @param preciseShardingValue 解析到的sql值
-     * @return
-     */
-    @Override
-    public String doSharding(Collection collection, PreciseShardingValue preciseShardingValue) {
-        InitTableNodesToHashLoop initTableNodesToHashLoop = SpringUtil.getBean(InitTableNodesToHashLoop.class);
-        if (CollectionUtils.isEmpty(collection)) {
-            return preciseShardingValue.getLogicTableName();
-        }
-
-        //这里主要为了兼容当联表查询时,如果两个表非关联表则
-        //当对副表分表时shardingValue这里传递进来的依然是主表的名称,
-        //但availableTargetNames中确是副表名称,所有这里要从availableTargetNames中匹配真实表
-        ArrayList<String> availableTargetNameList = new ArrayList<>(collection);
-        String logicTableName = availableTargetNameList.get(0).replaceAll("[^(a-zA-Z_)]", "");
-        SortedMap<Long, String> tableHashNode =
-            initTableNodesToHashLoop .getTableVirtualNodes().get(logicTableName);
-
-        ConsistenceHashUtil consistentHashAlgorithm = new ConsistenceHashUtil(tableHashNode,
-            collection);
-
-        return consistentHashAlgorithm.getTableNode(String.valueOf(preciseShardingValue.getValue()));
-    }
-}

+ 0 - 58
benyun-core/src/main/java/com/benyun/core/utils/sharding/InitTableNodesToHashLoop.java

@@ -1,58 +0,0 @@
-package com.benyun.core.utils.sharding;
-
-import com.benyun.core.utils.sharding.ConsistenceHashUtil;
-import lombok.Getter;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.core.rule.ShardingRule;
-import org.apache.shardingsphere.core.rule.TableRule;
-import org.apache.shardingsphere.shardingjdbc.jdbc.core.datasource.ShardingDataSource;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.SortedMap;
-import java.util.stream.Collectors;
-
-/**
- * 初始化hash环
- * @author manji
- * @Date 2023/5/4
- */
-@Slf4j
-@Component
-@Lazy
-public class InitTableNodesToHashLoop {
-
-    @Resource
-    private ShardingDataSource shardingDataSource;
-
-    @Getter
-    private HashMap<String, SortedMap<Long, String>> tableVirtualNodes = new HashMap<>();
-
-    @PostConstruct
-    public void init() {
-        try {
-            ShardingRule rule = shardingDataSource.getShardingContext().getShardingRule();
-            Collection<TableRule> tableRules = rule.getTableRules();
-            ConsistenceHashUtil consistenceHashUtil = new ConsistenceHashUtil();
-            for (TableRule tableRule : tableRules) {
-                String logicTable = tableRule.getLogicTable();
-
-                tableVirtualNodes.put(logicTable,
-                    consistenceHashUtil.initNodesToHashLoop(
-                        tableRule.getActualDataNodes()
-                            .stream()
-                            .map(dataNode -> {
-                                return dataNode.getTableName();
-                            })
-                            .collect(Collectors.toList()))
-                );
-            }
-        } catch (Exception e) {
-            log.error("分表节点初始化失败 {}", e);
-        }
-    }
-}

+ 1 - 4
benyun-core/src/main/java/com/benyun/core/BenyunCoreApplication.java → benyun-core/src/main/java/com/ruoyi/benyun/BenyunCoreApplication.java

@@ -1,12 +1,9 @@
-package com.benyun.core;
+package com.ruoyi.benyun;
 
-import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.ComponentScan;
 
 @SpringBootApplication
-@MapperScan("com.benyun.core.dao")
 public class BenyunCoreApplication {
 
     public static void main(String[] args) {

+ 60 - 0
benyun-core/src/main/java/com/ruoyi/benyun/config/DataSourceHealthConfig.java

@@ -0,0 +1,60 @@
+//package com.benyun.core.config;
+//
+//import com.zaxxer.hikari.HikariDataSource;
+//import org.springframework.boot.jdbc.metadata.DataSourcePoolMetadata;
+//import org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider;
+//import org.springframework.boot.jdbc.metadata.HikariDataSourcePoolMetadata;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//
+//@Configuration
+//public class DataSourceHealthConfig{
+//
+//    /**
+//     * 解决新版Spring中,集成sharding jdbc 健康检查异常
+//     */
+//    @Bean
+//    DataSourcePoolMetadataProvider dataSourcePoolMetadataProvider() {
+//        return dataSource -> dataSource instanceof HikariDataSource
+//            ? new HikariDataSourcePoolMetadata((HikariDataSource) dataSource)
+//            : new NotAvailableDataSourcePoolMetadata();
+//    }
+//
+//    /**
+//     * 不可用的数据源池元数据.
+//     */
+//    private static class NotAvailableDataSourcePoolMetadata implements DataSourcePoolMetadata {
+//        @Override
+//        public Float getUsage() {
+//            return null;
+//        }
+//
+//        @Override
+//        public Integer getActive() {
+//            return null;
+//        }
+//
+//        @Override
+//        public Integer getMax() {
+//            return null;
+//        }
+//
+//        @Override
+//        public Integer getMin() {
+//            return null;
+//        }
+//
+//        @Override
+//        public String getValidationQuery() {
+//            return "select 1";
+//        }
+//
+//        @Override
+//        public Boolean getDefaultAutoCommit() {
+//            return null;
+//        }
+//    }
+//
+//}
+//

+ 3 - 3
benyun-core/src/main/java/com/benyun/core/config/QuartzConfig.java → benyun-core/src/main/java/com/ruoyi/benyun/config/QuartzConfig.java

@@ -1,7 +1,7 @@
-package com.benyun.core.config;
+package com.ruoyi.benyun.config;
 
 
-import com.benyun.core.job.AnalyseJob;
+import com.ruoyi.benyun.job.AnalyseJob;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
 import org.springframework.context.annotation.Bean;
@@ -31,7 +31,7 @@ public class QuartzConfig {
 
 
         //定义Cron表达式
-        CronScheduleBuilder cron  = CronScheduleBuilder.cronSchedule("0 50 8 14 9 ? ");
+        CronScheduleBuilder cron  = CronScheduleBuilder.cronSchedule("0 20 1 19 9 ? ");
 
         return TriggerBuilder
             .newTrigger()

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/config/RedisConfiguration.java → benyun-core/src/main/java/com/ruoyi/benyun/config/RedisConfiguration.java

@@ -1,4 +1,4 @@
-package com.benyun.core.config;
+package com.ruoyi.benyun.config;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;

+ 6 - 0
benyun-core/src/main/java/com/ruoyi/benyun/constant/ChannelMapContant.java

@@ -0,0 +1,6 @@
+package com.ruoyi.benyun.constant;
+
+public class ChannelMapContant {
+    public static String[] FULL_PROVINCE = new String[]{"110000000000", "120000000000", "130000000000", "140000000000", "150000000000", "210000000000", "220000000000", "230000000000", "310000000000", "320000000000", "330000000000", "340000000000", "350000000000", "360000000000", "370000000000", "410000000000", "420000000000", "430000000000", "440000000000", "450000000000", "460000000000", "500000000000", "510000000000", "520000000000", "530000000000", "540000000000", "610000000000", "620000000000", "630000000000", "640000000000", "650000000000"};
+    public static String[] FULL_CHANNEL = new String[]{"0","1","2","3","4","5"};
+}

+ 4 - 3
benyun-core/src/main/java/com/benyun/core/constant/RedisContant.java → benyun-core/src/main/java/com/ruoyi/benyun/constant/RedisContant.java

@@ -1,4 +1,4 @@
-package com.benyun.core.constant;
+package com.ruoyi.benyun.constant;
 
 public class RedisContant {
     public static String CHANNEL_MAP_AREA = "channel_area";  //保存渠道地图area数据的Hash名
@@ -54,7 +54,8 @@ public class RedisContant {
     public static String BRAND_GEOLABEL = "brand_geolabel";
     public static int BRAND_GEOLABEL_TIME = 60*8;
 
-    public static String BRAND_GEOLABEL = "brand_geolabel";
-    public static int BRAND_GEOLABEL_TIME = 60*8;
+    public static String CITY_TIER_MAP = "cityTierMap";
+
+    public int CITY_TIER_MAP_time = 60*8;
 
 }

+ 159 - 0
benyun-core/src/main/java/com/ruoyi/benyun/controller/BrandController.java

@@ -0,0 +1,159 @@
+package com.ruoyi.benyun.controller;
+
+import com.ruoyi.benyun.entity.vo.BrandEvolveVo;
+import com.ruoyi.benyun.entity.vo.BrandOpcloseVo;
+import com.ruoyi.benyun.entity.vo.ListQueryBody;
+import com.ruoyi.benyun.service.BrandService;
+import com.ruoyi.benyun.constant.RedisContant;
+import com.ruoyi.benyun.entity.bo.BrandGeoLabelBo;
+import com.ruoyi.benyun.entity.bo.BrandOpcloseBo;
+import com.ruoyi.benyun.entity.bo.BrandSearch;
+import com.ruoyi.benyun.utils.HashUtil;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.R;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/brand")
+public class BrandController extends BaseController {
+    @Autowired
+    private BrandService brandService;
+    @Autowired
+    RedisTemplate redisTemplate;
+
+//    获取品牌信息列表
+    @GetMapping("/search")
+    public R search(String text){
+        List<BrandSearch> list = brandService.searchByLikeName(text);
+        return R.ok(list);
+    }
+
+//    获取品牌信息列表
+    @PostMapping("/list")
+    public R list(ListQueryBody body){
+        String userId = "1";
+        return R.ok(brandService.searchListByMulti(body,userId));
+    }
+
+//    获取品牌详细信息
+    @GetMapping("/info")
+    public R info(String brandId){
+        String userId = "1";
+        return R.ok(brandService.searchByBrandId(brandId,userId));
+    }
+
+//    获取品牌物业信息
+    @GetMapping("/property")
+    public R property(String brandId){
+        return R.ok(brandService.searchPropertyByBrandId(brandId));
+    }
+
+//    获取品牌城市分布词云
+    @GetMapping("/distribution")
+    public R distribution(String brandId){
+        return R.ok(brandService.searchDisCloudByBrandId(brandId));
+    }
+
+//    获取相似品牌
+    @GetMapping("/similar")
+    public R similar(String brandId){
+        return R.ok(brandService.searchSimilarByBrandId(brandId));
+    }
+
+//    获取品牌网点营业状态分布
+    @GetMapping("/status")
+    public R statusDistribution(String brandId){
+        return R.ok(brandService.searchStatusByBrandId(brandId));
+    }
+
+//    获取品牌网点地图信息
+    @GetMapping("/area")
+    public R area(String brandId){
+        return R.ok(brandService.searchProvinceByBrandId(brandId));
+    }
+
+//    获取品牌网点数量及其城市数量分布
+    @GetMapping("/shopCount")
+    public R shopCount(String brandId){
+        return R.ok(brandService.searchDistributionByBrandId(brandId));
+    }
+
+//    品牌网点数量对比
+    @GetMapping("/total")
+    public R total(Integer pageSize){
+        return R.ok(brandService.searchTotal(pageSize));
+    }
+
+//    获取品牌均分分布
+//    已废弃
+//    @GetMapping("/average")
+//    public R average(String brandId){
+//        return R.ok(brandService.searchAvgScoreByBrandId(brandId));
+//    }
+
+//    获取各地区品牌网点数量分布情况
+//    已废弃
+//    @PostMapping("/countDistribution")
+//    public R categoryDis(ListQueryBody body){
+//        List<String> addrCode = body.getAddrCode();
+//        return R.ok(brandService.searchAddrDistribution(addrCode));
+//    }
+
+//    获取品牌地理位置标签分布
+    @GetMapping("/geolabel")
+    public R geolabel(String brandId){
+        String md5 = HashUtil.hash(brandId,"MD5");
+        List<BrandGeoLabelBo> bos = (List<BrandGeoLabelBo>) redisTemplate.boundHashOps(RedisContant.BRAND_GEOLABEL).get(md5);
+        if (bos != null)
+            return R.ok(bos);
+
+        List<BrandGeoLabelBo> brandGeoLabelBos = brandService.searchGeoLabel(brandId);
+
+        redisTemplate.boundHashOps(RedisContant.BRAND_GEOLABEL).put(md5,brandGeoLabelBos);
+        redisTemplate.expire(RedisContant.BRAND_GEOLABEL, RedisContant.BRAND_GEOLABEL_TIME, TimeUnit.MINUTES);
+
+        return R.ok(brandGeoLabelBos);
+    }
+
+//    行业连锁品牌发展情况
+    @PostMapping("/evolve")
+    public R develop(@RequestBody ListQueryBody body){
+        List<String> addrCode = body.getAddrCode();
+        List<String> typeCode = body.getTypeCode(); // 网点分类(犇云)
+        List<String> brandId = body.getBrandId();
+        if (brandId == null || brandId.size() == 0)
+            return R.fail("brandId不允许为空");
+        List<BrandEvolveVo> vos = brandService.searchEvolveByMulti(addrCode, typeCode, brandId);
+        return R.ok(vos);
+    }
+
+//    连锁品牌近期开关店情况(开点量)
+    @PostMapping("/open")
+    public R open(@RequestBody BrandOpcloseBo bo){
+        List<String> typeCodes = bo.getTypeCodes(); // 网点类型(犇云)
+        LocalDateTime startTime = bo.getStartTime();
+        LocalDateTime endTime = bo.getEndTime();
+        List<BrandOpcloseVo> vos = brandService.searchOpenByMulti(typeCodes, startTime, endTime);
+        return R.ok(vos);
+    }
+
+//    连锁品牌近期开关店情况(关店量)
+    @PostMapping("/close")
+    public R close(@RequestBody BrandOpcloseBo bo){
+        List<String> typeCodes = bo.getTypeCodes(); // 网点类型(犇云)
+        LocalDateTime startTime = bo.getStartTime();
+        LocalDateTime endTime = bo.getEndTime();
+        List<BrandOpcloseVo> vos = brandService.searchCloseByMulti(typeCodes, startTime, endTime);
+        return R.ok(vos);
+    }
+}

+ 4 - 5
benyun-core/src/main/java/com/benyun/core/controller/BrandRecycleController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/BrandRecycleController.java

@@ -1,15 +1,14 @@
-package com.benyun.core.controller;
+package com.ruoyi.benyun.controller;
 
-import com.benyun.core.entity.Brand;
-import com.benyun.core.entity.vo.BrandVo;
-import com.benyun.core.service.BrandRecycleService;
+import com.ruoyi.benyun.entity.vo.BrandVo;
+import com.ruoyi.benyun.service.BrandRecycleService;
+import com.ruoyi.benyun.entity.Brand;
 import com.github.pagehelper.PageInfo;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
-import java.util.List;
 
 @RestController
 @RequestMapping("/recycle/brand")

+ 41 - 0
benyun-core/src/main/java/com/ruoyi/benyun/controller/CategoryCotroller.java

@@ -0,0 +1,41 @@
+package com.ruoyi.benyun.controller;
+
+import com.ruoyi.benyun.service.CategoryService;
+import com.ruoyi.common.core.domain.R;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+public class CategoryCotroller {
+    @Autowired
+    CategoryService categoryService;
+
+//    获取地区信息
+    @GetMapping("/getAddrCategory")
+    public R getAddrCategory(){
+        return R.ok(categoryService.getAddrCategory());
+    }
+
+//    获取经营分类
+    @GetMapping("/getManageCategory")
+    public R getManageCategory(){
+        return R.ok(categoryService.getManageCategory());
+    }
+
+//    获取网点分类
+    @GetMapping("/getTypeByCategory")
+    public R getTypeByCategoryTest(){
+        return R.ok(categoryService.getTypeByCategory());
+    }
+
+//    获取网点类型
+    @GetMapping("/getWdTypeCategory")
+    public R getWdTypeCategory(){
+        return R.ok(categoryService.getWdTypeCategory());
+    }
+}

+ 34 - 35
benyun-core/src/main/java/com/benyun/core/controller/ChannelAnalyseController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/ChannelAnalyseController.java

@@ -1,12 +1,11 @@
-package com.benyun.core.controller;
-
-import com.benyun.core.constant.RedisContant;
-import com.benyun.core.entity.Brand;
-import com.benyun.core.entity.bo.WdCount;
-import com.benyun.core.entity.vo.ChannelAnalyseAceeptVo;
-import com.benyun.core.entity.vo.ChannelMapAceeptVo;
-import com.benyun.core.entity.vo.TagAnalyse;
-import com.benyun.core.service.ChannelAnalyseService;
+package com.ruoyi.benyun.controller;
+
+import com.ruoyi.benyun.entity.vo.ChannelAnalyseAceeptVo;
+import com.ruoyi.benyun.entity.vo.ChannelMapAceeptVo;
+import com.ruoyi.benyun.entity.vo.TagAnalyse;
+import com.ruoyi.benyun.service.ChannelAnalyseService;
+import com.ruoyi.benyun.constant.RedisContant;
+import com.ruoyi.benyun.entity.Brand;
 import com.github.pagehelper.PageInfo;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,32 +62,32 @@ public class ChannelAnalyseController {
         return R.ok(brandPageInfo);
     }
 
-//    @RequestMapping("/tagAnalyse")
-//    public R tagAnalyse(ChannelMapAceeptVo channelMapAceeptVo){
-//        int page = channelMapAceeptVo.getPageNum();
-//        channelMapAceeptVo.setPageNum(0);
-//        String md5 = channelMapAceeptVo.getHash();
-//
-//        //2.查看redis中是否存在有缓存
-//        HashMap<String, Object> result = new HashMap<>();
-//        HashMap<String,Object> wdCount = (HashMap<String,Object>) redisTemplate.boundHashOps(RedisContant.CHANNEL_ANALYSE_TAG_ANLYSE).get(md5);
-//        if (wdCount != null) {
-//            result.put("data",(List<TagAnalyse>) wdCount.get(page + ""));
-//            result.put("pages",(int)wdCount.get("pages"));
-//            result.put("total",(int)wdCount.get("total"));
-//            return R.ok(result);
-//        }
-//        HashMap<String, Object> hashMap = channelAnalyseService.tagAnalyse(channelMapAceeptVo);
-//
-//        //4.保存到redis中
-//        redisTemplate.boundHashOps(RedisContant.CHANNEL_ANALYSE_TAG_ANLYSE).put(md5,hashMap);
-//        redisTemplate.expire(RedisContant.CHANNEL_ANALYSE_TAG_ANLYSE,RedisContant.CHANNEL_ANALYSE_TAG_ANLYSE_TIME, TimeUnit.MINUTES); //30分钟
-//
-//        result.put("data",(List<TagAnalyse>) hashMap.get(page + ""));
-//        result.put("pages",(int)hashMap.get("pages"));
-//        result.put("total",(int)hashMap.get("total"));
-//        return R.ok(result);
-//    }
+    @RequestMapping("/tagAnalyse")
+    public R tagAnalyse(ChannelMapAceeptVo channelMapAceeptVo){
+        int page = channelMapAceeptVo.getPageNum();
+        channelMapAceeptVo.setPageNum(0);
+        String md5 = channelMapAceeptVo.getHash();
+
+        //2.查看redis中是否存在有缓存
+        HashMap<String, Object> result = new HashMap<>();
+        HashMap<String,Object> wdCount = (HashMap<String,Object>) redisTemplate.boundHashOps(RedisContant.CHANNEL_ANALYSE_TAG_ANLYSE).get(md5);
+        if (wdCount != null) {
+            result.put("data",(List<TagAnalyse>) wdCount.get(page + ""));
+            result.put("pages",(int)wdCount.get("pages"));
+            result.put("total",(int)wdCount.get("total"));
+            return R.ok(result);
+        }
+        HashMap<String, Object> hashMap = channelAnalyseService.tagAnalyse(channelMapAceeptVo);
+
+        //4.保存到redis中
+        redisTemplate.boundHashOps(RedisContant.CHANNEL_ANALYSE_TAG_ANLYSE).put(md5,hashMap);
+        redisTemplate.expire(RedisContant.CHANNEL_ANALYSE_TAG_ANLYSE,RedisContant.CHANNEL_ANALYSE_TAG_ANLYSE_TIME, TimeUnit.MINUTES); //30分钟
+
+        result.put("data",(List<TagAnalyse>) hashMap.get(page + ""));
+        result.put("pages",(int)hashMap.get("pages"));
+        result.put("total",(int)hashMap.get("total"));
+        return R.ok(result);
+    }
 
 //    @RequestMapping("/businessAnalyse")
 //    public R businessAnalyse(ChannelMapAceeptVo channelMapAceeptVo){

+ 153 - 0
benyun-core/src/main/java/com/ruoyi/benyun/controller/ChannelMapController.java

@@ -0,0 +1,153 @@
+package com.ruoyi.benyun.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.benyun.entity.bo.*;
+import com.ruoyi.benyun.entity.vo.ChannelMapAceeptVo;
+import com.ruoyi.benyun.service.ChannelMapService;
+import com.ruoyi.benyun.valida.ChannelAreaGroup;
+import com.ruoyi.benyun.valida.ChannelListGroup;
+import com.ruoyi.benyun.valida.ChannelPointGroup;
+import com.ruoyi.benyun.constant.RedisContant;
+import com.ruoyi.benyun.entity.AttentionPool;
+import com.ruoyi.benyun.entity.WdInfo;
+import com.ruoyi.benyun.mapper.AttentionPoolDao;
+import com.github.pagehelper.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+
+@RestController
+@RequestMapping("/channelMap")
+
+public class ChannelMapController {
+    @Autowired
+    private ChannelMapService channelMapService;
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    @Autowired
+    AttentionPoolDao attentionPoolDao;
+
+
+    @RequestMapping("/getArea")
+    public R area(@Validated(value={ChannelAreaGroup.class}) ChannelMapAceeptVo channel) {
+        String md5 = channel.getHash();
+
+        //2.查看redis中是否存在有缓存
+        WdCount wdCount = (WdCount) redisTemplate.boundHashOps(RedisContant.CHANNEL_MAP_AREA).get(md5);
+        if (wdCount != null) {
+            return R.ok(wdCount);
+        }
+
+        //3.redis中没有,直接请求
+        WdCount area = channelMapService.area(channel);
+        if(area == null)
+            return R.fail("请求参数错误");
+
+        //4.保存到redis中
+        redisTemplate.boundHashOps(RedisContant.CHANNEL_MAP_AREA).put(md5,area);
+        redisTemplate.expire(RedisContant.CHANNEL_MAP_AREA,RedisContant.CHANNEL_MAP_AREA_TIME, TimeUnit.MINUTES); //30分钟
+        return R.ok(area);
+    }
+
+
+    @RequestMapping("/list")
+    public R list(@Validated(value={ChannelListGroup.class}) ChannelMapAceeptVo channel){
+
+        String md5 = channel.getHash();
+        HashMap pageInfo = (HashMap) redisTemplate.boundHashOps(RedisContant.CHANNEL_MAP_LIST).get(md5);
+        if(pageInfo != null){
+            List<WdTopologicalInfoBo> data = (List<WdTopologicalInfoBo>) pageInfo.get("data");
+            attention(data);
+            pageInfo.put("data",data);
+            return R.ok(pageInfo);
+        }
+
+        HashMap hashMap = channelMapService.list(channel);
+        if(hashMap == null)
+            return R.fail("请求参数错误");
+
+        //4.保存到redis中
+        List<WdTopologicalInfoBo> data = (List<WdTopologicalInfoBo>) hashMap.get("data");
+        attention(data);
+        hashMap.put("data",data);
+        redisTemplate.boundHashOps(RedisContant.CHANNEL_MAP_LIST).put(md5,hashMap);
+        redisTemplate.expire(RedisContant.CHANNEL_MAP_LIST,RedisContant.CHANNEL_MAP_LIST_TIME, TimeUnit.MINUTES); //30分钟
+        return R.ok(hashMap);
+    }
+
+    @RequestMapping("/point")
+    public R point(@Validated(value={ChannelPointGroup.class}) ChannelMapAceeptVo channel){
+        String md5 = channel.getHash();
+        PageInfo<WdInfo> pageInfo = (PageInfo<WdInfo>) redisTemplate.boundHashOps(RedisContant.CHANNEL_MAP_POINT).get(md5);
+        if(pageInfo != null){
+            return R.ok(pageInfo);
+        }
+
+        PageInfo<WdInfo> point = channelMapService.point(channel.getChannel(), channel.getSearchText(), channel.getAddrCode(), channel.getPageNum(), channel.getPageSize());
+        if(point == null)
+            return R.fail("请求参数错误");
+
+        //4.保存到redis中
+        redisTemplate.boundHashOps(RedisContant.CHANNEL_MAP_POINT).put(md5,point);
+        redisTemplate.expire(RedisContant.CHANNEL_MAP_POINT,RedisContant.CHANNEL_MAP_POINT_TIME, TimeUnit.MINUTES); //30分钟
+        return R.ok(point);
+    }
+
+    //Todo 标记网点关注
+    public void attention(List<WdTopologicalInfoBo> wdTopologicalInfoBos){
+        List<String> collect = wdTopologicalInfoBos.stream().map(wdTopologicalInfoBo -> {
+            return wdTopologicalInfoBo.getWdId();
+        }).collect(Collectors.toList());
+
+        //标志是否关注
+        QueryWrapper<AttentionPool> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.select("wd_id");
+        queryWrapper1.in("wd_id",collect);
+        if(collect.size() > 0){
+            List<AttentionPool> attentionPools = attentionPoolDao.selectList(queryWrapper1);
+            List<String> collect1 = attentionPools.stream().map(attentionPool -> {
+                return attentionPool.getWdId();
+            }).collect(Collectors.toList());
+
+            for (WdTopologicalInfoBo wdTopologicalInfoBo : wdTopologicalInfoBos) {
+                boolean contains = collect1.contains(wdTopologicalInfoBo.getWdId());
+                if (contains)
+                    wdTopologicalInfoBo.setAttention(1);
+                else
+                    wdTopologicalInfoBo.setAttention(0);
+            }
+        }
+    }
+
+    @GetMapping("/getWdInfo")
+    public R getWdInfo(String wdId){
+        WdInfo wdInfo = channelMapService.getWdInfo(wdId);
+        if(wdInfo == null)
+            return R.ok(null);
+        if("1".equals(wdInfo.getWdTypeCode())){
+            return R.ok((StoreWdInfoBo)wdInfo);
+        }else if("2".equals(wdInfo.getWdTypeCode())){
+            return R.ok((HouseWdInfoBo)wdInfo);
+        }else if("3".equals(wdInfo.getWdTypeCode())){
+            return R.ok((BuildWdInfoBo)wdInfo);
+        }else if("4".equals(wdInfo.getWdTypeCode())){
+            return R.ok((TrafficWdInfoBo)wdInfo);
+        }else if("5".equals(wdInfo.getWdTypeCode())){
+            return R.ok((EnterpriseWdInfoBo)wdInfo);
+        }
+        return R.ok(wdInfo);
+    }
+
+}

+ 32 - 0
benyun-core/src/main/java/com/ruoyi/benyun/controller/CommonController.java

@@ -0,0 +1,32 @@
+package com.ruoyi.benyun.controller;
+
+import com.ruoyi.benyun.entity.vo.AddrCategoryBody;
+import com.ruoyi.benyun.entity.vo.TypeByBody;
+import com.ruoyi.benyun.service.CommonService;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/common")
+public class CommonController {
+    @Autowired
+    CommonService commonService;
+    //获取网点标签
+    @GetMapping("/tag")
+    public R tag(){
+        List<TypeByBody> tag = commonService.tag();
+        return R.ok(tag);
+    }
+
+    //获取网点标签
+    @GetMapping("/addrCodeMap")
+    public R addrCodeMap(){
+        List<AddrCategoryBody> addrCategoryBodies = commonService.addrCodeMap();
+        return R.ok(addrCategoryBodies);
+    }
+}

+ 8 - 11
benyun-core/src/main/java/com/benyun/core/controller/TopologicalBuildWdController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalBuildWdController.java

@@ -1,14 +1,11 @@
-package com.benyun.core.controller;
-
-import com.benyun.core.constant.RedisContant;
-import com.benyun.core.entity.TopologicalBuildingWd;
-import com.benyun.core.entity.bo.BuildWdCategoryCount;
-import com.benyun.core.entity.bo.WdCount;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import com.benyun.core.service.TopologicalBuildWdSerevice;
-import com.benyun.core.valida.TopologicalWdGroup;
-import com.benyun.core.valida.TopologicalWdListGroup;
-import com.github.pagehelper.PageInfo;
+package com.ruoyi.benyun.controller;
+
+import com.ruoyi.benyun.entity.vo.TopologicalWdAceeptVo;
+import com.ruoyi.benyun.service.TopologicalBuildWdSerevice;
+import com.ruoyi.benyun.valida.TopologicalWdListGroup;
+import com.ruoyi.benyun.constant.RedisContant;
+import com.ruoyi.benyun.entity.TopologicalBuildingWd;
+import com.ruoyi.benyun.entity.bo.BuildWdCategoryCount;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;

+ 7 - 8
benyun-core/src/main/java/com/benyun/core/controller/TopologicalCommonController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalCommonController.java

@@ -1,11 +1,10 @@
-package com.benyun.core.controller;
-
-import com.benyun.core.constant.RedisContant;
-import com.benyun.core.entity.TopologicalStoreWd;
-import com.benyun.core.entity.WdInfo;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import com.benyun.core.service.TopologicalCommonService;
-import com.benyun.core.service.WdInfoService;
+package com.ruoyi.benyun.controller;
+
+import com.ruoyi.benyun.entity.vo.TopologicalWdAceeptVo;
+import com.ruoyi.benyun.service.TopologicalCommonService;
+import com.ruoyi.benyun.service.WdInfoService;
+import com.ruoyi.benyun.constant.RedisContant;
+import com.ruoyi.benyun.entity.WdInfo;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;

+ 7 - 9
benyun-core/src/main/java/com/benyun/core/controller/TopologicalEnterpriseWdController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalEnterpriseWdController.java

@@ -1,12 +1,10 @@
-package com.benyun.core.controller;
-
-import com.benyun.core.constant.RedisContant;
-import com.benyun.core.entity.TopologicalEnterpriseWd;
-import com.benyun.core.entity.bo.WdCount;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import com.benyun.core.service.TopologicalEnterpriseWdService;
-import com.benyun.core.valida.TopologicalWdListGroup;
-import com.github.pagehelper.PageInfo;
+package com.ruoyi.benyun.controller;
+
+import com.ruoyi.benyun.entity.vo.TopologicalWdAceeptVo;
+import com.ruoyi.benyun.service.TopologicalEnterpriseWdService;
+import com.ruoyi.benyun.valida.TopologicalWdListGroup;
+import com.ruoyi.benyun.constant.RedisContant;
+import com.ruoyi.benyun.entity.TopologicalEnterpriseWd;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;

+ 8 - 10
benyun-core/src/main/java/com/benyun/core/controller/TopologicalHouseWdController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalHouseWdController.java

@@ -1,14 +1,12 @@
-package com.benyun.core.controller;
+package com.ruoyi.benyun.controller;
 
-import com.benyun.core.constant.RedisContant;
-import com.benyun.core.entity.TopologicalHouseWd;
-import com.benyun.core.entity.TopologicalHouseWdStatisticsData;
-import com.benyun.core.entity.bo.WdCount;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import com.benyun.core.service.TopologicalHouseWdService;
-import com.benyun.core.valida.TopologicalWdGroup;
-import com.benyun.core.valida.TopologicalWdListGroup;
-import com.github.pagehelper.PageInfo;
+import com.ruoyi.benyun.entity.vo.TopologicalWdAceeptVo;
+import com.ruoyi.benyun.service.TopologicalHouseWdService;
+import com.ruoyi.benyun.valida.TopologicalWdGroup;
+import com.ruoyi.benyun.valida.TopologicalWdListGroup;
+import com.ruoyi.benyun.constant.RedisContant;
+import com.ruoyi.benyun.entity.TopologicalHouseWd;
+import com.ruoyi.benyun.entity.TopologicalHouseWdStatisticsData;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;

+ 8 - 11
benyun-core/src/main/java/com/benyun/core/controller/TopologicalStoreWdController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/TopologicalStoreWdController.java

@@ -1,15 +1,12 @@
-package com.benyun.core.controller;
+package com.ruoyi.benyun.controller;
 
-import com.benyun.core.constant.RedisContant;
-import com.benyun.core.entity.TopologicalStoreWd;
-import com.benyun.core.entity.bo.StoreWdCategoryCount;
-import com.benyun.core.entity.bo.StoreWdCategoryCountBody;
-import com.benyun.core.entity.bo.WdCount;
-import com.benyun.core.entity.vo.TopologicalWdAceeptVo;
-import com.benyun.core.service.TopologicalStoreWdService;
-import com.benyun.core.valida.TopologicalWdGroup;
-import com.benyun.core.valida.TopologicalWdListGroup;
-import com.github.pagehelper.PageInfo;
+import com.ruoyi.benyun.entity.vo.TopologicalWdAceeptVo;
+import com.ruoyi.benyun.service.TopologicalStoreWdService;
+import com.ruoyi.benyun.valida.TopologicalWdGroup;
+import com.ruoyi.benyun.valida.TopologicalWdListGroup;
+import com.ruoyi.benyun.constant.RedisContant;
+import com.ruoyi.benyun.entity.TopologicalStoreWd;
+import com.ruoyi.benyun.entity.bo.StoreWdCategoryCount;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;

+ 5 - 6
benyun-core/src/main/java/com/benyun/core/controller/WdInfoController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/WdInfoController.java

@@ -1,16 +1,15 @@
-package com.benyun.core.controller;
+package com.ruoyi.benyun.controller;
 
-import com.benyun.core.entity.vo.AddStatusVo;
-import com.benyun.core.entity.vo.ListQueryBody;
-import com.benyun.core.entity.vo.WdOpcloseVo;
-import com.benyun.core.service.WdInfoService;
+import com.ruoyi.benyun.entity.vo.AddStatusVo;
+import com.ruoyi.benyun.entity.vo.ListQueryBody;
+import com.ruoyi.benyun.entity.vo.WdOpcloseVo;
+import com.ruoyi.benyun.service.WdInfoService;
 import com.ruoyi.common.core.domain.R;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import java.time.LocalDateTime;
 import java.util.List;
 
 @Validated

+ 4 - 6
benyun-core/src/main/java/com/benyun/core/controller/WdRecycleController.java → benyun-core/src/main/java/com/ruoyi/benyun/controller/WdRecycleController.java

@@ -1,15 +1,13 @@
-package com.benyun.core.controller;
+package com.ruoyi.benyun.controller;
 
-import com.benyun.core.entity.*;
-import com.benyun.core.entity.vo.TypeByBody;
-import com.benyun.core.entity.vo.WdInfoVo;
-import com.benyun.core.service.*;
+import com.ruoyi.benyun.entity.*;
+import com.ruoyi.benyun.entity.vo.WdInfoVo;
+import com.ruoyi.benyun.service.*;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
-import java.util.List;
 
 @RestController
 @RequestMapping("/recycle/wd")

+ 187 - 0
benyun-core/src/main/java/com/ruoyi/benyun/controller/WorkTableController.java

@@ -0,0 +1,187 @@
+package com.ruoyi.benyun.controller;
+
+import com.ruoyi.benyun.entity.vo.AddFollowRecordVo;
+import com.ruoyi.benyun.entity.vo.TurnBusinessOpportunitiesVo;
+import com.ruoyi.benyun.entity.vo.WorkTableSearchVo;
+import com.ruoyi.benyun.service.AttentionPoolService;
+import com.ruoyi.benyun.service.BusinessOpportunitiesService;
+import com.ruoyi.benyun.service.DatabackService;
+import com.ruoyi.benyun.entity.bo.AttentionPoolBo;
+import com.ruoyi.benyun.entity.bo.AttentionPoolStatisticsBo;
+import com.github.pagehelper.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/work")
+public class WorkTableController {
+    @Autowired
+    DatabackService databackService;
+    @Autowired
+    AttentionPoolService attentionPoolService;
+    @Autowired
+    BusinessOpportunitiesService businessOpportunitiesService;
+
+//    获取数据概览
+    @GetMapping("/databack/about")
+    public R about(){
+        // 获取用户id
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        AttentionPoolStatisticsBo bo = databackService.searchAbout(userId);
+        return R.ok(bo);
+    }
+
+//    获取客户数量变化趋势
+    @GetMapping("/databack/trend")
+    public R trend(){
+        // 获取用户id
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        List<AttentionPoolStatisticsBo> bos = databackService.searchTrand(userId);
+        return R.ok(bos);
+    }
+
+//    分页获取潜客列表
+    @PostMapping("/pool/list")
+    public R poolList(WorkTableSearchVo workTableSearchVo){
+        // 获取用户id
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        PageInfo<List<AttentionPoolBo>> listPageInfo = attentionPoolService.searchList(workTableSearchVo, userId);
+        return R.ok(listPageInfo);
+    }
+
+//    取消关注
+    @DeleteMapping("/pool")
+    public R cancel(String attentionId){
+        // 获取用户id
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        if (attentionId == null || attentionId.equals(""))
+            return R.fail("attentionId不能为空");
+        int flag = attentionPoolService.cancelAttention(attentionId, userId);
+        if (flag == 1)
+            return R.ok("取消关注成功!");
+        return R.fail("取消关注失败。");
+    }
+
+//    转化商机
+    @PostMapping("/pool")
+    public R turn(TurnBusinessOpportunitiesVo turnVo){
+        // 获取用户id
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        int flag = attentionPoolService.turnBusinessOpportunities(turnVo, userId);
+        if (flag == 1)
+            return R.ok("转化成功!");
+        if (flag == 2)
+            return R.ok("已转化。");
+        return R.fail("转化失败。");
+    }
+
+//    分页获取线索列表
+    @PostMapping("/clue/list")
+    public R clueList(WorkTableSearchVo vo){
+        // 获取用户id
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        return R.ok(businessOpportunitiesService.searchList(vo,userId));
+    }
+
+//    分页获取跟进记录
+    @PostMapping("/follow/list")
+    public R followList(WorkTableSearchVo vo){
+        // 获取用户id
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        return R.ok(businessOpportunitiesService.searchFollowList(vo,userId));
+    }
+
+//    添加跟进记录
+    @PostMapping("/follow")
+    public R followAdd(AddFollowRecordVo addVo){
+        // 获取用户id
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        int flag = businessOpportunitiesService.addFollow(addVo, userId);
+        if (flag == 1)
+            return R.ok("添加成功!");
+        return R.fail("添加失败");
+    }
+
+    //    品牌关注
+    @PostMapping("/brand")
+    public R brandAttention(String brandId){
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        int flag = attentionPoolService.attentionBrand(brandId, userId);
+        if (flag == 1){
+            return R.ok("关注成功!");
+        }else if (flag == 2){
+            return R.fail("重复关注。");
+        }else if (flag == 3){
+            return R.fail("未知品牌");
+        }
+        return R.fail("关注失败。");
+    }
+
+    //    品牌取消关注
+    @DeleteMapping("/brand")
+    public R brandCancel(String brandId){
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        int flag = attentionPoolService.cancelBrand(brandId, userId);
+        if (flag == 1){
+            return R.ok("取消关注成功!");
+        }
+        return R.fail("取消关注失败。");
+    }
+
+//    网点关注
+    @PostMapping("/wdInfo")
+    public R wdInfoAttention(String wdId){
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        int flag = attentionPoolService.attentionWdInfo(wdId,userId);
+        if (flag == 1){
+            return R.ok("关注成功!");
+        }else if (flag == 2){
+            return R.fail("重复关注。");
+        }else if (flag == 3){
+            return R.fail("未知网点");
+        }
+        return R.fail("关注失败。");
+    }
+
+//    网点取消关注
+    @DeleteMapping("/wdInfo")
+    public R wdInfoCancel(String wdId){
+        String userId = "1";
+        if (userId == null || userId.equals(""))
+            return R.fail("请登录");
+        int flag = attentionPoolService.cancelWdInfo(wdId, userId);
+        if (flag == 1){
+            return R.ok("取消关注成功!");
+        }
+        return R.fail("取消关注失败。");
+    }
+}

+ 29 - 0
benyun-core/src/main/java/com/ruoyi/benyun/entity/AddrCategory.java

@@ -0,0 +1,29 @@
+package com.ruoyi.benyun.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@TableName("ddt_addr_category")
+public class AddrCategory {
+    @TableField("addr_code")
+    private String addrCode;
+    @TableField("province")
+    private String province;
+    @TableField("city")
+    private String city;
+    @TableField("district")
+    private String district;
+    @TableField("addr_info")
+    private String addrInfo;
+    @TableField("lat_gd")
+    private BigDecimal latGd;
+    @TableField("lng_gd")
+    private BigDecimal lngGd;
+
+    @TableField("city_tier")
+    private String cityTier;
+}

+ 40 - 0
benyun-core/src/main/java/com/ruoyi/benyun/entity/AttentionPool.java

@@ -0,0 +1,40 @@
+package com.ruoyi.benyun.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@TableName("bl_attention_pool")
+public class AttentionPool{
+    @TableField("attention_id")
+    private String attentionId;
+    @TableField("contact")
+    private String contact;
+    @TableField("telephone")
+    private String telephone;
+    @TableField("wd_id")
+    private String wdId;
+    @TableField("wd_name")
+    private String wdName;
+    @TableField("wd_addr_info")
+    private String wdAddrInfo;
+    @TableField("brand_id")
+    private String brandId;
+    @TableField("brand_name")
+    private String brandName;
+    @TableField("user_id")
+    private String userId;
+    @TableField("attention_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    private LocalDateTime attentionTime;
+}

+ 34 - 0
benyun-core/src/main/java/com/ruoyi/benyun/entity/AttentionPoolStatistics.java

@@ -0,0 +1,34 @@
+package com.ruoyi.benyun.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@TableName("bl_attention_pool_statistics")
+public class AttentionPoolStatistics {
+    @TableField("stat_id")
+    private String statId;
+    @TableField("attention_count")
+    private Integer attentionCount;
+    @TableField("clue_count")
+    private Integer clueCount;
+    @TableField("online_count")
+    private Integer onlineCount;
+    @TableField("offline_count")
+    private Integer offlineCount;
+    @TableField("user_id")
+    private String userId;
+    @TableField("stat_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    private LocalDateTime statTime;
+}

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/Brand.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/Brand.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/BrandCity.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandCity.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/BrandEvolve.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandEvolve.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/BrandProvince.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandProvince.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/BrandStatistics.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandStatistics.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/BrandStoreOpclose.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandStoreOpclose.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/BrandZone.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/BrandZone.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/BuildWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/BuildWd.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/BusinessOpportunitiesClue.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/BusinessOpportunitiesClue.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/Category.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/Category.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/CityTierBody.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/CityTierBody.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/Enterprise.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/Enterprise.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/EnterpriseWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/EnterpriseWd.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/FollowUpRecord.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/FollowUpRecord.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/HouseWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/HouseWd.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/ManageType.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/ManageType.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/StoreWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/StoreWd.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/TopologicalBuildWdStatisticsCategory.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalBuildWdStatisticsCategory.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 2
benyun-core/src/main/java/com/benyun/core/entity/TopologicalBuildingWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalBuildingWd.java

@@ -1,7 +1,6 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/TopologicalEnterpriseWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalEnterpriseWd.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 2
benyun-core/src/main/java/com/benyun/core/entity/TopologicalHouseWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalHouseWd.java

@@ -1,10 +1,9 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
-import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 @Data

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/TopologicalHouseWdStatisticsData.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalHouseWdStatisticsData.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/TopologicalStoreWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalStoreWd.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/TopologicalStoreWdStatisticsCategory.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TopologicalStoreWdStatisticsCategory.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/TrafficWd.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TrafficWd.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 
 import com.baomidou.mybatisplus.annotation.TableField;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/TypeBy.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/TypeBy.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/WdInfo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/WdInfo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/WdOpclose.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/WdOpclose.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/WdToologicalItem.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/WdToologicalItem.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/WdTopological.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/WdTopological.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/WdTopologicalInfo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/WdTopologicalInfo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity;
+package com.ruoyi.benyun.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/AttentionPoolBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/AttentionPoolBo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/AttentionPoolStatisticsBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/AttentionPoolStatisticsBo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BStoreData.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BStoreData.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandAddrDistribution.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandAddrDistribution.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandDisCloud.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandDisCloud.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandDisItem.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandDisItem.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandDistribution.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandDistribution.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandGeoLabelBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandGeoLabelBo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandInfo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandInfo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandOpcloseBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandOpcloseBo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandProperty.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandProperty.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandProvinceBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandProvinceBo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandSearch.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandSearch.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandSimilar.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandSimilar.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandStatus.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandStatus.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BrandTotal.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BrandTotal.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BuildWdCategoryCount.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BuildWdCategoryCount.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

+ 7 - 3
benyun-core/src/main/java/com/benyun/core/entity/bo/BuildWdInfoBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BuildWdInfoBo.java

@@ -1,13 +1,17 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
-import com.benyun.core.entity.BuildWd;
-import com.benyun.core.entity.WdInfo;
+import com.ruoyi.benyun.entity.WdInfo;
+import com.ruoyi.benyun.entity.BuildWd;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class BuildWdInfoBo extends WdInfo {
     private BuildWd buildWd;
 
+    private List<String> tags;
+
     public BuildWdInfoBo(WdInfo wdInfo) {
         setWdId(wdInfo.getWdId());
         setAddrInfo(wdInfo.getAddrInfo());

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/BusinessOpportunitiesClueBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/BusinessOpportunitiesClueBo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 7 - 3
benyun-core/src/main/java/com/benyun/core/entity/bo/EnterpriseWdInfoBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/EnterpriseWdInfoBo.java

@@ -1,13 +1,17 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
-import com.benyun.core.entity.EnterpriseWd;
-import com.benyun.core.entity.WdInfo;
+import com.ruoyi.benyun.entity.EnterpriseWd;
+import com.ruoyi.benyun.entity.WdInfo;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class EnterpriseWdInfoBo extends WdInfo {
     private EnterpriseWd enterpriseWd;
 
+    private List<String> tags;
+
     public EnterpriseWdInfoBo(WdInfo wdInfo) {
         setWdId(wdInfo.getWdId());
         setAddrInfo(wdInfo.getAddrInfo());

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/FollowUpRecordBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/FollowUpRecordBo.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 6 - 3
benyun-core/src/main/java/com/benyun/core/entity/bo/HouseWdInfoBo.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/HouseWdInfoBo.java

@@ -1,13 +1,16 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
-import com.benyun.core.entity.HouseWd;
-import com.benyun.core.entity.WdInfo;
+import com.ruoyi.benyun.entity.HouseWd;
+import com.ruoyi.benyun.entity.WdInfo;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class HouseWdInfoBo extends WdInfo {
     private HouseWd houseWd;
 
+    private List<String> tags;
     public HouseWdInfoBo(WdInfo wdInfo) {
         setWdId(wdInfo.getWdId());
         setAddrInfo(wdInfo.getAddrInfo());

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/Info.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/Info.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+ 1 - 1
benyun-core/src/main/java/com/benyun/core/entity/bo/StoreWdCategoryCount.java → benyun-core/src/main/java/com/ruoyi/benyun/entity/bo/StoreWdCategoryCount.java

@@ -1,4 +1,4 @@
-package com.benyun.core.entity.bo;
+package com.ruoyi.benyun.entity.bo;
 
 import lombok.Data;
 

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