Browse Source

引入云途的转单号

lvhao 1 month ago
parent
commit
1aa04ebf0b
1 changed files with 119 additions and 0 deletions
  1. 119 0
      core/CoreApp/models/Model_job_getyuntuwaybillid.php

+ 119 - 0
core/CoreApp/models/Model_job_getyuntuwaybillid.php

@@ -0,0 +1,119 @@
+<?php
+class Model_job_getyuntuwaybillid extends Lin_Model {
+    function __construct(){
+            parent::__construct();
+            $this->load->_model("Model_yuntu","yuntu");
+            $this->load->_model("Model_fullorder","fullorder");
+            $this->load->_model("Model_fullordersmt","fullordersmt");
+            $this->load->_model("Model_fullordertt","fullordertt");
+            $this->load->_model("Model_fullorderamz","fullorderamz");
+
+    }
+    public function do_job(){
+        $end_time = time() - 10 * 3600 * 24;
+        $start_time = time() - 2 * 3600 * 24;
+        //快递为3pe  76  出库时间十天前   waybillid 不能为空
+        $where = "express in (66,67) and librarytime >= ".$end_time ." and librarytime <= ".$start_time."  ";
+        // $where = "express in (66,67)   ";
+        $fields = "id,number,waybill,waybillid,librarytime,express";
+        echo "<pre>";
+        var_dump(date("Y-m-d H:i:s",time()));
+        $this->do_dlz($where,$fields);
+        $this->do_tt($where,$fields);
+        $this->do_amz($where,$fields);
+        $this->do_smt($where,$fields);
+        var_dump(date("Y-m-d H:i:s",time()));
+    }
+    //执行对立站的代码
+    private function do_dlz($where,$fields){
+        $list = $this->fullorder->find_all($where,$fields,'id asc',0,300);
+        $final_list = [];
+      
+        foreach($list as $item){
+            if(empty($item['waybillid'])&&(!empty($item['waybill']))){
+                $final_list[] = $item['waybill'];
+            }else{
+                continue;
+            }
+        }
+        if(empty($final_list)){
+            return;
+        }
+      
+        $this->do_final($final_list,"fullorder");
+    }
+
+    private  function do_tt($where,$fields){
+        $list = $this->fullordertt->find_all($where,$fields,'id asc',0,300);
+        $final_list = [];
+        foreach($list as $item){
+            if(empty($item['waybillid'])&&(!empty($item['waybill']))){
+                $final_list[] = $item['waybill'];
+            }else{
+                continue;
+            }
+        }
+        if(empty($final_list)){
+            return;
+        }
+        $this->do_final($final_list,"fullordertt");
+    }
+
+    private function do_amz($where,$fields){
+        $list = $this->fullorderamz->find_all($where,$fields,'id asc',0,300);
+        $final_list = [];
+        foreach($list as $item){
+            if(empty($item['waybillid'])&&(!empty($item['waybill']))){
+                $final_list[] = $item['waybill'];
+            }else{
+                continue;
+            }
+        }
+        if(empty($final_list)){
+            return;
+        }
+        $this->do_final($final_list,"fullorderamz");
+    }
+    private function do_smt($where,$fields){
+        $list = $this->fullordersmt->find_all($where,$fields,'id asc',0,300);
+        $final_list = [];
+        foreach($list as $item){
+            if(empty($item['waybillid'])&&(!empty($item['waybill']))){
+                $final_list[] = $item['waybill'];
+            }else{
+                continue;
+            }
+        }
+        if(empty($final_list)){
+            return;
+        }
+        $this->do_final($final_list,"fullordersmt");
+    }
+
+    private function do_final($final_list,$table_name){
+        
+        $arr = array_chunk($final_list,15);
+      
+       
+        foreach($arr as $item){
+            sleep(1);
+            $res = $this->yuntu->getTransferNumber($item);
+            if(isset($res['result'])){
+                if(isset($res['result']['carriers'])){
+                    foreach($res['result']['carriers'] as $value){   
+                        $list = $this->$table_name->find_all("waybill = '". $value['waybill_number']."'",'id,number,waybill,waybillid,librarytime,express');
+                        if(!empty($list)){
+                            foreach($list as $item_info){
+                                $this->$table_name->save(['waybillid'=>$value['tracking_number']],$item_info['id']);
+                                $this->logic_ding->sendToDing("云途转单号更新信息【".$item_info['waybill']."】"."转单号:".$value['tracking_number']." 平台:".$table_name."订单详细信息:{".json_encode($item_info)."}");
+                            }
+                        }
+                    }
+                }
+
+            }
+        }
+    
+        
+    }
+}