// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\common\model; use app\common\enum\order\refund\RefundType; use cores\BaseModel; use think\model\relation\BelongsTo; use think\model\relation\HasMany; use think\model\relation\HasOne; /** * 售后单模型 * Class OrderRefund * @package app\common\model\wxapp */ class OrderRefund extends BaseModel { // 定义表名 protected $name = 'order_refund'; // 定义主键 protected $pk = 'order_refund_id'; /** * 追加字段 */ protected $append = [ 'refund_type_text' ]; /** * 关联用户表 * @return BelongsTo */ public function user(): BelongsTo { return $this->belongsTo('User'); } /** * 关联订单主表 * @return BelongsTo */ public function orderData(): BelongsTo { return $this->belongsTo('Order'); } /** * 关联订单商品表 * @return BelongsTo */ public function orderGoods(): BelongsTo { return $this->belongsTo('OrderGoods')->withoutField(['content']); } /** * 关联订单商品表 * @return HasMany */ public function goods(): HasMany { return $this->hasMany('OrderGoods', 'order_id', 'order_id')->withoutField(['content']); } /** * 关联图片记录表 * @return HasMany */ public function images(): HasMany { return $this->hasMany('OrderRefundImage'); } /** * 关联物流公司表 * @return BelongsTo */ public function express(): BelongsTo { return $this->belongsTo('Express'); } /** * 关联用户表 * @return HasOne */ public function address(): HasOne { return $this->hasOne('OrderRefundAddress'); } /** * 获取器:用户发货时间 * @param $value * @return false|string */ public function getSendTimeAttr($value) { return format_time($value); } /** * 售后单详情 * @param $where * @param array $with * @return static|array|null */ public static function detail($where, array $with = []) { return static::get($where, $with); } public function getRefundTypeTextAttr($value, $data): string { return !empty(RefundType::data()[$data['type']]) ? RefundType::data()[$data['type']]['name'] : ''; } }