Authored by yangyang

修改了订单控制器,完成了订单列表功能。修改页面OrderData.php;Order.php;Home.php

@@ -42,5 +42,6 @@ class CacheConfig @@ -42,5 +42,6 @@ class CacheConfig
42 const KEY_ACTION_HOME_PREFERENTIAL = 'key_action_home_preferential';//会员特权详情 42 const KEY_ACTION_HOME_PREFERENTIAL = 'key_action_home_preferential';//会员特权详情
43 const KEY_ACTION_GUANG_PLUSTAR_DATA = 'key_action_guang_plustar_data'; // 逛PLUSTAR 43 const KEY_ACTION_GUANG_PLUSTAR_DATA = 'key_action_guang_plustar_data'; // 逛PLUSTAR
44 const KEY_ACTION_GUANG_DETAIL_DATA = 'key_action_guang_detail_data'; // 逛内容详情 44 const KEY_ACTION_GUANG_DETAIL_DATA = 'key_action_guang_detail_data'; // 逛内容详情
  45 + const KEY_ACTION_HOME_ORDER_ORDER = 'key_action_home_order_order';//订单列表
45 46
46 } 47 }
@@ -25,6 +25,7 @@ class OrderData @@ -25,6 +25,7 @@ class OrderData
25 */ 25 */
26 26
27 public function getOrderData($type, $page, $limit, $gender, $yh_channel, $uid) { 27 public function getOrderData($type, $page, $limit, $gender, $yh_channel, $uid) {
  28 + //构建必传参数
28 $param = Yohobuy::param(); 29 $param = Yohobuy::param();
29 $param['gender'] = $gender; 30 $param['gender'] = $gender;
30 $param['limit'] = $limit; 31 $param['limit'] = $limit;
@@ -34,7 +35,7 @@ class OrderData @@ -34,7 +35,7 @@ class OrderData
34 $param['uid'] = $uid; 35 $param['uid'] = $uid;
35 $param['yh_channel'] = $yh_channel; 36 $param['yh_channel'] = $yh_channel;
36 $param['client_secret'] = Sign::getSign($param); 37 $param['client_secret'] = Sign::getSign($param);
37 - //print_r($param); 38 + //调用接口获得数据
38 return Yohobuy::get(Yohobuy::API_URL2, $param); 39 return Yohobuy::get(Yohobuy::API_URL2, $param);
39 } 40 }
40 41
@@ -227,8 +227,7 @@ class HomeController extends AbstractAction @@ -227,8 +227,7 @@ class HomeController extends AbstractAction
227 } 227 }
228 228
229 //在线客服 229 //在线客服
230 - public function onlineServiceAction()  
231 - { 230 + public function onlineServiceAction() {
232 // 设置网站标题 231 // 设置网站标题
233 $this->setTitle('在线客服'); 232 $this->setTitle('在线客服');
234 $this->setNavHeader('在线客服', true, SITE_MAIN); 233 $this->setNavHeader('在线客服', true, SITE_MAIN);
@@ -243,12 +242,10 @@ class HomeController extends AbstractAction @@ -243,12 +242,10 @@ class HomeController extends AbstractAction
243 } 242 }
244 243
245 //在线客服-具体详情 244 //在线客服-具体详情
246 - public function onlineServiceDetailAction()  
247 - { 245 + public function onlineServiceDetailAction() {
248 $service = array(); 246 $service = array();
249 $cateId = $this->get('cateId', 0); 247 $cateId = $this->get('cateId', 0);
250 - if ($cateId > 0)  
251 - { 248 + if ($cateId > 0) {
252 $service = home\OnlineModel::getOnlineServiceDetail($cateId); 249 $service = home\OnlineModel::getOnlineServiceDetail($cateId);
253 } 250 }
254 $this->_view->display('online_service_detail', $service); 251 $this->_view->display('online_service_detail', $service);
@@ -257,16 +254,14 @@ class HomeController extends AbstractAction @@ -257,16 +254,14 @@ class HomeController extends AbstractAction
257 /** 254 /**
258 * 我的逛 255 * 我的逛
259 */ 256 */
260 - public function myGuangAction()  
261 - { 257 + public function myGuangAction() {
262 echo 'My Guang'; 258 echo 'My Guang';
263 } 259 }
264 260
265 /** 261 /**
266 * 意见反馈 262 * 意见反馈
267 */ 263 */
268 - public function suggestAction()  
269 - { 264 + public function suggestAction() {
270 $udid = $this->getUdid(); 265 $udid = $this->getUdid();
271 $page = $this->get('page', 1); 266 $page = $this->get('page', 1);
272 $limit = $this->get('limit', 30); 267 $limit = $this->get('limit', 30);
@@ -360,28 +355,35 @@ class HomeController extends AbstractAction @@ -360,28 +355,35 @@ class HomeController extends AbstractAction
360 */ 355 */
361 356
362 public function orderAction() { 357 public function orderAction() {
363 -  
364 -// do {  
365 -// //判断是不是ajax请求  
366 -// if(!$this -> isAjax()){  
367 -// break;  
368 -// }  
369 - //判断参数是否有效 358 + //获取基本参数:type:1=>全部,2=>待付款,3=>待发货,4=>待收货,5=>待评论
370 $type = $this->get('type', 1); 359 $type = $this->get('type', 1);
371 $page = $this->get('page', 1); 360 $page = $this->get('page', 1);
372 $limit = $this->get('limit', 10); 361 $limit = $this->get('limit', 10);
373 $gender = Helpers::getGenderByCookie(); 362 $gender = Helpers::getGenderByCookie();
374 $yh_channel = $this->get('yh_channel', 1); 363 $yh_channel = $this->get('yh_channel', 1);
375 - //$uid = $this->getUid();  
376 - $uid = '7566245';  
377 - if (!empty($type) && !is_numeric($type)) {  
378 - break;  
379 - }  
380 - //$data = OrderModel::getOrder(); 364 + $uid = $this->getUid();
  365 + $uid = '7566245'; //测试用
  366 + //调用模型层getOrder方法获得并处理数据
381 $data = OrderModel::getOrder($type, $page, $limit, $gender, $yh_channel, $uid); 367 $data = OrderModel::getOrder($type, $page, $limit, $gender, $yh_channel, $uid);
382 - print_r($data);  
383 - //} while (false);  
384 - //$this -> _view -> display('order',$data); 368 + //渲染模板
  369 + $this->_view->display('order', array(
  370 + 'order' => array(
  371 + 'orders' => $data
  372 + )
  373 + ));
  374 + }
  375 +
  376 + /*
  377 + * 我的订单-处理ajax请求页面(切换订单状态)
  378 + */
  379 +
  380 + public function orderAjaxAction() {
  381 +
  382 + //判断是不是ajax请求
  383 + if (!$this->isAjax()) {
  384 + $this->error();
  385 + }
  386 + self::orderAction();
385 } 387 }
386 388
387 } 389 }
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 namespace home; 3 namespace home;
4 4
5 use LibModels\Wap\Home\OrderData; 5 use LibModels\Wap\Home\OrderData;
  6 +use Plugin\Helpers;
  7 +use Configs\CacheConfig;
6 8
7 /* 9 /*
8 * To change this license header, choose License Headers in Project Properties. 10 * To change this license header, choose License Headers in Project Properties.
@@ -21,25 +23,57 @@ class OrderModel @@ -21,25 +23,57 @@ class OrderModel
21 * 订单相关数据处理 23 * 订单相关数据处理
22 */ 24 */
23 public function getOrder($type = 1, $page = 1, $limit, $gender, $yh_channel, $uid) { 25 public function getOrder($type = 1, $page = 1, $limit, $gender, $yh_channel, $uid) {
24 -  
25 - $data = OrderData::getOrderData($type, $page, $limit, $gender, $yh_channel, $uid);  
26 $result = array(); 26 $result = array();
27 - if($data['code'] == 200 && isset($data['data'])){  
28 - foreach($data['data']['order_list'] as $key => $vo){ 27 + if (USE_CACHE) {
  28 + $key = CacheConfig::KEY_ACTION_HOME_ORDER_ORDER;
  29 + // 先尝试获取一级缓存(master), 有数据则直接返回.
  30 + $result = Cache::get($key, 'master');
  31 + if (!empty($result)) {
  32 + return $result;
  33 + }
  34 + }
  35 + //调用接口获得数据
  36 + $data = OrderData::getOrderData($type, $page, $limit, $gender, $yh_channel, $uid);
  37 + //检查数据返回是否正常,正常则处理数据
  38 + if ($data['code'] == 200 && isset($data['data'])) {
  39 + foreach ($data['data']['order_list'] as $key => $vo) {
  40 + //订单号,支付状态,订单商品数量,订单总价格
29 $result[$key]['orderNum'] = $vo['order_code']; 41 $result[$key]['orderNum'] = $vo['order_code'];
30 $result[$key]['tradingStatus'] = $vo['status_str']; 42 $result[$key]['tradingStatus'] = $vo['status_str'];
31 $result[$key]['count'] = count($vo['order_goods']); 43 $result[$key]['count'] = count($vo['order_goods']);
32 $result[$key]['sumCost'] = $vo['amount'] + $vo['shipping_cost']; 44 $result[$key]['sumCost'] = $vo['amount'] + $vo['shipping_cost'];
33 - if($vo['payment_type'] != 2){ 45 + //订单商品列表数据
  46 + $result[$key]['goods'] = self::formatOrderGoods($vo['order_goods']);
  47 + //订单status判断订单处于什么状态。
  48 + do {
  49 + //订单取消状态
  50 + if ($vo['is_cancel'] === 'Y') {
  51 + $result[$key]['canceled'] = true;
  52 + break;
  53 + }
  54 + //支付方式不是货到付款时,计算订单状态
  55 + if ($vo['payment_type'] != 2) {
34 switch ($vo['status']) { 56 switch ($vo['status']) {
35 case 0: 57 case 0:
36 $result[$key]['unpaid'] = true; 58 $result[$key]['unpaid'] = true;
37 break; 59 break;
38 - case 1 || 2 || 3:  
39 - $result[$key]['unshipped'] = true; 60 + case 1 || 2 || 3 || 4 || 5:
  61 + $result[$key]['unreceived'] = true;
  62 + $resault[$key]['logisticsUrl'] = "暂无logisticsUrl数据";
  63 + break;
  64 + case 6:
  65 + $result[$key]['completed'] = true;
40 break; 66 break;
41 - case 4 || 5: 67 + default:
  68 + break;
  69 + }
  70 + } elseif ($vo['payment_type'] == 2) {
  71 + //订单为货到付款订单时,订单没有未支付状态
  72 + switch ($vo['status']) {
  73 + case 0 || 1 || 2 || 3 || 4 || 5:
42 $result[$key]['unreceived'] = true; 74 $result[$key]['unreceived'] = true;
  75 + //此处备注,接口没有返回logisticsUrl数据
  76 + $resault[$key]['logisticsUrl'] = "备注:暂无logisticsUrl数据";
43 break; 77 break;
44 case 6: 78 case 6:
45 $result[$key]['completed'] = true; 79 $result[$key]['completed'] = true;
@@ -47,28 +81,41 @@ class OrderModel @@ -47,28 +81,41 @@ class OrderModel
47 default: 81 default:
48 break; 82 break;
49 } 83 }
50 - }else{  
51 -// switch ($vo['status']) {  
52 -// case 0:  
53 -// $result[$key]['unpaid'] = true;  
54 -// break;  
55 -// case 1 || 2 || 3:  
56 -// $result[$key]['unshipped'] = true;  
57 -// break;  
58 -// case 4 || 5:  
59 -// $result[$key]['unreceived'] = true;  
60 -// break;  
61 -// case 6:  
62 -// $result[$key]['completed'] = true;  
63 -// break;  
64 -// default:  
65 -// break;  
66 -// }  
67 } 84 }
  85 + } while (false);
  86 + }
  87 + }
  88 +
  89 + if (USE_CACHE) {
  90 + // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
  91 + if (empty($result)) {
  92 + $result = Cache::get($key, 'slave');
  93 + }
  94 + // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
  95 + else {
  96 + Cache::set($key, $result);
  97 + }
  98 + }
  99 + return $result;
  100 + }
  101 +
  102 + //格式化订单商品
  103 + static function formatOrderGoods($orderGoods) {
  104 + $arr = array();
  105 + foreach ($orderGoods as $key => $vo) {
  106 + $arr[$key]['thumb'] = Helpers::getImageUrl($vo['goods_image'], 90, 120);
  107 + $arr[$key]['name'] = $vo['product_name'];
  108 + $arr[$key]['color'] = $vo['color_name'];
  109 + $arr[$key]['size'] = $vo['size_name'];
  110 + $arr[$key]['price'] = $vo['goods_price'];
  111 + $arr[$key]['count'] = $vo['buy_number'];
  112 + if ($vo['goods_type'] == 'gift') {
  113 + $arr[$key]['gift'] = true;
  114 + } elseif ($vo['goods_type'] == 'price_gift') {
  115 + $arr[$key]['advanceBuy'] = true;
68 } 116 }
69 } 117 }
70 - //return $result;  
71 - return $data; 118 + return $arr;
72 } 119 }
73 120
74 } 121 }