Пример #1
0
    public function view_fetchAliOrderDetailByOrderId()
    {
        $orderid = isset($_GET['orid']) ? trim($_GET['orid']) : FALSE;
        $account = isset($_GET['account']) ? trim($_GET['account']) : FALSE;
        $receiverid = $account;
        if (empty($receiverid)) {
            $returndata['errCode'] = 3;
            $returndata['errMsg'] = '缺少卖家账号!';
            echo json_encode($returndata);
            exit;
        }
        if (empty($orderid)) {
            //订单号不存在
            $returndata['errCode'] = 3;
            $returndata['errMsg'] = '缺少订单号!';
            echo json_encode($returndata);
            exit;
        }
        $tokenfilepath = WEB_PATH . "lib/ali_keys/config_{$receiverid}.php";
        if (!file_exists($tokenfilepath)) {
            $returndata['errCode'] = 2;
            $returndata['errMsg'] = '没找到messsage信息!';
            echo json_encode($returndata);
            exit;
        }
        include_once '' . $tokenfilepath;
        include_once WEB_PATH . 'lib/AliMessage.class.php';
        $ali_obj = new AliMessage();
        $ali_obj->setConfig($appKey, $appSecret, $refresh_token);
        $ali_obj->doInit();
        //$orderid = '60637623549259';
        $detail = $ali_obj->fetchOrderdetail($orderid);
        if ($detail == FALSE) {
            //获取消息失败
            $returndata['errCode'] = 4;
            $returndata['errMsg'] = '获取订单详情失败!';
            echo json_encode($returndata);
            exit;
        }
        //print_r($detail);exit;
        $alimsg_obj = new AliOderMessageModel();
        $time = $detail['gmtCreate'];
        $year = substr($time, 0, 4);
        //年
        $month = substr($time, 4, 2);
        //月
        $day = substr($time, 6, 2);
        //日
        $time = $month . '/' . $day . '/' . $year;
        $timeend = $month . '/' . (intval($day) + 1) . '/' . $year;
        $skustr = '';
        foreach ($detail['childOrderList'] as $sku) {
            $skucode = substr($sku['skuCode'], 0, strlen($sku['skuCode']) - 1);
            $tmpstr = $skucode;
            $hstr = strrchr($tmpstr, '*');
            //处理组合料号
            $tmpstr = $hstr === FALSE ? $tmpstr : ltrim($hstr, '*');
            $spu = explode('_', $tmpstr);
            $spu = $spu[0];
            $attr = json_decode($sku[productAttributes], TRUE);
            $skuimgurl = getSkuImg($spu, $tmpstr, 'G');
            $attrinfo = json_decode($sku['productAttributes'], TRUE);
            $attrstr = array();
            if (isset($sku['productAttributes']) && !empty($attrinfo['sku'])) {
                foreach ($attrinfo['sku'] as $attrval) {
                    $attrstr[] = $attrval['pName'] . ':' . $attrval['pValue'];
                }
            }
            $attrstr = implode('<br>', $attrstr);
            $skustr .= <<<EOF
\t\t\t\t<tr>
\t\t\t\t\t\t<td>
\t\t\t\t\t\t\t<img src="{$skuimgurl}" width="50" height="50">
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td align="left">
\t\t\t\t\t\t<a href="http://www.aliexpress.com/item/something/{$sku['productId']}.html" target="_blank">{$sku['productName']}</a>
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td>
\t\t\t\t\t\t          {$attrstr}
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td>
\t\t\t\t\t\t        {$skucode}
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td>
\t\t\t\t\t\t        {$sku['productCount']}
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td>
\t\t\t\t\t           {$sku[productPrice][currency][symbol]}{$sku[productPrice][amount]}
\t\t\t\t\t\t</td>
\t\t\t\t\t</tr>
EOF;
        }
        $skulist = <<<EOF
\t\t\t\t\t<tr class="title">
\t\t\t\t\t\t<td>
\t\t\t\t\t\t\t图片
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td>
\t\t\t\t\t\t\t标题
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td style="width:60px;">
\t\t\t\t\t\t\t属性
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td>
\t\t\t\t\t\t\tSKU
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td style="width:60px;">
\t\t\t\t\t\t\t数量
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td>
\t\t\t\t\t\t\t单价
\t\t\t\t\t\t</td>
\t\t\t\t\t</tr>
                    {$skustr}
EOF;
        //计算倒计时
        $timeStr = '';
        if ($detail['orderStatus'] == 'RISK_CONTROL') {
            //计算风控倒计时
            $paytimestamp = aliTranslateTime($detail['gmtPaySuccess']);
            //付款时间戳
            $riskendtime = $paytimestamp + 86400;
            $timeStr = date('m/d/Y H:i:s', $riskendtime);
            //风控结束时间字符串表示
            $timeStr = $riskendtime;
        } elseif ($detail['logisticsStatus'] == 'SELLER_SEND_GOODS' && $detail['orderStatus'] != 'FINISH') {
            $sendTimeStamp = aliTranslateTime($detail['logisticInfoList'][0]['gmtSend']);
            //发货时间戳
            $days = $alimsg_obj->culculateCountdown($receiverid, $detail['logisticInfoList'][0]['logisticsTypeCode'], $detail['receiptAddress']['country']);
            if ($days === FALSE) {
                $timeStr = AliOderMessageModel::$errMsg;
            } else {
                $endtime = $sendTimeStamp + $days * 86400;
                $timeStr = $endtime;
            }
        }
        //物流信息
        $shipstr = '';
        if (isset($detail['logisticInfoList'][0])) {
            $shipstr .= '运输方式:' . $detail['logisticInfoList'][0]['logisticsTypeCode'] . '<br>';
            $carrier = $detail['logisticInfoList'][0]['logisticsTypeCode'];
            $tracksn = $detail['logisticInfoList'][0]['logisticsNo'];
            $trackstr = <<<EOF
            <a href="javascript:queryExpressInfo('aliexpress', '{$carrier}', '{$tracksn}', 'zh')">{$tracksn}</a>
EOF;
            $shipstr .= '跟踪号:' . $trackstr . '<br>';
        }
        $returndata['errCode'] = 5;
        $returndata['errMsg'] = '成功!';
        $returndata['data'] = array('buyer' => $detail['buyerInfo']['firstName'] . $detail['buyerInfo']['lastName'], 'seller' => $detail['sellerOperatorLoginId'], 'orderId' => $orderid, 'createtime' => formateAliTime($detail['gmtCreate']), 'paytime' => !empty($detail['gmtPaySuccess']) ? formateAliTime($detail['gmtPaySuccess']) : '未付款', 'initOderAmount' => $detail['initOderAmount']['currency']['symbol'] . $detail['initOderAmount']['amount'], 'OderAmount' => $detail['orderAmount']['currency']['symbol'] . $detail['orderAmount']['amount'], 'paytype' => '-----', 'fundStatus' => $this->status2str($detail['fundStatus']), 'loanStatus' => $this->status2str($detail['loanStatus']), 'issueStatus' => $this->status2str($detail['issueStatus']), 'issuscolor' => $detail['issueStatus'] == 'NO_ISSUE' ? 'green' : 'red', 'orderstatus' => $this->status2str($detail['orderStatus']), 'logisticsStatus' => $this->status2str($detail['logisticsStatus']), 'logisticsMoney' => $detail['logisticsAmount']['amount'], 'mobileNo' => $detail['receiptAddress']['mobileNo'], 'phoneNumber' => $detail['receiptAddress']['phoneArea'] . '-' . $detail['receiptAddress']['phoneNumber'], 'address' => $detail['receiptAddress']['detailAddress'] . ' ' . $detail['receiptAddress']['city'] . ' ' . $detail['receiptAddress']['province'] . ' ' . $detail['receiptAddress']['country'], 'skulist' => $skulist, 'refund' => isset($detail['refundInfo']) ? '退款状态' . $detail['refundInfo']['refundStatus'] . '<br>' . '退款类型' . $detail['refundInfo']['refundType'] : '', 'logisticInfo' => $shipstr, 'buyerSignerFullname' => isset($detail['buyerSignerFullname']) ? $detail['buyerSignerFullname'] : '', 'zip' => isset($detail['receiptAddress']['zip']) ? $detail['receiptAddress']['zip'] : '', 'email' => isset($detail['buyerInfo']['email']) ? $detail['buyerInfo']['email'] : '', 'timestr' => $timeStr, 'commission' => '$' . round($detail['orderAmount']['amount'] * 0.05, 2), 'profit' => '$' . round($detail['orderAmount']['amount'] * 0.95, 2));
        if (isset($detail['logisticInfoList'][0]['gmtSend'])) {
            $timeinfo = extractAliTimeInfo($detail['logisticInfoList'][0]['gmtSend']);
            $returndata['data']['shippedtime'] = $timeinfo['year'] . '-' . $timeinfo['month'] . '-' . $timeinfo['day'] . ' ' . $timeinfo['hour'] . ':' . $timeinfo['minit'] . ':' . $timeinfo['second'];
        } else {
            $returndata['data']['shippedtime'] = '';
        }
        $accountname = aliAccountf2Name($detail['sellerOperatorLoginId']);
        if ($accountname == FALSE) {
            //没找到对应关系
            $accountname == '';
        }
        $accountname = aliAccountf2Name($account);
        if ($accountname == FALSE) {
            //没找到对应关系
            $accountname == '';
        }
        $result_sys = getOpenSysApi('aliExpressOrderInfo', array('type' => 'orderinfo', 'recordnumber' => $orderid, 'selleraccount' => $accountname));
        if (!empty($result_sys['data'])) {
            $returndata['data']['systemnum'] = $result_sys['data'][0]['ebay_id'];
            //系统编号
            $returndata['data']['syscarrer'] = $result_sys['data'][0]['ebay_carrier'];
            //运输方式
            $returndata['data']['systracknumber'] = $result_sys['data'][0]['ebay_tracknumber'];
            //跟踪号
            //     		$returndata['data']['shippedtime']    = empty($result_sys['data'][0]['ShippedTime']) ? '' : date('Y-m-d H:i:s', $result_sys['data'][0]['ShippedTime']);  //发货时间
            $returndata['data']['status'] = $result_sys['data'][0]['catename'];
            //发货状态
            $returndata['data']['ebay_note'] = $result_sys['data'][0]['note'];
            //订单留言
        } else {
            $returndata['data']['systemnum'] = '';
            //系统编号
            $returndata['data']['syscarrer'] = '';
            //运输方式
            $returndata['data']['systracknumber'] = '';
            //跟踪号
            //     	    $returndata['data']['shippedtime']    = '';                 //发货时间
            $returndata['data']['status'] = '';
            //发货状态
            $returndata['data']['ebay_note'] = '';
        }
        //             	print_r($returndata);exit;
        echo json_encode($returndata);
    }
