Jelajahi Sumber

add to local

stanley-king 8 tahun lalu
induk
melakukan
686cdb42d1

+ 2 - 1
core/framework/core/base.php

@@ -180,8 +180,9 @@ final class Base
 		if (class_exists($class_name))
 		{
 			$main = new $class_name();
-            
 			$function = $_GET['op'].'Op';
+            Log::record("act={$class_name},op={$function}");
+
 			if (method_exists($main,$function)){                       
 				$main->$function();
 			} elseif (method_exists($main,'indexOp')){

+ 6 - 1
data/model/cart.model.php

@@ -137,7 +137,12 @@ class cartModel extends Model
             } else {
                 $data['goods_num'] = intval($check_cart['goods_num']) + $quantity;
                 $ret = $this->table('cart')->where($condition)->update($data);
-                return ($ret && $this->affected_rows() > 0);
+                if($ret && $this->affected_rows() > 0) {
+                    $item = $this->table('cart')->field('cart_id')->where($condition)->find();
+                    return intval($item['cart_id']);
+                } else {
+                    return false;
+                }
             }
         }
 

+ 5 - 0
global.php

@@ -109,14 +109,19 @@ define('GOODS_IMAGES_EXT', '_60,_240,_360,_1280');
  */
 //已取消
 define('ORDER_STATE_CANCEL', 0);
+
 //已产生但未支付
 define('ORDER_STATE_NEW', 10);
+
 //已支付
 define('ORDER_STATE_PAY', 20);
+
 //已发货
 define('ORDER_STATE_SEND', 30);
+
 //已收货,交易成功
 define('ORDER_STATE_SUCCESS', 40);
+
 //未付款订单,自动取消的天数
 define('ORDER_AUTO_CANCEL_DAY', 1); //
 //已发货订单,自动确认收货的天数

+ 14 - 12
helper/fcgi_server.php

@@ -50,21 +50,23 @@ class fcgi_server
         }
     }
 
