<?php declare (strict_types=1); namespace app\common\model; use app\api\model\Server\ServerRecovery; use app\api\model\store\Shop; use app\common\enum\RecoveryStatusEnum; use app\common\enum\RecoveryTypeEnum; use cores\BaseModel; use think\model\concern\SoftDelete; use think\model\relation\HasMany; use think\model\relation\HasOne; class RecoveryOrder extends BaseModel { use SoftDelete; protected $deleteTime = 'delete_time'; protected $defaultSoftDelete = 0; // 定义表名 protected $name = 'server_recovery_order'; // 定义主键 protected $pk = 'order_id'; /** * 追加字段 * @var array */ protected $append = [ 'order_status_text', //状态 'recovery_type_text', //回收方式 ]; /** * 关联图片表 * @return HasMany */ public function images(): HasMany { return $this->hasMany(RecoveryImage::class, 'order_id')->order(['id']); } public function getOrderStatusTextAttr($value, $data) { $result = RecoveryStatusEnum::data(); if (!empty($result[$data['order_status']]['name'])) { return $result[$data['order_status']]['name']; } return '未知'; } public function getRecoveryTypeTextAttr($value, $data) { $result = RecoveryTypeEnum::data(); if (!empty($result[$data['recovery_type']]['name'])) { return $result[$data['recovery_type']]['name']; } return '未知'; } /** * @notes:详情 * @param $where * @param array $with * @return RecoveryOrder|array|null * @author: wanghousheng */ public static function detail($where, array $with = []) { return static::get($where, $with); } public function user(): HasOne { return $this->hasOne(User::class, 'user_id', 'user_id'); } public function shop(): HasOne { return $this->hasOne(Shop::class, 'shop_id', 'shop_id'); } public function recovery(): HasOne { return $this->hasOne(ServerRecovery::class, 'recovery_id', 'recovery_id'); } public function remove($orderId): bool { if (static::destroy($orderId)) { return true; } return false; } }