JensionDzero 1 жил өмнө
parent
commit
c08b04b874

+ 37 - 21
ruoyi-demo/src/main/java/com/ruoyi/demo/constant/RedisContant.java

@@ -53,6 +53,14 @@ public class RedisContant {
 
     public static int CHANNEL_ANALYSE_OPERATE_TIME_ANALYSE_TIME = 60*8;
 
+    //渠道分析-品牌列表
+    public static String CHANNEL_ANALYSE_BRANDLIST = "channel_analyse_brandList";
+    public static int CHANNEL_ANALYSE_BRANDLIST_TIME = 60*8;
+
+    //渠道分析-网店分类统计
+    public static String CHANNEL_ANALYSE_CATEGORY = "channel_analyse_category";
+    public static int CHANNEL_ANALYSE_CATEGORY_TIME = 60*8;
+
     /**
      * ToplogicalStoreWdController 点位评估-周边门店网点
      */
@@ -98,54 +106,62 @@ public class RedisContant {
     /**
      * ToplogicalEnterpriseWdController 点位评估-周边企业网点
      */
-    //点位评估-周边企业
+    //点位评估-周边企业网点
     public static String TOPOLOGICAL_ENTERPRISE_WD_LIST = "topological_enterprise_wd_list";
     public static int TOPOLOGICAL_ENTERPRISE_WD_LIST_TIME = 60*8;
 
+    //渠道分析-周边物流园
     public static final String TOPOLOGICAL_ENTERPRISE_WD_LOGISTICS_LIST = "topological_enterprise_wd_lpgistics_list";
     public static final int TOPOLOGICAL_ENTERPRISE_WD_LOGISTICS_LIST_TIME = 60*8;
+
+    /**
+     * ToplogicalHouseWdController 点位评估-周边小区网点
+     */
+    //点位评估-周边小区网点列表
     public static String TOPOLOGICAL_HOUSE_WD_LIST = "topological_house_wd_list";
     public static int TOPOLOGICAL_HOUSE_WD_LIST_TIME = 60*8;
+
+    //点位评估-周边小区网点关键信息统计
     public static String TOPOLOGICAL_HOUSE_WD_INFO = "topological_house_wd_info";
     public static int TOPOLOGICAL_HOUSE_WD_INFO_TIME = 60*8;
 
-
-
+    /**
+     * ToplogicalCommonController 点位评估-基础功能
+     */
+    //点位评估-周边网点坐标信息
     public static String TOPOLOGICAL_COMMON_MAP = "topological_common_map";
     public static int TOPOLOGICAL_COMMON_MAP_TIME = 60*8;
 
-    public static String CHANNEL_ANALYSE_BRANDLIST = "channel_analyse_brandList";
-    public static int CHANNEL_ANALYSE_BRANDLIST_TIME = 60*8;
-
-    public static String CHANNEL_ANALYSE_CATEGORY = "channel_analyse_category";
-    public static int CHANNEL_ANALYSE_CATEGORY_TIME = 60*8;
-
-    public static String CHANNEL_MAP_TAG_STOREAGE = "channel_map_tag_storeage";
-
-    public static int CHANNEL_MAP_TAG_STOREAGE_TIME = 60*8;
+    /**
+     * 数据定时
+     */
+    //数据统计-分析网点周边标签后存储前缀
     public static String WD_TAG = "wd_tag";
-    public static int WD_TAG_TIME = 60*8;
-
 
+    /**
+     * 品牌相关
+     */
     public static String BRAND_GEOLABEL = "brand_geolabel";
     public static int BRAND_GEOLABEL_TIME = 60*8;
 
     public static String BRAND_EVOLVE = "brand_evolve";
     public static int BRAND_EVOLVE_TIME = 60*8;
 
-    public static String CITY_TIER_MAP = "cityTierMap";
 
-    public int CITY_TIER_MAP_time = 60*8;
+    /**
+     * CommonController 点位评估-基础下拉框
+     */
+    //点位评估-地区信息
+    public static String COMMON_ADDR_CODE_MAP = "commonAddrCodeMap";
+
+    public static int COMMON_ADDR_CODE_MAP_TIME = 60*8;
 
+    //点位评估-地区信息2
     public static String COMMON_LEVEL = "commonLevel";
 
     public static int COMMON_LEVEL_TIME = 60*8;
 
-
-    public static String COMMON_ADDR_CODE_MAP = "commonAddrCodeMap";
-
-    public static int COMMON_ADDR_CODE_MAP_TIME = 60*8;
-
+    //点位评估-网点标签分类
     public static String COMMON_TAG= "commonTag";
 
     public static int COMMON_TAG_TIME = 60*8;

+ 5 - 1
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/ChannelAnalyseController.java

@@ -107,7 +107,11 @@ public class ChannelAnalyseController {
         return R.ok(category);
     }
 
-    //TODO 待优化
+    /**
+     * 网点周边标签分析
+     * @param channelMapAceeptVo
+     * @return
+     */
     @GetMapping("/tagAnalyse")
     public R tagAnalyse(@Validated(value = ChannelAreaGroup.class) ChannelMapAceeptVo channelMapAceeptVo){
         Integer page = channelMapAceeptVo.getPageNum() == null ? 1:channelMapAceeptVo.getPageNum();

+ 6 - 8
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/ChannelAnalyseServiceImpl.java

@@ -133,31 +133,29 @@ public class ChannelAnalyseServiceImpl implements ChannelAnalyseService {
         QueryWrapper<WdInfo> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("wd_id");
         assembleQueryWrapper(queryWrapper,channelMapAceeptVo);
-        queryWrapper.and(queryWrapper2 ->{
-            queryWrapper2.eq("show_delete",0);
-        });
         List<WdInfo> queryWd = wdInfoDao.selectList(queryWrapper);
 
-        //2.获取周边标签
+        //2.得到网点Id
         List<String> collect = queryWd.stream().map(item -> {
             return RedisContant.WD_TAG + "_" + item.getWdId();
         }).collect(Collectors.toList());
         queryWd = null;
 
-        //切割网点 并 统计分析标签
+        //3.切割网点分批次获取网点标签
         ConcurrentHashMap<String, Integer> concurrentHashMap = new ConcurrentHashMap<>();
         concurrentHashMap.put("total",0);
 
-        int split = 8000;
-        int splitCount = collect.size()/split;
+        int split = 4000;  //每次获取的网点次数
+        int splitCount = collect.size()%split == 0 ? (collect.size()/split) : (collect.size()/split + 1);  //共计次数
         int p1 = 0,p2 = split;
         ArrayList<CompletableFuture<Void>> splitList = new ArrayList<>();
         for (int i=1;i<=splitCount;i++){
             if (p2 > collect.size())
                 p2 = collect.size();
             List<String> list2 = collect.subList(p1, p2);
+            //创建线程任务
             CompletableFuture<Void> future = CompletableFuture.runAsync(()->{
-                tagAnalyseItem(concurrentHashMap,list2);
+                tagAnalyseItem(concurrentHashMap,list2); //统计
             },executor);
             splitList.add(future);
             p1 = p2;

+ 0 - 17
ruoyi-demo/src/main/java/com/ruoyi/demo/utils/BeanMapUtil.java

@@ -1,17 +0,0 @@
-package com.ruoyi.demo.utils;
-
-import com.ruoyi.demo.constant.RedisContant;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-
-@Component
-public class BeanMapUtil {
-    @Autowired
-    RedisTemplate redisTemplate;
-
-    public String getCityTier(String addrCode){
-        String o = (String) redisTemplate.boundHashOps(RedisContant.CITY_TIER_MAP).get(addrCode.substring(0, 4));
-        return o;
-    }
-}