-    private function clear_global()
+    private function do_clear($ar)
     {
-        foreach($_SESSION as $key=>$value) {
-            unset($_SESSION[$key]);
-        }
-        foreach($_COOKIE as $key=>$value) {
-            unset($_COOKIE[$key]);
-        }
-        foreach($_POST as $key => $value) {
-            unset($_POST[$key]);
-        }
-        foreach($_GET as $key => $value) {
-            unset($_GET[$key]);
+        if(isset($ar) && is_array($ar))
+        {
+            foreach($ar as $key=>$value) {
+                unset($ar[$key]);
+            }
+
         }
     }
+    private function clear_global()
+    {
+        $this->do_clear($_SESSION);
+        $this->do_clear($_COOKIE);
+        $this->do_clear($_POST);
+        $this->do_clear($_GET);
+    }
 
     public function run_looper()
     {

+ 145 - 0
helper/order_helper.php

@@ -0,0 +1,145 @@
+<?php
+
+/**
+ * Created by PhpStorm.
+ * User: stanley-king
+ * Date: 16/9/28
+ * Time: 上午12:09
+ */
+class order_helper
+{
+    private $mOrders;
+    private $mod_refund;
+    private $mod_order;
+
+
+    public function __construct($order_list)
+    {
+        $this->mOrders = $order_list;
+        $this->mod_order = Model('order');
+        $this->mod_refund = Model('refund_return');
+    }
+
+    private function action_title($key)
+    {
+        static $actions = array("if_cancel" => "取消订单",
+                                "if_refund_cancel" => "退款",
+                                "if_receive" => "确认收货",
+                                "if_deliver" => "查看物流",
+                                "if_evaluation" => "评价",
+                                "if_delete" => "删除订单",
+                                "if_refund_return" => "退货");
+        return $actions[$key];
+    }
+
+    private function actions($order)
+    {
+        //显示取消订单
+        $state['if_cancel'] = $this->mod_order->getOrderOperateState('buyer_cancel', $order);
+        //显示退款取消订单
+        $state['if_refund_cancel'] = $this->mod_order->getOrderOperateState('refund_cancel', $order);
+        //显示收货
+        $state['if_receive'] = $this->mod_order->getOrderOperateState('receive', $order);
+        //显示物流跟踪
+        $state['if_deliver'] = $this->mod_order->getOrderOperateState('deliver', $order);
+        //显示评价
+        $state['if_evaluation'] = $this->mod_order->getOrderOperateState('evaluation', $order);
+        //显示删除
+        $state['if_delete'] = $this->mod_order->getOrderOperateState('delete', $order);
+        //订单是否能退货
+        $state['if_refund_return'] = $this->mod_refund->getRefundState($order) == '0' ? false : true;
+
+        $actions = [];
+        foreach ($state as $key => $value) {
+            if ($value == true) {
+                $actions['action'] = $key;
+                $actions['title']  = $this->action_title($key);
+            }
+        }
+
+        return $actions;
+    }
+    private function order_info($order)
+    {
+        $result["order_id"] = intval($order["order_id"]);
+        $result["order_sn"] = $order["order_sn"];
+        $result["pay_sn"] = $order["pay_sn"];
+        $result["add_time"] = intval($order["add_time"]);
+        $result["payment_code"] = $order["payment_code"];
+        $result["payment_time"] = intval($order["payment_time"]);
+        $result["finnshed_time"] = intval($order["finnshed_time"]);
+        $result["goods_amount"] = doubleval($order["goods_amount"]);
+        $result["order_amount"] = doubleval($order["order_amount"]);
+        $result["rcb_amount"] = doubleval($order["rcb_amount"]);
+        $result["pd_amount"] = doubleval($order["pd_amount"]);
+        $result["shipping_fee"] = doubleval($order["shipping_fee"]);
+        $result["evaluation_state"] = intval($order["evaluation_state"]);
+        $result["order_state"] = intval($order["order_state"]);
+        $result["refund_state"] = intval($order["refund_state"]);
+        $result["refund_amount"] = doubleval($order["refund_amount"]);
+        $result["delay_time"] = intval($order["delay_time"]);
+        $result["shipping_code"] = $order["shipping_code"];
+        $result["trade_no"] = $order["trade_no"];
+        $result["state_desc"] = $order["state_desc"];
+
+        $refund_state = 0;
+        $order['refund_id'] = intval($this->mod_refund->getRefundId($order,$refund_state));
+        $result["refund_state"] = intval($refund_state);
+
+        return $result;
+    }
+
+    private function order_goods($order)
+    {
+        $result = [];
+        $order_goods = $order['extend_order_goods'];
+        foreach ($order_goods as $val)
+        {
+            $goods["rec_id"] = intval($val["rec_id"]);
+            $goods["order_id"] = intval($val["order_id"]);
+            $goods["goods_id"] = intval($val["goods_id"]);
+            $goods["goods_name"] = $val["goods_name"];
+            $goods["goods_price"] = doubleval($val["goods_price"]);
+            $goods["goods_num"] = intval($val["goods_num"]);
+            $goods["goods_image"] = cthumb($val['goods_image'], 480, $val['store_id']);
+            $goods["goods_pay_price"] = doubleval($val["goods_pay_price"]);
+            $goods["store_id"] = intval($val["store_id"]);
+            $goods["buyer_id"] = intval($val["buyer_id"]);
+            $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"];
+
+            $refund_state = 0;
+            $goods['refund_id'] = intval($this->mod_refund->getRefundIdForGood($val,$refund_state));
+            $goods['refund_state'] = intval($refund_state);
+            $result[] = $goods;
+        }
+
+        return $result;
+    }
+
+    private function reciver_info($order)
+    {
+        $info = $order['reciver_info'];
+        $info['reciver_name'] = $order['reciver_name'];
+
+        return $info;
+    }
+
+    public function format()
+    {
+        $result = [];
+        foreach ($this->mOrders as $order) {
+            $item['order_info'] = $this->order_info($order);
+            $actions = $this->actions($order);
+            $item['actions'] = $actions;
+            $item['order_goods'] = $this->order_goods($order);
+            $item['reciver_info'] = $this->reciver_info($order);
+
+            $result[] = $item;
+        }
+
+        return $result;
+    }
+}

+ 1 - 1
mobile/control/goods_common.php

@@ -30,7 +30,7 @@ class goods_commonControl extends mobileControl
                 return self::outerr($err);
             }
             else {
-                return self::outsuccess($ret);
+                return self::outsuccess($ret,"shop/common");
             }
         }
         else {

+ 1 - 1
mobile/control/index.php

@@ -30,7 +30,7 @@ class indexControl extends specialControl
         $sale_list = $this->sale_list();
         $ret['sale_list'] = $sale_list;
 
-        return self::outsuccess($ret);
+        return self::outsuccess($ret,"shop/home");
     }
 
 

