diff --git a/application/common/Logic/NoticeLogic.php b/application/common/Logic/NoticeLogic.php index 057fbaa..d6cb024 100644 --- a/application/common/Logic/NoticeLogic.php +++ b/application/common/Logic/NoticeLogic.php @@ -25,33 +25,34 @@ class NoticeLogic public function callIt($log) { - $dispatch = OrderDispatch::get($log->dispatch_id); - //1=派单,2=提前通知,3=超时通知 - $ttsCode = null; - $dispatch->tts_check_time = date('Y-m-d H:i:s',time()+5*60); - if($log->type == 1) - { - $dispatch->tts_notice = 1; - if($dispatch->type == 1){ - $ttsCode = self::TTS_DISPATCH1; - $dispatch->save(); - }else{ - $ttsCode = self::TTS_DISPATCH2; - } - }elseif($log->type == 2) - { - $dispatch->tts_notice = 2; - $ttsCode = self::TTS_GOGOGO; - }elseif($log->type == 3){ - $dispatch->tts_notice = 3; - $ttsCode = self::TTS_OVER_FINISHED; - } - if(empty($ttsCode)){ - $log->status = -1; - $log->content = 'TTSID为空'; - $log->save(); - } try { + $dispatch = OrderDispatch::get($log->dispatch_id); + //1=派单,2=提前通知,3=超时通知 + $ttsCode = null; + $dispatch->tts_check_time = date('Y-m-d H:i:s',time()+5*60); + if($log->type == 1) + { + $dispatch->tts_notice = 1; + if($dispatch->type == 1){ + $ttsCode = self::TTS_DISPATCH1; + $dispatch->save(); + }else{ + $ttsCode = self::TTS_DISPATCH2; + } + }elseif($log->type == 2) + { + $dispatch->tts_notice = 2; + $ttsCode = self::TTS_GOGOGO; + }elseif($log->type == 3){ + $dispatch->tts_notice = 3; + $ttsCode = self::TTS_OVER_FINISHED; + } + if(empty($ttsCode)){ + $log->status = -1; + $log->content = 'TTSID为空'; + $log->save(); + } + $reponse = DyvmsService::getInstance()->call($dispatch->worker_tel, $ttsCode, md5(time())); if($reponse->statusCode == 200 && $reponse->body->code == 'OK'){ diff --git a/application/common/command/CheckTTSTaskCommand.php b/application/common/command/CheckTTSTaskCommand.php new file mode 100644 index 0000000..d670e5a --- /dev/null +++ b/application/common/command/CheckTTSTaskCommand.php @@ -0,0 +1,35 @@ +setName('check:dispatch-tts-task') + ->setDescription('任务语音任务,每分钟执行一次'); + } + + protected function execute(Input $input, Output $output){ + $Model = new TtsLog(); + $ttsService = new NoticeLogic(); + $Model->where('status','=',OrderDispatch::STATUS_CLOCK) + ->where('tts_notice','<',3) + ->chunk(100, function ($list)use($ttsService) { + foreach ($list as $item) { + $ttsService->callIt($item); + } + }); + $output->info('OVER'); + } +} \ No newline at end of file