TicketProject.php 2.2 KB
<?php

namespace App\Models\WorkOrder;

use App\Models\Base;
use App\Models\Manage\Manage;
use App\Models\Project\Project;
use App\Models\ProjectAssociation\ProjectAssociation;
use App\Models\Workchat\MessagePush;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class TicketProject extends Base
{
    use HasFactory;

    protected $table = 'gl_ticket_projects';

    public function projectV6()
    {
        return $this->hasOne(Project::class, 'id', 'table_id')
            ->where('version', 6);
    }

    //售后服务经理
    public function assm()
    {
        return $this->hasOne(Manage::class, 'id', 'assm_id')
            ->select(['id', 'name']);
    }

    // 优化师
    public function seom()
    {
        return $this->hasOne(Manage::class, 'id', 'seom_id')
            ->select(['id', 'name']);
    }

    /**
     * 第一负责人
     */
    public function first_engineer()
    {
        return $this->hasOne(Manage::class, 'id', 'engineer_id')
            ->select(['id', 'name']);
    }

    /**
     * 绑定的企微群
     */
    public function association()
    {
        return $this->hasOne(ProjectAssociation::class, 'project_id', 'table_id')
            ->where('status', 1)
            ->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT)
            ->select(['id', 'project_id', 'friend_id', 'binding_app']);
    }


    /**
     * @return void
     * 企微群推送工单消息
     */
    public function pushWechatGroupMsg($desc="可提交新的工单、查询工单进度、AI会同步通知售后人员!")
    {
        $message_push = new MessagePush();
        $message_push->project_id = $this->table_id;
        $message_push->friend_id = $this->wechat_group_id;
        $message_push->content_type = 'Link';
        $message_push->content = json_encode([
            'title' => "AI协同工单 - " . $this->company_name,
            'desc' => $desc,
            'size' => 0,
            'thumbSize' => 0,
            'thumbUrl' => 'https://hub.globalso.com/logocm.png',
            'url' => 'https://oa.quanqiusou.cn/afterorder?project_id='.$this->uuid
        ], JSON_UNESCAPED_UNICODE);
        $message_push->send_time = now();
        $message_push->type = MessagePush::TYPE_TICKET;
        $message_push->save();
    }
}