Upgrade.php 4.29 KB
<?php

namespace domain\upgrade;

use Yii;
use domain\upgrade\models\Upgrade     as UpgradeModel;
use Exception;

/**
 * 版本
 * Class Upgrade
 * @package domain\upgrade
 */
class Upgrade
{
    /**
     * 创建版本
     * @param $item
     */
    static function create($item)
    {
        try {
            $findUpgradeModel = UpgradeModel::findOne(['version' => $item["version"], 'type' => $item["type"]]);
            if (!empty($findUpgradeModel)) {
                return -1;
            }
            $upgradeModel = Yii::createObject(UpgradeModel::className());
            $upgradeModel->type = $item["type"]; // 版本类型 1. app类升级,2. OTA整包升级
            $upgradeModel->version = $item["version"]; // 版本
            $upgradeModel->manufacture_id = $item["manufacture_id"]; // 厂商编号
            $upgradeModel->path = $item["path"]; // 文件路径
            $upgradeModel->package_name = $item["package_name"]; // 安装包名称
            if (isset($item["device_ids"])) {
                $upgradeModel->device_ids = $item["指定deviceID,可以多个,多个用逗号隔开"]; // 版本
            }
            $upgradeModel->size = $item["size"]; // 文件大小
            $upgradeModel->file_md5 = $item["file_md5"]; // 软件包校验用的md5
            $saveResult = $upgradeModel->save();
            return $saveResult;
        } catch (Exception $e) {
            return false;
        }
    }

    /**
     * 更新版本
     * @param $id
     * @param $item
     * @return null|static
     */
    static function update($id, $item)
    {
        $upgradeModel = UpgradeModel::findOne($id);
        if (empty($upgradeModel)) {
            return false;
        }
        if (isset($item['version']) && $upgradeModel->version != $item['version']) {
            $findUpgradeModel = UpgradeModel::findOne(['version' => $item["version"], 'tpye' => $item["type"]]);
            if (!empty($findUpgradeModel)) {
                return -1;
            }
        }
        if (isset($item['version']) && !empty($item['version'])) {
            $upgradeModel->version = $item['version'];
        }
        if (isset($item['manufacture_id']) && !empty($item['manufacture_id'])) {
            $upgradeModel->manufacture_id = $item['manufacture_id'];
        }
        if (isset($item['path']) && !empty($item['path'])) {
            $upgradeModel->path = $item['path'];
        }
        if (isset($item['focuse']) && !empty($item['focuse'])) {
            $upgradeModel->focuse = $item['focuse'];
        }
        if (isset($item['device_ids']) && !empty($item['device_ids'])) {
            $upgradeModel->device_ids = $item['device_ids'];
        }
        // 1 全量 2 增量
        if (isset($item['package_type']) && !empty($item['package_type'])) {
            $upgradeModel->package_type = $item['package_type'];
        }
        // 增量允许的起始版本号
        if (isset($item['start_version']) && !empty($item['start_version'])) {
            $upgradeModel->start_version = $item['start_version'];
        }
        // 增量允许的结束版本号
        if (isset($item['end_version']) && !empty($item['end_version'])) {
            $upgradeModel->end_version = $item['end_version'];
        }
        if (isset($item['size']) && !empty($item['size'])) {
            $upgradeModel->size = $item['size'];
        }
        if (isset($item['status']) && !empty($item['status'])) {
            $upgradeModel->status = $item['status'];
        }
        if (isset($item['file_md5']) && !empty($item['file_md5'])) {
            $upgradeModel->file_md5 = $item['file_md5'];
        }
        if (isset($item['pushed_at']) && !empty($item['pushed_at'])) {
            $upgradeModel->pushed_at = $item['pushed_at'];
        }
        if (isset($item['package_name']) && !empty($item['package_name'])) {
            $upgradeModel->package_name = $item['package_name'];
        }

        $resultSave = $upgradeModel->save();
        return $resultSave;
    }

    /**
     * 删除版本
     * @param $id
     * @param $item
     * @return null|static
     */
    public static function delete($id)
    {
        $upgradeModel = UpgradeModel::findOne($id);
        if (empty($upgradeModel)) {
            return false;
        }

        return UpgradeModel::updateAll(["is_delete" => 1], ["id" => $id]);
    }
}