work/application/common/Model/ProjectTemplate.php
2024-01-03 09:54:57 +08:00

88 lines
2.5 KiB
PHP
Executable File

<?php
namespace app\common\Model;
use service\FileService;
use service\RandomService;
use think\File;
/**
* 项目模板
* Class Organization
* @package app\common\Model
*/
class ProjectTemplate extends CommonModel
{
protected $append = [];
/**
* 创建项目模板
* @param $memberCode
* @param $orgCode
* @param $name
* @param string $description
* @param string $cover
* @return ProjectTemplate
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function createProjectTemplate($memberCode, $orgCode, $name, $description = '', $cover = '')
{
$data = [
'create_time' => nowTime(),
'code' => createUniqueCode('projectTemplate'),
'member_code' => $memberCode,
'name' => $name,
'description' => $description,
'organization_code' => $orgCode,
'cover' => $cover ?? FileService::getFilePrefix() . 'static/image/default/cover.png'
];
$result = self::create($data);
if ($result) {
$taskStagesList = TaskStagesTemplate::$defaultTaskStagesNameList;
if ($taskStagesList) {
foreach ($taskStagesList as $name) {
TaskStagesTemplate::createTaskStagesTemplate($data['code'], $name);
}
}
}
return $result;
}
/**
* 删除模板
* @param $code
* @return bool
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function deleteTemplate($code)
{
$template = self::where(['code' => $code])->field('id')->find();
if (!$template) {
throw new \Exception('该模板不存在', 1);
}
$result = self::destroy(['code' => $code]);
if (!$result) {
throw new \Exception('删除失败', 2);
}
return TaskStagesTemplate::destroy(['project_template_code' => $code]);
}
/**
* @param File $file
* @return array|bool
* @throws \think\Exception
* @throws \think\exception\PDOException
* @throws \Exception
*/
public function uploadCover(File $file)
{
return $this->_uploadImg($file);
}
}