Engineer.php 1.9 KB
<?php

namespace addons\workorder\model;

use think\Model;
use traits\model\SoftDelete;

/**
 * 工程师模型
 */
class Engineer extends Model
{
    use SoftDelete;

    // 表名
    protected $name = 'workorder_engineers';

    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名
    protected        $createTime             = 'createtime';
    protected        $updateTime             = false;
    protected        $deleteTime             = 'deletetime';
    protected static $showEngineerInfoConfig = [];

    protected $append = [
        'all_order_number',
        //'average_solve_time',
        //'average_first_response'
    ];

    protected static function init()
    {
        $workorderConfig              = get_addon_config('workorder');
        self::$showEngineerInfoConfig = explode(',', $workorderConfig['show_engineer_info']);
    }

    public function getAllOrderNumberAttr($value, $data)
    {
        if (!in_array('all_order_number', self::$showEngineerInfoConfig)) {
            return false;
        }

        return \addons\workorder\model\Orders::where(['engineer_id' => $data['id']])->count('id');
    }

    public static function getEngineerInfoConfig()
    {
        return self::$showEngineerInfoConfig;
    }

    /*public function getAverageSolveTimeAttr($value, $data)
    {
        if (!in_array('average_solve_time', self::$showEngineerInfoConfig)) {
            return false;
        }
        return 'average_solve_time';
    }*/

    /*public function getAverageFirstResponseAttr($value, $data)
    {
        if (!in_array('average_first_response', self::$showEngineerInfoConfig)) {
            return false;
        }
        return 'average_first_response';
    }*/

    public function user()
    {
        return $this->hasOne('app\admin\model\User', 'id', 'user_id', [], 'LEFT')->setEagerlyType(0);
    }
}