Authored by hf

modify guang page add data cache to fixes api down

@@ -37,5 +37,8 @@ class CacheConfig @@ -37,5 +37,8 @@ class CacheConfig
37 37
38 const KEY_ACTION_SEARCH_SEARCH = 'key_action_search_search'; // 搜索的数据 38 const KEY_ACTION_SEARCH_SEARCH = 'key_action_search_search'; // 搜索的数据
39 const KEY_ACTION_SEARCH_FILTER = 'key_action_search_filter'; // 搜索的过滤条件 39 const KEY_ACTION_SEARCH_FILTER = 'key_action_search_filter'; // 搜索的过滤条件
  40 +
  41 + const KEY_ACTION_GUANG_PLUSTAR_DATA = 'key_action_guang_plustar_data'; // 逛PLUSTAR
  42 + const KEY_ACTION_GUANG_DETAIL_DATA = 'key_action_guang_detail_data'; // 逛内容详情
40 43
41 } 44 }
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 namespace LibModels\Wap\Guang; 3 namespace LibModels\Wap\Guang;
4 4
5 use Api\Yohobuy; 5 use Api\Yohobuy;
  6 +use Configs\CacheConfig;
6 7
7 /** 8 /**
8 * 逛资讯详情相关的数据模型 9 * 逛资讯详情相关的数据模型
@@ -37,10 +38,18 @@ class DetailData @@ -37,10 +38,18 @@ class DetailData
37 38
38 // 客户端类型 39 // 客户端类型
39 $clientType = $isApp ? 'iphone' : 'h5'; 40 $clientType = $isApp ? 'iphone' : 'h5';
  41 + $key = CacheConfig::KEY_ACTION_GUANG_DETAIL_DATA . strval($id);
40 42
41 // 获取资讯 43 // 获取资讯
42 $article = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType)); 44 $article = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType));
43 if (!isset($article['author_id'])) { 45 if (!isset($article['author_id'])) {
  46 + if (USE_CACHE) {
  47 + // 先尝试获取二级缓存(slave), 有数据则直接返回.
  48 + $result = Cache::get($key, 'slave');
  49 + if (!empty($result)) {
  50 + return $result;
  51 + }
  52 + }
44 return $result; 53 return $result;
45 } 54 }
46 $result['getArticle'] = $article; 55 $result['getArticle'] = $article;
@@ -70,10 +79,14 @@ class DetailData @@ -70,10 +79,14 @@ class DetailData
70 // 调用发起请求 79 // 调用发起请求
71 Yohobuy::yarConcurrentLoop(); 80 Yohobuy::yarConcurrentLoop();
72 81
  82 + if (USE_CACHE && !empty($result['getArticle'])) {
  83 + Cache::set($key, $result);
  84 + }
  85 +
73 return $result; 86 return $result;
74 } 87 }
75 -  
76 - /** 88 +
  89 + /**
77 * 逛资讯详情页数据封装 (专为YOHO!潮流志APP提供) 90 * 逛资讯详情页数据封装 (专为YOHO!潮流志APP提供)
78 * 91 *
79 * @param int $id 内容ID 92 * @param int $id 内容ID
@@ -115,5 +128,4 @@ class DetailData @@ -115,5 +128,4 @@ class DetailData
115 return $result; 128 return $result;
116 } 129 }
117 130
118 -  
119 } 131 }
@@ -5,6 +5,7 @@ namespace LibModels\Wap\Guang; @@ -5,6 +5,7 @@ namespace LibModels\Wap\Guang;
5 use Api\Sign; 5 use Api\Sign;
6 use Api\Yohobuy; 6 use Api\Yohobuy;
7 use Plugin\Helpers; 7 use Plugin\Helpers;
  8 +use Configs\CacheConfig;
8 9
9 /** 10 /**
10 * 明星品牌和原创品牌相关的数据模型 11 * 明星品牌和原创品牌相关的数据模型
@@ -124,9 +125,18 @@ class PlusstarData @@ -124,9 +125,18 @@ class PlusstarData
124 $result['getUidProductFav'] = array(); 125 $result['getUidProductFav'] = array();
125 $result['getArticleByBrand'] = array(); 126 $result['getArticleByBrand'] = array();
126 127
  128 + $key = CacheConfig::KEY_ACTION_GUANG_PLUSTAR_DATA . strval($id);
  129 +
127 // 品牌详情信息 130 // 品牌详情信息
128 $brandInfo = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_BRANDINFO_PLUSSTAR, 'getBrandInfo', array(array('id' => $id)), 3600); // 缓存1小时 131 $brandInfo = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_BRANDINFO_PLUSSTAR, 'getBrandInfo', array(array('id' => $id)), 3600); // 缓存1小时
129 if (!isset($brandInfo['data']['brand_id'])) { 132 if (!isset($brandInfo['data']['brand_id'])) {
  133 + if (USE_CACHE) {
  134 + // 先尝试获取二级缓存(slave), 有数据则直接返回.
  135 + $result = Cache::get($key, 'slave');
  136 + if (!empty($result)) {
  137 + return $result;
  138 + }
  139 + }
130 return $result; 140 return $result;
131 } else { 141 } else {
132 $result['getBrandInfo'] = $brandInfo; 142 $result['getBrandInfo'] = $brandInfo;
@@ -196,10 +206,12 @@ class PlusstarData @@ -196,10 +206,12 @@ class PlusstarData
196 // 调用发起请求 206 // 调用发起请求
197 Yohobuy::yarConcurrentLoop(); 207 Yohobuy::yarConcurrentLoop();
198 208
199 - return $result; 209 + if (USE_CACHE && !empty($result['getBrandInfo'])) {
  210 + // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
  211 + Cache::set($key, $result);
  212 + }
200 213
201 -// $goods_url = MakeUrl::h5ProductDetailUrl($baseUrl,$new_goods_info['product_id'],$new_goods_info['goods_list'][0]['goods_id'],$new_goods_info['cn_alphabet']);  
202 -// $url = MakeUrl::makeUrl('go.productDetail',$goods_url, array('product_skn'=>$new_goods_info['product_skn']),$client_type); 214 + return $result;
203 } 215 }
204 216
205 } 217 }
@@ -36,7 +36,7 @@ class RecomData @@ -36,7 +36,7 @@ class RecomData
36 $param['yh_channel'] = $channel; 36 $param['yh_channel'] = $channel;
37 $param['client_secret'] = Sign::getSign($param); 37 $param['client_secret'] = Sign::getSign($param);
38 38
39 - return Yohobuy::get(Yohobuy::API_URL, $param); 39 + return Yohobuy::get(Yohobuy::API_URL, $param, 3600);
40 } 40 }
41 41
42 /** 42 /**
@@ -55,7 +55,7 @@ class RecomData @@ -55,7 +55,7 @@ class RecomData
55 $param['yh_channel'] = '3'; 55 $param['yh_channel'] = '3';
56 $param['client_secret'] = Sign::getSign($param); 56 $param['client_secret'] = Sign::getSign($param);
57 57
58 - return Yohobuy::get(Yohobuy::API_URL, $param); 58 + return Yohobuy::get(Yohobuy::API_URL, $param, 3600);
59 } 59 }
60 60
61 /** 61 /**