request; if ($retuest->isAjax) { if ($retuest->isGet) { $params = \Yii::$app->request->get(); $_params = []; if (!empty($params['date_start'])) { $_params['date_start'] = $params['date_start']; unset($params['date_start']); } if (!empty($params['date_end'])) { $_params['date_end'] = $params['date_end']; unset($params['date_end']); } $params['check_status'] = StatusEnum::ENABLED; $list = BackendService::getUserList($this->mall_id, $params); $list['custom_text'] = BackendService::getCustomText($this->mall_id); if (!$list) { return $this->error(BackendService::getStaticError()); } else { if (!empty($list['list'])) { foreach ($list['list'] as &$item) { $_where = [ 'and', ['mall_id' => $this->mall_id], ['staff_user_id' => $item['user_id']], ['status' => StatusEnum::ENABLED], ['is_refund' => 0], ['service_status' => [ReservationServiceEnum::RESERVE_ORDER_STATUS_NORMAL, ReservationServiceEnum::RESERVE_ORDER_STATUS_TALKING, ReservationServiceEnum::RESERVE_ORDER_STATUS_SERVING, ReservationServiceEnum::RESERVE_ORDER_STATUS_UNDERWRITER, ReservationServiceEnum::RESERVE_ORDER_STATUS_FINISH]] ]; if (!empty($_params)) { if (!empty($_params['date_start'])) { $_where[] = ['>=', 'created_at', strtotime($_params['date_start'])]; } if (!empty($_params['date_end'])) { $_where[] = ['<=', 'created_at', strtotime($_params['date_end'])]; } } $oder_ids = ReservationServiceOrder::find()->where($_where)->select('order_id')->column(); $item['order_num'] = count($oder_ids); $order_amount = Order::find()->where(['id' => $oder_ids])->sum('goods_price'); $item['order_amount'] = !empty($order_amount)? $order_amount : 0; $pay_amount = Order::find()->where(['id' => $oder_ids])->sum('pay_money'); $item['order_pay_amount'] = !empty($pay_amount)? $pay_amount : 0; $item['date'] = date('Y-m-d'); } unset($item); } $this->success('数据请求成功', $list); } } } return $this->render('index'); } /** * 入驻审核 * @return mixed|null */ public function actionList() { if (Yii::$app->request->isAjax && Yii::$app->request->isGet) { $params = Yii::$app->request->get(); $valid = Yii::$app->services->validate->validate($params, [ [['user_id', 'service_status', 'page', 'limit'], 'integer'], [['order_no'], 'string'], [['date_start', 'date_end', 'keyword'], 'string'], [['user_id'], 'required'] ]); if ($valid === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); try { $where = [ ['r.mall_id' => $this->mall_id], ['c.staff_user_id' => $params['user_id']] ]; if (!empty($params['keyword'])) { $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [ 'or', ['=', 'id', $params['keyword']], ['like', 'nickname', $params['keyword'] . '%', false], ['like', 'mobile', $params['keyword'] . '%', false] ]], 'select' => 'id']); $user_ids = array_column($user_list, 'id'); if (!empty($user_ids)) { $where[] = ['r.user_id' => $user_ids]; } else { $where[] = ['r.id' => 0]; } } if (!empty($params['date_start'])) $where[] = ['>=', 'r.created_at', strtotime($params['date_start'])]; if (!empty($params['date_end'])) $where[] = ['<=', 'r.created_at', strtotime($params['date_end'])]; if (isset($params['service_status']) && $params['service_status'] !== '') { $where[] = ['c.service_status' => $params['service_status']]; } else { $where[] = ['c.service_status' => [ReservationServiceEnum::RESERVE_ORDER_STATUS_NORMAL, ReservationServiceEnum::RESERVE_ORDER_STATUS_TALKING, ReservationServiceEnum::RESERVE_ORDER_STATUS_SERVING, ReservationServiceEnum::RESERVE_ORDER_STATUS_UNDERWRITER, ReservationServiceEnum::RESERVE_ORDER_STATUS_FINISH]]; } if (!empty($params['order_no'])) { $where[] = ['like', 'c.order_no', $params['order_no']]; } $ret = Order::listPage([ 'where' => $where, 'select' => 'r.id, r.order_no, r.user_id, r.pay_money, r.goods_price, r.out_trade_no, r.created_at, r.order_source, r.order_status, c.service_start_at, c.service_end_at, c.service_status', 'order' => 'r.id desc', 'limit' => $params['limit'] ?? 10, 'group' => 'c.order_id', 'join' => [['right join',ReservationServiceOrder::tableName().' as c','c.order_id=r.id']], 'alias' => 'r' ]); if (!$ret) return $this->error(Order::getStaticError()); if (!empty($ret['list'])) { $uids = array_column($ret['list'], 'user_id'); $users = User::find()->where(['id' => $uids])->select('id,nickname,avatar_url,mobile')->indexBy('id')->asArray()->all(); foreach ($ret['list'] as &$item) { $item['user'] = $users[$item['user_id']] ?? []; $item['detail'] = OrderDetail::find()->where(['order_id' => $item['id']])->select('goods_name,num,goods_price,price')->asArray()->all(); } unset($item); } $ret['service_status_map'] = ReservationServiceEnum::RESERVE_ORDER_STATUS_MAP; return $this->success('获取成功', $ret); } catch (\Exception $e) { return $this->error($e->getMessage()); } } return $this->render('list'); } }