修改了订单控制器,完成了订单列表功能。修改页面OrderData.php;Order.php;Home.php
Showing
4 changed files
with
105 additions
and
54 deletions
@@ -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 | } |
-
Please register or login to post a comment