UpgradeRepository.php 2.89 KB
<?php

namespace domain\upgrade;

use domain\manufacturer\models\Manufacturer     as ManufacturerModel;
use domain\model\models\Model                   as ModelModel;
use domain\project\models\Project               as ProjectModel;
use domain\upgrade\models\Upgrade               as UpgradeModel;


/**

 * Class UpgradeRepository
 * @package domain\model
 */
class UpgradeRepository
{
    /**
     * 获取分页数据
     * @param $where
     * @param $offset
     * @param $limit
     * @return array|\yii\db\ActiveRecord[]
     */
    static function getPageList($where, $offset, $limit)
    {
        $upgradeFind = UpgradeModel::find()->alias("u")
                            ->select([
                                "u.*",
                                "mf.name as manufacture_name",
                                "pro.name as project_name",
                                "mo.name as model_name",
                                "concat(mf.manufacture_no,project_no,model_no) as barcode"
                            ]);
        $upgradeFind->leftJoin(ManufacturerModel::tableName() . " mf", "mf.id = u.manufacture_id");
        $upgradeFind->leftJoin(ProjectModel::tableName() . " pro", "pro.id = u.project_id");
        $upgradeFind->leftJoin(ModelModel::tableName() . " mo", "mo.id = u.model_id");

        if (!empty($where)) {
            $upgradeFind->where($where);
        }
        if ($offset) {
            $upgradeFind->offset($offset);
        }
        if ($limit) {
            $upgradeFind->limit($limit);
        }
        $upgradeFind->andWhere(["u.is_delete" => 0]);
        $upgradeFind->orderBy("u.id desc");
        $upgradeFind->asArray();
        $dataList = $upgradeFind->all();

        return $dataList;
    }

    /**
     * 列表页面分页器数量
     * @param string $map
     */
    static function getPageCount($map = '')
    {
        $upgradeFind = UpgradeModel::find()->alias("u");
        $upgradeFind->leftJoin(ManufacturerModel::tableName() . " mf", "mf.id = u.manufacture_id");
        $upgradeFind->leftJoin(ProjectModel::tableName() . " pro", "pro.id = u.project_id");
        $upgradeFind->leftJoin(ModelModel::tableName() . " mo", "mo.id = u.model_id");
        if (!empty($map)) {
            $upgradeFind->where($map);
        }
        $upgradeFind->andWhere(["u.is_delete" => 0]);
        $pageCount = $upgradeFind->count();

        return $pageCount;
    }

    /**
     * @param $id
     * @param bool|false $asArr
     * @return null|static
     */
    static function selectOne($id, $asArr = false)
    {
        $model = UpgradeModel::findOne($id);
        if ($asArr && $model) {
            $model = $model->toArray();
        }
        return $model;
    }

    /**
     * @param $id
     * @param bool|false $asArr
     * @return null|static
     */
    static function findOne($condition)
    {
        $model = UpgradeModel::findOne($condition);
        return $model;
    }
}