Browse Source

增加订单操作

stanley-king 8 năm trước cách đây
mục cha
commit
13bdb7846b
2 tập tin đã thay đổi với 109 bổ sung2 xóa
  1. 66 2
      helper/order_helper.php
  2. 43 0
      mobile/control/member_order.php

+ 66 - 2
helper/order_helper.php

@@ -8,6 +8,68 @@
  */
 require_once (BASE_ROOT_PATH . '/helper/goods_helper.php');
 
+class order_action
+{
+    public function change_state($state_type,$order_id)
+    {
+        $model_order = Model('order');
+
+        $condition = array();
+        $condition['order_id'] = $order_id;
+        $condition['buyer_id'] = $_SESSION['member_id'];
+        $order_info	= $model_order->getOrderInfo($condition);
+
+        if($state_type == 'order_cancel') {
+            $result = $this->order_cancel($order_info);
+        } else if ($state_type == 'order_receive') {
+            $result = $this->order_receive($order_info);
+        } else if (in_array($state_type,array('order_delete','order_drop','order_restore'))){
+            $result = $this->order_recycle($order_info, $state_type);
+        } else {
+            return false;
+        }
+
+        return $result['state'];
+    }
+
+    private function order_cancel($order_info)
+    {
+        $model_order = Model('order');
+        $logic_order = Logic('order');
+        $if_allow = $model_order->getOrderOperateState('buyer_cancel',$order_info);
+        if (!$if_allow) {
+            return callback(false,'无权操作');
+        }
+        return $logic_order->changeOrderStateCancel($order_info,'buyer', $_SESSION['member_name']);
+    }
+
+    /**
+     * 收货
+     */
+    private function order_receive($order_info)
+    {
+        $model_order = Model('order');
+        $logic_order = Logic('order');
+        $if_allow = $model_order->getOrderOperateState('receive',$order_info);
+        if (!$if_allow) {
+            return callback(false,'无权操作');
+        }
+
+        return $logic_order->changeOrderStateReceive($order_info,'buyer',$_SESSION['member_name']);
+    }
+
+    private function order_recycle($order_info, $state_type) {
+        $model_order = Model('order');
+        $logic_order = Logic('order');
+        $state_type = str_replace(array('order_delete','order_drop','order_restore'), array('delete','drop','restore'), $state_type);
+        $if_allow = $model_order->getOrderOperateState($state_type,$order_info);
+        if (!$if_allow) {
+            return callback(false,'无权操作');
+        }
+        return $logic_order->changeOrderStateRecycle($order_info,'buyer',$state_type);
+    }
+}
+
 class order_helper
 {
     private $mOrders;
@@ -17,15 +79,16 @@ class order_helper
 
     public function __construct($order_list)
     {
-        $this->mOrders = $order_list;
         $this->mod_order = Model('order');
         $this->mod_refund = Model('refund_return');
+        $this->mOrders = $this->mod_refund->getGoodsRefundList($order_list);
     }
 
     private function action_title($key)
     {
         static $actions = array("if_cancel" => "取消订单",
                                 "if_refund_cancel" => "退款",
+                                "if_payment" => "立即支付",
                                 "if_receive" => "确认收货",
                                 "if_deliver" => "查看物流",
                                 "if_evaluation" => "评价",
@@ -36,6 +99,7 @@ class order_helper
 
     private function actions($order)
     {
+        $state['if_payment'] = $this->mod_order->getOrderOperateState('payment',$order);
         //显示取消订单
         $state['if_cancel'] = $this->mod_order->getOrderOperateState('buyer_cancel', $order);
         //显示退款取消订单
@@ -112,7 +176,7 @@ class order_helper
             $goods["goods_type"] = intval($val["goods_type"]);
             $goods["promotions_id"] = intval($val["promotions_id"]);
             $goods["gc_id"] = intval($val["gc_id"]);
-            $goods["goods_spec"] = $val["goods_spec"];
+            $goods["goods_spec"] = $val["goods_spec"] == null ? "" : $val["goods_spec"];
 
             $refund_state = 0;
             $goods['refund_id'] = intval($this->mod_refund->getRefundIdForGood($val,$refund_state));

+ 43 - 0
mobile/control/member_order.php

@@ -62,6 +62,49 @@ class member_orderControl extends mbMemberControl
         self::outsuccess(array('orders' => $result,'mobile_page' =>mobile_page($page_count)));
     }
 
+    public function change_stateOp()
+    {
+        $act_type = $_GET['act_type'];
+        $order_id = intval($_POST['order_id']);
+
+        $state_type = $this->state_type($act_type);
+        if($state_type == false || $order_id <= 0) {
+            return self::outerr(errcode::ErrApptype);
+        }
+
+        $action = new order_action();
+        $fOk = $action->change_state($state_type,$order_id);
+
+        if($fOk == true) {
+            $model_order = Model('order');
+            $condition = array();
+            $condition['buyer_id'] = $_SESSION['member_id'];
+            $condition['order_id'] = $order_id;
+            $order_list_array = $model_order->getNormalOrderList($condition, $this->page_size, '*', 'order_id desc', '', array('order_address', 'order_goods'));
+            $order_helper = new order_helper($order_list_array);
+            $orders = $order_helper->format();
+            $model_order->cls();
+            if(empty($orders)) {
+                $order = null;
+            } else {
+                $order = $orders[0];
+            }
+            return self::outsuccess(array("act_type" => $act_type,"order_id" => $order_id, "order" => $order));
+        } else {
+            return self::outerr(errcode::ErrOrder);
+        }
+    }
+    private function state_type($act_type)
+    {
+        if($act_type == "if_cancel") return "order_cancel";
+        if($act_type == "if_delete") return "order_delete";
+        if($act_type == "if_receive") return "order_receive";
+        return false;
+    }
+
+    /**
+     * 取消订单
+     */
     ///////////////////////////////////////////////////////////////////下面是老接口///////////////////////////////////////////////////////////////////////////
     public function order_listOp()
     {