getOne($sql) ){ //存在 return $id; }else { //不存在 return ''; } } /** *根据条件下载拍拍的相关订单 */ function readDealSellerSearchDealList($param) { $PaiPaiRuntime=RuntimeConfig::getRuntime(UIN); $result=new DealSearchResultList(); $PaiPaiRuntime->readDealSellerSearchDealList($result,$param); return $result; } /** *卖家订单发货标记 */ function writeDealSellerConsignmentDealItem($dealCode,$logisticsName,$logisticsCode,$arriveTime,$logisticsDesc='') { $PaiPaiRuntime=RuntimeConfig::getRuntime(UIN); $PaiPaiRuntime->writeDealSellerConsignmentDealItem($dealCode,$logisticsName,$logisticsCode,$arriveTime,$logisticsDesc); } /** *查询单个商品信息 */ function readItem($itemCode) { $PaiPaiRuntime=RuntimeConfig::getRuntime(UIN); $result=new Item(); $PaiPaiRuntime->readItem($result,$itemCode,NULL,1,1); } /** *根据条件下载拍拍订单详情 */ function readPaiPaiDealDetail($param,$listItem) { $PaiPaiRuntime=RuntimeConfig::getRuntime(UIN); $result=new DealDetail(); $PaiPaiRuntime->readDealDetail($result,$param,$listItem); return $result; } /** *PaiPai交易转OS系统订单 */ function PaiPaiTradeToOrder() { global $_CFG, $db,$os ; $param=new DealSearchParam(); $param->dealState='DS_WAIT_SELLER_DELIVERY'; $param->pageSize=20; $PaiPaiOrderResult=readDealSellerSearchDealList($param); if( $PaiPaiOrderResult->countTotal > 20 )//多于一页的下载 { for ($i=0;$i<=$PaiPaiOrderResult->countTotal/20;$i++ ) { $page=$i+1; $param->pageIndex=$page; $PaiPaiOrderResult2=readDealSellerSearchDealList($param); if(count($PaiPaiOrderResult->dealList)>0) foreach ( $PaiPaiOrderResult2->dealList as $row ) { $order_sn=Check_is_exist2('open_paipai_trade','dealCode',$row->dealCode,'','outer_order_sn'); $status=Check_is_exist2('open_order_info','order_sn',$order_sn,'','pay_status'); if(Check_is_exist2('open_order_info','order_sn',$order_sn,'','order_id')&&$status==2) continue; $orderid=TradeToOrderBusiness($row->dealCode); if($orderid) { echo '交易号为['.$row->dealCode.']的拍拍订单转入OS系统订单成功,订单号为['.$orderid.']
'; } } //sleep(3); } } else if($PaiPaiOrderResult->countTotal>0 && $PaiPaiOrderResult->countTotal<=20)//不满一页的下载 { if(count($PaiPaiOrderResult->dealList)>0) foreach ($PaiPaiOrderResult->dealList as $row) { $order_sn=Check_is_exist2('open_paipai_trade','dealCode',$row->dealCode,'','outer_order_sn'); $status=Check_is_exist2('open_order_info','order_sn',$order_sn,'','pay_status'); if(Check_is_exist2('open_order_info','order_sn',$order_sn,'','order_id')&&$status==2) continue; $orderid=TradeToOrderBusiness($row->dealCode); echo '交易号为['.$row->dealCode.']的拍拍订单转入OS系统订单成功,订单号为['.$orderid.']
'; } } } /** * 根据dealCode下载某条订单详情到paipai_trade与paipai_items表 * */ function DownTradeByTid2($dealCode){ $details = readPaiPaiDealDetail($dealCode,1); $trade=get_object_vars($details); if(is_array($trade) && is_array($trade['itemList'])){ $orders = $trade['itemList']; } foreach ($orders as $order){ $arrOrder=get_object_vars($order); if(IsColorSize($arrOrder['stockAttr'])==0) { echo '拍拍交易号为:'.$dealCode.',商家编码为:'.$arrOrder['stockLocalCode'].'的商品缺少颜色和尺码,不能转接
'; return; } } if(is_array($trade))OS_InsertIntoTB('paipai_trade','dealCode',$trade); foreach ($orders as $order){ $arrOrder=get_object_vars($order); OS_InsertIntoTB('paipai_items','stockLocalCode',$arrOrder); } } function InsertOrderInfo($dealCode) { global $exc, $db,$os ; $details = readPaiPaiDealDetail($dealCode,1); $trade=get_object_vars($details); if( !is_array($trade) ) return ; foreach ($trade['itemList'] as $detail){ $stockAttr=$detail->stockAttr; if(IsColorSize($stockAttr)==0) { return; } } $users=array('nick_name'=>$details->buyerUin,'user_name'=>$details->buyerName,'email'=>$details->buyerUin.'@qq.com'); OS_InsertIntoTB('users','nick_name',$users); $user_id=Check_is_exist2('open_users','nick_name',$details->buyerUin,'','user_id'); $order_sn= GetOnly_Order_sn(); $tempArress=explode(" ", $trade['receiverAddress']); if($tempArress) { $sql11="select * from open_region where region_name like'%".sub_str($tempArress[0],2,false)."%' limit 1"; $row11 = $db->getRow($sql11); if($row11) $privince=$row11['region_id']; $sql22="select * from open_region where region_name like'%".sub_str($tempArress[1],2,false)."%' limit 1"; $row22 = $db->getRow($sql22); if($row22) $city=$row22['region_id']; } foreach ($trade['itemList'] as $detail){ $totalMoney=$totalMoney+($detail->itemDealPrice)*($detail->itemDealCount); $totalCount=$totalCount+$detail->itemDealCount; } $order = array( 'order_sn'=>$order_sn, 'user_id'=>$user_id, 'pay_status'=>'2', 'consignee'=>$trade['receiverName'], 'country'=>'1', 'province'=>$privince, 'city'=>$city, 'address'=>$trade['receiverAddress'], 'zipcode'=>$trade['receiverPostcode'], 'tel'=>$trade['receiverPhone'], 'mobile'=>$trade['receiverMobile'], 'postscript'=>$trade['buyerRemark'], 'shipping_name'=>'EMS 国内邮政特快专递', 'shipping_id'=>20, 'pay_id'=>'0', 'pay_name'=>$trade['dealPayTypeDesc'], 'inv_payee'=>$trade['invoiceTitle'], 'inv_content'=>$trade['invoiceContent'], 'shipping_fee'=>$trade['freight'], 'money_paid'=>$trade['totalCash']/100, 'discount'=>$trade['couponFee'], 'referer'=>'拍拍', 'add_time'=>strtotime($trade['lastUpdateTim']), 'pay_time'=>strtotime($trade['payReturnTime']), 'to_buyer'=>$trade['dealNote'], 'goods_count'=>$totalCount, 'goods_amount'=>$totalMoney/100 ); OS_InsertIntoTB('order_info','order_sn',$order); $sql1="select * from open_goods where goods_sn='".$detail->stockLocalCode."'"; $row = $db->getRow($sql1); if($row) { $goosId=$row['goods_id']; } foreach ($trade['itemList'] as $detail){ //$finn=readItem($detail->itemCode); //$classid=$finn->classid; $stockAttr=$detail->stockAttr; if (IsColorSize($arrOrder['stockAttr'])==1) { $color=parseColorSize($stockAttr); $size=parseColorSize($stockAttr,1); $sql2="select * from open_color where color_name like'%".$color."%'"; $sql3="select * from open_size where size_name='无'"; $row2=$db->getRow($sql2); $row3=$db->getRow($sql3); $osColor=$row2['color_id'];//得到openshop的颜色对应 $osSize=$row3['size_id'];//得到openshop的尺码对应 } else { $color=parseColorSize($stockAttr); $size=parseColorSize($stockAttr,1); $sql2="select * from open_color where color_name like'%".$color."%'"; $sql3="select * from open_size where size_name like'%".$size."%'"; $row2=$db->getRow($sql2); $row3=$db->getRow($sql3); $osColor=$row2['color_id'];//得到openshop的颜色对应 $osSize=$row3['size_id'];//得到openshop的尺码对应 } $sql4="select * from open_goods where goods_id='".$goosId."'"; $row4=$db->getRow($sql4); $osGoodName=$row4['goods_name']; $goods=array( 'goods_id'=>$goosId, 'goods_name'=>$osGoodName, 'order_id'=>Check_is_exist2('open_order_info','order_sn',$order_sn,'','order_id'), 'goods_sn'=>$detail->stockLocalCode, 'goods_number'=>$detail->itemDealCount, 'market_price'=>$detail->itemRetailPrice/100, 'goods_price'=>$detail->itemDealPrice/100, 'goods_attr'=>$detail->itemDetailLink, 'color_id'=>$osColor, 'size_id'=>$osSize ); OS_InsertIntoTB('order_goods','rec_id',$goods); } Update_table_key('paipai_trade','outer_order_sn',$order_sn,"dealCode='".$dealCode."'"); //更新关联表的tb_trade表中outer_order_sn return Check_is_exist2('open_order_info','order_sn',$order_sn,'','order_id'); } /** * 拍拍订单表,订单商品详细表转OS系统的订单表,订单商品详细表业务逻辑 * */ function TradeToOrderBusiness($dealCode) { global $_CFG, $db,$os ; DownTradeByTid2($dealCode); $order_id=InsertOrderInfo($dealCode); return $order_id; } /** * 颜色,尺码解析函数(类似于:"颜色:白色|尺码:XXL"的字符串形式) * */ function parseColorSize($ColorSize,$flag=0) { if($ColorSize) { $result = explode("|", $ColorSize); if($flag==0) { $color=explode(":", $result[0]); return $color[1]; } else { $size=explode(":", $result[1]); return $size[1]; } } } /* 函数 sub_str($text, $length) ** 功能 从文本中截取指定长度字符串,考虑了对中文的处理 ** 参数 $text 要截取的文本 ** 参数 $length 要截取的字符串长度 */ function sub_strfinn($text, $length) { for ($i=0; $i<$length; $i++) { $chr = substr($text, $i, 1); if (ord($chr) > 0x80)//字符是中文 { $length++; $i++; } } $str = substr($text, 0, $length); return $str; } /** *颜色,尺码判断 * */ function IsColorSize($ColorSize) { $color=parseColorSize($ColorSize); $size=parseColorSize($ColorSize,1); if(!$color && !$size) { return 0; } else if($color && !$size) { return 1; } else { return 2; } } ?>