ProveController.php 2.4 KB
<?php
/**
 * @author 河南鼎汉软件科技
 * @copyright Copyright (c) 2017 HNDH Software Technology Co., Ltd.
 * createtime: 2017/9/29 20:35
 */

namespace backend\modules\game\controllers;


use backend\controllers\ControllerBase;
use common\models\GameProve;
use common\widgets\daterangepicker\DateRangePicker;
use moonland\phpexcel\Excel;

class ProveController extends ControllerBase
{
    /**
     * @return string
     */
    public function actionIndex()
    {
        $request = \Yii::$app->request;
        $sort = $request->get('sort');
        $orderBy = empty($sort) ? 'id DESC' : '';
        $query = GameProve::find()->orderBy($orderBy);

        // 搜索
        $searchArr = ['keywords' => '', 'status' => '', 'date' => ['start' => '2017-01-01 00:00', 'end' => date('Y-m-d H:i')]];
        $keywords = $request->get('keywords', '');
        if (!empty($keywords)) {
            $searchArr['keywords'] = $keywords;
            $query->andWhere("uid = '{$keywords}'");
        }
        $status = $request->get('status', '');
        if (!empty($status)) {
            $searchArr['status'] = $status;
            $query->andWhere(['status' => $status]);
        }
        $date = $request->get('date', []);
        if (!empty($date)) {
            $tmp = explode(DateRangePicker::SEPARATOR, $date);
            $searchArr['date'] = ['start' => $tmp['0'], 'end' => $tmp['1']];
            $query->andWhere(['between', 'created_at', strtotime($tmp['0']), strtotime($tmp['1'])]);
        }

        // 导出Excel
        if ($request->get('op') == 'export') {
            return Excel::export([
                'models' => $query->all(),
                'fileName' => '认证记录_' . date('YmdHs') . '.xlsx',
                'columns' => [
                    'id',
                    'uid',
                    'num',
                    'service_price',
                    't_num',
                    'g_num',
                    ['attribute' => 'status', 'format' => 'raw', 'value' => function ($model) {
                        return $model->status == 1 ? '已领取' : '未领取';
                    }],
                    ['attribute' => 'effective_at', 'format' => ['date', 'php:Y-m-d H:i:s']],
                    ['attribute' => 'created_at', 'format' => ['date', 'php:Y-m-d H:i:s']]
                ],
            ]);
        }
        return $this->render('index', ['query' => $query, 'searchArr' => $searchArr]);
    }

}