+ 23 - 1
mobile/control/member_buy.php

@@ -91,11 +91,33 @@ class member_buyControl extends mbMemberControl
                 return self::outerr($err['code'],$err['msg']);
             } else {
                 $out_put['payment'] = $payment;
+                $out_put['pay_sn']  = $pay_sn;
                 return self::outsuccess($out_put);
             }
         }
     }
 
+    public function payOp()
+    {
+        $pay_sn = $_GET['paysn'];
+        $payment = $_GET['payment'];
+        $usebonus = intval($_GET['usebonus']) == 0 ? false : true;
+
+        if(empty($pay_sn) || empty($payment)) {
+            return self::outerr(errcode::ErrParamter,"支付号或者支付类型错误");
+        }
+
+        $out_put = pay_helper::pay($pay_sn,$payment,$usebonus,$err);
+        if($out_put == false) {
+            return self::outerr($err['code'],$err['msg']);
+        } else {
+            $out_put['payment'] = $payment;
+            $out_put['pay_sn']  = $pay_sn;
+
+            return self::outsuccess($out_put);
+        }
+    }
+
     public function change_addrexOp()
     {
         $logic_buy = Logic('buy');
@@ -255,7 +277,7 @@ class member_buyControl extends mbMemberControl
      */
     private function pay_goods($cart_ids)
     {
-        if ($_POST['ifcart'] == true)
+        if (boolval($_POST['ifcart']) == true)
         {
             $mod_cart = Model('cart');
             $items = $mod_cart->listCart('db', array('cart_id' => array('in', $cart_ids)), false);

+ 12 - 43
mobile/control/member_order.php

@@ -13,6 +13,7 @@
 defined('InShopNC') or exit('Access Invalid!');
 
 require_once(BASE_ROOT_PATH . '/helper/kdn_helper.php');
+require_once(BASE_ROOT_PATH . '/helper/order_helper.php');
 
 class member_orderControl extends mbMemberControl
 {
@@ -31,53 +32,21 @@ class member_orderControl extends mbMemberControl
             $condition['order_state'] = $order_state;
         }
 
-        $order_list_array = $model_order->getNormalOrderList($condition, $this->page_size, '*', 'order_id desc', '', array('order_address', 'order_goods'));
-        $order_group_list = array();
-        $order_pay_sn_array = array();
-
-        $model_refund = Model('refund_return');
-        foreach ($order_list_array as $order)
-        {
-            //显示取消订单
-            $order['if_cancel'] = $model_order->getOrderOperateState('buyer_cancel', $order);
-            //显示退款取消订单
-            $order['if_refund_cancel'] = $model_order->getOrderOperateState('refund_cancel',$order);
-            //显示收货
-            $order['if_receive'] = $model_order->getOrderOperateState('receive', $order);
-            //显示锁定中
-            $order['if_lock'] = $model_order->getOrderOperateState('lock', $order);
-            //显示物流跟踪
-            $order['if_deliver'] = $model_order->getOrderOperateState('deliver', $order);
-            //显示评价
-            $order['if_evaluation'] = $model_order->getOrderOperateState('evaluation',$order);
-            //显示永久删除
-            $order['if_drop'] = $model_order->getOrderOperateState('drop',$order);
-            //订单是否能退货
-            $order['if_refund_return'] = $model_refund->getRefundState($order);
-
-            //商品图
-            foreach ($order['extend_order_goods'] as $k => $goods_info) {
-                $order['extend_order_goods'][$k]['goods_image_url'] = cthumb($goods_info['goods_image'], 240, $order['store_id']);
-                $order['extend_order_goods'][$k]['refund_id']       = (string)$model_refund->getRefundIdForGood($goods_info,$order['extend_order_goods'][$k]['refund_state']);
-            }
-
-            $order['refund_id'] = (string)$model_refund->getRefundId($order,$order['refund_state']);
-            $order_group_list[$order['pay_sn']]['order_list'][] = $order;
-
-            //如果有在线支付且未付款的订单则显示合并付款链接
-            if ($order['order_state'] == ORDER_STATE_NEW) {
-                $order_group_list[$order['pay_sn']]['pay_amount'] += $order['order_amount'] - $order['rcb_amount'] - $order['pd_amount'];
-            }
-            $order_group_list[$order['pay_sn']]['add_time'] = $order['add_time'];
-
-            //记录一下pay_sn,后面需要查询支付单表
-            $order_pay_sn_array[] = $order['pay_sn'];
+        if ($_GET['state_type'] != '') {
+            $condition['order_state'] = str_replace(
+                array('state_new','state_pay','state_send','state_success','state_noeval'),
+                array(ORDER_STATE_NEW,ORDER_STATE_PAY,ORDER_STATE_SEND,ORDER_STATE_SUCCESS), $_GET['state_type']);
+        } else {
+            $condition['order_state'] = array("in",array(ORDER_STATE_NEW,ORDER_STATE_PAY,ORDER_STATE_SEND,ORDER_STATE_SUCCESS,ORDER_STATE_CANCEL));
         }
 
+        $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);
+        $result = $order_helper->format();
         $page_count = $model_order->gettotalpage();
         $model_order->cls();
-        $array_data['mobile_page'] = mobile_page($page_count);
-        self::outsuccess($array_data);
+
+        self::outsuccess(array('orders' => $result,'mobile_page' =>mobile_page($page_count)));
     }
 
     public function order_listOp()

+ 2 - 6
shop/control/member_order.php

@@ -256,9 +256,7 @@ class member_orderControl extends BaseMemberControl {
 
         //显示系统自动取消订单日期
         if ($order_info['order_state'] == ORDER_STATE_NEW) {
-            //$order_info['order_cancel_day'] = $order_info['add_time'] + ORDER_AUTO_CANCEL_DAY * 24 * 3600;
-			// by abc.com
-			$order_info['order_cancel_day'] = $order_info['add_time'] + ORDER_AUTO_CANCEL_DAY + 3 * 24 * 3600;
+			$order_info['order_cancel_day'] = $order_info['add_time'] + ORDER_AUTO_CANCEL_DAY * 24 * 3600;
         }
 
         //显示快递信息
@@ -271,9 +269,7 @@ class member_orderControl extends BaseMemberControl {
 
         //显示系统自动收获时间
         if ($order_info['order_state'] == ORDER_STATE_SEND) {
-           //$order_info['order_confirm_day'] = $order_info['delay_time'] + ORDER_AUTO_RECEIVE_DAY * 24 * 3600;
-			//by abc.com
-			$order_info['order_confirm_day'] = $order_info['delay_time'] + ORDER_AUTO_RECEIVE_DAY + 15 * 24 * 3600;
+           $order_info['order_confirm_day'] = $order_info['delay_time'] + ORDER_AUTO_RECEIVE_DAY * 24 * 3600;
         }
 
         //如果订单已取消,取得取消原因、时间,操作人