Selaa lähdekoodia

refactor kdn and debug member_info

stanley-king 9 vuotta sitten
vanhempi
commit
5de71d52b0

+ 1 - 1
core/framework/function/http.php

@@ -69,7 +69,7 @@ function http_request($url, $params = array(), $method = 'GET', $multi = false,
 function http_post_data($url, $body, $headers = array())
 {
     if (!function_exists('curl_init')) {
-        return NULL;
+        return false;
     }
 
     $ci = curl_init();

+ 2 - 2
data/config/config.ini.php

@@ -8,13 +8,13 @@ $config = array();
 
 const test_srv_host = 'http://121.43.114.153';
 const stanley_home = 'http://192.168.1.2';
-const DY_HOST = 'http://192.168.1.135';
+const DY_HOST = 'http://192.168.0.100';
 
 const boss_host    = 'http://172.40.2.14';
 const jeff_office = 'http://192.168.1.128';
 const liax_office = 'http://192.168.1.136';
 
-$SRV_HOST = DY_HOST;
+$SRV_HOST = 'http://localhost/';
 $REMOTE_IMG_HOST = 'http://p.lrlz.com';
 
 $config['base_site_url']        = $SRV_HOST;

+ 5 - 0
data/logic/delivery.logic.php

@@ -108,6 +108,11 @@ class deliveryLogic
         $headers = array('v_appkey: '.self::$appkey, 'v_sign: '.$sign, 'Content-Type: application/json');
         $resp = http_post_data(self::oms_url,urlencode($body),$headers);
 
+        if($resp === false) {
+            //todo 需要放到定时任务去推送
+            return false;
+        }
+
         Log::record("post data={$resp}",Log::DEBUG);
         return $this->check($pay_sn, $trade_no, $order_sn,$resp);
     }

+ 52 - 0
data/model/cache.model.php

@@ -227,4 +227,56 @@ class cacheModel extends Model
 		}
 		return $array;
 	}
+
+	private function _home_goods()
+	{
+		$name = BASE_DATA_PATH . '/sales/home_goods.txt';
+		if(!$content = file_get_contents($name)) {
+			Log::record("cannot read file={$name}",Log::ERR);
+			return null;
+		}
+		else
+		{
+			$common_ids = array();
+			$ids = explode(',',$content);
+			foreach($ids as $val)
+			{
+				$id = intval($val);
+				if($id > 0) {
+					array_push($common_ids,$id);
+				}
+			}
+
+			return $this->fill_goods($common_ids);
+		}
+	}
+
+	private function fill_goods($common_ids)
+	{
+		$tops = array();
+		$ids = Model('goods')->field('goods_commonid,goods_id')->where(array('goods_state' => 1,'goods_verify' => 1))->group('goods_commonid')->order('goods_salenum')->limit(false)->select();
+
+		$all = array();
+		foreach($ids as $val) {
+			$all[intval($val['goods_commonid'])] = intval($val['goods_id']);
+		}
+		foreach($common_ids as $commid)
+		{
+			$goods_id = $all[$commid];
+			if(!empty($goods_id) && $goods_id > 0) {
+				$tops[$commid] = $goods_id;
+				unset($all[$commid]);
+			}
+		}
+
+		$ret = array();
+		foreach($tops as $key => $val) {
+			array_push($ret,$val);
+		}
+		foreach($all as $key => $val) {
+			array_push($ret,$val);
+		}
+
+		return $ret;
+	}
 }

+ 0 - 48
data/model/mb_user_token.model.php

