Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
aic_duty_strategy
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yinxiaoling
aic_duty_strategy
Commits
087e4462
Commit
087e4462
authored
May 19, 2020
by
yinxiaoling
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
时间搜索问题处理
parent
40b92ad6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
123 deletions
+25
-123
CreatedTaskCommand.php
app/Console/Commands/CreatedTaskCommand.php
+1
-110
StrategyTaskController.php
app/Http/Controllers/strategy/StrategyTaskController.php
+18
-8
CheckApiKey.php
app/Http/Middleware/CheckApiKey.php
+1
-1
StrategyService.php
app/Service/StrategyService.php
+5
-4
No files found.
app/Console/Commands/CreatedTaskCommand.php
View file @
087e4462
...
...
@@ -48,116 +48,7 @@ class CreatedTaskCommand extends Command
$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]); //设为已创建
}
}
*/
$StrategyService
->
createdTask
();
}
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
;
}
}
app/Http/Controllers/strategy/StrategyTaskController.php
View file @
087e4462
...
...
@@ -8,30 +8,40 @@ use App\Models\StrategyTask;
use
Illuminate\Foundation\Validation\ValidatesRequests
;
use
App\Http\Controllers\Tool
;
use
Illuminate\Support\Facades\Validator
;
use
Illuminate\Support\Facades\Log
;
class
StrategyTaskController
extends
Controller
{
use
ValidatesRequests
;
use
Tool
;
public
function
index
(){
public
function
index
(
Request
$request
){
//搜索分页?
$pageSize
=
request
()
->
pageSize
;
$projectArr
=
$this
->
getAllowProjects
(
1
);
//$strategyInfo = StrategyTask::all()->toArray();
$searchArr
=
[];
$searchArr
[
'phone'
]
=
request
()
->
phone
;
/*
$searchArr['phone'] = request()->phone;
$searchArr['is_created'] = request()->is_created;
$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
){
if
(
isset
(
$searchArr
[
'phone'
])
&&
!
empty
(
$searchArr
[
'phone'
])){
$query
->
where
(
'phone'
,
'like'
,
"%
{
$searchArr
[
'phone'
]
}
%"
);
}
if
(
isset
(
$searchArr
[
'is_created'
])
&&
!
empty
(
$searchArr
[
'is_created'
])){
$query
->
where
(
'is_created'
,
'like'
,
"%
{
$searchArr
[
'is_created'
]
}
%
"
);
if
(
isset
(
$searchArr
[
'is_created'
])
&&
is_numeric
(
$searchArr
[
'is_created'
])){
$query
->
where
(
'is_created'
,
"
{
$searchArr
[
'is_created'
]
}
"
);
}
if
(
isset
(
$searchArr
[
'callTimeStart'
])
&&
!
empty
(
$searchArr
[
'callTimeStart'
])){
...
...
@@ -39,14 +49,14 @@ class StrategyTaskController extends Controller
}
if
(
isset
(
$searchArr
[
'callTimeStop'
])
&&
!
empty
(
$searchArr
[
'callTimeStop'
])){
$query
->
whereRaw
(
" call_date || ' ' || call_time <= '
{
$searchArr
[
'callTimeSt
art
'
]
}
'"
);
$query
->
whereRaw
(
" call_date || ' ' || call_time <= '
{
$searchArr
[
'callTimeSt
op
'
]
}
'"
);
}
});
if
(
empty
(
$pageSize
)){
$strategyInfo
=
$strategyInfo
->
orderBy
(
'call_date'
,
'desc'
)
->
get
()
->
toArray
();
$strategyInfo
=
$strategyInfo
->
orderBy
(
'call_date'
,
'desc'
)
->
orderBy
(
'call_time'
,
'desc'
)
->
get
()
->
toArray
();
}
else
{
$strategyInfo
=
$strategyInfo
->
orderBy
(
'call_date'
,
'desc'
)
->
paginate
(
$pageSize
)
->
toArray
();
$strategyInfo
=
$strategyInfo
->
orderBy
(
'call_date'
,
'desc'
)
->
orderBy
(
'call_time'
,
'desc'
)
->
paginate
(
$pageSize
)
->
toArray
();
}
$listInfo
=
[];
if
(
isset
(
$strategyInfo
[
'data'
])
&&
!
empty
(
$strategyInfo
[
'data'
])){
...
...
app/Http/Middleware/CheckApiKey.php
View file @
087e4462
...
...
@@ -33,7 +33,7 @@ class CheckApiKey
$rKey
=
'strategy:login:'
.
$user_sn
;
if
(
!
Redis
::
exists
(
$rKey
)){
return
$this
->
errorWithInfo
(
'
登陆失效
'
,
401
);
return
$this
->
errorWithInfo
(
'
未登陆
'
,
401
);
}
else
{
$user
=
Redis
::
get
(
$rKey
);
$user
=
json_decode
(
$user
,
true
);
...
...
app/Service/StrategyService.php
View file @
087e4462
...
...
@@ -361,6 +361,7 @@ class StrategyService
];
$v
[
'user_sn'
]
=
trim
(
$v
[
'user_sn'
]);
$v
[
'project_sn'
]
=
trim
(
$v
[
'project_sn'
]);
$v
[
'call_number'
]
=
trim
(
$v
[
'call_number'
]);
$params
=
[
'user_sn'
=>
$v
[
'user_sn'
],
'project_sn'
=>
$v
[
'project_sn'
],
...
...
@@ -371,19 +372,19 @@ class StrategyService
'is_auto_fail_recall'
=>
'1'
,
//是否自动重呼,是
'total_fail_recall_times'
=>
'3'
,
//重呼次数
'fail_recall_interval'
=>
'3'
,
//重呼间隔时间
'recall_auto'
=>
1
,
//重呼方式; 0新建任务1原任务重呼
'recall_auto'
=>
'1'
,
//重呼方式; 0新建任务1原任务重呼
'mark'
=>
'值班策略创建任务'
,
'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'
],
//定时启动
'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
)),
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
);
$requestReturnArr
=
json_decode
(
$requestReturn
,
true
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment