Commit f91cc4e8 authored by yinxiaoling's avatar yinxiaoling

异常捕获

parent aa44aef9
...@@ -7,7 +7,7 @@ use Illuminate\Support\Facades\Route; */ ...@@ -7,7 +7,7 @@ use Illuminate\Support\Facades\Route; */
trait Tool trait Tool
{ {
public function getAllowLoginUser(){ public function getAllowLoginUser(){
return ['user_name'=>'yxl001','user_sn'=>'SYSUSER|9da548a2e392a679eb274a0b2abeb627','parent_sn'=>'ljs']; return ['user_name'=>'yxl002','user_sn'=>'SYSUSER|9da548a2e392a679eb274a0b2abeb627','parent_sn'=>'ljs'];
} }
public function getAllowProjects($style=0){ public function getAllowProjects($style=0){
$projectInfo = [['sn'=>'projects|a3a4259352c8e964ad6ea6c5ee8a7208','name'=>'liuy-转人工测试'],['sn'=>'projects|17a71649f886bce050d637e86a3c85e8','name'=>'小贷-测试林俊生']]; $projectInfo = [['sn'=>'projects|a3a4259352c8e964ad6ea6c5ee8a7208','name'=>'liuy-转人工测试'],['sn'=>'projects|17a71649f886bce050d637e86a3c85e8','name'=>'小贷-测试林俊生']];
......
...@@ -21,95 +21,110 @@ class StrategySetController extends Controller ...@@ -21,95 +21,110 @@ class StrategySetController extends Controller
use Tool; use Tool;
public function index(){ public function index(){
$projectArr = $this->getAllowProjects(1); try{
$strategyInfo = StrategySet::all()->toArray(); $projectArr = $this->getAllowProjects(1);
$listInfo = []; $strategyInfo = StrategySet::all()->toArray();
foreach ($strategyInfo as $k=>$v){ $listInfo = [];
$projectSnTemp = explode("#", $v['project_sn']); foreach ($strategyInfo as $k=>$v){
$v['project_name'] = isset($projectArr[$projectSnTemp[0]]) ? $projectArr[$projectSnTemp[0]] : ''; $projectSnTemp = explode("#", $v['project_sn']);
if (isset($projectSnTemp[1]) && isset($projectArr[$projectSnTemp[1]])){ $v['project_name'] = isset($projectArr[$projectSnTemp[0]]) ? $projectArr[$projectSnTemp[0]] : '';
$v['project_name'] .= $projectArr[$projectSnTemp[1]]; if (isset($projectSnTemp[1]) && isset($projectArr[$projectSnTemp[1]])){
$v['project_name'] .= $projectArr[$projectSnTemp[1]];
}
$v['disabled_name'] = $v['disabled'] == 0 ? '启用' : '停用';
$v['day_type_name'] = $v['day_type'] == 0 ? '每天' : '日期前一天和当天';
$v['frequency_type_name'] = $v['frequency_type'] == 1 ? '一天一次' : '一天两次';
$listInfo[] = $v;
} }
$v['disabled_name'] = $v['disabled'] == 0 ? '启用' : '停用'; return $this->successWithInfo($listInfo);
$v['day_type_name'] = $v['day_type'] == 0 ? '每天' : '日期前一天和当天'; }catch (\Exception $e){
$v['frequency_type_name'] = $v['frequency_type'] == 1 ? '一天一次' : '一天两次'; Log::channel('api')->error($e->getFile().'-'.$e->getLine().'-'.$e->getMessage());
$listInfo[] = $v; return $this->errorWithInfo('操作异常', 500);
} }
return $this->successWithInfo($listInfo);
} }
public function store(Request $request,StrategyService $StrategyService){ public function store(Request $request,StrategyService $StrategyService){
$allowLoginUser = $this->getAllowLoginUser(); try{
$allowLoginUser = $this->getAllowLoginUser();
$validator = Validator::make($request->all(), [
'strategy_name' => 'required|max:30', $validator = Validator::make($request->all(), [
'user_sn' => 'required', 'strategy_name' => 'required|max:30',
'call_number' => 'required', 'user_sn' => 'required',
'day_type' => 'required', 'call_number' => 'required',
'frequency_type' => 'required', 'day_type' => 'required',
'call_time_set' => 'required', 'frequency_type' => 'required',
'project_sn' => 'required' 'call_time_set' => 'required',
]); 'project_sn' => 'required'
]);
if ($validator->fails()) {
return $this->errorWithInfo('表单验证失败', 401); if ($validator->fails()) {
} return $this->errorWithInfo('表单验证失败', 401);
$params = $request->all(); }
if ($params['day_type'] == 0){ //每天、一天两次,两个时间点、一个话术或者两个话术 $params = $request->all();
$checkCallTimeSet = explode("#", $params['call_time_set']); if ($params['day_type'] == 0){ //每天、一天两次,两个时间点、一个话术或者两个话术
if (!isset($checkCallTimeSet[1]) || empty($checkCallTimeSet[1])){ $checkCallTimeSet = explode("#", $params['call_time_set']);
return $this->errorWithInfo('呼叫设置验证失败', 401); if (!isset($checkCallTimeSet[1]) || empty($checkCallTimeSet[1])){
} return $this->errorWithInfo('呼叫设置验证失败', 401);
}else{//日期前一天和当天、一天一次, 一个时间点两个话术 }
$checkProjectSn = explode("#", $params['project_sn']); }else{//日期前一天和当天、一天一次, 一个时间点两个话术
if (!isset($checkProjectSn[1]) || empty($checkProjectSn[1])){ $checkProjectSn = explode("#", $params['project_sn']);
return $this->errorWithInfo('呼叫设置验证失败', 401); if (!isset($checkProjectSn[1]) || empty($checkProjectSn[1])){
return $this->errorWithInfo('呼叫设置验证失败', 401);
}
} }
}
$successTotal = $failTotal = 0;
$successTotal = $failTotal = 0; $failDataFile = '';
$failDataFile = ''; if (isset($params['upload'])){ //excel文件上传
if (isset($params['upload'])){ //excel文件上传 $excelData = $StrategyService->validUploadExcel($request,'upload',8388608); //限制最大上传文件8M
$excelData = $StrategyService->validUploadExcel($request,'upload',8388608); //限制最大上传文件8M if (isset($excelData['code'])){
if (isset($excelData['code'])){ return $this->errorWithInfo($excelData['msg'], 401);
return $this->errorWithInfo($excelData['msg'], 401); }
//验证excel数据格式及不合格数据原因
$excelDataValid = $StrategyService->validExcelData($excelData, $params['day_type']);
extract($excelDataValid);
unset($params['upload']);
} }
//验证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'] = $allowLoginUser['user_name'];
$params['parent_sn'] = $allowLoginUser['parent_sn'];
$StrategySet = new StrategySet($params);
$setReturn = $StrategySet->save();
if ($setReturn){ //策略保存成功,处理excel数据
if (isset($successTotal) && $successTotal > 0){ if (isset($successTotal) && $successTotal > 0){
$insertExcelReturn = $StrategyService->insertStrategyExcel($strategySn, $successData); $params['latest_total'] = $successTotal;
$params['total'] = $successTotal;
} }
}
//返回成功数、失败数、失败导出文件 $strategySn = $this->uidd();
$returnArr = compact('total','successTotal','failTotal','failDataFile'); $params['strategy_sn'] = $strategySn;
return $this->successWithInfo($returnArr); $params['user_name'] = $allowLoginUser['user_name'];
$params['parent_sn'] = $allowLoginUser['parent_sn'];
$StrategySet = new StrategySet($params);
$setReturn = $StrategySet->save();
if ($setReturn){ //策略保存成功,处理excel数据
if (isset($successTotal) && $successTotal > 0){
$insertExcelReturn = $StrategyService->insertStrategyExcel($strategySn, $successData);
}
}
//返回成功数、失败数、失败导出文件
$returnArr = compact('total','successTotal','failTotal','failDataFile');
return $this->successWithInfo($returnArr);
}catch (\Exception $e){
Log::channel('api')->error($e->getFile().'-'.$e->getLine().'-'.$e->getMessage());
return $this->errorWithInfo('操作异常', 500);
}
} }
//删除策略 //删除策略
public function destroy($strategySn){ public function destroy($strategySn){
DB::transaction(function () use ($strategySn) { try{
// 删除逻辑 注意多表关联的情况 DB::transaction(function () use ($strategySn) {
StrategySet::where('strategy_sn', $strategySn)->delete(); // 删除逻辑 注意多表关联的情况
StrategyExcel::where('strategy_sn', $strategySn)->delete(); StrategySet::where('strategy_sn', $strategySn)->delete();
//StrategyTask::where('strategy_sn', $strategySn)->delete(); StrategyExcel::where('strategy_sn', $strategySn)->delete();
StrategyTask::where([['strategy_sn', $strategySn],['is_created',0]])->delete(); //删除未新建的任务数据 //StrategyTask::where('strategy_sn', $strategySn)->delete();
}); StrategyTask::where([['strategy_sn', $strategySn],['is_created',0]])->delete(); //删除未新建的任务数据
return $this->successWithInfo('操作完成'); });
return $this->successWithInfo('操作完成');
}catch (\Exception $e){
Log::channel('api')->error($e->getFile().'-'.$e->getLine().'-'.$e->getMessage());
return $this->errorWithInfo('操作异常', 500);
}
} }
//子账号列表 //子账号列表
public function getUsersList(){ public function getUsersList(){
...@@ -165,45 +180,50 @@ class StrategySetController extends Controller ...@@ -165,45 +180,50 @@ class StrategySetController extends Controller
//导入excel数据 //导入excel数据
public function importExcelData(Request $request,StrategyService $StrategyService){ public function importExcelData(Request $request,StrategyService $StrategyService){
$validator = Validator::make($request->all(), [ try{
'strategy_sn' => 'required', $validator = Validator::make($request->all(), [
'upload' => 'required' 'strategy_sn' => 'required',
]); 'upload' => 'required'
]);
if ($validator->fails()) {
return $this->errorWithInfo('表单验证失败', 401);
}
$strategySn = $request->strategy_sn;
$strategyInfo = StrategySet::where('strategy_sn',$strategySn)->first();
if (empty($strategyInfo)){
return $this->errorWithInfo('策略不存在', 401);
}
$day_type = $strategyInfo->day_type;
if (isset($request->upload) && !empty($request->upload)){ //excel文件上传
$total = $successTotal = $failTotal = 0;
$failDataFile = '';
$excelData = $StrategyService->validUploadExcel($request,'upload',8388608); //限制最大上传文件8M
if (isset($excelData['code'])){
return $this->errorWithInfo($excelData['msg'], 401);
}
//验证excel数据格式及不合格数据原因
$excelDataValid = $StrategyService->validExcelData($excelData, $day_type);
extract($excelDataValid);
if (isset($successTotal) && $successTotal > 0){ if ($validator->fails()) {
$insertExcelReturn = $StrategyService->insertStrategyExcel($strategySn, $successData); return $this->errorWithInfo('表单验证失败', 401);
//添加最新导入数及总数 }
$updateArr['latest_total'] = $successTotal;
$updateArr['total'] = $strategyInfo->total + $successTotal;
StrategySet::where('strategy_sn',$strategySn)->update($updateArr);
}
//返回成功数、失败数、失败导出文件 $strategySn = $request->strategy_sn;
$returnArr = compact('total','successTotal','failTotal','failDataFile'); $strategyInfo = StrategySet::where('strategy_sn',$strategySn)->first();
return $this->successWithInfo($returnArr); if (empty($strategyInfo)){
}else{ return $this->errorWithInfo('策略不存在', 401);
return $this->errorWithInfo('请选择导入文件', 401); }
} $day_type = $strategyInfo->day_type;
if (isset($request->upload) && !empty($request->upload)){ //excel文件上传
$total = $successTotal = $failTotal = 0;
$failDataFile = '';
$excelData = $StrategyService->validUploadExcel($request,'upload',8388608); //限制最大上传文件8M
if (isset($excelData['code'])){
return $this->errorWithInfo($excelData['msg'], 401);
}
//验证excel数据格式及不合格数据原因
$excelDataValid = $StrategyService->validExcelData($excelData, $day_type);
extract($excelDataValid);
if (isset($successTotal) && $successTotal > 0){
$insertExcelReturn = $StrategyService->insertStrategyExcel($strategySn, $successData);
//添加最新导入数及总数
$updateArr['latest_total'] = $successTotal;
$updateArr['total'] = $strategyInfo->total + $successTotal;
StrategySet::where('strategy_sn',$strategySn)->update($updateArr);
}
//返回成功数、失败数、失败导出文件
$returnArr = compact('total','successTotal','failTotal','failDataFile');
return $this->successWithInfo($returnArr);
}else{
return $this->errorWithInfo('请选择导入文件', 401);
}
}catch (\Exception $e){
Log::channel('api')->error($e->getFile().'-'.$e->getLine().'-'.$e->getMessage());
return $this->errorWithInfo('操作异常', 500);
}
} }
} }
...@@ -16,91 +16,97 @@ class StrategyTaskController extends Controller ...@@ -16,91 +16,97 @@ class StrategyTaskController extends Controller
use Tool; use Tool;
public function index(Request $request){ public function index(Request $request){
//搜索分页? try{
$pageSize=request()->pageSize; $pageSize=request()->pageSize;
$projectArr = $this->getAllowProjects(1); $projectArr = $this->getAllowProjects(1);
//$strategyInfo = StrategyTask::all()->toArray(); //$strategyInfo = StrategyTask::all()->toArray();
$searchArr = [];
/* $searchArr['phone'] = request()->phone;
$searchArr['is_created'] = request()->is_created;
$searchArr['callTimeStart'] = request()->started_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']) && is_numeric($searchArr['is_created'])){
$query->where('is_created',"{$searchArr['is_created']}");
}
if (isset($searchArr['callTimeStart']) && !empty($searchArr['callTimeStart'])){ $searchArr = [];
$query->whereRaw(" call_date || ' ' || call_time >= '{$searchArr['callTimeStart']}'"); /* $searchArr['phone'] = request()->phone;
} $searchArr['is_created'] = request()->is_created;
$searchArr['callTimeStart'] = request()->started_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));
if (isset($searchArr['callTimeStop']) && !empty($searchArr['callTimeStop'])){
$query->whereRaw(" call_date || ' ' || call_time <= '{$searchArr['callTimeStop']}'");
}
}); $strategyInfo = StrategyTask::where(function($query) use ($searchArr){
if(empty($pageSize)){ if (isset($searchArr['phone']) && !empty($searchArr['phone'])){
$strategyInfo = $strategyInfo->orderBy('call_date','desc')->orderBy('call_time','desc')->get()->toArray(); $query->where('phone','like',"%{$searchArr['phone']}%");
}else{ }
$strategyInfo = $strategyInfo->orderBy('call_date','desc')->orderBy('call_time','desc')->paginate($pageSize)->toArray(); if (isset($searchArr['is_created']) && is_numeric($searchArr['is_created'])){
} $query->where('is_created',"{$searchArr['is_created']}");
$listInfo = []; }
if (isset($strategyInfo['data']) && !empty($strategyInfo['data'])){
foreach ($strategyInfo['data'] as $k=>$v){ if (isset($searchArr['callTimeStart']) && !empty($searchArr['callTimeStart'])){
$strategyInfo['data'][$k]['project_name'] = isset($projectArr[$v['project_sn']]) ? $projectArr[$v['project_sn']] : ''; $query->whereRaw(" call_date || ' ' || call_time >= '{$searchArr['callTimeStart']}'");
$strategyInfo['data'][$k]['is_created_name'] = $v['is_created'] == 0 ? '未建' : '已建'; }
if (isset($searchArr['callTimeStop']) && !empty($searchArr['callTimeStop'])){
$query->whereRaw(" call_date || ' ' || call_time <= '{$searchArr['callTimeStop']}'");
}
});
if(empty($pageSize)){
$strategyInfo = $strategyInfo->orderBy('call_date','desc')->orderBy('call_time','desc')->get()->toArray();
}else{
$strategyInfo = $strategyInfo->orderBy('call_date','desc')->orderBy('call_time','desc')->paginate($pageSize)->toArray();
} }
} $listInfo = [];
return $this->successWithInfo($strategyInfo); if (isset($strategyInfo['data']) && !empty($strategyInfo['data'])){
foreach ($strategyInfo['data'] as $k=>$v){
$strategyInfo['data'][$k]['project_name'] = isset($projectArr[$v['project_sn']]) ? $projectArr[$v['project_sn']] : '';
$strategyInfo['data'][$k]['is_created_name'] = $v['is_created'] == 0 ? '未建' : '已建';
}
}
return $this->successWithInfo($strategyInfo);
}catch (\Exception $e){
Log::channel('api')->error($e->getFile().'-'.$e->getLine().'-'.$e->getMessage());
return $this->errorWithInfo('操作异常', 500);
}
} }
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
try{
$phone = $request->phone; $phone = $request->phone;
$name = $request->name; $name = $request->name;
$callTime = $request->call_time; $callTime = $request->call_time;
$validator = Validator::make($request->all(), [
$validator = Validator::make($request->all(), [ 'phone' => 'required|regex:/^1[3-8]{1}[0-9]{9}$/',
'phone' => 'required|regex:/^1[3-8]{1}[0-9]{9}$/', 'user_sn' => 'required',
'user_sn' => 'required', 'call_time' => 'required',
'call_time' => 'required', 'name'=>'max:20'
'name'=>'max:20' ]);
]);
if ($validator->fails()) {
if ($validator->fails()) { return $this->errorWithInfo('表单验证失败', 401);
return $this->errorWithInfo('表单验证失败', 401); }
}
$taskInfo = StrategyTask::find($id);
$taskInfo = StrategyTask::find($id); if (empty($taskInfo)){
if (empty($taskInfo)){ return $this->errorWithInfo('任务数据不存在', 401);
return $this->errorWithInfo('任务数据不存在', 401); }
} if ($taskInfo->is_created == 1){
if ($taskInfo->is_created == 1){ return $this->errorWithInfo('任务已经创建不能编辑', 401);
return $this->errorWithInfo('任务已经创建不能编辑', 401); }
} $taskInfo->phone = $phone;
$taskInfo->phone = $phone; $taskInfo->name = $name;
$taskInfo->name = $name; $taskInfo->call_time = $callTime;
$taskInfo->call_time = $callTime; $taskInfo->save();
$taskInfo->save(); return $this->successWithInfo('更新成功');
return $this->successWithInfo('更新成功'); }catch (\Exception $e){
Log::channel('api')->error($e->getFile().'-'.$e->getLine().'-'.$e->getMessage());
return $this->errorWithInfo('操作异常', 500);
}
} }
......
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