forked from kuaifan/dootask
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
1,330 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -89,6 +89,7 @@ git pull | |
./cmd uninstall | ||
./cmd install | ||
./cmd mysql recovery | ||
./cmd artisan migrate | ||
``` | ||
|
||
## Uninstall | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -89,6 +89,7 @@ git pull | |
./cmd uninstall | ||
./cmd install | ||
./cmd mysql recovery | ||
./cmd artisan migrate | ||
``` | ||
|
||
## 卸载项目 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
<?php | ||
|
||
namespace App\Models; | ||
|
||
use App\Module\Base; | ||
|
||
/** | ||
* App\Models\ProjectFlow | ||
* | ||
* @property int $id | ||
* @property int|null $project_id 项目ID | ||
* @property string|null $name 流程名称 | ||
* @property \Illuminate\Support\Carbon|null $created_at | ||
* @property \Illuminate\Support\Carbon|null $updated_at | ||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectFlowItem[] $projectFlowItem | ||
* @property-read int|null $project_flow_item_count | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlow newModelQuery() | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlow newQuery() | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlow query() | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlow whereCreatedAt($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlow whereId($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlow whereName($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlow whereProjectId($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlow whereUpdatedAt($value) | ||
* @mixin \Eloquent | ||
*/ | ||
class ProjectFlow extends AbstractModel | ||
{ | ||
/** | ||
* @return \Illuminate\Database\Eloquent\Relations\HasMany | ||
*/ | ||
public function projectFlowItem(): \Illuminate\Database\Eloquent\Relations\HasMany | ||
{ | ||
return $this->hasMany(ProjectFlowItem::class, 'flow_id', 'id')->orderBy('sort'); | ||
} | ||
|
||
public static function addFlow() | ||
{ | ||
AbstractModel::transaction(function() { | ||
$projectFlow = ProjectFlow::whereProjectId($project->id)->first(); | ||
if (empty($projectFlow)) { | ||
$projectFlow = ProjectFlow::createInstance([ | ||
'project_id' => $project->id, | ||
'name' => 'Default' | ||
]); | ||
if (!$projectFlow->save()) { | ||
return Base::retError('工作流创建失败'); | ||
} | ||
} | ||
// | ||
$ids = []; | ||
$idc = []; | ||
$hasStart = false; | ||
$hasEnd = false; | ||
foreach ($flows as $item) { | ||
$id = intval($item['id']); | ||
$turns = Base::arrayRetainInt($item['turns'] ?: [], true); | ||
$userids = Base::arrayRetainInt($item['userids'] ?: [], true); | ||
$flow = ProjectFlowItem::updateInsert([ | ||
'id' => $id, | ||
'project_id' => $project->id, | ||
'flow_id' => $projectFlow->id, | ||
], [ | ||
'name' => trim($item['name']), | ||
'status' => trim($item['status']), | ||
'sort' => intval($item['sort']), | ||
'turns' => $turns, | ||
'userids' => $userids, | ||
]); | ||
if ($flow) { | ||
$ids[] = $flow->id; | ||
if ($flow->id != $id) { | ||
$idc[$id] = $flow->id; | ||
} | ||
if ($flow->status == 'start') { | ||
$hasStart = true; | ||
} | ||
if ($flow->status == 'end') { | ||
$hasEnd = true; | ||
} | ||
} | ||
} | ||
if (!$hasStart) { | ||
return Base::retError('至少需要1个开始状态'); | ||
} | ||
if (!$hasEnd) { | ||
return Base::retError('至少需要1个结束状态'); | ||
} | ||
ProjectFlowItem::whereFlowId($projectFlow->id)->whereNotIn('id', $ids)->delete(); | ||
}); | ||
return Base::retSuccess("success"); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
<?php | ||
|
||
namespace App\Models; | ||
|
||
use App\Module\Base; | ||
|
||
/** | ||
* App\Models\ProjectFlowItem | ||
* | ||
* @property int $id | ||
* @property int|null $project_id 项目ID | ||
* @property int|null $flow_id 流程ID | ||
* @property string|null $name 名称 | ||
* @property string|null $status 状态 | ||
* @property array $turns 可流转 | ||
* @property array $userids 自动负责人ID | ||
* @property int|null $sort 排序 | ||
* @property \Illuminate\Support\Carbon|null $created_at | ||
* @property \Illuminate\Support\Carbon|null $updated_at | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem newModelQuery() | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem newQuery() | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem query() | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereCreatedAt($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereFlowId($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereId($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereName($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereProjectId($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereSort($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereStatus($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereTurns($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereUpdatedAt($value) | ||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectFlowItem whereUserids($value) | ||
* @mixin \Eloquent | ||
*/ | ||
class ProjectFlowItem extends AbstractModel | ||
{ | ||
/** | ||
* @param $value | ||
* @return array | ||
*/ | ||
public function getTurnsAttribute($value) | ||
{ | ||
if (is_array($value)) { | ||
return $value; | ||
} | ||
return Base::json2array($value); | ||
} | ||
|
||
/** | ||
* @param $value | ||
* @return array | ||
*/ | ||
public function getUseridsAttribute($value) | ||
{ | ||
if (is_array($value)) { | ||
return $value; | ||
} | ||
return Base::json2array($value); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.