no message

This commit is contained in:
kuaifan
2021-06-08 22:51:56 +08:00
parent d1b5179838
commit c478dbeeaa
7 changed files with 370 additions and 106 deletions

View File

@@ -7,10 +7,13 @@ use App\Models\Project;
use App\Models\ProjectColumn;
use App\Models\ProjectLog;
use App\Models\ProjectTask;
use App\Models\ProjectTaskContent;
use App\Models\ProjectTaskUser;
use App\Models\ProjectUser;
use App\Models\User;
use App\Models\WebSocketDialogMsg;
use App\Module\Base;
use Carbon\Carbon;
use Request;
/**
@@ -261,6 +264,9 @@ class ProjectController extends AbstractController
'column_id' => $item['id'],
'sort' => $index
]);
ProjectTask::whereParentId($task_id)->whereProjectId($project->id)->update([
'column_id' => $item['id'],
]);
$index++;
}
}
@@ -515,12 +521,10 @@ class ProjectController extends AbstractController
}
/**
* 添加、修改 任务列表
* 添加任务列表
*
* @apiParam {Number} project_id 项目ID
* @apiParam {Number} [column_id] 列表ID留空为添加列表
* @apiParam {String} name 列表名称
* @apiParam {String} color 颜色
*/
public function column__add()
{
@@ -532,12 +536,7 @@ class ProjectController extends AbstractController
}
//
$project_id = intval(Request::input('project_id'));
$column_id = intval(Request::input('column_id'));
$name = trim(Request::input('name'));
$color = trim(Request::input('color'));
if (empty($name)) {
return Base::retError('列表名称不能为空');
}
// 项目
$project = Project::select($this->projectSelect)
->join('project_users', 'projects.id', '=', 'project_users.project_id')
@@ -548,28 +547,59 @@ class ProjectController extends AbstractController
return Base::retError('项目不存在或不在成员列表内');
}
//
if ($column_id > 0) {
$column = ProjectColumn::whereId($column_id)->whereProjectId($project_id)->first();
if (empty($column)) {
return Base::retError('列表不存在');
}
$column->name = $name;
$column->color = $color;
$column->save();
return Base::retSuccess('修改成功', $column);
} else {
$column = ProjectColumn::createInstance([
'project_id' => $project->id,
'name' => $name,
'color' => $color,
]);
$column->sort = intval(ProjectColumn::whereProjectId($project->id)->orderByDesc('sort')->value('sort')) + 1;
$column->save();
//
$data = $column->toArray();
$data['project_task'] = [];
return Base::retSuccess('添加成功', $data);
if (empty($name)) {
return Base::retError('列表名称不能为空');
}
$column = ProjectColumn::createInstance([
'project_id' => $project->id,
'name' => $name,
]);
$column->sort = intval(ProjectColumn::whereProjectId($project->id)->orderByDesc('sort')->value('sort')) + 1;
$column->save();
//
$data = $column->toArray();
$data['project_task'] = [];
return Base::retSuccess('添加成功', $data);
}
/**
* 修改任务列表
*
* @apiParam {Number} column_id 列表ID
* @apiParam {String} [name] 列表名称
* @apiParam {String} [color] 颜色
*/
public function column__update()
{
$user = User::authE();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
//
$column_id = intval(Request::input('column_id'));
$name = trim(Request::input('name'));
$color = trim(Request::input('color'));
// 列表
$column = ProjectColumn::whereId($column_id)->first();
if (empty($column)) {
return Base::retError('列表不存在');
}
// 项目
$project = Project::select($this->projectSelect)
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $column->project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内');
}
//
if ($name) $column->name = $name;
if ($color) $column->color = $color;
$column->save();
return Base::retSuccess('修改成功', $column);
}
/**
@@ -690,4 +720,57 @@ class ProjectController extends AbstractController
}
return $result;
}
/**
* {post} 修改任务、子任务
*
* @apiParam {Number} task_id 任务ID
* @apiParam {String} [name] 任务描述
* @apiParam {String} [color] 任务描述(子任务不支持)
* @apiParam {String} [content] 任务详情(子任务不支持)
* @apiParam {Array} [times] 计划时间(格式:开始时间,结束时间2020-01-01 00:00,2020-01-01 23:59
* @apiParam {Number} [owner] 修改负责人
*/
public function task__update()
{
$user = User::authE();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
//
$task_id = Base::getPostInt('task_id');
$name = Base::getPostValue('name');
$color = Base::getPostValue('color');
$content = Base::getPostValue('content');
$times = Base::getPostValue('times');
$owner = Base::getPostValue('owner');
// 任务
$task = ProjectTask::whereId($task_id)->first();
if (empty($task)) {
return Base::retError('任务不存在');
}
// 项目
$project = Project::select($this->projectSelect)
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $task->project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内');
}
//
$result = $task->updateTask([
'name' => $name,
'color' => $color,
'content' => $content,
'times' => $times,
'owner' => $owner,
]);
if (Base::isSuccess($result)) {
$result['data'] = ProjectTask::with(['taskUser', 'taskTag'])->whereId($task->id)->first();
}
return $result;
}
}