作者 lyh

gx

... ... @@ -2,9 +2,13 @@
namespace App\Http\Controllers\Api\WorkOrder;
use App\Enums\Common\Code;
use App\Http\Controllers\Api\BaseController;
use App\Http\Logic\Aside\Project\ProcessRecordsLogic;
use App\Http\Logic\Aside\Project\ProjectLogic;
use App\Http\Requests\Api\WorkOrder\TicketListRequest;
use App\Http\Requests\Api\WorkOrder\TicketStoreRequest;
use App\Models\Project\Project;
use App\Models\WorkOrder\TicketLog;
use App\Models\WorkOrder\TicketProject;
use App\Models\WorkOrder\Tickets;
... ... @@ -183,4 +187,67 @@ class TicketController extends BaseController
$project->pushWechatGroupMsg("您好,我们同事没有及时回复,你可以查看工单进度!");
return response()->json(['message' => '工单推送成功']);
}
/**
* @remark :工单中获取
* @name :get_process_records
* @author :lyh
* @method :post
* @time :2025/9/9 15:28
*/
public function get_project_records(Request $request){
$request->validate([
'project_id'=>'required'
],[
'project_id.required' => '项目ID不能为空'
]);
$data = $this->model->read(['project_id'=>$this->param['project_id']]);
$project = $this->model->with(['payment', 'deploy_build', 'deploy_optimize', 'online_check',
'project_after','inquiry_filter_config','web_traffic_config','project_keyword'])->where(['id'=>$this->param['project_id']])->first()->toArray();
if(!$data){
$data = [
'project_id' => $this->param['project_id'],
'record' => [],
'remark' => '',
'project_record'=>0,
'optimize_record'=>0,
'type'=>$project['type']
];
}
$data['record'] = array_filter($data['record'], function($item) {
return $item['date'] > '2025-09-01';
});
if($project['type'] == 2){
//优化项目 默认在seo优化中
if($data['optimize_record'] == 0) {
$data['optimize_record'] = 1;
}
//时间大于优化时间,默认
if(date('Y-m-d') > $project['deploy_optimize']['start_date']){
$data['optimize_record'] = 2;
}
//首次达标时间
if(!empty($project['deploy_optimize']['first_compliance_time'])){
$data['optimize_record'] = 3;
}
//无剩余时间
if($project['project_type'] == 1){
if($project['remain_day'] == 0){
$data['optimize_record'] = 4;
}
}else{
if($project['seo_remain_day'] == 0){
$data['optimize_record'] = 4;
}
}
if(in_array(2,$project['level'])){
$data['date_project_record'] = ['暂停优化'];
}else{
$data['date_project_record'] = Project::projectProgress('optimize');
}
}else{
$data['date_project_record'] = Project::projectProgress('build');
}
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -598,22 +598,7 @@ class ProjectController extends BaseController
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :工单中获取
* @name :get_process_records
* @author :lyh
* @method :post
* @time :2025/9/9 15:28
*/
public function get_project_records(Request $request, ProcessRecordsLogic $logic){
$request->validate([
'project_id'=>'required'
],[
'project_id.required' => '项目ID不能为空'
]);
$data = $logic->getRecordInfo($this->param['project_id']);
$this->response('success',Code::SUCCESS,$data);
}
/**
* 保存进程记录
* @author zbj
... ...
... ... @@ -97,63 +97,6 @@ class ProcessRecordsLogic extends BaseLogic
}
/**
* @remark :工单中获取建站进程
* @name :getRecordInfo
* @author :lyh
* @method :post
* @time :2025/9/9 15:30
*/
public function getRecordInfo($project_id)
{
$data = $this->model->read(['project_id'=>$project_id]);
$project = ProjectLogic::instance()->getProjectInfo($project_id);
if(!$data){
$data = [
'project_id' => $project_id,
'record' => [],
'remark' => '',
'project_record'=>0,
'optimize_record'=>0,
'type'=>$project['type']
];
}
$data['record'] = array_filter($data['record'], function($item) {
return $item['date'] > '2025-09-01';
});
if($project['type'] == 2){
//优化项目 默认在seo优化中
if($data['optimize_record'] == 0) {
$data['optimize_record'] = 1;
}
//时间大于优化时间,默认
if(date('Y-m-d') > $project['deploy_optimize']['start_date']){
$data['optimize_record'] = 2;
}
//首次达标时间
if(!empty($project['deploy_optimize']['first_compliance_time'])){
$data['optimize_record'] = 3;
}
//无剩余时间
if($project['project_type'] == 1){
if($project['remain_day'] == 0){
$data['optimize_record'] = 4;
}
}else{
if($project['seo_remain_day'] == 0){
$data['optimize_record'] = 4;
}
}
if(in_array(2,$project['level'])){
$data['date_project_record'] = ['暂停优化'];
}else{
$data['date_project_record'] = Project::projectProgress('optimize');
}
}else{
$data['date_project_record'] = Project::projectProgress('build');
}
return $this->success($data);
}
/**
* @remark :保存数据
* @name :recordSave
* @author :lyh
... ...
... ... @@ -87,5 +87,6 @@ Route::prefix('tickets')->group(function () {
Route::get('/{project_id}/{id}', [\App\Http\Controllers\Api\WorkOrder\TicketController::class, 'show'])->summary('B端,渠道-工单详情')->name('tickets.show');
Route::get('/chat/{project_id}/{ticket_id}', [\App\Http\Controllers\Api\WorkOrder\TicketChatController::class, 'index'])->summary('B端,渠道-工单聊天记录')->name('tickets.chat.index');
Route::post('/chat/{project_id}/{ticket_id}', [\App\Http\Controllers\Api\WorkOrder\TicketChatController::class, 'store'])->summary('B端,渠道-工单聊天记录提交')->name('tickets.chat.store');
Route::any('/get_project_records', [\App\Http\Controllers\Api\WorkOrder\TicketController::class, 'get_project_records'])->name('tickets.get_project_records');
});
Route::get('/pushTicketByBot/{friend_id}', [\App\Http\Controllers\Api\WorkOrder\TicketController::class, 'pushTicketByBot'])->summary('企微群@机器人触发工单推送')->name('tickets.pushTicketByBot');
... ...