/** * export the promotioncode has been redeemed */ public function actionExport() { $accountId = $this->getAccountId(); $params = $this->getQuery(); $where = CampaignLog::createCondition($params, $accountId); $data = CampaignLog::find()->where($where)->one(); if ($data) { //redis hash key and set a default value $key = Yii::t('product', 'file_name') . '_' . date('YmdHis'); // get the header for the excel $headerValues = explode(",", Yii::t('product', 'promotion_redeemed_export')); $headerKeys = ['id', 'cardNumber', 'memberName', 'tel', 'sku', 'productName', 'code', 'prize', 'redeemTime', 'createdAt', 'redeemptionChannelName', 'campaignName', 'backendUser']; $header = array_combine($headerKeys, $headerValues); $exportArgs = ['collection' => 'campaignLog', 'classFunction' => '\\backend\\modules\\product\\models\\CampaignLog::preProcessRedeemedCodeData', 'sort' => ['createdAt' => -1], 'language' => Yii::$app->language, 'header' => $header, 'key' => $key, 'params' => [], 'fields' => '_id,code,productId,productName,campaignName,sku,operaterEmail,member,redeemTime,usedFrom,createdAt', 'accountId' => (string) $accountId, 'condition' => serialize(CampaignLog::getCollection()->buildCondition($where)), 'description' => 'Direct: export promotionCodes that is been redeemed']; $jobId = Yii::$app->job->create('backend\\modules\\common\\job\\MongoExportFile', $exportArgs); $result = ['result' => 'success', 'message' => 'exporting redeemed code', 'data' => ['jobId' => $jobId, 'key' => $key]]; } else { $result = ['result' => 'error', 'message' => 'no datas', 'data' => []]; } return $result; }