Order.php 4.8 KB
<?php

namespace app\api\model\order;

use app\admin\model\goods\Goods;
use think\Model;


class Order extends Model
{


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

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

    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    protected $deleteTime = false;

    // 追加属性
    protected $append = [
        'status_text',
        'rejection_type_text',
        'pay_type_text',
        'paytime_text',
        'reject_time_text',
        'edit_time_text',
        'service_type_text',
        'cart_type_text',
	    'createtime_text',
	    'apply_time_text',
	    'adopt_time_text',
	    'refund_time_text',
	    'cancel_time_text',
    ];


    public function getStatusList()
    {
        return ['-2' => '已驳回', '-1' => '已取消', '0' => '待支付', '1' => '待审核', '2' => '购买完成', '3' => '已退款'];
    }

    public function getRejectionTypeList()
    {
        return ['edit' => '驳回修改', 'refund' => '驳回退款'];
    }

    public function getPayTypeList()
    {
        return ['wechat' => __('Wechat')];
    }

    public function getServiceTypeList()
    {
        return ['1' => '保修服务', '2' => '全损保值服务'];
    }

    public function getCartTypeList()
    {
        return ['1' => '燃油车', '2' => '新能源车'];
    }


    public function getStatusTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
        $list  = $this->getStatusList();
        return isset($list[$value]) ? $list[$value] : '';
    }


    public function getRejectionTypeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['rejection_type']) ? $data['rejection_type'] : '');
        $list  = $this->getRejectionTypeList();
        return isset($list[$value]) ? $list[$value] : '';
    }


    public function getPayTypeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['pay_type']) ? $data['pay_type'] : '');
        $list  = $this->getPayTypeList();
        return isset($list[$value]) ? $list[$value] : '';
    }


    public function getPaytimeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['paytime']) ? $data['paytime'] : '');
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }

    public function getCreatetimeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['createtime']) ? $data['createtime'] : '');
        return is_numeric($value) ? date("Y-m-d H:i", $value) : $value;
    }

    public function getRejecttimeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['reject_time']) ? $data['reject_time'] : '');
        return is_numeric($value) ? date("Y-m-d H:i", $value) : $value;
    }

    public function getAdopttimeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['adopt_time']) ? $data['adopt_time'] : '');
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }

    public function getRefundtimeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['refund_time']) ? $data['refund_time'] : '');
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }

    public function getApplytimeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['apply_time']) ? $data['apply_time'] : '');
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }

    public function getCanceltimeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['cancel_time']) ? $data['cancel_time'] : '');
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }

    public function getEdittimeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['edit_time']) ? $data['edit_time'] : '');
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getServiceTypeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['service_type']) ? $data['service_type'] : '');
        $list  = $this->getServiceTypeList();
        return isset($list[$value]) ? $list[$value] : '';
    }


    public function getCartTypeTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['cart_type']) ? $data['cart_type'] : '');
        $list  = $this->getCartTypeList();
        return isset($list[$value]) ? $list[$value] : '';
    }


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


    public function goods()
    {
        return $this->belongsTo(Goods::class, 'goods_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }
}