@@ -47,54 +47,6 @@ class mb_user_tokenModel extends Model
     }
 
     /**
-     * 生成token
-     *
-     * @param array $param 参数内容
-     * @return bool 布尔类型的返回结果
-     */
-    public function gen_token($member_id, $member_name, $client)
-    {
-        //生成新的token
-        $mb_user_token_info = array();
-        $token = md5($member_name . strval(time()) . strval(rand(0, 999999)));
-        $mb_user_token_info['member_id'] = $member_id;
-        $mb_user_token_info['member_name'] = $member_name;
-        $mb_user_token_info['token'] = $token;
-        $mb_user_token_info['login_time'] = time();
-        $mb_user_token_info['client_type'] = $client;
-
-        $condition['member_id'] = $member_id;
-        $result = $this->where($condition)->select();
-
-        foreach($result as $value){
-            $key = func::gen_token_key($value['token']);
-            dcache($key);
-        }
-        $this->where($condition)->delete();
-        $ret = $this->addMbUserToken($mb_user_token_info);
-        if ($ret) {
-            $key = func::gen_token_key($token);
-            wcache($key, array('info' => serialize($mb_user_token_info)),'',func::token_expire);
-
-            return $token;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * 删除token
-     *
-     * @param $token
-     * @return mixed
-     */
-    public function del_token($token){
-        $key = func::gen_token_key($token);
-        dcache($key);
-        return $this->where(array('token'=>$token))->delete();
-    }
-
-    /**
      * 删除
      *
      * @param int $condition 条件

+ 2 - 0
data/model/member.model.php

@@ -100,6 +100,8 @@ class memberModel extends Model
         $_SESSION['is_buy'] = isset($member_info['is_buy']) ? $member_info['is_buy'] : 1;
         $_SESSION['avatar'] = $member_info['member_avatar'];
         $_SESSION['member_truename'] = $member_info['member_truename'];
+        $_SESSION['member_nickname'] = $member_info['member_nickname'];
+        $_SESSION['member_signname'] = $member_info['member_signname'];
         $_SESSION['member_sex'] = $member_info['member_sex'];
         $_SESSION['member_birthday'] = $member_info['member_birthday'];
         $_SESSION['member_mobile_bind'] = $member_info['member_mobile_bind'];

+ 1 - 0
helper/area_check.php

@@ -9,4 +9,5 @@
 class area_check
 {
 
+
 }

+ 2 - 1
helper/fcgi_server.php

@@ -20,10 +20,11 @@ class fcgi_server
 
     private function is_exclude($file)
     {
-        static $exfiles = array('wxnotify.php','alipay_notify_url.php','dispatch_notify.php','test.php');
+        static $exfiles = array('wxnotify.php','alipay_notify_url.php','dispatch_notify.php','kdniao_notify.php','test.php');
         $name = basename($file);
         return in_array($name,$exfiles);
     }
+
     private function parase_requri()
     {
         $method = strtolower(request_helper::method());

+ 125 - 0
helper/goods_helper.php

@@ -0,0 +1,125 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: stanley-king
+ * Date: 16/3/30
+ * Time: 下午3:31
+ */
+
+class goods_helper
+{
+    public function __construct() {
+    }
+
+    public function get_infos($goods_ids,$fieldstr)
+    {
+        $goods_list = Model('goods')->cls()->getGoodsOnlineList(array('goods_id' => array('in', $goods_ids),$fieldstr));
+        $goods_list = $this->goods_list_extend($goods_list);
+
+        return $goods_list;
+    }
+
+    /**
+     * 处理商品列表(抢购、限时折扣、商品图片)
+     */
+    private function goods_list_extend($goods_list)
+    {
+        $commonid_array = array();
+        $goodsid_array = array();
+        foreach ($goods_list as $key => $value) {
+            $commonid_array[] = $value['goods_commonid'];
+            $goodsid_array[] = $value['goods_id'];
+
+            // image 切换为goods_common 表中数据
+            $condition['goods_commonid'] = $value['goods_commonid'];
+            $goods_image = Model()->table('goods_common')->where($condition)->field('goods_image')->select();
+            $goods_list[$key]['goods_image'] = $goods_image[0]['goods_image'];
+        }
+
+        //促销
+        $groupbuy_list = Model('groupbuy')->getGroupbuyListByGoodsCommonIDString(implode(',', $commonid_array));
+        $xianshi_list = Model('p_xianshi_goods')->getXianshiGoodsListByGoodsString(implode(',', $goodsid_array));
+        foreach ($goods_list as $key => &$value)
+        {
+            //抢购
+            if (isset($groupbuy_list[$value['goods_commonid']])) {
+                $goods_list[$key]['goods_price'] = $groupbuy_list[$value['goods_commonid']]['groupbuy_price'];
+                $goods_list[$key]['group_flag'] = true;
+            } else {
+                $goods_list[$key]['group_flag'] = false;
+            }
+
+            //限时折扣
+            if (isset($xianshi_list[$value['goods_id']]) && !$goods_list[$key]['group_flag']) {
+                $goods_list[$key]['goods_price'] = $xianshi_list[$value['goods_id']]['xianshi_price'];
+                $goods_list[$key]['xianshi_flag'] = true;
+            } else {
+                $goods_list[$key]['xianshi_flag'] = false;
+            }
+
+            //商品图片url
+            $goods_list[$key]['goods_image_url'] = cthumb($value['goods_image'], 360, $value['store_id']);
+
+            unset($goods_list[$key]['store_id']);
+            unset($goods_list[$key]['nc_distinct']);
+            unset($goods_list[$key]['gc_id']);
+            unset($goods_list[$key]['goods_marketprice']);
+            unset($goods_list[$key]['goods_image']);
+            unset($goods_list[$key]['goods_salenum']);
+            unset($goods_list[$key]['evaluation_good_star']);
+            unset($goods_list[$key]['evaluation_count']);
+            unset($goods_list[$key]['is_virtual']);
+            unset($goods_list[$key]['is_presell']);
+            unset($goods_list[$key]['is_fcode']);
+            unset($goods_list[$key]['have_gift']);
+            unset($goods_list[$key]['group_flag']);
+            unset($goods_list[$key]['xianshi_flag']);
+
+            // 品牌名
+            $brand = Model()->table("brand")->find($value['brand_id']);
+            if (!empty($brand)) {
+                $value['brand_name'] = $brand['brand_name'];
+            }
+
+            // 分类
+            $gc_info = Model()->table('goods_class')->find($value['gc_id']);
+            if (!empty($gc_info)) {
+                $value['gc_name'] = $gc_info['gc_name'];
+            }
+
+            // 功效列表
+            $goods_common = Model('goods');
+            $goods_common_info = $goods_common->getGoodeCommonInfoByID($value['goods_commonid']);
+            if (!empty($goods_common_info)) {
+                $value['goods_attr'] = $this->parse_efficacy(unserialize($goods_common_info['goods_attr']));
+            }
+        }
+
+        return $goods_list;
+    }
+
+    private function parse_efficacy($goods_attr)
+    {
+        foreach ($goods_attr as $key => $val)
+        {
+            $attr_item['goods_attr_id'] = intval($key);
+            $attr_item['goods_attr_name'] = $val['name'];
+            if ($attr_item['goods_attr_name'] === '功效')
+            {
+                $goods_attr_value = array();
+                foreach ($val as $id => $name)
+                {
+                    if ($id !== 'name') {
+                        $val_item['value_id'] = intval($id);
+                        $val_item['value_name'] = $name;
+                        array_push($goods_attr_value, $val_item);
+                    }
+                }
+                $attr_item['goods_attr_value'] = $goods_attr_value;
+                break;
+            }
+        }
+        return $attr_item;
+    }
+
+}

+ 62 - 0
helper/kdn_helper.php

@@ -0,0 +1,62 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: stanley-king
+ * Date: 16/3/30
+ * Time: 下午5:10
+ */
+
+class kdn_helper
+{
+    const req_url = 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx';
+
+    static public function query($shipperCode, $logisticCode)
+    {
+        $requestData = "{\"OrderCode\":\"\",\"ShipperCode\":\"" . $shipperCode . "\",\"LogisticCode\":\"" . $logisticCode . "\"}";
+        $datas = array(
+            'EBusinessID' => '1256051',
+            'RequestType' => '1002',
+            'RequestData' => urlencode($requestData),
+            'DataType' => '2',
+            'DataSign' => self::encrypt($requestData, '6718d260-e2b6-4329-ad78-daff173309ac')
+        );
+        $result = http_post_data(self::req_url,$datas);
+        return $result;
+    }
+
+    static private function encrypt($data, $appkey)
+    {
+        return urlencode(base64_encode(md5($data . $appkey)));
+    }
+
+    static public function subscribe($order_sn)
+    {
+        $model_order = Model('order');
+        $condition['order_sn'] = $order_sn;
+        $order_info = $model_order->getOrderInfo($condition, array('order_common', 'order_goods'));
+        // 发送快递鸟订阅回调
+        $express = rkcache('express', true);
+        $e_code = $express[$order_info['extend_order_common']['shipping_express_id']]['e_kdn_code'];
+        // 通知订阅, 快递鸟定时回调
+        $ret = self::req_subscribe($e_code, $order_info['shipping_code'], $order_sn);
+        if($ret === false) {
+            Log::record("kdn_helper::subscribe order_sn={$order_sn} error.",Log::ERR);
+        } else {
+            Log::DEBUG("kdn_helper::subscribe ret={$ret}",Log::DEBUG);
+        }
+    }
+
+    static private function req_subscribe($shipperCode, $logisticCode, $order_sn)
+    {
+        $requestData = "{\"OrderCode\":\"\",\"ShipperCode\":\"" . $shipperCode . "\",\"LogisticCode\":\"" . $logisticCode . "\" Bk\":\"" . $order_sn . "\"}";
+        $datas = array(
+            'EBusinessID' => '1256051',
+            'RequestType' => '1005',
+            'RequestData' => urlencode($requestData),
+            'DataType' => '2',
+            'DataSign' => self::encrypt($requestData, '6718d260-e2b6-4329-ad78-daff173309ac')
+        );
+        $result = http_post_data(self::req_url, $datas);
+        return $result;
+    }
+}

+ 0 - 7
mobile/control/home.php

@@ -1,7 +0,0 @@
-<?php
-/**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 16/3/29
- * Time: 下午6:01
- */

+ 20 - 0
mobile/control/index.php

@@ -10,6 +10,8 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
+require_once(BASE_ROOT_PATH . '/helper/goods_helper.php');
+
 class indexControl extends mobileHomeControl
 {
     private $mb_special;
@@ -206,4 +208,22 @@ class indexControl extends mobileHomeControl
 
         output_data(array('version' => $version, 'url' => $url));
     }
+
+    public function all_goodsOp()
+    {
+        $goods_ids = rkcache('home_goods',true);
+
+        $ret = array_chunk($goods_ids,$this->page_size());
+        $pages = count($ret);
+        $page_no = $pages >= $this->page_no() ? $this->page_no() : $pages;
+        $goods_ids = $ret[$page_no - 1];
+
+        //所需字段
+        $fieldstr = 'goods_id,goods_commonid,store_id,brand_id,gc_id,goods_name,goods_price,goods_marketprice,
+        goods_image,goods_salenum,evaluation_good_star,evaluation_count,goods_storage,goods_storage_alarm,is_virtual,is_presell,is_fcode,have_gift';
+
+        $helper = new goods_helper();
+        $goods_list = $helper->get_infos($goods_ids,$fieldstr);
+        self::outsuccess(array('goods_list' => $goods_list, 'mobile_page' => mobile_page($pages)));
+    }
 }

+ 2 - 1
mobile/control/login.php

@@ -126,7 +126,8 @@ class loginControl extends mobileHomeControl
         }
 
         $member_info = $model_member->getMemberInfo($conditions,self::$fields);
