Commit 087e4462 authored by yinxiaoling's avatar yinxiaoling

时间搜索问题处理

parent 40b92ad6
...@@ -48,116 +48,7 @@ class CreatedTaskCommand extends Command ...@@ -48,116 +48,7 @@ class CreatedTaskCommand extends Command
$StrategyService->createdTask(); $StrategyService->createdTask();
$StrategyService->createdTask(); $StrategyService->createdTask();
//新建任务、失败原任务重呼3次,接口调用失败重试3次
/* //$userInfo = $this->getAllowLoginUser();
$userInfo = ['user_name'=>'yxl001','user_sn'=>'SYSUSER|9da548a2e392a679eb274a0b2abeb627','parent_sn'=>'ljs'];
$today = date('Y-m-d');
$taskInfo = StrategyTask::where([['is_created',0],['call_date',$today],['created_fail_number','<=','3']])->get()->toArray(); //获取当天需要新建任务的数据
$url = "https://test117.ciopaas.com/api/addJsonNoLogin";
//dd($taskInfo);
foreach ($taskInfo as $k=>$v){//批量调用接口新建任务
$failLabTemp = 0;
$failReason = '';
//处理参数
if (empty($v['project_sn'])){
break;
}
$client_info_json = [
[
'姓名'=>$v['name'],
'电话'=>$v['phone'],
'地址'=>'',
'公司名称'=>'',
'备注'=>'',
'手机号码'=>$v['phone'],
'值班日期'=>$v['duty_date']
]
];
$params = [
'user_sn'=>$v['user_sn'],
'project_sn'=>trim($v['project_sn']),
'source'=>date('YmdHis').$k, //任务名称,年月日时分秒,加上循环键值避免重复任务名
'ai_user_sn'=>$v['user_sn'],//$v['user_sn'],
'is_zidong'=>'off',//是否自动启动,否,任务定时启动
'is_open_remove_duplication'=>'0',
'is_auto_fail_recall'=>'1', //是否自动重呼,是
'total_fail_recall_times'=>'3', //重呼次数
'fail_recall_interval'=>'3',//重呼间隔时间
'recall_auto'=>1, //重呼方式; 0新建任务1原任务重呼
'mark'=>'值班策略创建任务',
'fail_recall_of_reason'=>'关机,来电提醒,稍后再拨,停机,无法接通,正在通话中,用户正忙,用户拒接,欠费,无人应答,其他,对方示忙',
'is_auto_stop'=>2, //0非自动暂停,1自动暂停 2 定时启动任务
'timed_started_at'=>$v['call_date'].' '.$v['call_time'], //定时启动
'yd_display_phone'=>$v['user_sn'].'@vos:'.$v['call_number'] //主叫号码传输格式
//'ai_distribution_type'=>'0'//0公用ai 1按主账号分配ai(6.2人工外呼分配方式 0平均,1抢拨)
];
$params['client_info_json'] = json_encode(['data'=>$client_info_json]);
$params['url'] = substr(md5(json_encode($params)),1,8);
$requestReturn = $this->requestPost($url,$params);
$requestReturnArr = json_decode($requestReturn,true);
if (isset($requestReturnArr['code'])){
if ($requestReturnArr['code'] == 0){//接口请求返回成功
if ($requestReturnArr['data']['total'] == $requestReturnArr['data']['success']){//全部成功
StrategyTask::where('id',$v['id'])->update(['is_created'=>1]); //设为已创建
}else{//存在失败数据
$failLabTemp = 1;
$failReason = substr($requestReturnArr['msg'],0,490);
}
}else{ //接口请求返回异常
$failLabTemp = 1;
$failReason = substr($requestReturnArr['msg'],0,490);
}
}else{
$failLabTemp = 1;
$failReason = substr($requestReturn,0,490);
}
if ($failLabTemp == 1){
StrategyTask::where('id',$v['id'])->update(['created_fail_number'=>($v['created_fail_number'] + 1),'create_fail_reason'=>$failReason]); //设为已创建
}
}
*/
} }
public function requestPost($url = '', $post_data = array(),$header=array()) {
if (empty($url) || empty($post_data)) {
return false;
}
$o = "";
if(is_array($post_data) && count($post_data)){
foreach ( $post_data as $k => $v )
{
$o.= "$k=" . urlencode( $v ). "&" ;
}
$post_data = substr($o,0,-1);
}
$postUrl = $url;
$curlPost = $post_data;
$ch = curl_init();//初始化curl
if(!empty($header)){
curl_setopt( $ch, CURLOPT_HTTPHEADER, $header);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, '0');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, '0');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($ch);//运行curl
curl_close($ch);
return $data;
}
} }
...@@ -8,30 +8,40 @@ use App\Models\StrategyTask; ...@@ -8,30 +8,40 @@ use App\Models\StrategyTask;
use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Validation\ValidatesRequests;
use App\Http\Controllers\Tool; use App\Http\Controllers\Tool;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Log;
class StrategyTaskController extends Controller class StrategyTaskController extends Controller
{ {
use ValidatesRequests; use ValidatesRequests;
use Tool; use Tool;
public function index(){ public function index(Request $request){
//搜索分页? //搜索分页?
$pageSize=request()->pageSize; $pageSize=request()->pageSize;
$projectArr = $this->getAllowProjects(1); $projectArr = $this->getAllowProjects(1);
//$strategyInfo = StrategyTask::all()->toArray(); //$strategyInfo = StrategyTask::all()->toArray();
$searchArr = []; $searchArr = [];
$searchArr['phone'] = request()->phone; /* $searchArr['phone'] = request()->phone;
$searchArr['is_created'] = request()->is_created; $searchArr['is_created'] = request()->is_created;
$searchArr['callTimeStart'] = request()->started_at; $searchArr['callTimeStart'] = request()->started_at;
$searchArr['callTimeStop'] = request()->stoped_at; $searchArr['callTimeStop'] = request()->stoped_at; */
$searchArr['phone'] = $request->phone;
$searchArr['is_created'] = $request->is_created;
$searchArr['callTimeStart'] = $request->started_at;
$searchArr['callTimeStop'] = $request->stoped_at;
Log::channel('api')->info(var_export($searchArr,true));
$strategyInfo = StrategyTask::where(function($query) use ($searchArr){ $strategyInfo = StrategyTask::where(function($query) use ($searchArr){
if (isset($searchArr['phone']) && !empty($searchArr['phone'])){ if (isset($searchArr['phone']) && !empty($searchArr['phone'])){
$query->where('phone','like',"%{$searchArr['phone']}%"); $query->where('phone','like',"%{$searchArr['phone']}%");
} }
if (isset($searchArr['is_created']) && !empty($searchArr['is_created'])){ if (isset($searchArr['is_created']) && is_numeric($searchArr['is_created'])){
$query->where('is_created','like',"%{$searchArr['is_created']}%"); $query->where('is_created',"{$searchArr['is_created']}");
} }
if (isset($searchArr['callTimeStart']) && !empty($searchArr['callTimeStart'])){ if (isset($searchArr['callTimeStart']) && !empty($searchArr['callTimeStart'])){
...@@ -39,14 +49,14 @@ class StrategyTaskController extends Controller ...@@ -39,14 +49,14 @@ class StrategyTaskController extends Controller
} }
if (isset($searchArr['callTimeStop']) && !empty($searchArr['callTimeStop'])){ if (isset($searchArr['callTimeStop']) && !empty($searchArr['callTimeStop'])){
$query->whereRaw(" call_date || ' ' || call_time <= '{$searchArr['callTimeStart']}'"); $query->whereRaw(" call_date || ' ' || call_time <= '{$searchArr['callTimeStop']}'");
} }
}); });
if(empty($pageSize)){ if(empty($pageSize)){
$strategyInfo = $strategyInfo->orderBy('call_date','desc')->get()->toArray(); $strategyInfo = $strategyInfo->orderBy('call_date','desc')->orderBy('call_time','desc')->get()->toArray();
}else{ }else{
$strategyInfo = $strategyInfo->orderBy('call_date','desc')->paginate($pageSize)->toArray(); $strategyInfo = $strategyInfo->orderBy('call_date','desc')->orderBy('call_time','desc')->paginate($pageSize)->toArray();
} }
$listInfo = []; $listInfo = [];
if (isset($strategyInfo['data']) && !empty($strategyInfo['data'])){ if (isset($strategyInfo['data']) && !empty($strategyInfo['data'])){
......
...@@ -33,7 +33,7 @@ class CheckApiKey ...@@ -33,7 +33,7 @@ class CheckApiKey
$rKey = 'strategy:login:'.$user_sn; $rKey = 'strategy:login:'.$user_sn;
if (!Redis::exists($rKey)){ if (!Redis::exists($rKey)){
return $this->errorWithInfo('登陆失效', 401); return $this->errorWithInfo('未登陆', 401);
}else{ }else{
$user = Redis::get($rKey); $user = Redis::get($rKey);
$user = json_decode($user,true); $user = json_decode($user,true);
......
...@@ -361,6 +361,7 @@ class StrategyService ...@@ -361,6 +361,7 @@ class StrategyService
]; ];
$v['user_sn'] = trim($v['user_sn']); $v['user_sn'] = trim($v['user_sn']);
$v['project_sn'] = trim($v['project_sn']); $v['project_sn'] = trim($v['project_sn']);
$v['call_number'] = trim($v['call_number']);
$params = [ $params = [
'user_sn'=>$v['user_sn'], 'user_sn'=>$v['user_sn'],
'project_sn'=>$v['project_sn'], 'project_sn'=>$v['project_sn'],
...@@ -371,19 +372,19 @@ class StrategyService ...@@ -371,19 +372,19 @@ class StrategyService
'is_auto_fail_recall'=>'1', //是否自动重呼,是 'is_auto_fail_recall'=>'1', //是否自动重呼,是
'total_fail_recall_times'=>'3', //重呼次数 'total_fail_recall_times'=>'3', //重呼次数
'fail_recall_interval'=>'3',//重呼间隔时间 'fail_recall_interval'=>'3',//重呼间隔时间
'recall_auto'=>1, //重呼方式; 0新建任务1原任务重呼 'recall_auto'=>'1', //重呼方式; 0新建任务1原任务重呼
'mark'=>'值班策略创建任务', 'mark'=>'值班策略创建任务',
'fail_recall_of_reason'=>'关机,来电提醒,稍后再拨,停机,无法接通,正在通话中,用户正忙,用户拒接,欠费,无人应答,其他,对方示忙', 'fail_recall_of_reason'=>'关机,来电提醒,稍后再拨,停机,无法接通,正在通话中,用户正忙,用户拒接,欠费,无人应答,其他,对方示忙',
'is_auto_stop'=>2, //0非自动暂停,1自动暂停 2 定时启动任务 'is_auto_stop'=>'2', //0非自动暂停,1自动暂停 2 定时启动任务
'timed_started_at'=>$v['call_date'].' '.$v['call_time'], //定时启动 'timed_started_at'=>$v['call_date'].' '.$v['call_time'], //定时启动
'yd_display_phone'=>$v['user_sn'].'@vos:'.$v['call_number'] //主叫号码传输格式 'yd_display_phone'=>$v['user_sn'].'@vos:'.$v['call_number'] //主叫号码传输格式
//'ai_distribution_type'=>'0'//0公用ai 1按主账号分配ai(6.2人工外呼分配方式 0平均,1抢拨) //'ai_distribution_type'=>'0'//0公用ai 1按主账号分配ai(6.2人工外呼分配方式 0平均,1抢拨)
]; ];
$params['client_info_json'] = json_encode(['data'=>$client_info_json]); $params['url'] = substr(md5(json_encode($params)),7,15);
$params['client_info_json'] = json_encode(['data'=>$client_info_json]);
$params['url'] = substr(md5(json_encode($params)),1,8);
$requestReturn = $this->requestPost($url,$params); $requestReturn = $this->requestPost($url,$params);
$requestReturnArr = json_decode($requestReturn,true); $requestReturnArr = json_decode($requestReturn,true);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment