-1], [['page',], 'default', 'value' => 1], [['dateStart', 'dateEnd', 'express_type'], 'trim'], [['seller_comments', 'flag'], 'string'], [['fields', 'is_delivery', 'shop_list'], 'safe'] ]; } public function search() { if (!$this->validate()) { return [ 'code' => 1, 'msg' => $this->getErrorSummary(false)[0], ]; } $query = \app\plugins\scanCodePay\models\Order::find()->alias('o')->where([ 'o.store_id' => $this->store_id ]); $query->leftJoin(['u' => User::tableName()], 'u.id = o.user_id') ->leftJoin(['su' => SaasUser::tableName()], 'su.mobile = u.binding'); switch ($this->status) { case 0: $query->andWhere(['o.is_delete' => Order::IS_DELETE_FALSE, 'is_pay' => Order::IS_PAY_FALSE]); break; case 3: $query->andWhere([ 'o.trade_status' => Order::ORDER_FLOW_CONFIRM, 'o.is_delete' => Order::IS_DELETE_FALSE, 'o.is_pay' => Order::IS_PAY_TRUE ]); break; default: if (empty($this->order_id)) { $query->andWhere([ 'o.is_delete' => Order::IS_DELETE_FALSE ]); } break; } if ($this->order_id && $this->order_id > 0) { $query->andWhere(['o.id' => $this->order_id]); } // TODO: $commonOrderSearch = new CommonOrderSearch(); if (!$this->order_id) { $query = $commonOrderSearch->search($query, $this); $query = $commonOrderSearch->keyword($query, $this->keywordType, $this->keyword); } if ($this->dateStart) { $query->andWhere(['>=', 'o.created_at', strtotime($this->dateStart)]); } if ($this->dateEnd) { $query->andWhere(['<=', 'o.created_at', strtotime($this->dateEnd)]); } if ($this->md_id > 0) { $query->andWhere(['o.md_id' => $this->md_id]); } else { $query->andWhere(['o.md_id' => [0, -1]]); } if ($this->mch_id > 0) { $query->andWhere(['o.mch_id' => $this->mch_id]); } else { $query->andWhere(['o.mch_id' => [0, -1]]); } $query->orderBy('o.created_at DESC') ->select(['o.*', 'u.nickname as nickname','su.name as de_name', 'u.platform'])->groupBy('o.id'); $pagination = pagination_make($query); $listArray = $pagination['list']; foreach ($listArray as &$order) { $order['created_at'] = date('Y-m-d H:i:s', $order['created_at']); if($order['user_id'] == 0){ $order['nickname'] = "游客"; } } return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'data' => $listArray, 'pageNo' => $pagination['pageNo'], 'totalCount' => $pagination['totalCount'], ], ]; } }