'已付款', 2=>'已转让', 3=>'提货', 4=>'已取消', 5=>'完成']; */ public $order_status = [ '-1' => '全部', self::Ordered => '已下单', self::Paid => '已付款', self::Transferred => '已转让', self::Shipped => '提货', self::Cancelled => '已取消', self::Closure => '关闭', ]; /** * @param int $orderId 订单id * @param array $orderInfo 订单详情 * @param int $typeId 订单类型 * @param int $userId 用户id * @param int $fromUser 来源id * @param float $fees 手续费 */ public static function setCreateOrder(int $orderId, $orderInfo, $typeId, $userId, $fromUser, string $orderNo, float $fees): object { return self::create([ 'order_id' => $orderId, 'product_id' => $orderInfo['product_id'], 'type_id' => $typeId, 'status' => self::Paid, 'area_id' => $orderInfo['area_id'], 'order_no' => $orderNo, 'user_id' => $userId, 'from_user' => $fromUser, 'price' => $orderInfo['price'], 'fees' => $fees, 'num' => 1 ]); } public static function getStatusList() { return [self::Ordered => __('已下单'), self::Paid => __('已付款'), self::Transferred => __('已转让'), self::Shipped => __('提货'), self::Cancelled => __('已取消'), self::Closure => __('关闭')]; } //产品 public function products() { return $this->hasOne('ProductLists', 'id', 'product_id', [], 'LEFT')->setEagerlyType(0); } //用户 user_id public function users() { return $this->hasOne('UserModel', 'id', 'user_id', [], 'LEFT')->setEagerlyType(0); } //区域 public function areas() { return $this->hasOne('ProductArea', 'id', 'area_id', [], 'LEFT')->setEagerlyType(0); } //提货地址 public function address() { return $this->hasOne('UserArea', 'order_id', 'id', [], 'LEFT')->setEagerlyType(0); } public function getCreateTimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['create_time']) ? $data['create_time'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } public function getUpdateTimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['update_time']) ? $data['update_time'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } protected function setCreateTimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } protected function setUpdateTimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } }