Model.php 2.21 KB
<?php

namespace domain\model;

use Yii;
use domain\model\models\Model     as ModelModel;
use Exception;

/**
 * 机器型号
 * Class Model
 * @package domain\model
 */
class Model
{
    /**
     * 创建机器型号
     * @param $item
     */
    static function create($item)
    {
        try {
            $findModelModel = ModelModel::findOne(['name' => $item["name"]]);
            if (!empty($findModelModel)) {
                return -1;
            }
            $modelModel = Yii::createObject(ModelModel::className());
            $modelModel->model_no = self::getModelNo();
            $modelModel->name = $item["name"]; // 机器型号
            $saveResult = $modelModel->save();
            return $saveResult;
        } catch (Exception $e) {
            return false;
        }
    }

    /**
     * 更新机器型号
     * @param $id
     * @param $item
     * @return null|static
     */
    static function update($id, $item)
    {
        $modelModel = ModelModel::findOne($id);
        if (empty($modelModel)) {
            return false;
        }
        if (isset($item['name']) && $modelModel->name != $item['name']) {
            $findModelModel = ModelModel::findOne(['name' => $item["name"]]);
            if (!empty($findModelModel)) {
                return -1;
            }
        }
        if (isset($item['name']) && !empty($item['name'])) {
            $modelModel->name = $item['name'];
        }

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

    /**
     * 删除机器型号
     * @param $id
     * @param $item
     * @return null|static
     */
    public static function delete($id)
    {
        $modelModel = ModelModel::findOne($id);
        if (empty($modelModel)) {
            return false;
        }

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

    /**
     * 获取十六进制机器型号编号
     */
    private static function getModelNo()
    {
        $findModel = ModelModel::find()->orderBy("id desc")->asArray()->one();
        if (empty($findModel)) {
            return "0001";
        }
        $dataNo = hexdec($findModel['model_no']) + 1;
        $dataNo = sprintf('%04X', $dataNo);

        return strtoupper($dataNo);
    }
}