<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ``` <?php // +------------------------------------------------------------------------------------------------ // | 【使用說明】請將本文件上傳至網站服務器:/application/index/controller/ 目錄下。 // +------------------------------------------------------------------------------------------------ // | [18淘客助手api文件(程序俠淘寶客專用)] Copyright (c) 2019 18.LA // +------------------------------------------------------------------------------------------------ // | 最后修改:2019年4月19日 // +------------------------------------------------------------------------------------------------ // | 官網:http://taoke.18.la/ // +------------------------------------------------------------------------------------------------ namespace app\index\controller; use think\Controller; use think\Db; use \think\Request; class Api extends Controller { //定義返回數據 private $return = array('state'=>'ok','code'=>1,'message'=>'','version'=>'5.7'); public function index() { $this->return['system']=urlencode('程序俠淘寶客');//系統名稱 $this->return['updatetime']=urlencode('2019年4月19日');//最后修改日期 //驗證key $this->verify(); //讀取api參數 $api=Request::instance()->post('api'); //訂單同步 if($api=='postorder'){ $this->postorder(); } //商品采集 elseif($api=='postgoods'){ $this->postgoods(); } //商品管理 elseif($api=='delgoods'){ $this->delgoods(); } //代理管理 elseif($api=='agentadmin'){ $op=Request::instance()->post('op'); if($op=='getrequest'){ //獲取待審核代理列表 $this->getagent(); }elseif($op=='check'){ //審核代理 $this->checkagent(); }else{ $this->returnExit($this->return,0,"傳入條件數據不正確");//code值設置為0,表示失敗 } } //拼多多訂單同步 elseif($api=='postpddorder'){ $this->postpddorder(); } //京東訂單同步 elseif($api=='postjdorder'){ $this->postjdorder(); } $this->returnExit($this->return,0,"未傳入有效API參數");//code值設置為0,表示失敗 } // +---------------------------------------- // | 接口驗證相關函數 // +---------------------------------------- //接口驗證 private function verify() { //讀取post的基礎參數 $api=Request::instance()->post('api');//api名稱 $getkey=Request::instance()->post('key'); //如果未傳入有效參數 if (!isset($getkey) || !isset($api)) { $this->returnExit($this->return,0,"API接口正常");//code值設置為0,表示失敗 } //讀取網站授權碼 $web_auth_code = Db::name('config')->where("name","WEB_AUTH_CODE")->value('value'); //處理字符串 $getkey=trim($getkey); $getkey=strtoupper($getkey); $web_auth_code=trim($web_auth_code); $web_auth_code=strtoupper($web_auth_code); //判斷密鑰是否正確 if($getkey!=$web_auth_code){ $this->returnExit($this->return,0,"密鑰錯誤");//code值設置為0,表示失敗 } //接口驗證 if($api=='verify'){ $this->returnExit($this->return,1,"驗證成功");//code值設置為1,表示成功 } } // +---------------------------------------- // | 訂單同步相關函數 // +---------------------------------------- //訂單同步 private function postorder() { //獲取post過來的訂單內容 $content=Request::instance()->post('content'); if(empty($content)){ $this->returnExit($this->return,0,"content參數不能為空");//code值設置為0,表示失敗 } $content=htmlspecialchars_decode($content);//把一些預定義的 HTML 實體轉換為字符 $contentArr=@json_decode($content, true);//json解碼 //如果數組不為空 if(!empty($contentArr)){ //將訂單數據以訂單號和商品ID做鍵值,保存到新數組 $contentArr=$this->orderOnly($contentArr); $db = Db::name('union_order');//操作union_order表 $resultStr="";//記錄訂單入庫結果字符串 //遍歷訂單數組 foreach($contentArr as $orderData) { //判斷是否為空數組 if(count($orderData)<1){ continue; } //讀取訂單編號和商品id $orderid=$orderData[0]['訂單編號']; $goodsid=$orderData[0]['商品ID']; //查詢是否存在 $goods_order_id = $db->where('goods_order',$orderid)->where('goods_id',$goodsid)->column('id'); //遍歷數組 $id=0; $resultValue=1; foreach($orderData as $data){ //格式化訂單數據 $newdata=$this->orderFormat($data); Db::startTrans();// 啟動事務 //判斷數據是否存在 if(isset($goods_order_id[$id])){ //如果數據已存在,更新 try{ $result=$db->where('id',$goods_order_id[$id])->update($newdata); // 提交事務 Db::commit(); $resultValue = ($resultValue==1) ? 1 : 0;//如果上次狀態為1,這次也標記為1,否則設置為0 } catch (\Exception $e) { // 回滾事務 Db::rollback(); $resultValue=0; } }else{ //如果數據不存在,新增 try{ $result=$db->insert($newdata); // 提交事務 Db::commit(); if (!empty($result)) { //添加成功 $resultValue = ($resultValue==1) ? 1 : 0;//如果上次狀態為1,這次也標記為1,否則設置為0 }else{ //添加失敗 $resultValue=0; } } catch (\Exception $e) { // 回滾事務 Db::rollback(); $resultValue=0; } } $id++; } //記錄入庫結果 $resultStr=$this->resultState($resultStr,$orderid,$resultValue); } $this->returnExit($this->return,1,"result:".$resultStr);//code值設置為1,表示成功 }else{ $this->returnExit($this->return,0,"傳入訂單數據不正確");//code值設置為0,表示失敗 } } //將訂單數據以訂單號和商品ID做鍵值,保存到新數組 private function orderOnly($contentArr) { //遍歷訂單數組 foreach($contentArr as $orderID=>$orderData) { foreach($orderData as $data){ $key=$data['訂單編號'].'_'.$data['商品ID']; $newData[$key][]=$data; } } return $newData; } //格式化訂單數據 function orderFormat($data){ //將數據存儲到符合當前系統的新數組 $newData=array( //'id'=>0,//ID //'uid'=>0,//認領用戶ID 'type'=>0,//訂單類型 0淘寶 1拼多多 2京東 'goods_order'=>$data['訂單編號'],//訂單編號 'goods_number'=>$data['商品數'],//成交數量 'order_status'=>$data['訂單狀態'],//3:訂單結算12:訂單付款13:訂單失效 'title'=>$data['商品信息'],//商品標題 'goods_id'=>$data['商品ID'],//商品ID 'price'=>$data['商品單價'],//商品價格 'shop_type'=>$data['訂單類型'],//訂單類型 'pay_price'=>$data['付款金額'],//付款金額 'settlement_price'=>$data['結算金額'],//結算金額 'commission'=>$data['效果預估'],//效果預估 'commission_rate'=>$data['傭金比率'],//傭金比率 //'status'=>0,//狀態 //'is_receive'=>0,//提現狀態 0:未提現 1:已提現 //'second_receive'=>0,//二代提現狀態 //'third_receive'=>0,//三代提現狀態 'terminal_type'=>$data['成交平臺'],//成交平臺 'create_time'=>strtotime($data['創建時間']),//創建時間 'adzone_id'=>$data['廣告位ID'],//廣告位ID 'adzone_name'=>$data['渠道關系ID'] ? $this->getAdzoneName($data['渠道關系ID']) : $data['廣告位名稱'],//廣告位名稱 'relation_id'=>$data['渠道關系ID'],//渠道id 'special_id'=>$data['會員運營ID'],//渠道id 'earning_time'=>strtotime($data['結算時間']),//結算時間 ); //將訂單狀態轉化為程序俠支持的格式 if($newData['order_status']=='訂單結算' || $newData['order_status']=='訂單完成'|| $newData['order_status']=='訂單成功'){ $newData['order_status']='3'; }elseif($newData['order_status']=='訂單付款'){ $newData['order_status']='12'; }if($newData['order_status']=='訂單失效'){ $newData['order_status']='13'; } //處理維權訂單 if(strpos($data['維權狀態'],"維權創建") !== false || strpos($data['維權狀態'],"等待處理") !== false) { $newData['order_status']='12';//強制將訂單狀態設置為:訂單付款 } elseif(strpos($data['維權狀態'],"維權成功") !== false) { $newData['order_status']='13';//強制將訂單狀態設置為:訂單失效 } elseif(strpos($data['維權狀態'],"維權失敗") !== false) { //$newData['order_status']='3';//強制將訂單狀態設置為:訂單結算(因為訂單也有可能本身是其他狀態,所以此處不做處理即可) } //是否開啟渠道 $channel = get_config('AGENT_CHANNEL_MEMBER'); // if ($channel == '1'){ if (isset($newData['special_id']) && $newData['special_id']) { $data = $this->createOrderLog($newData); if ($data['uid']) { $newData['uid'] = $data['uid']; //用戶id $newData['rebate_money'] = $data['money']; //返利金額 } } if (Db::query('show tables like "cxxia_push_log"')) { if ($newData['order_status'] == '12'){ $this->pushOrder($newData,'1'); } } } return $newData; } // +---------------------------------------- // | 商品采集相關函數 // +---------------------------------------- //商品采集 private function postgoods() { //獲取post過來的訂單內容 $content=Request::instance()->post('content'); if(empty($content)){ $this->returnExit($this->return,0,"content參數不能為空");//code值設置為0,表示失敗 } $content=htmlspecialchars_decode($content);//把一些預定義的 HTML 實體轉換為字符 $contentArr=@json_decode($content, true);//json解碼 //print_r($contentArr); //如果數組不為空 if(!empty($contentArr['cat']) && !empty($contentArr['goods'])){ //商品分類 $cat=$this->goodsCat($contentArr['cat']); if(empty($cat)){ $this->returnExit($this->return,0,"分類綁定不正確");//code值設置為0,表示失敗 } //商品數據 $resultStr="";//記錄訂單入庫結果字符串 foreach($contentArr['goods'] as $data) { $itemid=$data['商品ID']; //格式化商品數據 $newdata=$this->goodsFormat($cat,$data); //print_r($newdata); $db = Db::name('goods'); //查詢是否存在 $goodsid = $db->where('goods_id',$itemid)->value('id'); if (empty($goodsid)){ Db::startTrans();// 啟動事務 try{ $result=$db->insert($newdata); // 提交事務 Db::commit(); } catch (\Exception $e) { // 回滾事務 Db::rollback(); } }else{ //如果已存在,更新 Db::startTrans();// 啟動事務 try{ $result=$db->where('goods_id',$itemid)->update($newdata); // 提交事務 Db::commit(); } catch (\Exception $e) { // 回滾事務 Db::rollback(); } } //記錄入庫結果 if (!empty($result)) { //添加成功 $resultStr=$this->resultState($resultStr,$itemid,"1"); }else{ //添加失敗 $resultStr=$this->resultState($resultStr,$itemid,"0"); } } //清空緩存 $this->clearcache(); $this->returnExit($this->return,1,"result:".$resultStr);//code值設置為1,表示成功 }else{ $this->returnExit($this->return,0,"傳入商品數據不正確");//code值設置為0,表示失敗 } } //處理商品分類 private function goodsCat($softCat) { //查詢數據庫的分類名和對應ID $allCat = Db::name('goods_cate')->column('id','name'); //print_r($allCat); foreach($allCat as $key=>$value){ $key=str_replace("其他","其它",$key);//兼容分類名字為“其他”時的情況 $dbCat[$key]=$value; } //將程序商品分類關系轉化成對應的id foreach($softCat as $key=>$value){ $value=str_replace("其他","其它",$value);//兼容分類名字為“其他”時的情況 if (isset($dbCat[$value])) $newCat[$key]=$dbCat[$value]; } //print_r($softCat); return $newCat; } //格式化商品數據 private function goodsFormat($cat,$data){ //處理商品類目 if (empty($cat[$data['商品類目']])){ $data['商品類目']=0; }else{ $data['商品類目']=$cat[$data['商品類目']]; } //處理優惠券數量 if(empty($data['優惠券總數量'])) $data['優惠券總數量']=rand(5000,20000);//生成隨機的優惠券總數 if(empty($data['優惠券領取量'])) $data['優惠券領取量']=intval($data['優惠券總數量']*(rand(60,98)/100));//生成隨機的優惠券領取量 $data['優惠券剩余量']=$data['優惠券總數量']-$data['優惠券領取量'];//計算優惠券剩余量 //優化商品圖片地址 if($data['商品圖片']) if(strpos($data['商品圖片'],'http://') === 0 ) { if(!strpos($data['商品圖片'],'.haodanku.') && !strpos($data['商品圖片'],'.tbcdn.cn')) { $data['商品圖片']='https://'.substr($data['商品圖片'],7); } } elseif(strpos($data['商品圖片'],'//') === 0) { if(!strpos($data['商品圖片'],'.haodanku.') && !strpos($data['商品圖片'],'.tbcdn.cn')) { $data['商品圖片']='https:'.$data['商品圖片']; }else { $data['商品圖片']='http:'.$data['商品圖片']; } } $newData=array( //'id' => '1',//自增ID //'sort' => '999',//排序 'cid' => $data['商品類目'],//分類 'goods_id' => $data['商品ID'],//商品ID 'title' => $data['商品標題'],//商品標題 'intro' => $data['商品文案'],//商品簡介 //'content' => '',//商品詳情 //'goods_url' => '',//商品URL地址 'nick' => $data['賣家昵稱'],//賣家旺旺 'sellerId' => $data['賣家ID'],//賣家ID 'img' => $data['商品圖片'],//商品圖片地址 'price' => $data['商品原價'],//商品價格 'discount_price' => $data['商品券后價'],//商品折扣價 //'discount_rate' => '',//折扣率 //'click_url' => '',//推廣鏈接 //'taokouling' => '',//淘口令 'volume' => $data['商品銷量'],//商品銷量 'commission' => $data['預計傭金'],//傭金金額 'commission_rate' => $data['傭金比例'],//傭金比例 'shop_type' => $data['店鋪類型'],//店鋪類型 //'ems' => '',//是否包郵 'coupon_id' => $data['優惠券ID'],//優惠券id //'coupon_url' => $data['優惠券鏈接'],//優惠券地址 'coupon_price' => $data['優惠券金額'],//優惠券價格 'coupon_receive' => $data['優惠券領取量'],//券已領取數量 'coupon_surplus' => $data['優惠券剩余量'],//券剩余數量 'coupon_total' => $data['優惠券總數量'],//優惠券總數 'coupon_explain' => $data['優惠券使用條件'],//優惠券說明 'start_time' => $data['優惠券開始時間'],//開始時間 'end_time' => $data['優惠券結束時間'],//結束時間 //'status' => '',//商品狀態(1開啟,0禁用) //'seo_title' => '',//seo標題 //'seo_keys' => '',//seo關鍵詞 //'seo_desc' => '',//seo描述 'create_time' => time(),//添加時間 ); //處理視頻單 if (!empty($data['商品視頻ID'])) { //是否視頻單 $newData['video'] = 'http://cloud.video.taobao.com/play/u/1/p/1/e/6/t/1/' . $data['商品視頻ID'] . '.mp4'; } return $newData; } // +---------------------------------------- // | 商品管理相關函數 // +---------------------------------------- //刪除商品 private function delgoods() { //獲取post過來的訂單內容 $content=htmlspecialchars_decode(Request::instance()->post('content')); $contentArr=@json_decode($content, true);//json解碼 //按where條件刪除商品 if(!empty($contentArr['where']) ){//如果where數組不為空 $whereArr=$contentArr['where']; //print_r($whereArr); $where=''; //構造sql語句 if(!empty($whereArr['銷量小于']) ) { if(!empty($where)) $where.=" or "; $where.=" volume<'{$whereArr['銷量小于']}' "; } if(!empty($whereArr['價格小于'])){ if(!empty($where)) $where.=" or "; $where.=" discount_price<'{$whereArr['價格小于']}' "; } if(!empty($whereArr['價格大于'])){ if(!empty($where)) $where.=" or "; $where.=" discount_price>'{$whereArr['價格大于']}' "; } if(!empty($whereArr['傭金小于']) ) { if(!empty($where)) $where.=" or "; $where.=" commission<'{$whereArr['傭金小于']}' "; } if(!empty($whereArr['傭金比例']) ) { if(!empty($where)) $where.=" or "; $where.=" commission_rate<'{$whereArr['傭金比例']}' "; } if(!empty($whereArr['非天貓']) ) { if(!empty($where)) $where.=" or "; $where.=" shop_type!='B' "; } /* if(!empty($whereArr['非視頻單']) ) { if(!empty($where)) $where.=" or "; $where.=" videoid='0' "; } */ if(!empty($whereArr['優惠券過期']) ) { if(!empty($where)) $where.=" or "; $where.="(end_time<>'' and end_time<='".time()."') "; } if(!empty($whereArr['無優惠券']) ) { if(!empty($where)) $where.=" or "; $where.=" ((coupon_id='' or coupon_id is null) and (coupon_url='' or coupon_url is null)) "; } if(!empty($where)){ Db::startTrans();// 啟動事務 try{ $result = Db::name('goods')->where($where)->delete();//執行刪除語句 // 提交事務 Db::commit(); } catch (\Exception $e) { // 回滾事務 Db::rollback(); } if(!empty($result)){ $this->clearcache();//清空緩存 $this->returnExit($this->return,1,'成功刪除'.$result.'件商品');//code值設置為1,表示成功 }else{ $this->returnExit($this->return,1,'暫無符合條件商品');//code值設置為1,表示成功 } }else{ $this->returnExit($this->return,0,'傳入條件數據不正確');//code值設置為1,表示成功 } } //按傳入的商品id列表刪除商品 elseif(!empty($contentArr['goodsid']) ){//如果goodsid數組不為空 Db::startTrans();// 啟動事務 try{ $result = Db::name('goods')->where('goods_id',array('IN',$contentArr['goodsid']))->delete();//執行刪除語句 // 提交事務 Db::commit(); } catch (\Exception $e) { // 回滾事務 Db::rollback(); } if(!empty($result)){ $this->clearcache();//清空緩存 $this->returnExit($this->return,1,'成功刪除'.$result.'件商品');//code值設置為1,表示成功 }else{ $this->returnExit($this->return,1,'暫無符合條件商品');//code值設置為1,表示成功 } } //刪除全部商品 elseif(!empty($contentArr['all']) ){ Db::startTrans();// 啟動事務 try{ $result = Db::name('goods')->where('18=18')->delete();//清空數據表 // 提交事務 Db::commit(); } catch (\Exception $e) { // 回滾事務 Db::rollback(); } if(!empty($result)){ $this->clearcache();//清空緩存 $this->returnExit($this->return,1,'成功刪除'.$result.'件商品');//code值設置為1,表示成功 }else{ $this->returnExit($this->return,1,'暫無商品');//code值設置為1,表示成功 } } //無有效參數 else { $this->returnExit($this->return,0,'傳入條件數據不正確');//code值設置為1,表示成功 } } // +---------------------------------------- // | 代理審核相關函數 // +---------------------------------------- //獲取待審核代理列表 private function getagent() { //查詢數據庫 $list = Db::name('agent') ->field('id,name') ->where('status',0) //->where('upid',null) //->where('wechat_pid',null) //->where('app_pid',null) ->where('upid',['=',''],['EXP','IS NULL'],'or') ->where('wechat_pid',['=',''],['EXP','IS NULL'],'or') ->where('app_pid',['=',''],['EXP','IS NULL'],'or') ->select(); //如果數組不為空 if (!empty($list)){ $this->returnExit($this->return,1,"獲取未審核代理數據成功",$list); }else{ $this->returnExit($this->return,1,"暫無未審核代理數據"); } } //審核代理 private function checkagent() { //獲取post過來的訂單內容 $content=Request::instance()->post('content'); if(empty($content)){ $this->returnExit($this->return,0,"content參數不能為空");//code值設置為0,表示失敗 } $content=htmlspecialchars_decode($content);//把一些預定義的 HTML 實體轉換為字符 $contentArr=@json_decode($content, true);//json解碼 //判斷數據是否正確 if(empty($contentArr['id'])) { $this->returnExit($this->return,0,"傳入數據不正確"); } $pid=(empty($contentArr['pid']))?'':$contentArr['pid']; //查詢全局傭金比例配置 $rate = Db::name('config') ->where('name','AGENT_FIRST_RATE') ->whereOr('name','AGENT_SECOND_RATE') ->whereOr('name','AGENT_THIRD_RATE') ->column('value','name'); //設置審核數據 $newdata = array( 'status'=>1,//代理狀態 1為代理,0為待審核 'level' =>1,//代理級別 1為銅牌 2銀牌 3金牌 'agent_rate'=>$rate['AGENT_FIRST_RATE'],//一級代理分成比率 'secondAgent_rate'=>$rate['AGENT_SECOND_RATE'],//二級代理分成比率 'thirdAgent_rate'=>$rate['AGENT_THIRD_RATE'],//三級代理分成比率 'upid'=>$pid,//普通pid,三段式,類似:mm_181818818_68516333_68516333格式 'wechat_pid'=>$pid,//微信小程序pid,取普通pid一樣即可 'app_pid'=>$pid,//app應用pid,取普通pid一樣即可 'create_time'=>time(), ); // 啟動事務 Db::startTrans(); //更新數據 try{ $result=Db::name('agent')->where('id',$contentArr['id'])->update($newdata); // 提交事務 Db::commit(); } catch (\Exception $e) { // 回滾事務 Db::rollback(); } //判斷結果 if (!empty($result)){ $this->returnExit($this->return,1,"代理審核成功"); }else{ $this->returnExit($this->return,1,"代理審核失敗"); } } // +---------------------------------------- // | 拼多多訂單同步相關函數 // +---------------------------------------- //訂單同步 private function postpddorder() { //獲取post過來的訂單內容 $content=Request::instance()->post('content'); if(empty($content)){ $this->returnExit($this->return,0,"content參數不能為空");//code值設置為0,表示失敗 } $content=htmlspecialchars_decode($content);//把一些預定義的 HTML 實體轉換為字符 $contentArr=@json_decode($content, true);//json解碼 //如果數組不為空 if(!empty($contentArr)){ $db = Db::name('union_order');//操作union_order表 $resultStr="";//記錄訂單入庫結果字符串 //遍歷訂單數組 foreach ($contentArr as $orderid => $orderdata) { //格式化訂單數據 $newdata = $this->orderFormatPdd($orderdata); //查詢是否存在 $goods_order_id = $db->where('goods_order',$orderid)->value('id'); Db::startTrans();// 啟動事務 $resultValue=1;//定義存儲返回結果變量 //判斷數據是否存在 if(isset($goods_order_id)){ //如果數據已存在,更新 try{ $result=$db->where('id',$goods_order_id)->update($newdata); // 提交事務 Db::commit(); $resultValue = 1;//不管數據是否有變動,都返回1 } catch (\Exception $e) { // 回滾事務 Db::rollback(); $resultValue=0; } }else{ //如果數據不存在,新增 try{ $result=$db->insert($newdata); // 提交事務 Db::commit(); $resultValue = (!empty($result)) ? 1 : 0; } catch (\Exception $e) { // 回滾事務 Db::rollback(); $resultValue=0; } } //記錄入庫結果 $resultStr=$this->resultState($resultStr,$orderid,$resultValue); } $this->returnExit($this->return,1,"result:".$resultStr);//code值設置為1,表示成功 }else{ $this->returnExit($this->return,0,"傳入訂單數據不正確");//code值設置為0,表示失敗 } } //格式化訂單數據 function orderFormatPdd($data){ //設置訂單狀態 $odtxt=$data['訂單狀態描述']; if ($odtxt == '未支付,已取消') { $order_status = 13; }elseif ($odtxt == '未支付') { $order_status = 13; }elseif ($odtxt == '已取消') { $order_status = 13; }elseif ($odtxt == '已支付') { $order_status = 12; }elseif ($odtxt == '待成團') { $order_status = 12; }elseif ($odtxt == '已成團') { $order_status = 12; }elseif ($odtxt == '確認收貨') { $order_status = 12; }elseif ($odtxt == '審核通過') { $order_status = 12; }elseif ($odtxt == '審核失敗') { $order_status = 13; }elseif ($odtxt == '已結算') { $order_status = 3; }elseif ($odtxt == '非多多進寶商品') { $order_status = 13; }elseif ($odtxt == '已處罰') { $order_status = 13; }else{ $order_status = 13; } //設置結算時間 $earning_time= (empty($data['結算時間'])) ? 0 : strtotime($data['結算時間']); //將數據存儲到符合當前系統的新數組 $newData=array( //'id'=>0,//ID //'uid'=>0,//認領用戶ID 'type'=>1,//訂單類型 0淘寶 1拼多多 2京東 'goods_order'=>$data['訂單編號'],//訂單編號 'goods_number'=>$data['商品數'],//成交數量 'order_status'=>$order_status,//3:訂單結算12:訂單付款13:訂單失效 'title'=>$data['商品信息'],//商品標題 'goods_id'=>$data['商品ID'],//商品ID 'price'=>$data['商品價格'],//商品價格 'shop_type'=>'拼多多',//訂單類型 'pay_price'=>$data['訂單金額'],//付款金額 'settlement_price'=>$data['訂單金額'],//結算金額 'commission'=>$data['預估傭金收入'],//效果預估 'commission_rate'=>$data['傭金比例'],//傭金比率 //'status'=>0,//狀態 //'is_receive'=>0,//提現狀態 0:未提現 1:已提現 //'second_receive'=>0,//二代提現狀態 //'third_receive'=>0,//三代提現狀態 'terminal_type'=>'無線',//成交平臺 'create_time'=>strtotime($data['創建時間']),//創建時間 'adzone_id'=>$data['pid'],//廣告位ID 'adzone_name'=>$data['推廣位名稱'],//廣告位名稱 'earning_time'=>$earning_time,//結算時間 ); return $newData; } // +---------------------------------------- // | 拼多多訂單同步相關函數 // +---------------------------------------- //訂單同步 private function postjdorder() { //獲取post過來的訂單內容 $content=Request::instance()->post('content'); if(empty($content)){ $this->returnExit($this->return,0,"content參數不能為空");//code值設置為0,表示失敗 } $content=htmlspecialchars_decode($content);//把一些預定義的 HTML 實體轉換為字符 $contentArr=@json_decode($content, true);//json解碼 //如果數組不為空 if(!empty($contentArr)){ $db = Db::name('union_order');//操作union_order表 $resultStr="";//記錄訂單入庫結果字符串 //遍歷訂單數組 foreach ($contentArr as $orderid => $orderdata) { $resultValue=1;//定義存儲返回結果變量 foreach($orderdata as $data){ //格式化訂單數據 $newdata = $this->orderFormatJd($data); //讀取訂單編號和商品id $orderid=$data['orderId']; $goodsid=$data['skuId']; //查詢是否存在 $goods_order_id = $db->where('goods_order',$orderid)->where('goods_id',$goodsid)->value('id'); Db::startTrans();// 啟動事務 //判斷數據是否存在 if(isset($goods_order_id)){ //如果數據已存在,更新 try{ $result=$db->where('id',$goods_order_id)->update($newdata); // 提交事務 Db::commit(); //$resultValue = 1;//不管數據是否有變動,都返回1 $resultValue = ($resultValue==1) ? 1 : 0;//如果上次狀態為1,這次也標記為1,否則設置為0 } catch (\Exception $e) { // 回滾事務 Db::rollback(); $resultValue=0; } }else{ //如果數據不存在,新增 try{ $result=$db->insert($newdata); // 提交事務 Db::commit(); if (!empty($result)) { //添加成功 $resultValue = ($resultValue==1) ? 1 : 0;//如果上次狀態為1,這次也標記為1,否則設置為0 }else{ //添加失敗 $resultValue=0; } } catch (\Exception $e) { // 回滾事務 Db::rollback(); $resultValue=0; } } } //記錄入庫結果 $resultStr=$this->resultState($resultStr,$orderid,$resultValue); } $this->returnExit($this->return,1,"result:".$resultStr);//code值設置為1,表示成功 }else{ $this->returnExit($this->return,0,"傳入訂單數據不正確");//code值設置為0,表示失敗 } } //格式化訂單數據 function orderFormatJd($data){ //設置訂單狀態 $validCode=$data['validCode']; if ($validCode == 16 ||$validCode == 17) { $order_status = 12;//訂單付款 }elseif ($validCode == 18) { $order_status = 3;//訂單結算 }else{ $order_status = 13;//訂單失效 } //設置結算時間 $finishTime=$data['finishTime'];//結算時間 $finishTime=($finishTime == 0 || $finishTime == "0")?0:strtotime($finishTime); //將數據存儲到符合當前系統的新數組 $newData=array( //'id'=>0,//ID //'uid'=>0,//認領用戶ID 'type'=>2,//訂單類型 0淘寶 1拼多多 2京東 'goods_order'=>$data['orderId'],//訂單編號 'goods_number'=>$data['skuNum'],//成交數量 'order_status'=>$order_status,//3:訂單結算12:訂單付款13:訂單失效 'title'=>$data['skuName'],//商品標題 'goods_id'=>$data['skuId'],//商品ID 'price'=>$data['price'],//商品價格 'shop_type'=>'京東',//訂單類型 'pay_price'=>$data['estimateCosPrice'],//付款金額 'settlement_price'=>$data['actualCosPrice'],//結算金額 'commission'=>$data['estimateFee'],//效果預估 'commission_rate'=>$data['commissionRate'],//傭金比率 //'status'=>0,//狀態 //'is_receive'=>0,//提現狀態 0:未提現 1:已提現 //'second_receive'=>0,//二代提現狀態 //'third_receive'=>0,//三代提現狀態 'terminal_type'=>'無線',//成交平臺 'create_time'=>strtotime($data['orderTime']),//創建時間 'adzone_id'=>$data['positionId'],//廣告位ID 'adzone_name'=>$data['positionId'],//廣告位名稱 'earning_time'=>$finishTime,//結算時間 ); return $newData; } // +---------------------------------------- // | 其他函數 // +---------------------------------------- //返回json信息并退出 private function returnExit($return,$code,$message,$data=''){ $return['code']=$code; $return['message']=urlencode($message); if(!empty($data)) $return['data']=$data; exit(urldecode(json_encode($return))); } //構造返回狀態結果字符串 private function resultState($result,$id,$v){ if (!empty($result)) $result.='|'; $result.=$id.':'.$v; return $result; } //清空緩存 private function clearcache() { //清空緩存 array_map( 'unlink', glob(RUNTIME_PATH.'/cache/*/*.php' ) ); array_map( 'unlink', glob(RUNTIME_PATH.'/temp/*.php' ) ); } /** *計算返利價格 *@param $rebate['home'] 用來判斷選中的限制類型 0固定金額 1百分比 *@param $rebate['money'] 用來判斷他所選中的返利類型 0固定金額 1百分比 */ public function createOrderLog($data){ $uid = Db::name('User')->where('special_id',$data['special_id'])->value('id'); $money = 0; $agent = Db::name('agent')->where('uid',$uid)->where('status','1')->find(); if (!$agent) { $rebateStatus = get_config('REBATE_STATUS'); if ($rebateStatus) { $rebateMoney = get_config('REBATE_MONEY') ? get_config('REBATE_MONEY') :0; $agentTaobaoRate = get_config('AGENT_TAOBAO_RATE') ? (100 - get_config('AGENT_TAOBAO_RATE'))/100 : 1; $commission = $data['commission'] * $agentTaobaoRate; $money = round($commission * $rebateMoney/100,2); } }else{ if ($data['relation_id'] != $agent['relation_id']) { $uid = '0'; } } $rod = []; $rod['money'] = $money; $rod['uid'] = $uid; return $rod; } //推廣位名稱 public function getAdzoneName($relation_id){ $name =''; if ($relation_id) { $name = Db::name('agent')->where('relation_id',$relation_id)->value('name'); if (!$name) { $name = '渠道&會員'; } } return $name; } //$data 訂單數據 //$type $type 1淘寶/天貓 2拼多多 3京東 public function pushOrder($data,$type){ //判斷訂單是否是代理訂單 $extra = [ 'orderId' => $data['goods_order'], 'orderType' => $data['shop_type'], 'orderPrice' => round($data['pay_price'],2), ]; // 判斷訂單是否村在 $hasGoodsOrder = Db::name('PushLog')->where('extra','like','%'.$data['goods_order'].'%')->find(); if($hasGoodsOrder){ return; } if (isset($data['uid']) && $data['uid']) { $uid = $data['uid']; } if (isset($data['special_id']) && $data['special_id']) { $uid = Db::name('User')->where('special_id',$data['special_id'])->value('id'); } if($uid){ $money = new \app\common\controller\Money(); $extra['money'] = $money->earnMoney2($data['commission']*100,$uid,$type); $extra['fansName'] = Db::name('User')->where('id',$uid)->value('username'); $extra['time'] = $data['create_time']; push_log('buy',$uid,$extra); //自購推送 $userPid = Db::name('User')->where('id',$uid)->value('pid'); if ($userPid) { $agentinfo = Db::name('Agent')->where('uid',$uid)->find();//代理信息 if ($agentinfo) { $a = '2'; $pid = $agentinfo['pid']; }else{ $a = '1'; $pid = Db::name('Agent')->where('uid',$userPid)->value('id');//代理信息 } if ($pid) { $this->pushLog($data['commission'],$pid,$a,$data['create_time'],$extra); //執行推送 } } } } // 訂單代理推送消息 // $a 1: 一帶關系 2:二代關系 3:三代關系 //$id 代理id; //$goodCommission 訂單傭金; public function pushLog($goodCommission,$id,$a,$time,$extra){ $agentinfo = Db::name('Agent')->where('id',$id)->find();//代理信息 if (!$agentinfo) { return; } $channel = get_config('AGENT_CHANNEL_MEMBER'); if ($channel) { switch ($a) { case '1': $agentRate = get_config('AGENT_FIRST_RATE'); break; case '2': $agentRate = get_config('AGENT_SECOND_RATE'); break; case '3': $agentRate = get_config('AGENT_THIRD_RATE'); break; } }else{ switch ($a) { case '1': if($agent['agent_rate']) { $agentRate = $agent['agent_rate']; }else{ $agentRate = get_config('AGENT_FIRST_RATE'); } break; case '2': if($agent['secondAgent_rate']) { $agentRate = $agent['secondAgent_rate']; }else{ $agentRate = get_config('AGENT_SECOND_RATE'); } break; case '3': if($agent['thirdAgent_rate']) { $agentRate = $agent['thirdAgent_rate']; }else{ $agentRate = get_config('AGENT_THIRD_RATE'); } break; } } $taobaoRate = get_config('AGENT_TAOBAO_RATE') ? (100 - get_config('AGENT_TAOBAO_RATE'))/100 : 1; $commission = round($goodCommission * $taobaoRate * $agentRate * 0.98/100,2); $extra['money'] = $commission; $extra['level'] = $a; push_log('fanBuy',$agentinfo['uid'],$extra); //推送 $a++; //根據uid 在User表中查找上級uid if ($agentinfo['pid']) { $this->pushLog($goodCommission,$agentinfo['pid'],$a,$time,$extra); } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看