作者 lyh

gx

@@ -2,9 +2,13 @@ @@ -2,9 +2,13 @@
2 2
3 namespace App\Http\Controllers\Api\WorkOrder; 3 namespace App\Http\Controllers\Api\WorkOrder;
4 4
  5 +use App\Enums\Common\Code;
5 use App\Http\Controllers\Api\BaseController; 6 use App\Http\Controllers\Api\BaseController;
  7 +use App\Http\Logic\Aside\Project\ProcessRecordsLogic;
  8 +use App\Http\Logic\Aside\Project\ProjectLogic;
6 use App\Http\Requests\Api\WorkOrder\TicketListRequest; 9 use App\Http\Requests\Api\WorkOrder\TicketListRequest;
7 use App\Http\Requests\Api\WorkOrder\TicketStoreRequest; 10 use App\Http\Requests\Api\WorkOrder\TicketStoreRequest;
  11 +use App\Models\Project\Project;
8 use App\Models\WorkOrder\TicketLog; 12 use App\Models\WorkOrder\TicketLog;
9 use App\Models\WorkOrder\TicketProject; 13 use App\Models\WorkOrder\TicketProject;
10 use App\Models\WorkOrder\Tickets; 14 use App\Models\WorkOrder\Tickets;
@@ -183,4 +187,67 @@ class TicketController extends BaseController @@ -183,4 +187,67 @@ class TicketController extends BaseController
183 $project->pushWechatGroupMsg("您好,我们同事没有及时回复,你可以查看工单进度!"); 187 $project->pushWechatGroupMsg("您好,我们同事没有及时回复,你可以查看工单进度!");
184 return response()->json(['message' => '工单推送成功']); 188 return response()->json(['message' => '工单推送成功']);
185 } 189 }
  190 +
  191 + /**
  192 + * @remark :工单中获取
  193 + * @name :get_process_records
  194 + * @author :lyh
  195 + * @method :post
  196 + * @time :2025/9/9 15:28
  197 + */
  198 + public function get_project_records(Request $request){
  199 + $request->validate([
  200 + 'project_id'=>'required'
  201 + ],[
  202 + 'project_id.required' => '项目ID不能为空'
  203 + ]);
  204 + $data = $this->model->read(['project_id'=>$this->param['project_id']]);
  205 + $project = $this->model->with(['payment', 'deploy_build', 'deploy_optimize', 'online_check',
  206 + 'project_after','inquiry_filter_config','web_traffic_config','project_keyword'])->where(['id'=>$this->param['project_id']])->first()->toArray();
  207 + if(!$data){
  208 + $data = [
  209 + 'project_id' => $this->param['project_id'],
  210 + 'record' => [],
  211 + 'remark' => '',
  212 + 'project_record'=>0,
  213 + 'optimize_record'=>0,
  214 + 'type'=>$project['type']
  215 + ];
  216 + }
  217 + $data['record'] = array_filter($data['record'], function($item) {
  218 + return $item['date'] > '2025-09-01';
  219 + });
  220 + if($project['type'] == 2){
  221 + //优化项目 默认在seo优化中
  222 + if($data['optimize_record'] == 0) {
  223 + $data['optimize_record'] = 1;
  224 + }
  225 + //时间大于优化时间,默认
  226 + if(date('Y-m-d') > $project['deploy_optimize']['start_date']){
  227 + $data['optimize_record'] = 2;
  228 + }
  229 + //首次达标时间
  230 + if(!empty($project['deploy_optimize']['first_compliance_time'])){
  231 + $data['optimize_record'] = 3;
  232 + }
  233 + //无剩余时间
  234 + if($project['project_type'] == 1){
  235 + if($project['remain_day'] == 0){
  236 + $data['optimize_record'] = 4;
  237 + }
  238 + }else{
  239 + if($project['seo_remain_day'] == 0){
  240 + $data['optimize_record'] = 4;
  241 + }
  242 + }
  243 + if(in_array(2,$project['level'])){
  244 + $data['date_project_record'] = ['暂停优化'];
  245 + }else{
  246 + $data['date_project_record'] = Project::projectProgress('optimize');
  247 + }
  248 + }else{
  249 + $data['date_project_record'] = Project::projectProgress('build');
  250 + }
  251 + $this->response('success',Code::SUCCESS,$data);
  252 + }
