作者 ZhengBing He

star

... ... @@ -103,7 +103,7 @@ class FetchTicketProjects extends Command
$fields = [
'post_id' => $item['postid'],
'company_name' => $item['company'],
'title' => $item['title'],
'title' => $item['title'] . " - V5",
'engineer_id' => $engineer_id, // 第一负责人
'assm_id' => $assm_id,
'seom_id' => $seom_id,
... ... @@ -214,7 +214,7 @@ class FetchTicketProjects extends Command
$fields = [
'company_name' => $item->company,
'title' => $item->title,
'title' => $item->title . " - V6",
'assm_id' => $assm_id,
'seom_id' => $seom_id,
'engineer_id' => $engineer_id,
... ...
... ... @@ -8,10 +8,8 @@ use App\Http\Requests\Api\WorkOrder\TicketStoreRequest;
use App\Models\WorkOrder\TicketLog;
use App\Models\WorkOrder\TicketProject;
use App\Models\WorkOrder\Tickets;
use Darabonba\GatewaySpi\Models\InterceptorContext\response;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
class TicketController extends BaseController
{
... ... @@ -29,8 +27,11 @@ class TicketController extends BaseController
$size = (int)$request->input('size', 10);
$tickets = Tickets::with([
'project:*',
'logs.engineer:id,name',
'project.pm',
'project.assm',
'project.seom',
'project.first_engineer',
'logs.engineer',
])
->where('project_id', $project->id)
// ->where('submit_side', 2)
... ... @@ -143,10 +144,10 @@ class TicketController extends BaseController
public function projectInfo($project_id)
{
$project = TicketProject::with([
'projectV6:id,company',
'assm:id,name',
'seom:id,name',
'first_engineer:id,name',
'pm',
'assm',
'seom',
'first_engineer',
])
->where('uuid', $project_id)->first();
if (!$project) return $this->response('未找到项目', 404);
... ...
... ... @@ -8,7 +8,6 @@ use App\Http\Requests\Aside\WorkOrder\AsideTicketStoreRequest;
use App\Http\Requests\Aside\WorkOrder\AsideTicketListRequest;
use App\Http\Requests\Aside\WorkOrder\AsideTicketUpdateRequest;
use App\Http\Requests\Aside\WorkOrder\TicketProjectListRequest;
use App\Models\Workchat\MessagePush;
use App\Models\WorkOrder\TicketLog;
use App\Models\WorkOrder\TicketProject;
use App\Models\WorkOrder\Tickets;
... ... @@ -27,7 +26,7 @@ class AsideTicketController extends BaseController
$validated = $request->validated();
$lists = Tickets::with([
'logs.engineer:id,name',
'project',
'project.pm',
])
->when(!empty($validated['engineer_id']), function ($query) use ($validated) {
// 查 gl_tickets 表 submit_user_id 或 gl_ticket_logs 表 engineer_id
... ... @@ -51,6 +50,10 @@ class AsideTicketController extends BaseController
$status = $request->input('status');
return $query->where('status', $status);
})
->when($request->input('star') !== null, function ($query) use ($request) {
$star = $request->input('star');
return $query->where('star', $star);
})
->when($request->input('search'), function ($query) use ($request) {
// search 查 gl_tickets.title 或 gl_ticket_projects.title 或 gl_ticket_projects.company_name
$search = $request->input('search');
... ...
... ... @@ -26,6 +26,7 @@ class AsideTicketListRequest extends FormRequest
return [
'project_id' => 'nullable|string',
'status' => 'nullable|in:0,1,2,3|integer',
'star' => 'nullable|in:1,2,3|integer',
'search' => 'nullable|string', // 搜索关键词
'engineer_id' => 'nullable|integer', // 工程师ID
'page' => 'nullable|integer',
... ...
... ... @@ -27,6 +27,7 @@ class AsideTicketUpdateRequest extends FormRequest
'status' => 'nullable|in:0,1,2,3|integer',
'reply' => 'nullable|string',
'engineer_ids' => 'nullable|array',
'star' => 'nullable|in:1,2,3|integer',
];
}
}
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Models\WorkOrder;
use App\Models\Base;
use App\Models\Manage\Manage;
use App\Models\Manage\ManageHr;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class TicketLog extends Base
... ... @@ -19,8 +20,8 @@ class TicketLog extends Base
public function engineer()
{
return $this->belongsTo(Manage::class, 'engineer_id', 'id')
->select(['id', 'name', 'mobile']);
return $this->belongsTo(ManageHr::class, 'engineer_id', 'manage_id')
->select(['manage_id', 'name', 'nickname']);
}
public function ticket()
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Models\WorkOrder;
use App\Models\Base;
use App\Models\Manage\Manage;
use App\Models\Manage\ManageHr;
use App\Models\Project\Project;
use App\Models\ProjectAssociation\ProjectAssociation;
use App\Models\Workchat\MessagePush;
... ... @@ -21,18 +22,24 @@ class TicketProject extends Base
->where('version', 6);
}
// 项目经理
public function pm()
{
return $this->hasOne(ManageHr::class, 'manage_id', 'pm_id')->select(['manage_id', 'name', 'nickname']);
}
//售后服务经理
public function assm()
{
return $this->hasOne(Manage::class, 'id', 'assm_id')
->select(['id', 'name']);
return $this->hasOne(ManageHr::class, 'manage_id', 'assm_id')
->select(['manage_id', 'name', 'nickname']);
}
// 优化师
public function seom()
{
return $this->hasOne(Manage::class, 'id', 'seom_id')
->select(['id', 'name']);
return $this->hasOne(ManageHr::class, 'manage_id', 'seom_id')
->select(['manage_id', 'name', 'nickname']);
}
/**
... ... @@ -40,8 +47,8 @@ class TicketProject extends Base
*/
public function first_engineer()
{
return $this->hasOne(Manage::class, 'id', 'engineer_id')
->select(['id', 'name']);
return $this->hasOne(ManageHr::class, 'manage_id', 'engineer_id')
->select(['manage_id', 'name', 'nickname']);
}
/**
... ...