-        field_helper::validate_null_string($member_info,'member_mobile,member_wxopenid,member_name,member_truename,member_avatar,member_email,member_birthday');
+        field_helper::validate_null_string($member_info,'member_mobile,member_wxopenid,member_name,member_nickname,member_truename,
+        member_signname,member_avatar,member_email,member_birthday');
         field_helper::validate_null_int($member_info,'member_sex',0);
 
         return $member_info;

+ 43 - 29
mobile/control/member_info.php

@@ -13,52 +13,66 @@ class member_infoControl extends mbMemberControl
 
     public function getinfoOp()
     {
+        $fields = array('member_sex','member_nickname','member_truename','member_signname','member_birthday','member_mobile');
+
         $ret = array();
-        $ret['member_name'] = $_SESSION['member_name'];
-        if (empty($_SESSION['member_name'])) {
-            $ret['member_name'] = '新用户';
-        }
-        if ($_SESSION['member_sex'] == 1) {
-            $ret['member_sex'] = '1';
-        } else {
-            $ret['member_sex'] = '0';
+        foreach($fields as $val)
+        {
+            if(array_key_exists($val,$_SESSION)) {
+                $ret[$val] = $_SESSION[$val];
+            }
         }
 
-        $ret['member_mobile'] = $_SESSION['member_mobile'];
         self::outsuccess($ret);
     }
 
     public function updateinfoOp()
     {
-        $member_name = urldecode($_GET['member_name']);
-        $member_sex = urldecode($_GET['member_sex']);
+        $member_nickname = urldecode($_GET['nickname']);
+        $member_truename = urldecode($_GET['truename']);
+        $member_signname = urldecode($_GET['signname']);
+        $member_sex = trim(urldecode($_GET['sex']));
+        $member_birthday = trim(urldecode(($_GET['birthday'])));
 
-        if (empty($member_name) && is_numeric($member_sex) ) {
-            return self::outerr(errcode::ErrInputParam);
+        $update = array();
+        if (!empty($member_sex) && is_numeric($member_sex) )
+        {
+            $iSex = intval($member_sex);
+            if($iSex == 0 || $iSex == 1) {
+                $update['member_sex'] = $member_sex;
+            }
         }
-
-        $data = array();
-        if(!empty($member_name)) {
-            $data['member_name'] = $member_name;
+        if(!empty($member_nickname)) {
+            $update['member_nickname'] = $member_nickname;
         }
-        $iSex = intval($member_sex);
-        if($iSex == 0 || $iSex ==1) {
-            $data['member_sex'] = $iSex;
+        if(!empty($member_truename)) {
+            $update['member_truename'] = $member_truename;
+        }
+        if(!empty($member_signname)) {
+            $update['member_signname'] = $member_signname;
+        }
+        if(!empty($member_birthday)) {
+            $member_birthday = strftime ("%Y-%m-%d",$member_birthday);
+            $update['member_birthday'] = $member_birthday;
         }
 
-        if(empty($data)) {
+        if(empty($update)) {
             return self::outerr(errcode::ErrInputParam);
         }
-        $ret = Model('member')->editMember(array('member_id' => $_SESSION['member_id']),$data);
-
-        //todo 这下面$result['ret'] 什么意思
-        if ($ret) {
-            $result['ret'] = 1;
-        } else {
-            $result['ret'] = 0;
+        $ret = Model('member')->editMember(array('member_id' => $_SESSION['member_id']),$update);
+        if($ret)
+        {
+            foreach($update as $key => $val)
+            {
+                if($key == 'member_birthday') {
+                    $_SESSION[$key] = strtotime($val);
+                } else {
+                    $_SESSION[$key] = $val;
+                }
+            }
         }
 
-        self::outsuccess($result);
+        self::outsuccess(array('ret' => $ret ? 1 : 0));
     }
 
     public function modifypassOp()

+ 25 - 123
mobile/control/member_order.php

@@ -12,6 +12,8 @@
 
 defined('InShopNC') or exit('Access Invalid!');
 
+require_once(BASE_ROOT_PATH . '/helper/kdn_helper.php');
+
 class member_orderControl extends mbMemberControl
 {
     public function __construct()
@@ -44,7 +46,8 @@ class member_orderControl extends mbMemberControl
         $order_list_array = $model_order->getNormalOrderList($condition, $this->page, '*', 'order_id desc', '', array('order_address', 'order_goods'));
         $order_group_list = array();
         $order_pay_sn_array = array();
-        foreach ($order_list_array as $value) {
+        foreach ($order_list_array as $value) 
+        {
             //显示取消订单
             $value['if_cancel'] = $model_order->getOrderOperateState('buyer_cancel', $value);
             //显示收货
@@ -81,12 +84,13 @@ class member_orderControl extends mbMemberControl
         $model_order->cls();
 
         $array_data = array('order_group_list' => $new_order_group_list);
-        if (isset($_GET['getpayment']) && $_GET['getpayment'] == "true") {
+        if (isset($_GET['getpayment']) && $_GET['getpayment'] == "true") 
+        {
             $model_mb_payment = Model('mb_payment');
-
             $payment_list = $model_mb_payment->getMbPaymentOpenList();
             $payment_array = array();
-            if (!empty($payment_list)) {
+            if (!empty($payment_list)) 
+            {
                 foreach ($payment_list as $value) {
                     $payment_array[] = array('payment_code' => $value['payment_code'], 'payment_name' => $value['payment_name']);
                 }
@@ -95,7 +99,7 @@ class member_orderControl extends mbMemberControl
         }
 
         $array_data['mobile_page'] = mobile_page($page_count);
-        joutput_data($array_data);
+        self::outsuccess($array_data);
     }
 
     /**
@@ -110,8 +114,8 @@ class member_orderControl extends mbMemberControl
         $order_list_array = $model_order->getNormalOrderList($condition, $this->page, '*', 'order_id desc', '', array('order_address', 'order_goods'));
 
         $array_data = array();
-        foreach ($order_list_array as $value) {
-
+        foreach ($order_list_array as $value)
+        {
             //显示取消订单
             $value['if_cancel'] = $model_order->getOrderOperateState('buyer_cancel', $value);
             //显示收货
@@ -127,7 +131,7 @@ class member_orderControl extends mbMemberControl
             $array_data[] = $value;
         }
 
-        joutput_data(array("order_list" => $array_data));
+        self::outsuccess(array("order_list" => $array_data));
     }
 
     /**
@@ -142,7 +146,7 @@ class member_orderControl extends mbMemberControl
         } else if (!empty($_POST['order_sn'])) {
             $condition['order_sn'] = trim($_POST['order_sn']);
         } else {
-            return joutput_error(errcode::ErrParamter, "请传入order_sn.");
+            return self::outerr(errcode::ErrParamter, "请传入order_sn.");
         }
 
         $model_order = Model('order');
@@ -154,18 +158,18 @@ class member_orderControl extends mbMemberControl
         $order_info = $model_order->getOrderInfo($condition);
 //        $if_allow = $model_order->getOrderOperateState('buyer_cancel', $order_info);
 //        if (!$if_allow) {
-//            return joutput_error(errcode::ErrOrder, '无权操作');
+//            return self::outerr(errcode::ErrOrder, '无权操作');
 //        }
         if ($order_info['order_state'] != ORDER_STATE_NEW) {
             Log::record("order_state = {$order_info['order_state']}.", Log::ERR);
-            return joutput_error(errcode::ErrOrder, "已支付和已发货订单不能取消.");
+            return self::outerr(errcode::ErrOrder, "已支付和已发货订单不能取消.");
         }
 
         $result = $logic_order->changeOrderStateCancel($order_info, 'buyer', $_SESSION['member_name'], '其它原因');
         if (!$result['state']) {
-            return joutput_error(errcode::ErrOrder, $result['msg']);
+            return self::outerr(errcode::ErrOrder, $result['msg']);
         } else {
-            joutput_data(array('result' => '1'));
+            self::outsuccess(array('result' => '1'));
         }
     }
 
@@ -183,15 +187,15 @@ class member_orderControl extends mbMemberControl
         $order_info = $model_order->getOrderInfo($condition);
         $if_allow = $model_order->getOrderOperateState('receive', $order_info);
         if (!$if_allow) {
-            return joutput_error(errcode::ErrOrder, '无权操作');
+            return self::outerr(errcode::ErrOrder, '无权操作');
         }
 
         $logic_order = Logic('order');
         $result = $logic_order->changeOrderStateReceive($order_info, 'buyer', $_SESSION['member_name']);
         if (!$result['state']) {
-            return joutput_error(errcode::ErrOrder, $result['msg']);
+            return self::outerr(errcode::ErrOrder, $result['msg']);
         } else {
-            joutput_data(array('result' => '1'));
+            self::outsuccess(array('result' => '1'));
         }
     }
 
@@ -208,7 +212,7 @@ class member_orderControl extends mbMemberControl
             Tpl::showpage('express_info');
             return;
         } else {
-            return joutput_error($this->err_code);
+            return self::outerr($this->err_code);
         }
 
         $order_id = intval($_POST['order_id']);
@@ -219,7 +223,7 @@ class member_orderControl extends mbMemberControl
                 Tpl::showpage('express_info');
                 return;
             } else {
-                return joutput_error(errcode::ErrOrder, '订单不存在');
+                return self::outerr(errcode::ErrOrder, '订单不存在');
             }
         }
 
@@ -235,7 +239,7 @@ class member_orderControl extends mbMemberControl
                 Tpl::showpage('express_info');
                 return;
             } else {
-                return joutput_error(errcode::ErrOrder, '订单不存在');
+                return self::outerr(errcode::ErrOrder, '订单不存在');
             }
         }
 
@@ -247,7 +251,7 @@ class member_orderControl extends mbMemberControl
         $deliver_info = rkcache($key);
         if (empty($deliver_info))
         {
-            $deliver_info = $this->getOrderTracesByJson($e_code, $order_info['shipping_code']);
+            $deliver_info = kdn_helper::query($e_code, $order_info['shipping_code']);
             if ($deliver_info === false || empty($deliver_info))
             {
                 Log::record("search_deliver:cannot query delivery info from kuaidn.",Log::ERR);
@@ -289,37 +293,6 @@ class member_orderControl extends mbMemberControl
     }
 
     /**
-     * 从第三方取快递信息
-     *
-     */
-    public function _get_express($e_code, $shipping_code)
-    {
-        $url = 'http://www.kuaidi100.com/query?type=' . $e_code . '&postid=' . $shipping_code . '&id=1&valicode=&temp=' . random(4) . '&sessionid=&tmp=' . random(4);
-        import('function.ftp');
-        $content = dfsockopen($url);
-        $content = json_decode($content, true);
-
-        if ($content['status'] != 200) {
-            joutput_error(errcode::ErrOrder, '物流信息查询失败');
-            return false;
-        }
-        $content['data'] = array_reverse($content['data']);
-        $output = array();
-        if (is_array($content['data'])) {
-            foreach ($content['data'] as $k => $v) {
-                if ($v['time'] == '') continue;
-                $output[] = $v['time'] . '&nbsp;&nbsp;' . $v['context'];
-            }
-        }
-        if (empty($output)) exit(json_encode(false));
-        if (strtoupper(CHARSET) == 'GBK') {
-            $output = Language::getUTF8($output);//网站GBK使用编码时,转换为UTF-8,防止json输出汉字问题
-        }
-
-        return $output;
-    }
-
-    /**
      * 获取不同状态下订单数量
      */
     public function orderCountStateOp()
@@ -328,77 +301,6 @@ class member_orderControl extends mbMemberControl
         $condition['buyer_id'] = $_SESSION['member_id'];
         $result = Model()->table('order')->field('order_state, count(*) as count')->where($condition)->group('order_state')->select();
 
-        joutput_data(array('order_count' => $result));
-    }
-
-    /**
-     * 快递鸟接口方式
-     * Json方式 查询订单物流轨迹
-     */
-    public function getOrderTracesByJson($shipperCode, $logisticCode)
-    {
-        $requestData = "{\"OrderCode\":\"\",\"ShipperCode\":\"" . $shipperCode . "\",\"LogisticCode\":\"" . $logisticCode . "\"}";
-        $datas = array(
-            'EBusinessID' => '1256051',
-            'RequestType' => '1002',
-            'RequestData' => urlencode($requestData),
-            'DataType' => '2',
-        );
-        $datas['DataSign'] = $this->encrypt($requestData, '6718d260-e2b6-4329-ad78-daff173309ac');
-        $result = $this->sendPost('http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx', $datas);
-        return $result;
-    }
-
-
-    /**
-     * 快递鸟接口方式
-     * post提交数据
-     * @param  string $url 请求Url
-     * @param  array $datas 提交的数据
-     * @return url响应返回的html
-     */
-    public function sendPost($url, $datas)
-    {
-        $temps = array();
-        foreach ($datas as $key => $value) {
-            $temps[] = sprintf('%s=%s', $key, $value);
-        }
-        $post_data = implode('&', $temps);
-        $url_info = parse_url($url);
-        $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
-        $httpheader .= "Host:" . $url_info['host'] . "\r\n";
-        $httpheader .= "Content-Type:application/x-www-form-urlencoded\r\n";
-        $httpheader .= "Content-Length:" . strlen($post_data) . "\r\n";
-        $httpheader .= "Connection:close\r\n\r\n";
-        $httpheader .= $post_data;
-        $fd = fsockopen($url_info['host'], 80);
-        fwrite($fd, $httpheader);
-
-        while (!feof($fd)) {
-            if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) {
-                break;
-            }
-        }
-
-        $gets = false;
-        while (!feof($fd)) {
-            $gets .= fread($fd, 128);
-        }
-        fclose($fd);
-
-        return $gets;
-    }
-
-
-    /**
-     * 快递鸟接口方式
-     * 电商Sign签名生成
-     * @param data
-     * @param appkey Appkey
-     * @return DataSign签名
-     */
-    public function encrypt($data, $appkey)
-    {
-        return urlencode(base64_encode(md5($data . $appkey)));
+        self::outsuccess(array('order_count' => $result));
     }
 }

+ 7 - 79
mobile/dispatch_notify.php

@@ -6,82 +6,13 @@
  * Time: 上午10:22
  */
 
-//tid-订单号,status-1,consign_time-发货时间,logistics_no-快递流水,logistics_company-快递公司
-fcgi_header("Content-Type: text/plain; charset=UTF-8");
-
-/**
- * Json方式  快递鸟物流信息订阅
- * @param int $code: 快递类型
- * @param array $no_list: 物流单号列表
- */
-function getOrderTracesSubByJson($shipperCode, $logisticCode, $order_sn){
-     $requestData = "{\"OrderCode\":\"\",\"ShipperCode\":\"" . $shipperCode . "\",\"LogisticCode\":\"" . $logisticCode . "\" Bk\":\"" . $order_sn . "\"}";
-        $datas = array(
-            'EBusinessID' => '1256051',
-            'RequestType' => '1005',
-            'RequestData' => urlencode($requestData),
-            'DataType' => '2',
-        );
-    $datas['DataSign'] = $this->encrypt($requestData, '6718d260-e2b6-4329-ad78-daff173309ac');
-    $result = sendPost('http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx', $datas);
-    return $result;
-}
-
-/**
- *  post提交数据 
- * @param  string $url 请求Url
- * @param  array $datas 提交的数据 
- * @return url响应返回的html
- */
-function sendPost($url, $datas) {
-    $temps = array();   
-    foreach ($datas as $key => $value) {
-        $temps[] = sprintf('%s=%s', $key, $value);      
-    }   
-    $post_data = implode('&', $temps);
-    $url_info = parse_url($url);
-    $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
-    $httpheader.= "Host:" . $url_info['host'] . "\r\n";
-    $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n";
-    $httpheader.= "Content-Length:" . strlen($post_data) . "\r\n";
-    $httpheader.= "Connection:close\r\n\r\n";
-    $httpheader.= $post_data;
-    $fd = fsockopen($url_info['host'], 80);
-    fwrite($fd, $httpheader);
-    $gets = ""; 
-     while (!feof($fd)) {
-        if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) {
-            break;
-        }
-    }
-    while (!feof($fd)) {
-        $gets.= fread($fd, 128);
-    }
-    fclose($fd);  
-    
-    return $gets;
-}
-
-/**
- *  通知快递鸟订阅回调 
- * @param  string $url 请求Url
- * @param  array $datas 提交的数据 
- * @return url响应返回的html
- */
-function notify_kdniao($order_sn) {
-
-    $model_order = Model('order');
-    $condition['order_sn'] = $order_sn;
-    $order_info = $model_order->getOrderInfo($condition, array('order_common', 'order_goods'));
-    // 发送快递鸟订阅回调
-    $express = rkcache('express', true);
-    $e_code = $express[$order_info['extend_order_common']['shipping_express_id']]['e_kdn_code'];
-    // 通知订阅, 快递鸟定时回调
-    getOrderTracesSubByJson($e_code, $order_info['shipping_code'], $order_sn);
-}
+require_once(BASE_ROOT_PATH . '/helper/kdn_helper.php');
 
+fcgi_header("Content-Type: text/plain; charset=UTF-8");
 try
 {
+    //tid-订单号,status-1,consign_time-发货时间,logistics_no-快递流水,logistics_company-快递公司
+
     $order_sn = trim($_POST['tid']);
     $status = intval($_POST['status']);
     $consign_time = urldecode(trim($_POST['consign_time']));
@@ -98,7 +29,6 @@ try
     }
 
     $shipping_express_id = $express[0]['id'];
-
     $remote_addr = $_SERVER['REMOTE_ADDR'];
 
     if(!empty($order_sn) && !empty($logistics_no))
@@ -108,16 +38,14 @@ try
             $order = Model('order');
             $ret = $order->setOrderDelivery($order_sn,$shipping_express_id,$logistics_no,$ship_time);
             if($ret) {
-                // 通知快递鸟回调
-                notify_kdniao($order_sn);
+                kdn_helper::subscribe($order_sn);
                 echo 'SUCCESS';
             } else {
                 echo 'AGAIN';
             }
         }
         else{
-            // 通知快递鸟回调
-            notify_kdniao($order_sn);
+            kdn_helper::subscribe($order_sn);
             echo 'SUCCESS';
         }
     }
@@ -126,7 +54,7 @@ try
         echo 'FAIL';
     }
 }
-catch (WxPayException $e)
+catch (Exception $e)
 {
     Log::record($e->errorMessage(),Log::ERR);
     echo 'AGAIN';

+ 16 - 0
run.php

@@ -3,6 +3,22 @@
 
 define('InShopNC',true);
 
+function is_date($time)
+{
+    $pattern = '/[\d]{4}-[\d]{1,2}-[\d]{1,2}/';
+
+    return (preg_match($pattern, $time) == 1);
+}
+
+$x = '1978-02-05';
+$y = is_date($x);
+
+$x = time();
+
+$member_birthday = strftime ("%Y-%m-%d","{$x}");
+
+$time = strtotime($member_birthday);
+
 
 $str = NULL;
 $y = '';