'string', 'doctor_id' => 'string', 'pharmacy_id' => 'string', 'is_default' => 'integer', 'status' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime', ]; /** * 关联药房信息表 */ public function Pharmacy(): HasOne { return $this->hasOne(Pharmacy::class, 'pharmacy_id', 'pharmacy_id'); } /** * 关联医生表 */ public function UserDoctor(): HasOne { return $this->hasOne(UserDoctor::class, 'doctor_id', 'doctor_id'); } /** * 获取医生当前绑定的有效默认药房(包含药房有效性及 pharmacy_code 非空校验) */ public static function getDoctorDefaultPharmacy(int|string $doctorId): ?Pharmacy { $bind = self::where([ 'doctor_id' => (string) $doctorId, 'is_default' => 1, 'status' => 1, ])->first(); if (empty($bind)) { return null; } $pharmacy = Pharmacy::getValidPharmacy($bind->pharmacy_id); if (empty($pharmacy) || empty($pharmacy->pharmacy_code)) { return null; } return $pharmacy; } /** * 获取单条数据 */ public static function getOne(array $params, array $fields = ['*']): ?self { return self::where($params)->first($fields); } /** * 获取列表数据 */ public static function getList(array $params = [], array $fields = ['*']): Collection { return self::where($params)->get($fields); } /** * 新增绑定 */ public static function addDoctorPharmacy(array $data): self { return self::create($data); } /** * 修改 */ public static function edit(array $params, array $data): int { return self::where($params)->update($data); } }