|
@@ -8,26 +8,31 @@ class Apidsyskxcx extends Start_Controller
|
|
|
private $serect_str = "yskxcx";
|
|
|
private $user_agent = 'Xcly251618/Yskxcx (Erp)';
|
|
|
private $api = "Yskxcx25.424";
|
|
|
- private $ip = ['127.0.0.1','47.105.156.18'];
|
|
|
+ private $ip = ['127.0.0.1', '47.105.156.18'];
|
|
|
public function __construct()
|
|
|
{
|
|
|
parent::__construct();
|
|
|
- $this->load->_model('Model_fullorder','fullorder');
|
|
|
- $this->load->_model("Model_logic_ding","logic_ding");
|
|
|
- $this->load->_model("Model_cne","cne");
|
|
|
+ $this->load->_model('Model_fullorder', 'fullorder');
|
|
|
+ $this->load->_model("Model_logic_ding", "logic_ding");
|
|
|
+ $this->load->_model("Model_cne", "cne");
|
|
|
+ $this->load->_model("Model_zzjobs", "zzjobs");
|
|
|
+ $this->load->_model('Model_notice','notice');
|
|
|
+ $this->load->_model('Model_shop','shop');
|
|
|
+ $this->load->_model('Model_express','express');
|
|
|
+ $this->load->_model('Model_emaildata','emaildata');
|
|
|
}
|
|
|
public function _remap($arg, $arg_array)
|
|
|
{
|
|
|
$ip = $_SERVER['REMOTE_ADDR'];
|
|
|
-
|
|
|
- if(!in_array($ip,$this->ip)){
|
|
|
+
|
|
|
+ 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);
|
|
|
+ $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->_doRenwu();
|
|
@@ -42,52 +47,146 @@ class Apidsyskxcx extends Start_Controller
|
|
|
* $time 请求的时间
|
|
|
*
|
|
|
*/
|
|
|
- private function checkAuth($user_agent,$token,$time,$api){
|
|
|
- if($api != $this->api){
|
|
|
+ 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)){
|
|
|
+ $check_str = date("Ymd") . "¥_" . $this->serect_str . "_¥" . $time;
|
|
|
+ if (empty($user_agent)) {
|
|
|
exit('No direct script access allowed');
|
|
|
}
|
|
|
- if($user_agent != $this->user_agent){
|
|
|
+ if ($user_agent != $this->user_agent) {
|
|
|
exit('Illegal request');
|
|
|
}
|
|
|
- if(empty($token)){
|
|
|
+ if (empty($token)) {
|
|
|
exit('No access permission');
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$sercet_str = md5($check_str);
|
|
|
- if($sercet_str != $token){
|
|
|
+ if ($sercet_str != $token) {
|
|
|
exit("Request permission is illegal");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
private function _index() {}
|
|
|
-
|
|
|
-
|
|
|
- private function _doRenwu(){
|
|
|
- //必须是云尚快线 打印
|
|
|
- $list = $this->fullorder->find_all("express = 71 and print = 3 and library = 2 and expressstate < 6");
|
|
|
-
|
|
|
- $waybill_list = array_column($list,'waybill');
|
|
|
|
|
|
- $split_waybills = array_chunk($waybill_list,10);
|
|
|
|
|
|
- //$this->logic_ding->sendToDing(json_encode($split_waybills));
|
|
|
-
|
|
|
- foreach($split_waybills as $v){
|
|
|
+ private function _doRenwu()
|
|
|
+ {
|
|
|
+ $list = $this->zzjobs->find_all("status = 0 and quque = 'ysgjcx'", "*", 0, 1);
|
|
|
+ $ids = array_column($list, 'id');
|
|
|
+ $this->db->query("update crowd_zzjobs set status = 10 where id in (" . implode(",", $ids) . ")");
|
|
|
+ foreach ($list as $v) {
|
|
|
+ $this->doAction($v);
|
|
|
+ sleep(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private function doAction($v)
|
|
|
+ {
|
|
|
+ $param = json_decode($v['payload'], true);
|
|
|
+
|
|
|
+
|
|
|
+ $info = $param['v'];
|
|
|
+
|
|
|
+ $notice_id = $param['id'];
|
|
|
+
|
|
|
+ $notice_info = $this->notice->read($notice_id);
|
|
|
|
|
|
- $params =[];
|
|
|
- foreach($v as $item){
|
|
|
- $params[] = [
|
|
|
- "TrackNumber"=>$item,
|
|
|
- ];
|
|
|
+ $fs = $this->cne->get_logistics_yskx(
|
|
|
+ [
|
|
|
+ [
|
|
|
+ 'TrackNumber' => $info['waybill']
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ var_dump($fs);
|
|
|
+ $wlfs = [];
|
|
|
+ if (!isset($fs['f'])) {
|
|
|
+ $this->fullorder->save(array('wlerror' => $fs['content']), $info['id']);
|
|
|
+ } else {
|
|
|
+ if ($fs['f'] == '1') {
|
|
|
+ if ($fs['exstate'] > $info['expressstate'] || isset($fs['webhookregister'])) {
|
|
|
+ $this->fullorder->save(array('expressstate' => $fs['exstate'], 'excontent' => $fs['data'], 'webhookregister' => 0, 'wlerror' => ''), $info['id']);
|
|
|
+ }
|
|
|
+ if ($fs['exstate'] == $notice_info['logisticstatus'] && $info['wlyc'] == '0' && $info['wltype'] != '1' && $info['source'] != '1') //获取快递状态等于模板状态、订单状态等于模板状态、出库时间大于-、未加入物流异常、允许发送邮件状态、非线下单
|
|
|
+ {
|
|
|
+ if ($info['shop'] < '7') // && $v['shouldmoney'] > 100)
|
|
|
+ {
|
|
|
+ $wlfs[] = array('v' => $info, 'id' => $notice_id );
|
|
|
+ //$go = $this->_sdfs($v,$var['id']);//更新顺带发送
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $this->fullorder->save(array('wlerror' => $fs['content']), $v['id']);
|
|
|
}
|
|
|
}
|
|
|
+ $this->zzjobs->save(['status'=>30,'last_time'=>time(),'result'=>json_encode($fs,JSON_UNESCAPED_UNICODE)],$v['id']);
|
|
|
+ // if(!empty($wlfs)){
|
|
|
+ // $this->_sdfs($v['v'],$v['id']);
|
|
|
+ // }
|
|
|
+ // @$this->allocation->insert(array('title'=>$shopid.'-'.json_encode($csck)));
|
|
|
+ // if($wlfs)
|
|
|
+ // {
|
|
|
+ // foreach ($wlfs as $k=>$v)
|
|
|
+ // {
|
|
|
+ // $t1 = microtime(true);
|
|
|
+ // $this->_sdfs($v['v'],$v['id']);
|
|
|
+ // $t2 = microtime(true);
|
|
|
+ // $t3 = (40-($t2-$t1) < 1)?1:round(40-($t2-$t1));
|
|
|
+ // sleep($t3);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ }
|
|
|
|
|
|
- throw new Exception(json_encode($params));
|
|
|
+ public function _sdfs($fullorder,$id)//手动发送信息
|
|
|
+ {
|
|
|
+ $time = time();
|
|
|
+ $notice = $this->notice->read($id);//无条件同模板匹配
|
|
|
+ $notice['email'] = $this->emaildata->read($notice['email']);
|
|
|
+ $shop = $this->shop->read($fullorder['shop']);
|
|
|
+ $express = $this->express->read($fullorder['express']);
|
|
|
+ if($notice['type'] == '1')
|
|
|
+ {
|
|
|
+ $fslx = 'tab';
|
|
|
+ $content = '自动发送';
|
|
|
+ $stripos = '1-';
|
|
|
+ }
|
|
|
+ else if ($notice['type'] == '2')
|
|
|
+ {
|
|
|
+ $fslx = 'logisticstatus';
|
|
|
+ $content = $notice['title'];
|
|
|
+ $stripos = $notice['type'].'-'.$notice[$fslx].'|';
|
|
|
+ }
|
|
|
+ $this->logic_ding->sendToDing("云尚轨迹获取快递信息暂时中断");
|
|
|
+ return ;
|
|
|
+ if(stripos($fullorder['zdstate'],$stripos) === false && $fullorder['wltype'] == '0')//如果没发送过并且允许发送
|
|
|
+ {
|
|
|
+ $go = $this->notice->get_god($fullorder,$shop,$express,$notice);
|
|
|
+ $this->logic_ding->sendToDing("云尚轨迹获取快递信息".json_encode($go,JSON_UNESCAPED_UNICODE));
|
|
|
+ if($go == 1)
|
|
|
+ {
|
|
|
+ if($notice['type'] == '1')
|
|
|
+ {
|
|
|
+ $this->fullorder->save(array('content'=>$fullorder['content'].$content.'-成功;','zdstate'=>$fullorder['zdstate'].$notice['type'].'-'.$notice[$fslx].'|','exstateerror'=>'','wlerror'=>''),$fullorder['id']);
|
|
|
+ }
|
|
|
+ else if ($notice['type'] == '2')
|
|
|
+ {
|
|
|
+ $this->fullorder->save(array('wlcontent'=>$fullorder['wlcontent'].$content.'-成功;','wlfstime'=>time(),'zdstate'=>$fullorder['zdstate'].$notice['type'].'-'.$notice[$fslx].'|','exstateerror'=>'','wlerror'=>''),$fullorder['id']);
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if($notice['type'] == '1')
|
|
|
+ {
|
|
|
+ $this->fullorder->save(array('exstateerror'=>$content.'发送失败1:'.date('Y-m-d H',time()).'-'.$go.'('.$notice['type'].'-'.$notice[$fslx].')'),$fullorder['id']);
|
|
|
+ }
|
|
|
+ else if ($notice['type'] == '2')
|
|
|
+ {
|
|
|
+ $this->fullorder->save(array('wlerror'=>$content.'发送失败2:'.date('Y-m-d H',time()).'-'.$go.'('.$notice['type'].'-'.$notice[$fslx].')'),$fullorder['id']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
}
|