UpgradeLogController.php 4.07 KB
<?php

namespace app\ht\modules\datas\controllers;

use Yii;
use yii\data\Pagination;
use domain\upgrade\UpgradeLogRepository;
use domain\upgrade\UpgradeStatus;
use app\ht\controllers\BaseController;

/**
 * 版本日志管理
 * Class UpgradeLogController
 * @package app\ht\modules\upgrade\controllers
 */
class UpgradeLogController extends BaseController
{
    /**
     * 版本日志管理
     */
    public function actionIndex()
    {
        $params = $this->dataList(1);
        /**
         * 渲染模板
         */
        return $this->render('index', $params);
    }

    /**
     * 查询数据列表
     */
    protected function dataList($type = '')
    {
        $request     = Yii::$app->request;
        $creatTime   = $request->get('creatTime');
        $endTime     = $request->get('endTime');
        $status      = $request->get('status');
        $current_version = $request->get('current_version');
        $target_version  = $request->get('target_version');
        $manufacture_name = $request->get('manufacture_name');
        $device_no   = $request->get('device_no');
        $barcode     = $request->get('barcode');
        $error_code  = $request->get('error_code');
        $device_device_id = $request->get('device_device_id');
        $package_name     = $request->get('package_name');
        $dataType    = !empty($request->get('type')) ? $request->get('type') : UpgradeStatus::TYPE_APP;

        $gets = [
            'creatTime'         => $creatTime,
            'endTime'           => $endTime,
            'status'            => $status,
            'current_version'   => $current_version,
            'target_version'    => $target_version,
            'manufacture_name'  => $manufacture_name,
            'device_no'         => $device_no,
            'barcode'           => $barcode,
            'error_code'        => $error_code,
            'device_device_id'  => $device_device_id,
            'package_name'      => $package_name,
            'type'              => $dataType,
        ];

        $where = ['and'];
        if ($creatTime) {
            $creatTime = strtotime($creatTime);
            $where[] = ['>=', 'ul.created_at', $creatTime];
        }
        if ($endTime) {
            $endTime = strtotime($endTime) + 86400;
            $where[] = ['<=', 'ul.created_at', $endTime];
        }
        if ($status) {
            $where[] = ['=', 'ul.status', $status];
        }
        if ($package_name) {
            $where[] = ['like', 'ul.package_name', $package_name];
        }
        if ($current_version) {
            $where[] = ['like', 'ul.current_version', $current_version];
        }
        if ($target_version) {
            $where[] = ['like', 'ul.target_version', $target_version];
        }
        if ($manufacture_name) {
            $where[] = ['like', 'mf.name', $manufacture_name];
        }
        if ($device_no) {
            $where[] = ['like', 'md.name', $device_no];
        }
        if ($barcode) {
            $where[] = ['like', 'ul.barcode', $barcode];
        }
        if ($error_code) {
            $where[] = ['like', 'ul.error_code', $error_code];
        }
        if ($device_device_id) {
            $where[] = ['like', 'ul.device_id', $device_device_id];
        }
        if ($dataType) {
            $where[] = ['=', 'ul.type', $dataType];
        }
        if ($type == 0) {
            $pageList = UpgradeLogRepository::getPageList($where, 0 , 0);
            $pages = null;
        } else {
            $pageSize = 20;
            $pages = new Pagination(['totalCount' => UpgradeLogRepository::getPageCount($where), 'pageSize' => $pageSize]);
            $pageList = UpgradeLogRepository::getPageList($where, $pages->offset, $pages->limit);
        }

        /**
         * 数据整理
         */
        return [
            'listdata'   => $pageList,
            'pages'      => $pages,
            'gets'       => $gets
        ];
    }

    /**
     * 导出版本日志数据
     * @return string
     */
    public function actionExport()
    {
        $params = $this->dataList(0);
        return $this->renderPartial('export', $params);
    }
}