'ID', 'mall_id' => 'Mall ID', 'store_id' => 'Store ID', 'refund_id' => 'Refund ID', 'order_detail_id' => 'Order Detail ID', 'order_id' => 'Order ID', 'created_at' => 'Created At', 'updated_at' => 'Updated At', ]; } public function getOrderDetail() { return $this->hasOne(OrderDetail::class, ['id' => 'order_detail_id']); } public function getBase_user() { return $this->hasOne(User::class, ['id' => 'user_id'])->select(['id', 'username','nickname', 'avatar_url','mobile']); } public function getOrder() { return $this->hasOne(Order::class, ['id' => 'order_id'])->select(['id', 'store_id', 'mch_id', 'order_no','out_trade_no','payment_type','mobile','receiver_name','region_name','address','order_status', 'marketing_type', 'order_source','extra_info','shipping_money']); } public static function setData(array $params) { try { if (!empty($params['mall_id']) && !empty($params['id'])) { $model = self::findOne(['mall_id' => $params['mall_id'], 'id' => $params['id']]); if (empty($model)) { $model = new self(); $model->loadDefaultValues(); } } else { $model = new self(); $model->loadDefaultValues(); } if (!$model->load($params, '')) throw new \Exception($model->getErrorMessage()); if (!$model->save()) throw new \Exception($model->getErrorMessage()); return $model; } catch (\Exception $e) { self::$static_error = $e->getMessage(); return false; } } public static function searchByKeyword($mall_id, $type, $keyword) { switch ($type) { case 'mobile': $user = User::getOne([['mall_id' => $mall_id, 'mobile' => $keyword]], true, [], false, 'id'); $data = ['=', 'o.user_id', $user['id']]; break; case 'goods_name': $goodsId = Goods::find()->select('id')->where(['mall_id' => $mall_id])->andWhere(['like', 'goods_name', $keyword])->asArray()->column(); if ($goodsId) { $orderDetailIds = OrderDetail::find()->select('id')->where(['mall_id' => $mall_id])->andWhere(['in', 'goods_id', $goodsId])->asArray()->column(); } $data = empty($orderDetailIds) ? ['=', 'o.order_detail_id',""] : ['in', 'o.order_detail_id', $orderDetailIds]; break; // 交易单号查询 case 'trade_no': $ids = PaymentTrade::find()->where(['mall_id' => $mall_id, 'out_trade_no' => $keyword])->select('id')->column(); $order_nos = PaymentTradeOrder::find()->where(['trade_id' => $ids])->select('order_no')->column(); $order_ids = Order::find()->where(['order_no' => $order_nos])->select('id')->column(); $data = ['o.order_id' => $order_ids]; break; } return $data; } }