UserOrder.php 4.2 KB
<?php

namespace common\models;

use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;

/**
 * This is the model class for table "chain_user_order".
 *
 * @property string $id
 * @property integer $uid
 * @property string $order_id
 * @property integer $gid
 * @property integer $num
 * @property string $title
 * @property string $thumb
 * @property integer $price
 * @property string $logistics_num
 * @property integer $status
 * @property integer $spay_status
 * @property integer $level
 * @property string $pay_type
 * @property string $pay_order
 * @property string $deal_num
 * @property string $created_at
 * @property string $updated_at
 */
class UserOrder extends ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%user_order}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['uid', 'order_id', 'gid', 'num',], 'required'],
            [['uid', 'gid', 'num', 'status', 'pay_status', 'created_at', 'updated_at'], 'integer'],
            [['order_id', 'logistics_num', 'pay_type', 'deal_num'], 'string', 'max' => 50],
            [['pay_order'], 'string', 'max' => 255],
            [['title', 'thumb', 'price'], 'safe']
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'uid' => '用户uid',
            'order_id' => '订单号',
            'level' => "购买等级",
            'gid' => '商品id',
            'num' => '购买数量',
            'title' => '商品名称',
            'thumb' => '缩略图',
            'price' => '单价',
            'logistics_num' => '物流单号',
            'status' => '状态',
            'pay_type' => '支付类型',
            'deal_num' => '交易号',
            'created_at' => '创建时间',
            'updated_at' => '更新时间',
        ];
    }

    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            [
                'class' => TimestampBehavior::className(),
                'createdAtAttribute' => 'created_at',
                'updatedAtAttribute' => 'updated_at',
            ],
        ];
    }

    /**
     * @param integer $uid
     * @param array $info
     * @param string $orderId
     * @return integer
     * 增加用户账单记录
     */
    public function addUserOrder($uid, $info, $orderId)
    {
        $data = [
            'uid' => $uid,
            'status' => 1,
            'info' => $info['info'],
            'title' => $info['title'],
            'orderId' => $orderId,
            'pay_type' => $info['pay_type'],
        ];
        if ($info['op'] == 'add') {
            $data['price'] = $info['price'];
        }
        if ($info['op'] == 'ded') {
            $data['price'] = -$info['price'];
        }
        foreach ($data as $k => $v) {
            $this->$k = $v;
        }
        return self::save();
    }

    /**
     * 关联用户信息
     * @return \yii\db\ActiveQuery
     */
    public function getUser()
    {
        return $this->hasOne(User::className(), ['uid' => 'uid']);
    }


    public static function partnerApply($data)
    {
        switch ($data) {
            case 1 :
                return '一级志愿者';
                break;
            case 2:
                return '二级志愿者';
                break;
            case 3:
                return '三级志愿者';
                break;
            case 4:
                return '四级志愿者';
                break;
            case 5:
                return '五级志愿者';
                break;
            case 6:
                return '六级志愿者';
                break;
            default :
                return '未知等级志愿者';
        }
    }

    /**
     * 添加订单
     * @param $data
     * @return bool
     */
    public static function add($data)
    {
        $model = new self();
        $model->uid = $data['uid'];
        $model->order_id = $data['order_id'];
        $model->gid = $data['gid'];
        $model->num = $data['num'];
        $model->status = 1;
        $model->created_at = time();
        return self::save();
    }
}