* Refactor delete method.

This commit is contained in:
tianshujie
2023-10-10 09:58:05 +08:00
parent 66c95d69c3
commit f878b65b55
2 changed files with 28 additions and 8 deletions
+1 -8
View File
@@ -281,16 +281,8 @@ class release extends control
*/
public function delete(int $releaseID)
{
$release = $this->release->getByID($releaseID);
$this->release->delete(TABLE_RELEASE, $releaseID);
$builds = $this->dao->select('*')->from(TABLE_BUILD)->where('id')->in($release->build)->fetchAll();
$this->dao->update(TABLE_BUILD)->set('deleted')->eq(1)->where('id')->eq($release->shadow)->exec();
foreach($builds as $build)
{
if(empty($build->execution) and $build->createdDate == $release->createdDate) $this->build->delete(TABLE_BUILD, $build->id);
}
$response = array();
$message = $this->executeHooks($releaseID);
if($message) $response['message'] = $message;
@@ -303,6 +295,7 @@ class release extends control
}
else
{
$release = $this->release->getByID($releaseID);
$response['result'] = 'success';
$response['load'] = inLink('browse', "productID={$release->product}");
}
+27
View File
@@ -1055,4 +1055,31 @@ class releaseModel extends model
return $bugs;
}
/**
* 删除发布。
* Delete a release.
*
* @param string $table
* @param int $releaseID
* @access public
* @return bool
*/
public function delete(string $table, int $releaseID): bool
{
$this->dao->update(TABLE_RELEASE)->set('deleted')->eq(1)->where('id')->eq($releaseID)->exec();
$this->loadModel('action')->create('release', $releaseID, 'deleted');
$release = $this->getByID($releaseID);
if(!$release) return false;
$builds = $this->dao->select('*')->from(TABLE_BUILD)->where('id')->in($release->build)->fetchAll();
$this->dao->update(TABLE_BUILD)->set('deleted')->eq(1)->where('id')->eq($release->shadow)->exec();
foreach($builds as $build)
{
if(empty($build->execution) && $build->createdDate == $release->createdDate) $this->build->delete(TABLE_BUILD, $build->id);
}
return !dao::isError();
}
}