| 
					
				 | 
			
			
				@@ -8,6 +8,140 @@ use Dever; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 获取配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public $config = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public $table = 'shop/buy_order'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function __construct() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $this->config = Dever::db($this->table)->config; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 获取公共的where 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function where($id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where['shop_id'] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!$where) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::alert('参数错误'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $where; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 获取订单列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function getList($id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = $this->where($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $mobile = Dever::input('mobile'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($mobile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where['mobile'] = $mobile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $status = Dever::input('status'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($status) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where['status'] = $status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['search_value'] = $where; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['search_value']['day'] = $day = Dever::input('day'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($day) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where['start'] = Dever::maketime($day . ' 00:00:00'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where['end'] = Dever::maketime($day . ' 23:59:59'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['order'] = Dever::db($this->table)->getAll($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($result['order']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach ($result['order'] as $k => $v) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $result['order'][$k] = $this->getInfo($v); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['search'] = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['search']['status'] = array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            array('value' => 1, 'name' => '待支付'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            array('value' => 2, 'name' => '待审核'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            array('value' => 3, 'name' => '待发货'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            array('value' => 4, 'name' => '待收货确认'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            array('value' => 5, 'name' => '已完成'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            array('value' => 6, 'name' => '已完成(有退款)'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            array('value' => 7, 'name' => '已取消'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 查看详情 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function getView($id, $order_id, $show = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = $this->where($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where['id'] = $order_id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result = Dever::db($this->table)->find($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!$result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::alert('订单不存在'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($show) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $result = $this->getInfo($result, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 获取订单详细信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function getInfo($info, $view = false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($info['status'] == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # 15分钟内支付,900秒 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $m = 9000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # 支付倒计时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $info['time'] = time() - $info['cdate']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($info['time'] >= $m) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                # 已过期,自动取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['time'] = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Dever::db($this->table)->update(array('where_id' => $info['id'], 'status' => 11)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['status'] = 11; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['time'] = $m - $info['time']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info['status_name'] = $this->config['status'][$info['status']]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info['goods'] = Dever::db('shop/buy_order_goods')->select(array('order_id' => $info['id'])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info['shop'] = Dever::db('shop/info')->getOne($info['shop_id']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info['cdate'] = date('Y-m-d H:i', $info['cdate']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($view) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach ($info['goods'] as $k => $v) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['goods'][$k]['info'] = Dever::load('goods/lib/info')->getPayInfo($v['goods_id'], $v['sku_id']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach ($info['goods'] as $k => $v) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $goods = Dever::db('goods/info')->one($v['goods_id']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['goods'][$k]['name'] = $goods['name']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['goods'][$k]['cover'] = $goods['cover']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($info['fdate']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $info['fdate'] = date('Y-m-d H:i', $info['fdate']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($info['qfdate']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $info['qfdate'] = date('Y-m-d H:i', $info['qfdate']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($info['operdate']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $info['operdate'] = date('Y-m-d H:i', $info['operdate']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $info; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 发起支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function action($shop, $name, $num, $goods, $price, $info, $refer = '') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -30,9 +164,6 @@ class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $order_data['town'] = $shop['town']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $order_data['order_num'] = $this->getOrderId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $order_data['pay_id'] = $order_data['order_num']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $order_data['pay_status'] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $order_data['pay_price'] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $id = Dever::db('shop/buy_order')->insert($order_data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!$id) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -50,15 +181,21 @@ class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Dever::db('shop/buy_order_goods')->insert($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($card || $price <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($price <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $param['pay_product_id'] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $param['pay_order_id'] = $order_data['pay_id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $param['pay_order_id'] = $order_data['order_num']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $param['pay_status'] = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $param['pay_cash'] = $price; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $param['pay_msg'] = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $this->success($param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return 'ok'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'order' => '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'order_num' => $order_data['order_num'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'order_id' => $id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'type' => 'pay', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $param = array 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,7 +207,7 @@ class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'name' => $order_data['name'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'cash' => $price, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'product_id' => $id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'order_id' => $order_data['pay_id'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'order_id' => $order_data['order_num'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'refer' => $refer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,13 +217,15 @@ class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $result = Dever::load('pay/api.pay', $param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['order_num'] = $order_data['order_num']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['order_id'] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return $result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 再次发起支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function raction($id, $refer = '') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $order = Dever::db('goods/order')->find($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $order = Dever::db('goods/buy_order')->find($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!$order) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Dever::alert('订单信息错误'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,12 +238,13 @@ class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $param = array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'project_id' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'account_id' => 5, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'uid' => -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'channel_id' => 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'system_source' => 5, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'uid' => -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'name' => $order['name'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'cash' => $order['price'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'product_id' => $id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'order_id' => $order['pay_id'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'order_id' => $order['order_num'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             'refer' => $refer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -114,6 +254,8 @@ class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $result = Dever::load('pay/api.pay', $param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['order_num'] = $order['order_num']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $result['order_id'] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return $result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -152,11 +294,8 @@ class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $update['pay_status'] = $status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $update['status'] = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $update['where_id'] = $order['id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $update['pay_time'] = time(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $update['pay_price'] = $cash; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Dever::db('shop/buy_order')->update($update); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -175,6 +314,111 @@ class Buy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 取消订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function cancel($id, $order_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $data = $this->getView($id, $order_id, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($data['status'] == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $state = Dever::db('shop/buy_order')->update(array('where_id' => $data['id'], 'status' => 7, 'operdate' => time())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 'ok'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::alert('当前订单状态不允许取消'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 全部退款 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function tui($id, $order_id, $status = 6, $desc = '') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($status != 8 && $status != 9) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::alert('当前订单状态不允许退货退款'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $data = $this->getView($id, $order_id, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($data['status'] == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $state = Dever::db('shop/buy_order')->update(array('where_id' => $data['id'], 'status' => $status, 'tk_desc' => $desc, 'tk_cash' => $data['price'])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $this->pay_tui($state, $data, $data['price']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 'ok'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::alert('当前订单状态不允许退货退款'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 获取部分退款的详情 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function tui_one_info($id, $order_id, $order_goods_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $data = $this->getView($id, $order_id, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($data['status'] == 2 || $data['status'] == 3 || $data['status'] == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $info = Dever::db('shop/buy_order_goods')->find(array('id' => $order_goods_id, 'order_id' => $data['id'], 'shop_id' => $id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($info && $info['status'] <= 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['tui_price'] = $info['price']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['tui_one_price'] = round($info['tui_price'] / $info['num'], 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['goods'] = Dever::db('goods/info')->find($info['goods_id']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return $info; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::alert('当前订单状态不允许退货退款'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 部分退款 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function tui_one($id, $order_id, $order_goods_id, $num = false, $status = 6, $desc = '') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($status != 5 && $status != 6) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::alert('当前订单状态不允许退货退款'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $data = $this->getView($id, $order_id, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($data['status'] == 2 || $data['status'] == 3 || $data['status'] == 4 || $data['status'] == 5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $info = Dever::db('shop/buy_order_goods')->find(array('id' => $order_goods_id, 'order_id' => $data['id'], 'shop_id' => $id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($info && $info['status'] <= 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $info['price'] = $info['price']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ($num > 0 && $info['num'] >= $num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $price = round($info['price'] / $info['num'], 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $info['price'] = round($price * $num, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $state = Dever::db('shop/buy_order_goods')->update(array('where_id' => $info['id'], 'status' => $status, 'tk_desc' => $desc, 'tk_cash' => $info['price'])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ($state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $this->pay_tui($state, $data, $info['price']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    # 检查这个订单下的商品是不是都退了 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $total = Dever::db('shop/buy_order_goods')->total(array('order_id' => $data['id'], 'shop_id' => $id, 'status' => 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ($total <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $state = Dever::db('shop/buy_order')->update(array('where_id' => $data['id'], 'status' => 8, 'tk_desc' => $desc, 'tk_cash' => $info['price'])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } elseif ($data['status'] == 5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $state = Dever::db('shop/buy_order')->update(array('where_id' => $data['id'], 'status' => 6)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 'ok'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::alert('当前订单状态不允许退货退款'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 退款通知 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function pay_tui($state, $data, $price) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $shop = Dever::db('shop/info')->one($data['shop_id']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $msg_param['type'] = 1;//消息类型1是订单消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $msg_param['id'] = $data['id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $msg_param['name'] = $shop['name']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $msg_param = Dever::json_encode($msg_param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $msg = '您有一笔订单已退款,退款将在3个工作日内返回原支付账户'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Dever::load('message/lib/data')->push(-1, $data['uid'], '退款成功通知', $msg, 1, 1, false, $msg_param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # 退款到原支付账户 待处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # 展示订单详情 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function show() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 |