Пример #2
0
 public function view_getAliSiteList()
 {
     $keywords = isset($_GET['keywords']) ? trim($_GET['keywords']) : '';
     //关键字
     $keywords = mysql_real_escape_string($keywords);
     $status = isset($_GET['status']) ? $_GET['status'] : FALSE;
     //回复状态
     $category = isset($_GET['catid']) ? intval($_GET['catid']) : FALSE;
     //分类
     $orderstatus = isset($_GET['orderstatus']) ? trim($_GET['orderstatus']) : false;
     //订单状态
     $senderId = isset($_GET['senderid']) ? trim($_GET['senderid']) : FALSE;
     //发送人id
     $orderId = isset($_GET['orderid']) ? trim($_GET['orderid']) : FALSE;
     //订单号
     $prodname = isset($_GET['prodname']) ? trim($_GET['prodname']) : FALSE;
     //产品名称
     $sellerId = isset($_GET['sellerId']) ? trim($_GET['sellerId']) : FALSE;
     //卖家账号
     $sortName = isset($_GET['sortname']) ? trim($_GET['sortname']) : FALSE;
     $sort = isset($_GET['sort']) ? trim($_GET['sort']) : FALSE;
     $isscroll = isset($_GET['isscroll']) ? intval($_GET['isscroll']) : 1;
     //设置是否收缩 1表示收缩  2表示不收缩 默认收缩
     if ($status == 2 && ($isscroll = 1)) {
         //只有当查看未回复订单留言时才进行收缩
         $isscroll = 1;
     } else {
         $isscroll = 2;
     }
     $cat_obj = new messagecategoryModel();
     /*----- 获得用户所属文件夹 -----*/
     $Lp_obj = new LocalPowerModel();
     $fieldid = $Lp_obj->getAliPowerlist($_SESSION['userId']);
     //获得当前用户所属的id
     $fieldid = isset($fieldid['field']) ? $fieldid['field'] : array(-1);
     $category = in_array($category, $fieldid) ? $category : -1;
     /*----- 获得用户所属文件夹 -----*/
     if (!empty($fieldid)) {
         $powerlist = $cat_obj->getFieldInfoByIds($fieldid, ' order by category_name');
     } else {
         $powerlist = array();
     }
     $wheresql = '';
     if (!empty($keywords)) {
         //是否指定keywords
         $wheresql .= " and sendername='{$keywords}' ";
     }
     if ($status !== FALSE) {
         //指定状态
         switch ($status) {
             case 1:
                 //已读
                 $wheresql .= " and hasread=1";
                 break;
             case 2:
                 //未读
                 $wheresql .= " and hasread=0 ";
                 break;
             default:
                 $wheresql .= "";
                 break;
         }
     }
     if ($category !== false) {
         if ($category == -1) {
             $class_sql = implode(', ', $fieldid);
             if (!empty($class_sql)) {
                 $wheresql .= " and fieldId in ({$class_sql})";
             } else {
                 $wheresql .= 'and fieldId in (-1)';
             }
         } else {
             $wheresql .= " and  fieldId={$category}";
         }
     } else {
         $class_sql = implode(', ', $fieldid);
         $wheresql .= " and fieldId in ({$class_sql})";
     }
     if (FALSE !== $orderstatus && '0' != $orderstatus) {
         //设置的订单状态过滤条件
         $orderstatus = strtoupper($orderstatus);
         $orderstatus = mysql_real_escape_string($orderstatus);
         $wheresql .= " and orderstatus='{$orderstatus}'";
     }
     if (!empty($senderId)) {
         //搜索用户id
         $tempsender = mysql_real_escape_string($senderId);
         $wheresql .= " and senderid='{$tempsender}'";
     }
     if (!empty($orderId)) {
         //搜索订单号
         $temporderid = mysql_real_escape_string($orderId);
         $wheresql .= " and orderId='{$temporderid}' ";
     }
     if (!empty($prodname)) {
         $emppro = mysql_real_escape_string($prodname);
         $wheresql .= " and content like '%{$emppro}%'";
     }
     if (!empty($sellerId)) {
         $temAcc = mysql_real_escape_string($sellerId);
         $wheresql .= " and receiverid = '{$temAcc}' ";
     }
     $urlquery = convertUrlQuery($_SERVER['QUERY_STRING']);
     unset($urlquery['sortname']);
     unset($urlquery['sort']);
     $orderbysql = '';
     $sort = $sort == 'asc' ? 'asc' : 'desc';
     $resort = $sort == 'asc' ? 'desc' : 'asc';
     switch ($sortName) {
         case 'orderstatus':
             //按订单状态排序
             $orderbysql = ' order by orderstatus ' . $sort;
             break;
         default:
             $orderbysql = ' order by createtimestamp ' . $sort;
     }
     $url = getUrlQuery($urlquery);
     $this->smarty->assign('url', $url);
     $this->smarty->assign('resort', $resort);
     //         echo $wheresql;exit;
     $pagesize = 100;
     $msg_obj = new messageModel();
     $groupBySql = '';
     if (1 == $isscroll) {
         $groupBySql = ' group by relationId ';
         $mount = $msg_obj->getCountNumberByConditions_aliSite_groupby($wheresql . $groupBySql);
     } else {
         $mount = $msg_obj->getCountNumberByConditions_aliSite($wheresql);
     }
     $page_obj = new Page($mount, $pagesize);
     $usercache = new UserCacheModel();
     $aliAcc_ojb = new AliAccountModel();
     if (1 == $isscroll) {
         $msglist = $msg_obj->getMessageListByConditions_alisite_groupby($wheresql . $groupBySql . ' ' . $orderbysql . ' ' . $page_obj->limit);
     } else {
         $msglist = $msg_obj->getMessageListByConditions_alisite($wheresql . ' ' . $orderbysql . ' ' . $page_obj->limit);
     }
     /* --- 格式化数据 ---*/
     foreach ($msglist as &$msgitem) {
         $catinfo = $cat_obj->getCategoryInfoById($msgitem['fieldId']);
         $msgitem['classname'] = $catinfo['category_name'];
         $userinfo = empty($msgitem['replyUser']) ? array('userName' => '') : $usercache->getUserInfoBySysId($msgitem['replyUser'], 0);
         $msgitem['username'] = $userinfo['userName'];
         // $msgitem['retime']      = $msgitem['replytime'] ? date("Y-m-d \n H:i:s", $msgitem['replytime']) : '';
         $msgitem['content'] = mb_substr($msgitem['content'], 0, 80);
         $msgitem['content'] .= '...';
         $msgitem['replytime'] = empty($msgitem['replytime']) ? '' : date("Y-m-d \n H:i:s", $msgitem['replytime']);
         $msgitem['gmtCreate'] = formateAliTime($msgitem['gmtCreate']);
         $msgitem['accname'] = $aliAcc_ojb->accountId2Name($msgitem['receiverid']);
         $msgitem['statusname'] = AliMessageModel::orderStatusToStr($msgitem['orderstatus']);
     }
     if ($mount > $pagesize) {
         //分页
         $pagestr = $page_obj->fpage(array(0, 2, 3, 4, 5, 6, 7, 8, 9));
     } else {
         $pagestr = $page_obj->fpage(array(0, 2, 3));
     }
     //         print_r($msglist);exit;
     /*----- 获得分类文件夹列表 -----*/
     $categorylist = $cat_obj->getAllCategoryInfoList(' and is_delete=0', 2);
     //         print_r($categorylist);
     $this->smarty->assign('catlist', $categorylist);
     $this->smarty->assign('orderstatus', $orderstatus);
     /*----- 获得分类列表 -----*/
     $aliAccount_obj = new AliAccountModel();
     $accountlist = $aliAccount_obj->getAllAliAccountList('name', 'asc');
     $this->smarty->assign('accountlist', $accountlist);
     $this->smarty->assign('sellerId', $sellerId);
     $this->smarty->assign('senderId', $senderId);
     $this->smarty->assign('orderId', $orderId);
     $this->smarty->assign('prodname', $prodname);
     // print_r($msglist);exit;
     $this->smarty->assign('third_menue', 2);
     $this->smarty->assign('powerlist', $powerlist);
     $this->smarty->assign('from', $from);
     $this->smarty->assign('sec_menue', 4);
     $this->smarty->assign('toplevel', 0);
     $this->smarty->assign('keywords', $keywords);
     $this->smarty->assign('category', $category);
     $this->smarty->assign('status', $status);
     $this->smarty->assign('pagestr', $pagestr);
     $this->smarty->assign('msglist', $msglist);
     $this->smarty->assign('categorylist', $arrlist);
     $this->smarty->assign('toptitle', 'message列表');
     $this->smarty->display('msglistalisite.htm');
 }