Authored by Rock Zhang

修复新品到着,折扣专区缓存问题

@@ -21,7 +21,10 @@ class CacheConfig @@ -21,7 +21,10 @@ class CacheConfig
21 const KEY_ACTION_PRODUCT_NEWSALE_INDEX_GIRLS = 'key_action_product_newsale_index_girls'; // 女生新品到着 21 const KEY_ACTION_PRODUCT_NEWSALE_INDEX_GIRLS = 'key_action_product_newsale_index_girls'; // 女生新品到着
22 const KEY_ACTION_PRODUCT_NEWSALE_INDEX_KIDS = 'key_action_product_newsale_index_kids'; // 潮童新品到着 22 const KEY_ACTION_PRODUCT_NEWSALE_INDEX_KIDS = 'key_action_product_newsale_index_kids'; // 潮童新品到着
23 const KEY_ACTION_PRODUCT_NEWSALE_INDEX_LIFESTYLE = 'key_action_product_newsale_index_lifestyle'; // 创意生活新品到着 23 const KEY_ACTION_PRODUCT_NEWSALE_INDEX_LIFESTYLE = 'key_action_product_newsale_index_lifestyle'; // 创意生活新品到着
24 - const KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT = 'key_action_product_newsale_discount'; // 折扣专区 24 + const KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT_BOYS = 'key_action_product_newsale_discount_boys'; // 男生折扣专区
  25 + const KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT_GIRLS = 'key_action_product_newsale_discount_girls'; // 女生折扣专区
  26 + const KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT_KIDS = 'key_action_product_newsale_discount_kids'; // 潮童折扣专区
  27 + const KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT_LIFESTYLE = 'key_action_product_newsale_discount_lifestyle'; // 创意生活折扣专区
