Authored by hf

code review by hf: do format channel choose code

@@ -18,6 +18,8 @@ class CacheConfig @@ -18,6 +18,8 @@ class CacheConfig
18 const KEY_ACTION_GIRLS_INDEX = 'key_action_girls_index'; // 女生首页 18 const KEY_ACTION_GIRLS_INDEX = 'key_action_girls_index'; // 女生首页
19 const KEY_ACTION_KIDS_INDEX = 'key_action_kids_index'; // 潮童首页 19 const KEY_ACTION_KIDS_INDEX = 'key_action_kids_index'; // 潮童首页
20 const KEY_ACTION_LIFESTYLE_INDEX = 'key_action_lifestyle_index'; // 创意生活首页 20 const KEY_ACTION_LIFESTYLE_INDEX = 'key_action_lifestyle_index'; // 创意生活首页
  21 +
  22 + const KEY_ACTION_INDEX_CONFIG = 'key_action_index_config'; // 频道配置
21 23
22 const KEY_ACTION_BOYS_BOTTOM_BANNER = 'key_action_boys_bottom_banner'; // 男生首页底部banner 24 const KEY_ACTION_BOYS_BOTTOM_BANNER = 'key_action_boys_bottom_banner'; // 男生首页底部banner
23 const KEY_ACTION_GRILS_BOTTOM_BANNER = 'key_action_girls_bottom_banner';// 女生首页底部banner 25 const KEY_ACTION_GRILS_BOTTOM_BANNER = 'key_action_girls_bottom_banner';// 女生首页底部banner
@@ -51,6 +53,6 @@ class CacheConfig @@ -51,6 +53,6 @@ class CacheConfig
51 const KEY_ACTION_GUANG_DETAIL_DATA = 'key_action_guang_detail_data'; // 逛内容详情 53 const KEY_ACTION_GUANG_DETAIL_DATA = 'key_action_guang_detail_data'; // 逛内容详情
52 const KEY_ACTION_GUANG_RSS_DATA = 'key_action_guang_detail_data'; // 逛订阅内容 54 const KEY_ACTION_GUANG_RSS_DATA = 'key_action_guang_detail_data'; // 逛订阅内容
53 55
54 - const KEY_ACTION_ADDRESS_LIST_DATA = 'key_action_address_list_data'; // 地址树数据 56 + const KEY_ACTION_ADDRESS_LIST_DATA = 'key_action_address_list_data'; // 地址树数据
55 57
56 } 58 }
@@ -77,7 +77,8 @@ class IndexData @@ -77,7 +77,8 @@ class IndexData
77 { 77 {
78 $param = Yohobuy::param(); 78 $param = Yohobuy::param();
79 $param['client_secret'] = Sign::getSign($param); 79 $param['client_secret'] = Sign::getSign($param);
80 - return Yohobuy::get(Yohobuy::SERVICE_URL . 'operations/api/v5/entrance/getEntrance',$param,3600); 80 +
  81 + return Yohobuy::get(Yohobuy::SERVICE_URL . 'operations/api/v5/entrance/getEntrance', $param);
81 } 82 }
82 83
83 } 84 }
@@ -23,12 +23,14 @@ class IndexController extends AbstractAction @@ -23,12 +23,14 @@ class IndexController extends AbstractAction
23 // 设置浏览器缓存5分钟 23 // 设置浏览器缓存5分钟
24 $this->setExpires(300); 24 $this->setExpires(300);
25 } 25 }
  26 +
26 $result = Index\HomeModel::getChannel(); 27 $result = Index\HomeModel::getChannel();
27 $result['background'] = Index\HomeModel::getBgImage(); 28 $result['background'] = Index\HomeModel::getBgImage();
28 $result['channelPage'] = true; 29 $result['channelPage'] = true;
29 $result['showDownloadApp'] = true; 30 $result['showDownloadApp'] = true;
30 $result['searchUrl'] = Helpers::url('', null, 'search'); 31 $result['searchUrl'] = Helpers::url('', null, 'search');
31 $result['pageFooter'] = true; 32 $result['pageFooter'] = true;
  33 +