186 } 253 }
@@ -598,22 +598,7 @@ class ProjectController extends BaseController @@ -598,22 +598,7 @@ class ProjectController extends BaseController
598 $this->response('success',Code::SUCCESS,$data); 598 $this->response('success',Code::SUCCESS,$data);
599 } 599 }
600 600
601 - /**  
602 - * @remark :工单中获取  
603 - * @name :get_process_records  
604 - * @author :lyh  
605 - * @method :post  
606 - * @time :2025/9/9 15:28  
607 - */  
608 - public function get_project_records(Request $request, ProcessRecordsLogic $logic){  
609 - $request->validate([  
610 - 'project_id'=>'required'  
611 - ],[  
612 - 'project_id.required' => '项目ID不能为空'  
613 - ]);  
614 - $data = $logic->getRecordInfo($this->param['project_id']);  
615 - $this->response('success',Code::SUCCESS,$data);  
616 - } 601 +
617 /** 602 /**
618 * 保存进程记录 603 * 保存进程记录
619 * @author zbj 604 * @author zbj
@@ -97,63 +97,6 @@ class ProcessRecordsLogic extends BaseLogic @@ -97,63 +97,6 @@ class ProcessRecordsLogic extends BaseLogic
97 } 97 }
98 98
99 /** 99 /**
100 - * @remark :工单中获取建站进程  
101 - * @name :getRecordInfo  
102 - * @author :lyh  
103 - * @method :post  
104 - * @time :2025/9/9 15:30  
105 - */  
106 - public function getRecordInfo($project_id)  
107 - {  
108 - $data = $this->model->read(['project_id'=>$project_id]);  
109 - $project = ProjectLogic::instance()->getProjectInfo($project_id);  
110 - if(!$data){  
111 - $data = [  
112 - 'project_id' => $project_id,  
113 - 'record' => [],  
114 - 'remark' => '',  
115 - 'project_record'=>0,  
116 - 'optimize_record'=>0,  
117 - 'type'=>$project['type']  
118 - ];  
119 - }  
120 - $data['record'] = array_filter($data['record'], function($item) {  
121 - return $item['date'] > '2025-09-01';  
122 - });  
123 - if($project['type'] == 2){  
124 - //优化项目 默认在seo优化中  
125 - if($data['optimize_record'] == 0) {  
126 - $data['optimize_record'] = 1;  
127 - }  
128 - //时间大于优化时间,默认  
129 - if(date('Y-m-d') > $project['deploy_optimize']['start_date']){  
130 - $data['optimize_record'] = 2;  
131 - }  
132 - //首次达标时间  
133 - if(!empty($project['deploy_optimize']['first_compliance_time'])){  
134 - $data['optimize_record'] = 3;  
135 - }  
136 - //无剩余时间  
137 - if($project['project_type'] == 1){  
138 - if($project['remain_day'] == 0){  
139 - $data['optimize_record'] = 4;  
140 - }  
141 - }else{  
142 - if($project['seo_remain_day'] == 0){  
143 - $data['optimize_record'] = 4;  
144 - }  
145 - }  
146 - if(in_array(2,$project['level'])){  
147 - $data['date_project_record'] = ['暂停优化'];  
148 - }else{  
149 - $data['date_project_record'] = Project::projectProgress('optimize');  
150 - }  
151 - }else{  
152 - $data['date_project_record'] = Project::projectProgress('build');  
153 - }  
154 - return $this->success($data);  
155 - }  
156 - /**  
157 * @remark :保存数据 100 * @remark :保存数据
158 * @name :recordSave 101 * @name :recordSave
159 * @author :lyh 102 * @author :lyh
@@ -87,5 +87,6 @@ Route::prefix('tickets')->group(function () { @@ -87,5 +87,6 @@ Route::prefix('tickets')->group(function () {
87 Route::get('/{project_id}/{id}', [\App\Http\Controllers\Api\WorkOrder\TicketController::class, 'show'])->summary('B端,渠道-工单详情')->name('tickets.show'); 87 Route::get('/{project_id}/{id}', [\App\Http\Controllers\Api\WorkOrder\TicketController::class, 'show'])->summary('B端,渠道-工单详情')->name('tickets.show');
88 Route::get('/chat/{project_id}/{ticket_id}', [\App\Http\Controllers\Api\WorkOrder\TicketChatController::class, 'index'])->summary('B端,渠道-工单聊天记录')->name('tickets.chat.index'); 88 Route::get('/chat/{project_id}/{ticket_id}', [\App\Http\Controllers\Api\WorkOrder\TicketChatController::class, 'index'])->summary('B端,渠道-工单聊天记录')->name('tickets.chat.index');
89 Route::post('/chat/{project_id}/{ticket_id}', [\App\Http\Controllers\Api\WorkOrder\TicketChatController::class, 'store'])->summary('B端,渠道-工单聊天记录提交')->name('tickets.chat.store'); 89 Route::post('/chat/{project_id}/{ticket_id}', [\App\Http\Controllers\Api\WorkOrder\TicketChatController::class, 'store'])->summary('B端,渠道-工单聊天记录提交')->name('tickets.chat.store');
  90 + Route::any('/get_project_records', [\App\Http\Controllers\Api\WorkOrder\TicketController::class, 'get_project_records'])->name('tickets.get_project_records');
90 }); 91 });
91 Route::get('/pushTicketByBot/{friend_id}', [\App\Http\Controllers\Api\WorkOrder\TicketController::class, 'pushTicketByBot'])->summary('企微群@机器人触发工单推送')->name('tickets.pushTicketByBot'); 92 Route::get('/pushTicketByBot/{friend_id}', [\App\Http\Controllers\Api\WorkOrder\TicketController::class, 'pushTicketByBot'])->summary('企微群@机器人触发工单推送')->name('tickets.pushTicketByBot');