param('key',''); if(empty($key)) fault('访问受限'); if($key != config('site.pas_key'))fault('访问密钥错误,访问受限'); } /** * 同步订单近20分钟内的订单 * * @return void */ public function syncOrder() { $time_str = date("Y-m-d H:i:s"); echo "---------".$time_str."同步开始-------------"; $query_type = request()->param('query_type',''); if(empty($query_type)){ mylog('系统提示','查询类型不能为空',"errorInfo"); fault('查询类型不能为空'); } $LogicZhetaoke = new LogicZhetaoke(); $end_time = date("Y-m-d H:i:s",time()); //当前时间 $start_time = date("Y-m-d H:i:s",time()-20*60);//默认前20分钟 /**测试 */ // $start_time = "2022-06-20 23:50:00"; // $end_time = "2022-06-20 23:59:59"; $position_index = ""; $error_flag = false; $error = ""; $LogicTbOrder = new LogicTbOrder(); for($i=1;$i<=$this->max_page;$i++){ $res = $LogicZhetaoke->synchronizeOrder($query_type,$start_time,$end_time,2,$position_index,$i,$this->page_size,0); if(!$res['status']){ $error_flag = true; $error = $res['info']; break; }else{ if($res['total'] == 0)break; $position_index = $res['position_index']; $order_list = $res['list']; if(!empty($order_list)){ foreach($order_list as $order){ $result = $LogicTbOrder->fanliOrder($order); if(!$result['status']){ mylog('订单更新错误',$result['info'],"errorInfo"); } } } if(!$res['has_next'])break; } } if($error_flag){ mylog('同步错误',$error,"errorInfo"); fault('同步错误--'.$error); } echo "---------".$time_str."同步完成-------------"; } /** * 同步订单拆分 * * @return void */ public function orderCommission() { $time_str = date("Y-m-d H:i:s"); echo "---------".$time_str."同步拆分开始-------------"; $LogicTbOrder = new LogicTbOrder(); $result = $LogicTbOrder->chaifenOrder(); if(!$result)fault('同步拆分错误--'.$result['info']); echo "---------".$time_str."同步拆分完成-------------"; } /** * 同步近x天的订单 * * @return void */ public function synchronizeDayOrder() { $day = request()->param('day',''); $time_type = request()->param('time_type','now'); if($time_type == "now"){ if(empty($day)) fault('只限近90天数据'); if($day > 90) fault('只限近90天数据'); } $tk_status = request()->param('tk_status',''); $query_type = request()->param('query_type',''); if(empty($query_type))fault('查询类型不能为空'); $interval = request()->param('interval',20); //时间间隔 if($interval > 100)fault('最大时间间隔100'); $order_scene = request()->param('order_scene',2); $LogicZhetaoke = new LogicZhetaoke(); if($time_type == 'last_month'){ $time = strtotime('-1 month'); $start_time = date('Y-m-d H:i:s',mktime(0,0,0,date('m',$time),01,date('Y',$time))); //上个月的开始时间 $now_time = mktime(23,59,59,date('m',$time),date('t',$time),date('Y',$time)); }else{ $start_time = date("Y-m-d 00:00:00", strtotime("-".($day-1)." day")); $now_time = time(); } $error_flag = false; $error = ""; $LogicTbOrder = new LogicTbOrder(); for($j=strtotime($start_time);$j<=$now_time;$j+=$interval*60){ $begain_time = date("Y-m-d H:i:s",$j); $end_time = date("Y-m-d H:i:s",$j+$interval*60); $position_index = ""; for($i=1;$i<=$this->max_page;$i++){ $res = $LogicZhetaoke->synchronizeOrder($query_type,$begain_time,$end_time,$order_scene,$position_index,$i,$this->page_size,0,$tk_status); if(!$res['status']){ $error_flag = true; $error = $res['info']; break; }else{ if($res['total'] == 0)break; $position_index = $res['position_index']; $order_list = $res['list']; if(!empty($order_list)){ foreach($order_list as $order){ $result = $LogicTbOrder->fanliOrder($order); if(!$result['status']){ mylog('订单更新错误',$result['info'],"errorInfo"); } } } if(!$res['has_next'])break; } } } if($error_flag){ mylog('同步错误',$error,"errorInfo"); fault('同步错误--'.$error); } echo "同步成功"; } }