alias('vgs') ->leftJoin(['u' => User::tableName()], 'vgs.author_user_id = u.id') ->leftJoin(['o' => Order::tableName()], 'vgs.order_id = o.id') ->leftJoin(['od' => OrderDetail::tableName()], 'vgs.order_detail = od.id') ->leftJoin(['su' => SaasUser::tableName()], 'u.binding = su.mobile') ->where(['vgs.store_id' => get_store_id()]); if ($this->goods_name) { $query->andWhere(['LIKE', 'od.goods_name', $this->goods_name]); } if ($this->name) { $query->andWhere(['LIKE', 'su.name', $this->name]); } if ($this->mobile) { $query->andWhere(['LIKE', 'su.mobile', $this->mobile]); } if ($this->status) { if ((int)$this->status === 1) { $query->andWhere(['is_send' => 1]); } if ((int)$this->status === 2) { $query->andWhere(['is_send' => 0]); } } $query->select('vgs.id, vgs.is_send, vgs.is_pay, vgs.num, vgs.created_at, vgs.send_time, su.name, su.mobile, su.avatar, o.order_no, od.goods_name, od.pic, vgs.profit, vgs.proportion'); $query->orderBy(['vgs.created_at' => SORT_DESC]); $page = pagination_make($query); foreach ($page['list'] as &$item) { $item['is_send'] *= 1; $item['is_pay'] *= 1; $item['profit'] .= '%'; } return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'data' => $page['list'], 'pageNo' => $page['pageNo'], 'totalCount' => $page['totalCount'] ] ]; } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage() ]; } } }