0], ]; } public function search() { if (!$this->validate()) { return $this->errorResponse; } $unevaluatedquery = Order::find()->alias('o') ->leftJoin(['od' => OrderDetail::tableName()], 'o.id=od.order_id') ->leftJoin(['g' => Goods::tableName()], 'od.goods_id=g.id') ->where([ 'o.is_delete' => 0, 'o.store_id' => $this->store_id, 'o.user_id' => get_user_id(), 'o.is_comment' => 0, 'o.type' => 0, 'o.is_recycle' => 0, 'od.is_delete' => 0, ])->andWhere([ '<>', 'o.trade_status', Order::ORDER_FLOW_CANCEL ])->andWhere(['or', ['o.is_pay' => 1], ['o.pay_type' => 2]]); $unevaluatedcount = $unevaluatedquery->count(); if ($this->type ==0){ $pagination = new Pagination(['totalCount' => $unevaluatedcount, 'pageSize' => $this->limit, 'page' => $this->page-1]); $list = $unevaluatedquery->limit($pagination->limit)->offset($pagination->offset)->orderBy('o.id DESC') ->select("g.id goods_id,g.name goods_name,od.num,od.total_price price,od.attr,od.pic,o.id order_id")->asArray()->all(); foreach ($list as $key => $item) { $goods = Goods::findOne($item['goods_id']); $goods_pic = isset($item['pic']) ? $item['pic'] ?: $goods->getGoodsPic(0)->pic_url : $goods->getGoodsPic(0)->pic_url; $list[$key]['store_name'] = Option::get(OptionSetting::STORE_NAME)['value']; $list[$key]['attr_list'] = json_decode($item['attr']); $list[$key]['goods_pic'] = $goods_pic; } } $evaluatedquery = OrderComment::find()->alias('oc') ->leftJoin(['od' => OrderDetail::tableName()], 'oc.order_detail_id=od.id') ->leftJoin(['g' => Goods::tableName()], 'od.goods_id=g.id') ->leftJoin(['u' => User::tableName()], 'oc.user_id=u.id') ->where([ 'oc.store_id' => $this->store_id, 'oc.user_id' => get_user_id(), 'oc.is_delete' => 0 ]); $evaluatedcount = $evaluatedquery->count(); if ($this->type ==1){ $pagination = new Pagination(['totalCount' => $evaluatedcount, 'pageSize' => $this->limit, 'page' => $this->page-1]); $list = $evaluatedquery->limit($pagination->limit)->offset($pagination->offset)->orderBy('oc.id DESC') ->select("u.nickname user_name, u.avatar_url, od.attr, od.goods_id, oc.content comment_content, oc.pic_list, g.name good_name, g.cover_pic good_cover, g.price good_price")->asArray()->all(); foreach ($list as $k => $v) { $order_info_arr = json_decode($v['attr']); $list[$k]['attr'] = $order_info_arr[0]; $list[$k]['pic_list'] = json_decode($v['pic_list']); } } $data = [ 'list' => $list ? $list : [], 'not_evaluate_num' => $unevaluatedcount, 'all_evaluate_num' => $evaluatedcount, ]; return [ 'code' => 0, 'data' => $data ]; } }