public function actionIndex() { $this->layout = 'metronic'; $searchModel = new MOrderSearch(); $dataProvider = $searchModel->search(Yii::$app->request->get()); if (isset($_GET['orderdownload'])) { //$dataProvider->query->select($attributes); $dataProvider->query->select(['*', '(feesum)/100 as gh_id', "CONCAT('\\'',userid) as appid_recv", "(CASE status WHEN 0 THEN '等待付款' WHEN 3 THEN '交易成功' WHEN 7 THEN '用户取消订单' WHEN 9 THEN '超时自动取消订单' ELSE '' END) as partner", "(CASE pay_kind WHEN 0 THEN '线下支付' WHEN 1 THEN '支付宝' WHEN 2 THEN '微信支付' ELSE '' END) as openid_recv"]); $dataProvider->setPagination(false); $data = $dataProvider->getModels(); $date = date('Y-m-d-His'); $filename = Yii::$app->getRuntimePath() . "/order-{$date}.csv"; $csv = new \app\models\ECSVExport($data); //$attributes = ['oid', 'office_id', 'office.title', 'detail', 'gh_id', 'select_mobnum', 'create_time', 'appid_recv', 'username', 'usermobile', 'status', 'partner', 'pay_kind', 'memo', 'openid_recv']; $attributes = ['oid', 'office_id', 'office.title', 'detail', 'gh_id', 'select_mobnum', 'create_time', 'appid_recv', 'username', 'usermobile', 'partner', 'memo', 'openid_recv', 'customerflag']; //$attributes = ['oid', 'office_id', 'office.title', 'detail', 'gh_id', 'select_mobnum', 'create_time', 'appid_recv', 'username', 'usermobile', 'partner', 'memo', 'openid_recv']; $csv->setInclude($attributes); $csv->setHeaders(['Gh Id' => '金额', 'Customerflag' => '新老用户', 'Appid Recv' => '身份证', 'Partner' => '订单状态', 'Openid Recv' => '支付方式']); //$csv->setHeaders(['Gh Id'=>'金额', 'Appid Recv'=>'身份证', 'Partner'=>'订单状态', 'Openid Recv'=>'支付方式']); $csv->toCSV($filename); Yii::$app->response->sendFile($filename); return; } return $this->render('index', ['dataProvider' => $dataProvider, 'searchModel' => $searchModel]); }
/** * Lists all MOrder models. * @return mixed */ public function actionIndex($userid) { $searchModel = new MOrderSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams, $userid); if (isset($_GET['download'])) { $filepathname = Yii::$app->getRuntimePath() . DIRECTORY_SEPARATOR . 'order' . "-{$date}.csv"; $fh = fopen($filepathname, 'w'); //在写入数据之前先把bom头写到文件里 fwrite($fh, ""); fprintf($fh, "订单号, 商品, 订单时间, 订单状态, 用户姓名, 联系电话\n"); if (Yii::$app->user->identity->role == 1) { $orders = MOrder::find()->all(); } else { $orders = MOrder::find()->where(['userid' => $userid])->all(); } if (!empty($orders)) { foreach ($orders as $order) { $status = $order->status == 1 ? "已申请" : "已处理"; fprintf($fh, "%s, %s, %s, %s, %s, %s\n", $order->oid, $order->title, $order->create_time, $status, $order->username, $order->usermobile); } } fclose($fh); iconv("UTF-8", "GB2312", "{$filepathname}"); Yii::$app->response->sendFile($filepathname); return; } return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); }