modify guang page add data cache to fixes api down
Showing
4 changed files
with
35 additions
and
8 deletions
@@ -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 | /** |
-
Please register or login to post a comment