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
b7fa07b3
Commit
b7fa07b3
authored
May 13, 2020
by
yinxiaoling
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
策略添加接口
parent
3a7c2dba
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
89 additions
and
31 deletions
+89
-31
Tool.php
app/Http/Controllers/Tool.php
+13
-1
StrategySetController.php
app/Http/Controllers/strategy/StrategySetController.php
+28
-5
StrategyExcel.php
app/Models/StrategyExcel.php
+2
-2
StrategySet.php
app/Models/StrategySet.php
+2
-2
StrategyTask.php
app/Models/StrategyTask.php
+1
-1
StrategyService.php
app/Service/StrategyService.php
+33
-10
DatabaseSeeder.php
database/seeds/DatabaseSeeder.php
+10
-10
No files found.
app/Http/Controllers/Tool.php
View file @
b7fa07b3
...
...
@@ -111,6 +111,18 @@ trait Tool
return
$data
;
}
function
uidd
(
$prefix
=
''
){
if
(
function_exists
(
'com_create_guid'
)){
return
com_create_guid
();
}
else
{
$chars
=
md5
(
uniqid
(
mt_rand
(),
true
));
$uuid
=
substr
(
$chars
,
0
,
8
);
$uuid
.=
substr
(
$chars
,
8
,
4
);
$uuid
.=
substr
(
$chars
,
12
,
4
);
$uuid
.=
substr
(
$chars
,
16
,
4
);
$uuid
.=
substr
(
$chars
,
20
,
12
);
return
$prefix
.
$uuid
;
}
}
}
\ No newline at end of file
app/Http/Controllers/strategy/StrategySetController.php
View file @
b7fa07b3
...
...
@@ -8,6 +8,7 @@ use Illuminate\Foundation\Validation\ValidatesRequests;
use
Illuminate\Support\Facades\Validator
;
use
App\Http\Controllers\Tool
;
use
App\Service\StrategyService
;
use
App\models\StrategySet
;
//use App\Http\Requests\StrategySetCreateRequest;
class
StrategySetController
extends
Controller
...
...
@@ -21,7 +22,7 @@ class StrategySetController extends Controller
public
function
store
(
Request
$request
,
StrategyService
$StrategyService
){
$validator
=
Validator
::
make
(
$request
->
all
(),
[
'name'
=>
'required|max:30'
,
'
strategy_
name'
=>
'required|max:30'
,
'user_sn'
=>
'required'
,
'call_number'
=>
'required'
,
'day_type'
=>
'required'
,
...
...
@@ -30,10 +31,12 @@ class StrategySetController extends Controller
'project_sn'
=>
'required'
]);
/*
if ($validator->fails()) {
if
(
$validator
->
fails
())
{
return
$this
->
errorWithInfo
(
'表单验证失败'
,
401
);
}
*/
}
$params
=
$request
->
all
();
$successTotal
=
$failTotal
=
0
;
$failDataFile
=
''
;
if
(
isset
(
$params
[
'upload'
])){
//excel文件上传
$excelData
=
$StrategyService
->
validUploadExcel
(
$request
,
'upload'
,
8388608
);
//限制最大上传文件8M
if
(
isset
(
$excelData
[
'code'
])){
...
...
@@ -41,9 +44,29 @@ class StrategySetController extends Controller
}
//验证excel数据格式及不合格数据原因
$excelDataValid
=
$StrategyService
->
validExcelData
(
$excelData
,
$params
[
'day_type'
]);
extract
(
$excelDataValid
);
unset
(
$params
[
'upload'
]);
}
if
(
isset
(
$successTotal
)
&&
$successTotal
>
0
){
$params
[
'latest_total'
]
=
$successTotal
;
$params
[
'total'
]
=
$successTotal
;
}
$strategySn
=
$this
->
uidd
();
$params
[
'strategy_sn'
]
=
$strategySn
;
$params
[
'user_name'
]
=
'yxl002'
;
$params
[
'parent_sn'
]
=
'ljs'
;
$StrategySet
=
new
StrategySet
(
$params
);
$setReturn
=
$StrategySet
->
save
();
if
(
$setReturn
){
//策略保存成功,处理excel数据
if
(
isset
(
$successTotal
)
&&
$successTotal
>
0
){
$StrategyService
->
insertStrategyExcel
(
$strategySn
,
$successData
);
}
}
dd
(
$excelDataValid
);
dd
(
'策略添加'
);
//返回成功数、失败数、失败导出文件
$returnArr
=
compact
(
'successTotal'
,
'failTotal'
,
'failDataFile'
);
return
$this
->
successWithInfo
([
'data'
=>
$returnArr
]);
}
...
...
app/Models/
s
trategyExcel.php
→
app/Models/
S
trategyExcel.php
View file @
b7fa07b3
...
...
@@ -4,9 +4,9 @@ namespace App\models;
use
Illuminate\Database\Eloquent\Model
;
class
s
trategyExcel
extends
Model
class
S
trategyExcel
extends
Model
{
protected
$fillable
=
[
'strategy_sn'
,
'phone'
];
protected
$fillable
=
[
'strategy_sn'
,
'phone'
,
'name'
,
'duty_date'
];
protected
$table
=
'strategy_excel'
;
...
...
app/Models/
s
trategySet.php
→
app/Models/
S
trategySet.php
View file @
b7fa07b3
...
...
@@ -4,9 +4,9 @@ namespace App\models;
use
Illuminate\Database\Eloquent\Model
;
class
s
trategySet
extends
Model
class
S
trategySet
extends
Model
{
protected
$fillable
=
[
'strategy_sn'
,
'strategy_name'
,
'user_sn'
,
'user_name'
,
'parent_sn'
,
'project_sn'
,
'day_type'
,
'frequency_type'
,
'call_time_set'
];
protected
$fillable
=
[
'
call_number'
,
'
strategy_sn'
,
'strategy_name'
,
'user_sn'
,
'user_name'
,
'parent_sn'
,
'project_sn'
,
'day_type'
,
'frequency_type'
,
'call_time_set'
];
protected
$table
=
'strategy_set'
;
...
...
app/Models/
s
trategyTask.php
→
app/Models/
S
trategyTask.php
View file @
b7fa07b3
...
...
@@ -4,7 +4,7 @@ namespace App\models;
use
Illuminate\Database\Eloquent\Model
;
class
s
trategyTask
extends
Model
class
S
trategyTask
extends
Model
{
protected
$fillable
=
[
'phone'
,
'call_date'
,
'call_time'
,
'parent_sn'
,
'project_sn'
];
...
...
app/Service/StrategyService.php
View file @
b7fa07b3
...
...
@@ -3,6 +3,7 @@ namespace App\Service;
use
Maatwebsite\Excel\Facades\Excel
;
use
Illuminate\Support\Facades\Log
;
use
App\models\StrategyExcel
;
class
StrategyService
{
...
...
@@ -51,9 +52,9 @@ class StrategyService
return
[
'msg'
=>
'excel处理失败'
,
'code'
=>
401
];
}
//判断excel数据问题,$day_type//外呼日期类型 0每天 1日期前一天和当天 1需要验证值班日期必填
public
function
validExcelData
(
$
d
ata
,
$day_type
){
public
function
validExcelData
(
$
successD
ata
,
$day_type
){
$failData
=
[];
foreach
(
$
d
ata
as
$k
=>
$v
){
foreach
(
$
successD
ata
as
$k
=>
$v
){
$dataLab
=
1
;
if
(
strlen
(
$v
[
0
])
>
20
){
//姓名最大20个字符,中文处理,放入失败数据中
array_push
(
$v
,
"姓名过长"
);
...
...
@@ -78,33 +79,33 @@ class StrategyService
$dataLab
=
0
;
}
else
{
$v
[
2
]
=
date
(
'Y-m-d'
,
$unixTime
);
//处理存储db的日期格式(2020-05-13)
$
d
ata
[
$k
]
=
$v
;
$
successD
ata
[
$k
]
=
$v
;
}
}
}
if
(
$dataLab
==
0
){
unset
(
$
d
ata
[
$k
]);
unset
(
$
successD
ata
[
$k
]);
}
}
$failTotal
=
count
(
$failData
);
$successTotal
=
count
(
$
d
ata
);
$successTotal
=
count
(
$
successD
ata
);
$failDataFile
=
''
;
if
(
$failTotal
>
0
){
//把导出错误数据存入excel表格中供下载
$failDataTitle
=
[
'姓名'
,
'*手机号码'
,
'值班日期'
,
'失败原因'
];
array_unshift
(
$failData
,
$failDataTitle
);
$failExcelName
=
"导入失败数据_"
.
date
(
'YmdHis'
);
dump
(
$failExcelName
);
//
dump($failExcelName);
$failFile
=
$this
->
storeExcelStyle
(
$failExcelName
,
$failData
,
''
,
'import'
);
$failDataFile
=
storage_path
(
'export'
)
.
'\\'
.
$failExcelName
.
'.xlsx'
;
if
(
$failFile
){
if
(
$failFile
){
$failDataFile
=
storage_path
(
'export'
)
.
'\\'
.
$failExcelName
.
'.xlsx'
;
}
else
{
//失败数据写入失败
dd
(
'失败数据
写入失败'
);
Log
::
channel
(
'api'
)
->
error
(
'错误文件excel
写入失败'
);
}
}
return
compact
(
'
d
ata'
,
'failData'
,
'failTotal'
,
'successTotal'
,
'failDataFile'
);
return
compact
(
'
successD
ata'
,
'failData'
,
'failTotal'
,
'successTotal'
,
'failDataFile'
);
}
...
...
@@ -156,5 +157,27 @@ class StrategyService
}
}
//添加策略处理excel数据入库
public
function
insertStrategyExcel
(
$strategySn
,
$data
){
if
(
count
(
$data
)
>
0
){
$insertData
=
[];
$now
=
date
(
'Y-m-d H:i:s'
);
foreach
(
$data
as
$k
=>
$v
){
$insertTemp
=
[];
$insertTemp
[
'strategy_sn'
]
=
$strategySn
;
$insertTemp
[
'name'
]
=
$v
[
0
]
==
null
?
''
:
$v
[
0
];
$insertTemp
[
'phone'
]
=
(
int
)
$v
[
1
];
$insertTemp
[
'duty_date'
]
=
$v
[
2
]
==
null
?
''
:
$v
[
2
];
$insertTemp
[
'created_at'
]
=
$now
;
$insertTemp
[
'updated_at'
]
=
$now
;
$insertData
[]
=
$insertTemp
;
}
//dd($insertData);
return
StrategyExcel
::
insert
(
$insertData
);
}
}
}
database/seeds/DatabaseSeeder.php
View file @
b7fa07b3
...
...
@@ -18,7 +18,7 @@ class DatabaseSeeder extends Seeder
if
(
!
Schema
::
hasTable
(
$tableName
)){
Schema
::
create
(
$tableName
,
function
(
Blueprint
$table
){
$table
->
increments
(
'id'
);
$table
->
char
(
'strategy_sn'
,
100
);
//sn编号
$table
->
uuid
(
'strategy_sn'
);
//sn编号
$table
->
char
(
'strategy_name'
,
50
);
//策略名称
$table
->
char
(
'user_sn'
,
100
);
//用户sn
$table
->
char
(
'user_name'
,
50
);
//用户名
...
...
@@ -26,14 +26,13 @@ class DatabaseSeeder extends Seeder
$table
->
char
(
'parent_sn'
,
50
);
//主账号名
$table
->
char
(
'project_sn'
,
100
);
//项目sn
$table
->
i
nteger
(
'day_type'
)
->
default
(
0
);
//外呼日期类型 0每天 1日期前一天和当天
$table
->
i
nteger
(
'frequency_type'
)
->
default
(
1
);
//外呼频率类型 (1 一天一次 2 一天两次)
$table
->
unsignedSmallI
nteger
(
'day_type'
)
->
default
(
0
);
//外呼日期类型 0每天 1日期前一天和当天
$table
->
unsignedSmallI
nteger
(
'frequency_type'
)
->
default
(
1
);
//外呼频率类型 (1 一天一次 2 一天两次)
$table
->
char
(
'call_time_set'
,
50
);
//呼叫设置时间点,两个用#号分割
$table
->
i
nteger
(
'disabled'
)
->
default
(
1
);
//是否不可用 0启用 1停用
$table
->
unsignedSmallI
nteger
(
'disabled'
)
->
default
(
1
);
//是否不可用 0启用 1停用
$table
->
integer
(
'total'
)
->
default
(
0
);
//excel导入号码总数量
$table
->
integer
(
'latest_total'
)
->
default
(
0
);
//最新一次导入excel号码数量
$table
->
char
(
'call_time_set'
,
50
);
//呼叫设置时间点,两个用#号分割
$table
->
timestamp
(
'updated_at'
)
->
nullable
();
$table
->
timestamp
(
'created_at'
)
->
nullable
();
});
//加索引
...
...
@@ -54,7 +53,8 @@ class DatabaseSeeder extends Seeder
$table
->
char
(
'strategy_sn'
,
100
);
//sn编号
$table
->
char
(
'name'
,
50
)
->
nullable
();
//姓名
$table
->
date
(
'duty_date'
)
->
nullable
();
//值班日期
$table
->
integer
(
'phone'
);
//手机号
$table
->
unsignedBigInteger
(
'phone'
);
//手机号
$table
->
timestamp
(
'updated_at'
)
->
nullable
();
$table
->
timestamp
(
'created_at'
)
->
nullable
();
});
//加索引
...
...
@@ -69,15 +69,15 @@ class DatabaseSeeder extends Seeder
$table
->
increments
(
'id'
);
$table
->
char
(
'name'
,
50
)
->
nullable
();
//sn编号
$table
->
date
(
'duty_date'
)
->
nullable
();
//值班日期(年月日)
$table
->
i
nteger
(
'phone'
);
//手机号
$table
->
unsignedBigI
nteger
(
'phone'
);
//手机号
$table
->
char
(
'call_number'
,
50
);
//主叫号码
$table
->
date
(
'call_date'
);
//外呼时间(年月日)
$table
->
time
(
'call_time'
);
//外呼时间(时分秒)
$table
->
char
(
'parent_sn'
,
50
);
//主账号名
$table
->
char
(
'project_sn'
,
100
);
//项目sn
$table
->
i
nteger
(
'is_created'
)
->
default
(
0
);
//是否新建任务(0未建 1已建)
$table
->
i
nteger
(
'created_fail_number'
)
->
default
(
0
);
//任务创建失败尝试次数
$table
->
unsignedSmallI
nteger
(
'is_created'
)
->
default
(
0
);
//是否新建任务(0未建 1已建)
$table
->
unsignedSmallI
nteger
(
'created_fail_number'
)
->
default
(
0
);
//任务创建失败尝试次数
$table
->
timestamp
(
'created_at'
)
->
nullable
();
});
...
...
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