Authored by Rock Zhang

物流详情页添加banner以及你可能喜欢

Code Review By Rock Zhang
@@ -59,7 +59,9 @@ class CacheConfig @@ -59,7 +59,9 @@ class CacheConfig
59 const KEY_INDEX_BRANDS_LIST_DATA = 'key_index_brands_list_data';//频道brands数据 59 const KEY_INDEX_BRANDS_LIST_DATA = 'key_index_brands_list_data';//频道brands数据
60 60
61 const KEY_CODE_YOHOCOIN_BANNER = 'key_code_yohocoin_banner';// 有货币banner数据 61 const KEY_CODE_YOHOCOIN_BANNER = 'key_code_yohocoin_banner';// 有货币banner数据
62 - 62 +
  63 + const KEY_CODE_LOGISTIC_BANNER = 'key_code_logistic_banner';// 物流详情banner数据
  64 +
63 const KEY_WEB_HOME_NAVBAR_DATA = 'key_web_home_navbar_data';//web的导航数据 65 const KEY_WEB_HOME_NAVBAR_DATA = 'key_web_home_navbar_data';//web的导航数据
64 const KEY_WEB_HOME_CHANNEL_DATA = 'key_web_home_channel_data';//web首页频道数据[boys, girls, kids, lifestyle] 66 const KEY_WEB_HOME_CHANNEL_DATA = 'key_web_home_channel_data';//web首页频道数据[boys, girls, kids, lifestyle]
65 const KEY_WEB_HOME_CHANNEL_NEWARRIVAL_DATA = 'key_web_home_newarrival_data';//web频道最新上架数据[boys, girls, kids, lifestyle] 67 const KEY_WEB_HOME_CHANNEL_NEWARRIVAL_DATA = 'key_web_home_newarrival_data';//web频道最新上架数据[boys, girls, kids, lifestyle]
@@ -315,6 +315,8 @@ class IndexModel @@ -315,6 +315,8 @@ class IndexModel
315 } 315 }
316 316
317 /** 317 /**
  318 + * 获取切换逛类别或者分页时的文章数据
  319 + *
318 * @param string $gender "1,3"表示男, "2,3"表示女 320 * @param string $gender "1,3"表示男, "2,3"表示女
319 * @param int $sortId 分类ID 321 * @param int $sortId 分类ID
320 * @param int $uid 用户ID 322 * @param int $uid 用户ID
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
2 2
3 namespace Home; 3 namespace Home;
4 4
  5 +use Configs\CacheConfig;
  6 +use LibModels\Wap\Home\IndexData;
5 use LibModels\Wap\Home\OrderData; 7 use LibModels\Wap\Home\OrderData;
6 use Plugin\Helpers; 8 use Plugin\Helpers;
7 9
@@ -14,6 +16,7 @@ class OrderModel @@ -14,6 +16,7 @@ class OrderModel
14 16
15 const CODE_PAYMENT = '04cf5abaa7c20178325a07c4a833782c'; //支付订单资源码 17 const CODE_PAYMENT = '04cf5abaa7c20178325a07c4a833782c'; //支付订单资源码
16 const CODE_STROLL = 'a7989369aa86681c678bc40f171b8f1d'; //随便逛逛url地址资源码 18 const CODE_STROLL = 'a7989369aa86681c678bc40f171b8f1d'; //随便逛逛url地址资源码
  19 + const CODE_LOGISTIC_BANNER = '1fc9b2484fcd559049f2f7e0db313f20'; // 物流详情banner资源码
17 20
18 /** 21 /**
19 * 订单相关数据处理 22 * 订单相关数据处理
@@ -99,23 +102,80 @@ class OrderModel @@ -99,23 +102,80 @@ class OrderModel
99 { 102 {
100 $result = array(); 103 $result = array();
101 104
102 - if (isset($orderCode) && is_numeric($uid)) { 105 + do {
  106 + if (!isset($orderCode) || !is_numeric($uid)) {
  107 + break;
  108 + }
  109 +
103 $logistics = OrderData::LogisticsData($orderCode, $uid); 110 $logistics = OrderData::LogisticsData($orderCode, $uid);
104 - if (!empty($logistics['data'])) {  
105 - $result['logisticUrl'] = $logistics['data']['url'];  
106 - $result['logisticImg'] = $logistics['data']['logo'];  
107 - $result['logisticCompany'] = $logistics['data']['caption'];  
108 - $result['logisticNumber'] = $logistics['data']['express_number'];  
109 -  
110 - $build = array();  
111 - foreach ($logistics['data']['express_detail'] as $value) {  
112 - $build['status'] = $value['accept_address'];  
113 - $build['date'] = $value['acceptTime'];  
114 - $result['logisticDetail'][] = $build; 111 + if (empty($logistics['data'])) {
  112 + break;
  113 + }
  114 +
  115 + $result['logisticUrl'] = $logistics['data']['url'];
  116 + $result['logisticImg'] = $logistics['data']['logo'];
  117 + $result['logisticCompany'] = $logistics['data']['caption'];
  118 + $result['logisticNumber'] = $logistics['data']['express_number'];
  119 +
  120 + $build = array();
  121 + foreach ($logistics['data']['express_detail'] as $value) {
  122 + $build['status'] = $value['accept_address'];
  123 + $build['date'] = $value['acceptTime'];
  124 + $result['logisticDetail'][] = $build;
  125 + }
  126 +
  127 + // 获取物流详情页banner
  128 + $banner = self::getLogisterBanner();
  129 + if ($banner) {
  130 + $result['banner'] = $banner;
  131 + }
  132 +
  133 + } while (false);
  134 +
  135 + return $result;
  136 + }
  137 +
  138 + /**
  139 + * 获取物流详情页banner
  140 + *
  141 + * @return array|bool
  142 + */
  143 + private static function getLogisterBanner()
  144 + {
  145 + $result = false;
  146 +
  147 + if (USE_CACHE) {
  148 + // 先尝试获取一级缓存(master), 有数据则直接返回.
  149 + $result = Cache::get(CacheConfig::KEY_CODE_LOGISTIC_BANNER, 'master');
  150 + if (!empty($result)) {
  151 + return $result;
  152 + }
  153 + }
  154 +
  155 + // 调用接口获取数据
  156 + $banner = IndexData::getBannerStart(self::CODE_LOGISTIC_BANNER);
  157 + if (isset($banner['code']) && $banner['code'] == 200 && !empty($banner['data'])) {
  158 + $result = array();
  159 + // 处理数据
  160 + foreach ($banner['data'] as $val) {
  161 + foreach ($val['data'] as $single) {
  162 + $result['url'] = Helpers::getFilterUrl($single['url']);
  163 + $result['img'] = Helpers::getImageUrl($single['src'], 640, 200);
115 } 164 }
116 } 165 }
117 } 166 }
118 167
  168 + if (USE_CACHE) {
  169 + // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
  170 + if (empty($result)) {
  171 + $result = Cache::get(CacheConfig::KEY_CODE_LOGISTIC_BANNER, 'slave');
  172 + }
  173 + // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
  174 + else {
  175 + Cache::set(CacheConfig::KEY_CODE_LOGISTIC_BANNER, $result);
  176 + }
  177 + }
  178 +
119 return $result; 179 return $result;
120 } 180 }
121 181
@@ -378,6 +378,11 @@ class UserModel @@ -378,6 +378,11 @@ class UserModel
378 return $result; 378 return $result;
379 } 379 }
380 380
  381 + /**
  382 + * 获取有货币页面的banner数据
  383 + *
  384 + * @return array|bool|mixed
  385 + */
381 public static function getYohoCoinBanner() 386 public static function getYohoCoinBanner()
382 { 387 {
383 $result = false; 388 $result = false;