25 28
26 29
27 // 品类数据 30 // 品类数据
@@ -81,11 +81,11 @@ class ClassModel @@ -81,11 +81,11 @@ class ClassModel
81 if (USE_CACHE) { 81 if (USE_CACHE) {
82 // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据. 82 // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
83 if (empty($classes)) { 83 if (empty($classes)) {
84 - $classes = Cache::get(CacheConfig::KEY_ACTION_INDEX_INDEX, 'slave'); 84 + $classes = Cache::get(CacheConfig::KEY_CATEGORY_CLASSES_DATA, 'slave');
85 } 85 }
86 // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存 86 // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
87 else { 87 else {
88 - Cache::set(CacheConfig::KEY_ACTION_INDEX_INDEX, $classes); 88 + Cache::set(CacheConfig::KEY_CATEGORY_CLASSES_DATA, $classes);
89 } 89 }
90 } 90 }
91 91
@@ -40,46 +40,23 @@ class NewsaleModel @@ -40,46 +40,23 @@ class NewsaleModel
40 { 40 {
41 $result = array(); 41 $result = array();
42 42
43 - if (USE_CACHE) {  
44 - // 先尝试获取一级缓存(master), 有数据则直接返回.  
45 - $result = Cache::get(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_BOYS, 'master');  
46 - if (!empty($result)) {  
47 - return $result;  
48 - }  
49 - }  
50 -  
51 /* 根据频道调用接口 */ 43 /* 根据频道调用接口 */
52 switch (intval($channel)) { 44 switch (intval($channel)) {
53 case 1: // 男生 45 case 1: // 男生
54 - $newsale = NewsaleData::getNewsaleFocus(self::CODE_TOP_NEW_BOYS); 46 + $result = self::cacheControl(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_BOYS, self::CODE_TOP_NEW_BOYS);
  47 +
55 break; 48 break;
56 case 2: // 女生 49 case 2: // 女生
57 - $newsale = NewsaleData::getNewsaleFocus(self::CODE_TOP_NEW_GIRLS); 50 + $result = self::cacheControl(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_GIRLS, self::CODE_TOP_NEW_GIRLS);
58 break; 51 break;
59 case 3: // 潮童 52 case 3: // 潮童
60 - $newsale = NewsaleData::getNewsaleFocus(self::CODE_TOP_NEW_KIDS); 53 + $result = self::cacheControl(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_KIDS, self::CODE_TOP_NEW_KIDS);
61 break; 54 break;
62 case 4: // 创意生活 55 case 4: // 创意生活
63 - $newsale = NewsaleData::getNewsaleFocus(self::CODE_TOP_NEW_LIFESTYLE); 56 + $result = self::cacheControl(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_LIFESTYLE, self::CODE_TOP_NEW_LIFESTYLE);
64 break; 57 break;
65 } 58 }
66 59
67 - // 调用接口获取数据并封装  
68 - if (isset($newsale['code']) && isset($newsale['data'][0]['data'][0])) {  
69 - $result = Helpers::formatBanner($newsale['data'][0]['data'][0], 640, 240);  
70 - }  
71 -  
72 - if (USE_CACHE) {  
73 - // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.  
74 - if (empty($result)) {  
75 - $result = Cache::get(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_BOYS, 'slave');  
76 - }  
77 - // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存  
78 - else {  
79 - Cache::set(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_BOYS, $result);  
80 - }  
81 - }  
82 -  
83 return $result; 60 return $result;
84 } 61 }
85 62
@@ -92,46 +69,22 @@ class NewsaleModel @@ -92,46 +69,22 @@ class NewsaleModel
92 { 69 {
93 $result = array(); 70 $result = array();
94 71
95 - if (USE_CACHE) {  
96 - // 先尝试获取一级缓存(master), 有数据则直接返回.  
97 - $result = Cache::get(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT, 'master');  
98 - if (!empty($result)) {  
99 - return $result;  
100 - }  
101 - }  
102 -  
103 /* 根据频道调用接口 */ 72 /* 根据频道调用接口 */
104 switch (intval($channel)) { 73 switch (intval($channel)) {
105 case 1: // 男生 74 case 1: // 男生
106 - $newsale = NewsaleData::getNewsaleFocus(self::CODE_TOP_SALE_BOYS); 75 + $result = self::cacheControl(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT_BOYS, self::CODE_TOP_SALE_BOYS);
107 break; 76 break;
108 case 2: // 女生 77 case 2: // 女生
109 - $newsale = NewsaleData::getNewsaleFocus(self::CODE_TOP_SALE_GIRLS); 78 + $result = self::cacheControl(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT_GIRLS, self::CODE_TOP_SALE_GIRLS);
110 break; 79 break;
111 case 3: // 潮童 80 case 3: // 潮童
112 - $newsale = NewsaleData::getNewsaleFocus(self::CODE_TOP_SALE_KIDS); 81 + $result = self::cacheControl(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT_KIDS, self::CODE_TOP_SALE_KIDS);
113 break; 82 break;
114 case 4: // 创意生活 83 case 4: // 创意生活
115 - $newsale = NewsaleData::getNewsaleFocus(self::CODE_TOP_SALE_LIFESTYLE); 84 + $result = self::cacheControl(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT_LIFESTYLE, self::CODE_TOP_SALE_LIFESTYLE);
116 break; 85 break;
117 } 86 }
118 87
119 - // 调用接口获取数据并封装  
120 - if (isset($newsale['code']) && isset($newsale['data'][0]['data'][0])) {  
121 - $result = Helpers::formatBanner($newsale['data'][0]['data'][0], 640, 240);  
122 - }  
123 -  
124 - if (USE_CACHE) {  
125 - // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.  
126 - if (empty($result)) {  
127 - $result = Cache::get(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT, 'slave');  
128 - }  
129 - // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存  
130 - else {  
131 - Cache::set(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_DISCOUNT, $result);  
132 - }  
133 - }  
134 -  
135 return $result; 88 return $result;
136 } 89 }
137 90
@@ -207,4 +160,41 @@ class NewsaleModel @@ -207,4 +160,41 @@ class NewsaleModel
207 160
208 return $result; 161 return $result;
209 } 162 }
  163 +
  164 +
  165 + /**
  166 + * 顶部焦点图缓存控制
  167 + * @param const $cacheKey 缓存常量值
  168 + * @param const $codeKey 顶部焦点图位置码
  169 + * @return array 焦点图数据
  170 + */
  171 + private static function cacheControl($cacheKey, $codeKey)
  172 + {
  173 + if (USE_CACHE) {
  174 + // 先尝试获取一级缓存(master), 有数据则直接返回.
  175 + $result = Cache::get($cacheKey, 'master');
  176 + if (!empty($result)) {
  177 + return $result;
  178 + }
  179 + }
  180 + $newsale = NewsaleData::getNewsaleFocus($codeKey);
  181 +
  182 + // 调用接口获取数据并封装
  183 + if (isset($newsale['code']) && isset($newsale['data'][0]['data'][0])) {
  184 + $result = Helpers::formatBanner($newsale['data'][0]['data'][0], 640, 240);
  185 + }
  186 +
  187 + if (USE_CACHE) {
  188 + // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
  189 + if (empty($result)) {
  190 + $result = Cache::get(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_BOYS, 'slave');
  191 + }
  192 + // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
  193 + else {
  194 + Cache::set(CacheConfig::KEY_ACTION_PRODUCT_NEWSALE_INDEX_BOYS, $result);
  195 + }
  196 + }
  197 +
  198 + return $result;
  199 + }
210 } 200 }