Project.php 2.24 KB
<?php

namespace domain\project;

use Yii;
use domain\project\models\Project     as ProjectModel;
use Exception;

/**
 * 项目
 * Class Project
 * @package domain\project
 */
class Project
{
    /**
     * 创建项目
     * @param $item
     */
    static function create($item)
    {
        try {
            $findProjectModel = ProjectModel::findOne(['name' => $item["name"]]);
            if (!empty($findProjectModel)) {
                return -1;
            }
            $projectModel = Yii::createObject(ProjectModel::className());
            $projectModel->project_no = self::getProjectNo();
            $projectModel->name = $item["name"]; // 项目
            $saveResult = $projectModel->save();
            return $saveResult;
        } catch (Exception $e) {
            return false;
        }
    }

    /**
     * 更新项目
     * @param $id
     * @param $item
     * @return null|static
     */
    static function update($id, $item)
    {
        $projectModel = ProjectModel::findOne($id);
        if (empty($projectModel)) {
            return false;
        }
        if (isset($item['name']) && $projectModel->name != $item['name']) {
            $findProjectModel = ProjectModel::findOne(['name' => $item["name"]]);
            if (!empty($findProjectModel)) {
                return -1;
            }
        }
        if (isset($item['name']) && !empty($item['name'])) {
            $projectModel->name = $item['name'];
        }

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

    /**
     * 删除项目
     * @param $id
     * @param $item
     * @return null|static
     */
    public static function delete($id)
    {
        $projectModel = ProjectModel::findOne($id);
        if (empty($projectModel)) {
            return false;
        }

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

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

        return strtoupper($dataNo);
    }
}