Преглед изворни кода

refactor(home-page-config): 统一首页配置 Redis Key 命名

- 将首页模块、顶部导航、轮播及各展示模块 Redis Key 统一为 home_page_config:{mainId}:{module}

- 通过 sprintf 生成按 mainId 隔离的配置 Key,保持 hdApp 配置与 mallApp 读取口径一致

- Redis: 旧格式 {mainId}_home_page_config_* 不再读取,历史配置需按新 Key 迁移
shizhongqi пре 2 недеља
родитељ
комит
fa247b1406

+ 9 - 6
biz-hd/homePageConfig/classes/HomePageConfigClass.php

@@ -12,13 +12,13 @@ use Yii;
 class HomePageConfigClass
 {
     /** Redis:模块顺序+开关,值为 [{key,enabled}, ...] */
-    const REDIS_MODULES_SUFFIX = '_home_page_config_modules';
+    const MODULES_PREFIX = 'home_page_config:%d:modules';
 
     /** Redis:顶部导航与搜索详情 */
-    const REDIS_TOP_NAV_SUFFIX = '_home_page_config_top_nav';
+    const TOP_NAV_PREFIX = 'home_page_config:%d:top_nav';
 
     /** Redis:首页轮播图配置 */
-    const REDIS_BANNER_SUFFIX = '_home_page_config_banner';
+    const BANNER_PREFIX = 'home_page_config:%d:banner';
 
     /** OSS 轮播图根目录 */
     const BANNER_OSS_ROOT = 'uploads_home_banner';
@@ -78,7 +78,8 @@ class HomePageConfigClass
      */
     public static function getModulesKey($mainId)
     {
-        return intval($mainId) . self::REDIS_MODULES_SUFFIX;
+        //return self::MODULES_PREFIX . intval($mainId);
+        return sprintf(self::MODULES_PREFIX, $mainId);
     }
 
     /**
@@ -86,7 +87,8 @@ class HomePageConfigClass
      */
     public static function getTopNavKey($mainId)
     {
-        return intval($mainId) . self::REDIS_TOP_NAV_SUFFIX;
+        //return self::TOP_NAV_PREFIX . intval($mainId);
+        return sprintf(self::TOP_NAV_PREFIX, $mainId);
     }
 
     /**
@@ -94,7 +96,8 @@ class HomePageConfigClass
      */
     public static function getBannerKey($mainId)
     {
-        return intval($mainId) . self::REDIS_BANNER_SUFFIX;
+        //return self::BANNER_PREFIX . intval($mainId);
+        return sprintf(self::BANNER_PREFIX, $mainId);
     }
 
     /**

+ 13 - 12
biz-hd/homePageConfig/classes/HomePageModuleClass.php

@@ -15,12 +15,12 @@ use Yii;
  */
 class HomePageModuleClass
 {
-    const REDIS_NAV_GRID = '_home_page_config_nav_grid';
-    const REDIS_SECKILL = '_home_page_config_seckill';
-    const REDIS_GROUP_BUY = '_home_page_config_group_buy';
-    const REDIS_HOT = '_home_page_config_hot';
-    const REDIS_NEW = '_home_page_config_new';
-    const REDIS_PULL_GOODS = '_home_page_config_pull_goods';
+    const REDIS_NAV_GRID = 'home_page_config:%d:nav_grid';
+    const REDIS_SECKILL = 'home_page_config:%d:seckill';
+    const REDIS_GROUP_BUY = 'home_page_config:%d:group_buy';
+    const REDIS_HOT = 'home_page_config:%d:hot';
+    const REDIS_NEW = 'home_page_config:%d:new';
+    const REDIS_PULL_GOODS = 'home_page_config:%d:pull_goods';
 
     const NAV_OSS_ROOT = 'uploads_home_nav';
     const MAX_NAV_COUNT = 20;
@@ -46,14 +46,15 @@ class HomePageModuleClass
     /** 首页展示商品解析默认条数上限 */
     const DISPLAY_GOODS_LIMIT = 20;
 
-    public static function redisKey($mainId, $suffix)
+    public static function redisKey($mainId, $str)
     {
-        return intval($mainId) . $suffix;
+        return sprintf($str, $mainId);
+        //return $str . intval($mainId);
     }
 
-    public static function getJson($mainId, $suffix)
+    public static function getJson($mainId, $str)
     {
-        $raw = Yii::$app->redis->executeCommand('GET', [self::redisKey($mainId, $suffix)]);
+        $raw = Yii::$app->redis->executeCommand('GET', [self::redisKey($mainId, $str)]);
         if (empty($raw)) {
             return [];
         }
@@ -61,10 +62,10 @@ class HomePageModuleClass
         return is_array($data) ? $data : [];
     }
 
-    public static function setJson($mainId, $suffix, $payload)
+    public static function setJson($mainId, $str, $payload)
     {
         Yii::$app->redis->executeCommand('SET', [
-            self::redisKey($mainId, $suffix),
+            self::redisKey($mainId, $str),
             json_encode($payload, JSON_UNESCAPED_UNICODE),
         ]);
     }