123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- defined('BASEPATH') or exit('No direct script access allowed');
- /**
- * 此类是为了解决erp没有队列的问题,为了解决这个问题,先写一下这个类,避免后期写那么多定时任务类 这里只能解决每间隔多少时间执行一会的
- *
- */
- class Zzjobs extends Start_Controller
- {
- private $serect_str = "erpjob";
- private $user_agent = 'Xcly251618/Job (Erp)';
- private $api = "ly202508160727";
- private $ip = ['127.0.0.1','47.105.156.18'];
- public function __construct()
- {
- parent::__construct();
- $this->load->_model("Model_zzjobs","zzjobs");
- $this->load->_model("Model_logic_tools",'logic_tools');
- $this->load->_model("Model_fullordererrors","fullordererrors");
- $this->load->_model("Model_logic_order","logic_order");
- $this->load->_model("Model_job_get3pewaybillid",'job_get3pewaybillid');
- $this->load->_model("Model_job_getyuntuwaybillid",'job_getyuntuwaybillid');
- $this->load->_model("Model_job_gethualeiwaybillid",'job_gethualeiwaybillid');
- }
- public function _remap($arg, $arg_array)
- {
- $ip = $_SERVER['REMOTE_ADDR'];
-
- if(!in_array($ip,$this->ip)){
- exit("Unauthorized access");
- }
- $user_agent = empty($_SERVER['HTTP_USER_AGENT'])?"":$_SERVER['HTTP_USER_AGENT'];
- $token = empty($_SERVER['HTTP_X_AUTH_TOKEN'])?"":$_SERVER['HTTP_X_AUTH_TOKEN'];
- $time = $this->input->get('time',true);
- $api = $this->input->get('api',true);
- $this->checkAuth($user_agent,$token,$time,$api);
- if ($arg == 'jobs') //调出单
- {
- $this->_jobs();
- } elseif($arg == '3peWaybillid'){
- $this->_get3peWaybillid();
- }elseif($arg == 'yuntuWaybillid'){
- $this->_getyunTuWaybillid();
- }elseif($arg == 'hualeiWaybillid'){
- $this->_getHualeiWaybillid();
- }else {
- $this->_index();
- }
-
- }
- /**
- * 校验是否有权限可以执行
- * $user_agent 自定义的请求客户端名称
- * $token 自定义的清华客户端的token
- * $time 请求的时间
- *
- */
- private function checkAuth($user_agent,$token,$time,$api){
- if($api != $this->api){
- exit("Access denied due to insufficient permissions");
- }
- $check_str = date("Ymd")."¥_".$this->serect_str."_¥".$time;
- if(empty($user_agent)){
- exit('No direct script access allowed');
- }
- if($user_agent != $this->user_agent){
- exit('Illegal request');
- }
- if(empty($token)){
- exit('No access permission');
- }
-
- $sercet_str = md5($check_str);
-
- if($sercet_str != $token){
- exit("Request permission is illegal");
- }
-
-
- }
- private function _index() {}
- //一般每一分钟都执行的 每分钟就执行10条
- //每五分钟 就执行100条
-
- //其他的就不限制了
- private function _jobs() {
- $this->db->query("DELETE from crowd_zzjobs where status = 30");
-
- $final_list = $this->zzjobs->find_all("status = 0","*",null,0,100);
- if(empty($final_list)){
- return ;
- }
- $do_list_ids = array_column($final_list,'id');
- $this->db->query("update crowd_zzjobs set status = 10 where id in (".implode(",",$do_list_ids).")");
- foreach($final_list as $v){
- $this->tasksAssign($v);
- }
-
- }
- private function tasksAssign($info){
- switch($info['quque']){
- case 'outtime_order':
- $params = json_decode($info['payload'],true);
- $order_info = $this->logic_order->getInfo("number = '".$params['number']."'","*");
- if(!empty($order_info)){
- $this->fullordererrors->insert([
- 'number'=>$order_info['number'],
- 'shop'=>$order_info['shop'],
- 'plat'=>$order_info['lv_platform'],
- 'error_type'=>1,//订单超时15秒
- 'error_msg'=>"订单打印超时,请核对订单是否核对",
- 'error_time'=>$info['create_time'],
- 'create_time'=>time()
- ]);
- }
- $this->zzjobs->save([
- 'status'=>30,
- 'result'=>$this->logic_tools->ret_json(1,"执行完毕"),
- 'last_time'=>time()
- ],$info['id']);
- break;
- default:
- $this->zzjobs->save([
- 'status'=>20,
- 'result'=>$this->logic_tools->ret_json(-1,"没有对应发方法执行任务"),
- 'last_time'=>time()
- ],$info['id']);
- break;
- }
- }
- //获取3pe的转单号
- private function _get3peWaybillid(){
-
- if(date("H",time()) == 7){
- var_dump("Allowed to run");
- $this->job_get3pewaybillid->do_job();
- }else{
- var_dump("Not allowed to run");
- exit("Not allowed to run");
- }
-
- }
- //获取云途的转单号
- private function _getyunTuWaybillid(){
- if(date("H",time()) == 7){
- var_dump("Allowed to run yuntu");
- $this->job_getyuntuwaybillid->do_job();
- }else{
- var_dump("Not allowed to run yuntu");
- exit("Not allowed to run");
- }
- }
- //获取华磊的转单号
- private function _getHualeiWaybillid(){
- if(date("H",time()) == 7){
- var_dump("Allowed to run hualei");
- $this->job_gethualeiwaybillid->do_job();
- }else{
- var_dump("Not allowed to run hualei");
- exit("Not allowed to run");
- }
- }
- }
|