<?php namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Facades\Servers\Encrypts\AccessToken;

/**
 *用户模型
 * 
 */
class DrugReport extends Model
{
    use HasFactory;

    // 与模型关联的表名
    protected $table = 'drug_report_ass';
    // 是否主动维护时间戳
    public $timestamps = false;
    protected   $connection = 'mysql';
    // 定义时间戳字段名
    // const CREATED_AT = 'insert_time';
    // const UPDATED_AT = 'update_time';

    /**
     * 添加数据
     * 
     */
    public function add($data)
    {
        // 时间
        $data['insert_time']				= time();
        $data['update_time']				= time();
        // 写入数据表
        $id						            = $this->query()->insertGetId($data);
        // 如果操作失败
        if( !$id )                          return 0;
        // 更新缓存
        $this->getList(true);
        // 返回结果
        return                              $id;
    }

    /**
     * 添加数据
     * 
     */
    public function edit($id,$data)
    {
        // 更新时间
        $data['update_time']                = time();
        // 写入数据表
        $result						        = $this->query()->where(['uid'=>$id])->update($data);
        // 如果操作失败
        if( !$result )                      return 0;
        // 更新缓存
        $this->getList(true);
        // 返回结果
        return                              $id;
    }

    /**
     * 获取列表
     * @param   Bool    $force  是否强制更新
     * 
     */
    public function getList($force = false)
    {
        // 结果数据
        $list                  = $force ? [] : cache('manager:admin:user:list');
        // 不存在数据
        if ( !$list ) {
            // 从数据库获取数据
            $data              = $this->query()->get(['uid','username','phone','status','password','status','insert_time','update_time'])->toArray();
            // 循环处理数据
            $list              = [];
            // 进行更新
            foreach ($data as $value) {
                // 重组数据
                $list[$value['uid']] = $value;
            }
            // 存起来
            cache(['manager:admin:user:list'=>$list]);
        }
        // 返回结果
        return                  $list;
    }

    /**
     * 添加数据
     *
     */
    public function batn_upsert($data)
    {
        // 更新时间
        $data['update_time']                = time();
        // 写入数据表
        $result						        = $this->query()->upsert($data,['batch_no', 'drug_id','bill_id']);
        // 返回结果
        return                              $result;
    }
}