|
@@ -12,7 +12,7 @@
|
|
|
|
|
|
defined('InShopNC') or exit('Access Invalid!');
|
|
|
|
|
|
-class member_orderControl extends mobileMemberControl
|
|
|
+class member_orderControl extends mbMemberControl
|
|
|
{
|
|
|
|
|
|
public function __construct()
|
|
@@ -25,13 +25,15 @@ class member_orderControl extends mobileMemberControl
|
|
|
*/
|
|
|
public function order_listOp()
|
|
|
{
|
|
|
- $model_order = Model('order');
|
|
|
+ $token = trim($_GET['key']);
|
|
|
+ if (false == $this->checkToken($token)) {
|
|
|
+ return joutput_error($this->err_code);
|
|
|
+ }
|
|
|
|
|
|
+ $model_order = Model('order');
|
|
|
$condition = array();
|
|
|
$condition['buyer_id'] = $this->member_info['member_id'];
|
|
|
-
|
|
|
$order_list_array = $model_order->getNormalOrderList($condition, 30, '*', 'order_id desc', '', array('order_address', 'order_goods'));
|
|
|
-
|
|
|
$order_group_list = array();
|
|
|
$order_pay_sn_array = array();
|
|
|
foreach ($order_list_array as $value) {
|
|
@@ -82,9 +84,6 @@ class member_orderControl extends mobileMemberControl
|
|
|
}
|
|
|
$array_data['payment_list'] = $payment_array;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- //output_data(array('order_group_list' => $array_data), mobile_page($page_count));
|
|
|
joutput_data($array_data, mobile_page($page_count));
|
|
|
}
|
|
|
|
|
@@ -93,16 +92,18 @@ class member_orderControl extends mobileMemberControl
|
|
|
*/
|
|
|
public function order_infoOp()
|
|
|
{
|
|
|
- $model_order = Model('order');
|
|
|
+ $token = trim($_GET['key']);
|
|
|
+ if (false == $this->checkToken($token)) {
|
|
|
+ return joutput_error($this->err_code);
|
|
|
+ }
|
|
|
|
|
|
+ $model_order = Model('order');
|
|
|
$condition = array();
|
|
|
$condition['buyer_id'] = $this->member_info['member_id'];
|
|
|
$condition['pay_sn'] = $_POST['pay_sn'];
|
|
|
-
|
|
|
$order_list_array = $model_order->getNormalOrderList($condition, $this->page, '*', 'order_id desc', '', array('order_address', 'order_goods'));
|
|
|
|
|
|
- $array_data = [];
|
|
|
-
|
|
|
+ $array_data = array();
|
|
|
foreach ($order_list_array as $value) {
|
|
|
|
|
|
//显示取消订单
|
|
@@ -128,11 +129,16 @@ class member_orderControl extends mobileMemberControl
|
|
|
*/
|
|
|
public function order_cancelOp()
|
|
|
{
|
|
|
+ $token = trim($_GET['key']);
|
|
|
+ if (false == $this->checkToken($token)) {
|
|
|
+ return joutput_error($this->err_code);
|
|
|
+ }
|
|
|
+
|
|
|
$condition = array();
|
|
|
- if(!empty($_POST['order_id'])) {
|
|
|
+ if (!empty($_POST['order_id'])) {
|
|
|
$order_id = intval($_POST['order_id']);
|
|
|
$condition['order_id'] = $order_id;
|
|
|
- } else if(!empty($_POST['order_sn'])) {
|
|
|
+ } else if (!empty($_POST['order_sn'])) {
|
|
|
$condition['order_sn'] = trim($_POST['order_sn']);
|
|
|
} else {
|
|
|
return joutput_error(errcode::ErrParamter, "请传入order_sn.");
|
|
@@ -142,15 +148,15 @@ class member_orderControl extends mobileMemberControl
|
|
|
$logic_order = Logic('order');
|
|
|
|
|
|
$condition['buyer_id'] = $this->member_info['member_id'];
|
|
|
- Log::record("buyer_id = {$condition['buyer_id']}",Log::DEBUG);
|
|
|
+ Log::record("buyer_id = {$condition['buyer_id']}", Log::DEBUG);
|
|
|
|
|
|
$order_info = $model_order->getOrderInfo($condition);
|
|
|
// $if_allow = $model_order->getOrderOperateState('buyer_cancel', $order_info);
|
|
|
// if (!$if_allow) {
|
|
|
// return joutput_error(errcode::ErrOrder, '无权操作');
|
|
|
// }
|
|
|
- if($order_info['order_state'] != ORDER_STATE_NEW) {
|
|
|
- Log::record("order_state = {$order_info['order_state']}.",Log::ERR);
|
|
|
+ if ($order_info['order_state'] != ORDER_STATE_NEW) {
|
|
|
+ Log::record("order_state = {$order_info['order_state']}.", Log::ERR);
|
|
|
return joutput_error(errcode::ErrOrder, "已支付和已发货订单不能取消.");
|
|
|
}
|
|
|
|
|
@@ -167,6 +173,11 @@ class member_orderControl extends mobileMemberControl
|
|
|
*/
|
|
|
public function order_receiveOp()
|
|
|
{
|
|
|
+ $token = trim($_GET['key']);
|
|
|
+ if (false == $this->checkToken($token)) {
|
|
|
+ return joutput_error($this->err_code);
|
|
|
+ }
|
|
|
+
|
|
|
$model_order = Model('order');
|
|
|
$logic_order = Logic('order');
|
|
|
$order_id = intval($_POST['order_id']);
|
|
@@ -193,44 +204,67 @@ class member_orderControl extends mobileMemberControl
|
|
|
*/
|
|
|
public function search_deliverOp()
|
|
|
{
|
|
|
-// $order_id = intval($_POST['order_id']);
|
|
|
-// if ($order_id <= 0) {
|
|
|
-// return joutput_error(errcode::ErrOrder, '订单不存在');
|
|
|
-// }
|
|
|
-// $model_order = Model('order');
|
|
|
-// $condition['order_id'] = $order_id;
|
|
|
-// $condition['buyer_id'] = $this->member_info['member_id'];
|
|
|
-// $order_info = $model_order->getOrderInfo($condition, array('order_common', 'order_goods'));
|
|
|
-//
|
|
|
-// if (empty($order_info) || !in_array($order_info['order_state'], array(ORDER_STATE_SEND, ORDER_STATE_SUCCESS))) {
|
|
|
-// return joutput_error(errcode::ErrOrder, '订单不存在');
|
|
|
-// }
|
|
|
-//
|
|
|
-// $express = rkcache('express', true);
|
|
|
-// $e_code = $express[$order_info['extend_order_common']['shipping_express_id']]['e_code'];
|
|
|
-// $e_name = $express[$order_info['extend_order_common']['shipping_express_id']]['e_name'];
|
|
|
-//
|
|
|
-// $key = "express_" . $order_info['shipping_code'];
|
|
|
-// $deliver_info = rkcache($key);
|
|
|
-// if(empty($deliver_info))
|
|
|
-// {
|
|
|
-// $deliver_info = $this->_get_express($e_code, $order_info['shipping_code']);
|
|
|
-// if ($deliver_info === false) {
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// wkcache($key,$deliver_info,3600);
|
|
|
-// }
|
|
|
+ $token = trim($_GET['key']);
|
|
|
+ if (false == $this->checkToken($token)) {
|
|
|
+ return joutput_error($this->err_code);
|
|
|
+ }
|
|
|
|
|
|
- $e_name = '韵达';
|
|
|
- $deliver_info = $this->_get_express('shentong', '3304531668888');
|
|
|
+ $order_id = intval($_POST['order_id']);
|
|
|
+ if ($order_id <= 0) {
|
|
|
+ return joutput_error(errcode::ErrOrder, '订单不存在');
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * TODO:后台有合适的订单后,开启此注释进行调试
|
|
|
+ *
|
|
|
+ $model_order = Model('order');
|
|
|
+ $condition['order_id'] = $order_id;
|
|
|
+ $condition['buyer_id'] = $this->member_info['member_id'];
|
|
|
+ $order_info = $model_order->getOrderInfo($condition, array('order_common', 'order_goods'));
|
|
|
|
|
|
+ if (empty($order_info) || !in_array($order_info['order_state'], array(ORDER_STATE_SEND, ORDER_STATE_SUCCESS))) {
|
|
|
+ return joutput_error(errcode::ErrOrder, '订单不存在');
|
|
|
+ }
|
|
|
|
|
|
- //print_r($deliver_info);
|
|
|
- //joutput_data(array('express_name' => $e_name, 'shipping_code' => $order_info['shipping_code'], 'deliver_info' => $deliver_info));
|
|
|
+ $express = rkcache('express', true);
|
|
|
+ $e_code = $express[$order_info['extend_order_common']['shipping_express_id']]['e_code'];
|
|
|
+ $e_name = $express[$order_info['extend_order_common']['shipping_express_id']]['e_name'];
|
|
|
+
|
|
|
+ $key = "express_" . $order_info['shipping_code'];
|
|
|
+ $deliver_info = rkcache($key);
|
|
|
+ if(empty($deliver_info))
|
|
|
+ {
|
|
|
+ $deliver_info = $this->_get_express($e_code, $order_info['shipping_code']);
|
|
|
+ if ($deliver_info === false) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ wkcache($key,$deliver_info,3600);
|
|
|
+ }
|
|
|
+ */
|
|
|
+
|
|
|
+ /*
|
|
|
+ * TODO: 需要将shopnc后台的物流公司简称与快递鸟中物流公司的简称进行一一映射
|
|
|
+ */
|
|
|
+ $deliver_info = $this->getOrderTracesByJson('STO', '3304699247030');
|
|
|
+ $deliver_info = json_decode($deliver_info, true);
|
|
|
+ $routes = $deliver_info['Traces'];
|
|
|
+ krsort($routes);
|
|
|
+ switch ($deliver_info['State']) {
|
|
|
+ case '1':
|
|
|
+ break;
|
|
|
+ case '2':
|
|
|
+ $msg = '在途中';
|
|
|
+ break;
|
|
|
+ case '3':
|
|
|
+ $msg = '已签收';
|
|
|
+ break;
|
|
|
+ case '4':
|
|
|
+ $msg = '问题件';
|
|
|
+ break;
|
|
|
+ }
|
|
|
|
|
|
- Tpl::output('express_name', $e_name);
|
|
|
- Tpl::output('shipping_code', '3100969587588');//$order_info['shipping_code']);
|
|
|
- Tpl::output('deliver_info', $deliver_info);
|
|
|
+ Tpl::output('msg_statu', $msg);
|
|
|
+ Tpl::output('LogisticCode', $deliver_info['LogisticCode']);
|
|
|
+ Tpl::output('routes', $routes);
|
|
|
Tpl::showpage('express_info');
|
|
|
}
|
|
|
|
|
@@ -270,10 +304,83 @@ class member_orderControl extends mobileMemberControl
|
|
|
*/
|
|
|
public function orderCountStateOp()
|
|
|
{
|
|
|
+ $token = trim($_GET['key']);
|
|
|
+ if (false == $this->checkToken($token)) {
|
|
|
+ return joutput_error($this->err_code);
|
|
|
+ }
|
|
|
+
|
|
|
$condition = array();
|
|
|
$condition['buyer_id'] = $this->member_info['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);
|
|
|
+ $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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 快递鸟接口方式
|
|
|
+ * 电商Sign签名生成
|
|
|
+ * @param data
|
|
|
+ * @param appkey Appkey
|
|
|
+ * @return DataSign签名
|
|
|
+ */
|
|
|
+ public function encrypt($data, $appkey)
|
|
|
+ {
|
|
|
+ return urlencode(base64_encode(md5($data . $appkey)));
|
|
|
+ }
|
|
|
}
|