request->isAjax) { if (\Yii::$app->request->isGet) { $order_no = \Yii::$app->request->get('order_no'); $start_time = \Yii::$app->request->get('start_time'); $end_time = \Yii::$app->request->get('end_time'); $user_id = \Yii::$app->request->get('user_id'); $user_keyword = \Yii::$app->request->get('user_keyword'); $out_trade_no = \Yii::$app->request->get('out_trade_no'); $page = \Yii::$app->request->get('page', 1); $limit = \Yii::$app->request->get('limit', $this->pageSize); $wheres[] = ['mall_id' => $this->mall_id]; $wheres[] = ['pay_type' => PayTypeEnum::UNIONPAY]; if (!empty($start_time)) $wheres[] = ['>=', 'created_at', strtotime($start_time . '00:00:00')]; if (!empty($end_time)) $wheres[] = ['<=', 'created_at', strtotime($end_time . ' 23:59:59')]; if (!empty($out_trade_no)) $wheres[] = ['like', 'out_trade_no', $out_trade_no]; if (!empty($user_id)) $wheres[] = ['user_id' => $user_id]; if (!empty($user_keyword)) { $users = User::find() ->select('id,nickname,mobile,avatar_url') ->where(['or', ['like', 'nickname', $user_keyword], ['like', 'mobile', $user_keyword]]) ->asArray() ->indexBy('id') ->all(); $user_ids = array_column($users, 'id'); $wheres[] = ['user_id' => $user_ids]; } if (!empty($order_no)) { $payment_order_logs = PaymentTradeOrder::find() ->select('trade_id,order_no') ->where(['order_no' => $order_no]) ->asArray() ->indexBy('trade_id') ->all(); $trade_ids = array_column($payment_order_logs, 'trade_id'); $wheres[] = ['id' => $trade_ids]; } $params = [ 'select' => 'id,mall_id,user_id,out_trade_no,pay_fee as amount,is_pay,trade_type,created_at,updated_at', 'where' => $wheres, 'order' => 'created_at desc,updated_at desc', 'page' => $page, 'limit' => $limit ]; $pay_records = PaymentTrade::listPage($params); if (empty($pay_records['list'])) { if (false === $pay_records['list']) { return $this->error(PaymentTrade::getStaticError()); } return $this->success('success', $pay_records); } if (empty($users)) { $user_ids = array_column($pay_records['list'], 'user_id'); $users = User::find() ->select('id,nickname,mobile,avatar_url') ->where(['id' => $user_ids, 'status' => StatusEnum::ENABLED]) ->asArray() ->indexBy('id') ->all(); } if (empty($payment_order_logs)) { $trade_ids = array_column($pay_records['list'], 'id'); $payment_order_logs = PaymentTradeOrder::find() ->select('trade_id,order_no') ->where(['trade_id' => $trade_ids]) ->asArray() ->indexBy('trade_id') ->all(); } foreach ($pay_records['list'] as &$record) { $user = $users[$record['user_id']] ?? []; $payment_order_log = $payment_order_logs[$record['id']] ?? []; $record['nickname'] = $user['nickname'] ?? '默认会员'; $record['avatar_url'] = $user['avatar_url'] ?? \Yii::$app->request->hostInfo . '/resources/img/common/default-avatar.png'; $record['mobile'] = $user['mobile'] ?? ''; $record['order_no'] = $payment_order_log['order_no'] ?? ''; } $pay_records['export_list'] = []; return $this->success('success', $pay_records); } } return $this->render($this->action->id); } }