32 // 渲染模板 34 // 渲染模板
33 $this->_view->display('index', $result); 35 $this->_view->display('index', $result);
34 } 36 }
@@ -20,6 +20,7 @@ use Configs\CacheConfig; @@ -20,6 +20,7 @@ use Configs\CacheConfig;
20 class HomeModel 20 class HomeModel
21 { 21 {
22 /* 频道选择页取背景图片的位置码 */ 22 /* 频道选择页取背景图片的位置码 */
  23 +
23 const CODE_BG = '7ba9118028f9b22090b57341487567eb'; 24 const CODE_BG = '7ba9118028f9b22090b57341487567eb';
24 25
25 /* 男生楼层资源的位置码 */ 26 /* 男生楼层资源的位置码 */
@@ -70,7 +71,8 @@ class HomeModel @@ -70,7 +71,8 @@ class HomeModel
70 71
71 /** 72 /**
72 * 设置选择的频道保存到浏览器COOKIE 73 * 设置选择的频道保存到浏览器COOKIE
73 - * 74 + * (已废弃,改成JS设置)
  75 + *
74 * @param string $cookie 76 * @param string $cookie
75 * @return void 77 * @return void
76 */ 78 */
@@ -99,10 +101,10 @@ class HomeModel @@ -99,10 +101,10 @@ class HomeModel
99 // 调用接口获取数据 101 // 调用接口获取数据
100 $banner = IndexData::getBannerStart(self::CODE_BG); 102 $banner = IndexData::getBannerStart(self::CODE_BG);
101 if (isset($banner['code']) && $banner['code'] == 200 && !empty($banner['data'])) { 103 if (isset($banner['code']) && $banner['code'] == 200 && !empty($banner['data'])) {
102 - $imgArr = $banner['data'][0]['data'];  
103 - if (isset($banner['data'][0]['data']['list'])) {  
104 - $imgArr = $banner['data'][0]['data']['list'];  
105 - } 104 + $imgArr = $banner['data'][0]['data'];
  105 + if (isset($banner['data'][0]['data']['list'])) {
  106 + $imgArr = $banner['data'][0]['data']['list'];
  107 + }
106 $result = Helpers::getImageUrl($imgArr[0]['src'], 640, 800, 2); 108 $result = Helpers::getImageUrl($imgArr[0]['src'], 640, 800, 2);
107 } 109 }
108 110
@@ -128,7 +130,7 @@ class HomeModel @@ -128,7 +130,7 @@ class HomeModel
128 public static function getBottomBanner($channel) 130 public static function getBottomBanner($channel)
129 { 131 {
130 $result = false; 132 $result = false;
131 - if($channel == 2) { 133 + if ($channel == 2) {
132 $resource = self::CODE_NAME_GIRLS_BOTTOM_BANNER; 134 $resource = self::CODE_NAME_GIRLS_BOTTOM_BANNER;
133 $cache = CacheConfig::KEY_ACTION_GRILS_BOTTOM_BANNER; 135 $cache = CacheConfig::KEY_ACTION_GRILS_BOTTOM_BANNER;
134 } else { 136 } else {
@@ -324,45 +326,65 @@ class HomeModel @@ -324,45 +326,65 @@ class HomeModel
324 * 326 *
325 * @return array 327 * @return array
326 */ 328 */
327 - public static function getChannel(){ 329 + public static function getChannel()
  330 + {
328 $result = array(); 331 $result = array();
329 - $result['showYohood'] = false;  
330 332
331 - $data = IndexData::channelData(); 333 + if (USE_CACHE) {
  334 + $key = CacheConfig::KEY_ACTION_INDEX_CONFIG;
  335 + // 先尝试获取一级缓存(master), 有数据则直接返回.
  336 + $result = Cache::get($key, 'master');
  337 + if (!empty($result)) {
  338 + return $result;
  339 + }
  340 + }
332 341
333 - $channelList = array();  
334 - if(isset($data['data']['list'])){  
335 - foreach($data['data']['list'] as $key => $value){  
336 - switch ($value['channel_id']) {  
337 - case 5:  
338 - $result['showYohood'] = true;  
339 - $result['yohoodHref'] = '/yohood';  
340 - break; 342 + $data = IndexData::channelData();
  343 + if (!empty($data['data']['list'])) {
  344 + $build = array();
  345 + foreach ($data['data']['list'] as $value) {
  346 + $build = array();
  347 + switch (intval($value['channel_id'])) {
341 case 1: 348 case 1:
342 - $channelList[$key]['href'] = '/boys';  
343 - $channelList[$key]['title'] = '男生';  
344 - $channelList[$key]['entitle'] = 'BOYS'; 349 + $build['href'] = '/boys';
  350 + $build['title'] = '男生';
  351 + $build['entitle'] = 'BOYS';
345 break; 352 break;
346 case 2: 353 case 2:
347 - $channelList[$key]['href'] = '/girls';  
348 - $channelList[$key]['title'] = '女生';  
349 - $channelList[$key]['entitle'] = 'GIRLS'; 354 + $build['href'] = '/girls';
  355 + $build['title'] = '女生';
  356 + $build['entitle'] = 'GIRLS';
350 break; 357 break;
351 case 3: 358 case 3:
352 - $channelList[$key]['href'] = '/kids';  
353 - $channelList[$key]['title'] = '潮童';  
354 - $channelList[$key]['entitle'] = 'KIDS'; 359 + $build['href'] = '/kids';
  360 + $build['title'] = '潮童';
  361 + $build['entitle'] = 'KIDS';
355 break; 362 break;
356 case 4: 363 case 4:
357 - $channelList[$key]['href'] = '/lifestyle';  
358 - $channelList[$key]['title'] = '创意生活';  
359 - $channelList[$key]['entitle'] = 'LIFESTYLE'; 364 + $build['href'] = '/lifestyle';
  365 + $build['title'] = '创意生活';
  366 + $build['entitle'] = 'LIFESTYLE';
360 break; 367 break;
361 - default: 368 + case 5:
  369 + $result['showYohood'] = true;
  370 + $result['yohoodHref'] = 'http://yohood.cn';
362 break; 371 break;
  372 + default:
  373 + continue;
363 } 374 }
  375 + $result['channelList'][] = $build;
  376 + }
  377 + }
  378 +
  379 + if (USE_CACHE) {
  380 + // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
  381 + if (empty($result)) {
  382 + $result = Cache::get($key, 'slave');
  383 + }
  384 + // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
  385 + else {
  386 + Cache::set($key, $result);
364 } 387 }
365 - $result['channelList'] = $channelList;  
366 } 388 }
367 389
368 return $result; 390 return $result;