no message
This commit is contained in:
parent
d626647156
commit
a9b2b041ce
@ -236,9 +236,11 @@ class ProjectController extends AbstractController
|
|||||||
$array[] = $uid;
|
$array[] = $uid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$delete = ProjectUser::whereProjectId($project->id)->whereNotIn('userid', $array);
|
$deleteRows = ProjectUser::whereProjectId($project->id)->whereNotIn('userid', $array)->get();
|
||||||
$deleteUser = $delete->pluck('userid');
|
$deleteUser = $deleteRows->pluck('userid');
|
||||||
$delete->delete();
|
foreach ($deleteRows as $row) {
|
||||||
|
$row->exitProject();
|
||||||
|
}
|
||||||
$project->syncDialogUser();
|
$project->syncDialogUser();
|
||||||
$project->addLog("修改项目成员");
|
$project->addLog("修改项目成员");
|
||||||
return $deleteUser->toArray();
|
return $deleteUser->toArray();
|
||||||
@ -358,7 +360,8 @@ class ProjectController extends AbstractController
|
|||||||
}
|
}
|
||||||
//
|
//
|
||||||
AbstractModel::transaction(function() use ($user, $project) {
|
AbstractModel::transaction(function() use ($user, $project) {
|
||||||
ProjectUser::whereProjectId($project->id)->whereUserid($user->userid)->delete();
|
$row = ProjectUser::whereProjectId($project->id)->whereUserid($user->userid)->first();
|
||||||
|
$row && $row->exitProject();
|
||||||
$project->syncDialogUser();
|
$project->syncDialogUser();
|
||||||
$project->addLog("会员ID:" . $user->userid . " 退出项目");
|
$project->addLog("会员ID:" . $user->userid . " 退出项目");
|
||||||
$project->pushMsg('delete', null, $user->userid);
|
$project->pushMsg('delete', null, $user->userid);
|
||||||
|
@ -36,7 +36,7 @@ use Request;
|
|||||||
* @property-read int|null $project_log_count
|
* @property-read int|null $project_log_count
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectUser[] $projectUser
|
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectUser[] $projectUser
|
||||||
* @property-read int|null $project_user_count
|
* @property-read int|null $project_user_count
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Project authData($user = null)
|
* @method static \Illuminate\Database\Eloquent\Builder|Project authData($userid = null)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Project newModelQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder|Project newModelQuery()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Project newQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder|Project newQuery()
|
||||||
* @method static \Illuminate\Database\Query\Builder|Project onlyTrashed()
|
* @method static \Illuminate\Database\Query\Builder|Project onlyTrashed()
|
||||||
@ -85,9 +85,9 @@ class Project extends AbstractModel
|
|||||||
$this->appendattrs['task_complete'] = $builder->whereNotNull('complete_at')->count();
|
$this->appendattrs['task_complete'] = $builder->whereNotNull('complete_at')->count();
|
||||||
$this->appendattrs['task_percent'] = $this->appendattrs['task_num'] ? intval($this->appendattrs['task_complete'] / $this->appendattrs['task_num'] * 100) : 0;
|
$this->appendattrs['task_percent'] = $this->appendattrs['task_num'] ? intval($this->appendattrs['task_complete'] / $this->appendattrs['task_num'] * 100) : 0;
|
||||||
//
|
//
|
||||||
$builder = ProjectTask::whereProjectId($this->id)->whereParentId(0)->whereNull('archived_at');
|
$builder = ProjectTask::whereProjectId($this->id)->whereParentId(0)->authData(User::userid())->whereNull('archived_at');
|
||||||
$this->appendattrs['task_my_num'] = $builder->whereUserid(User::userid())->count();
|
$this->appendattrs['task_my_num'] = $builder->count();
|
||||||
$this->appendattrs['task_my_complete'] = $builder->whereUserid(User::userid())->whereNotNull('complete_at')->count();
|
$this->appendattrs['task_my_complete'] = $builder->whereNotNull('complete_at')->count();
|
||||||
$this->appendattrs['task_my_percent'] = $this->appendattrs['task_my_num'] ? intval($this->appendattrs['task_my_complete'] / $this->appendattrs['task_my_num'] * 100) : 0;
|
$this->appendattrs['task_my_percent'] = $this->appendattrs['task_my_num'] ? intval($this->appendattrs['task_my_complete'] / $this->appendattrs['task_my_num'] * 100) : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -212,14 +212,14 @@ class Project extends AbstractModel
|
|||||||
/**
|
/**
|
||||||
* 查询自己的项目
|
* 查询自己的项目
|
||||||
* @param self $query
|
* @param self $query
|
||||||
* @param null $user
|
* @param null $userid
|
||||||
* @return self
|
* @return self
|
||||||
*/
|
*/
|
||||||
public function scopeAuthData($query, $user = null)
|
public function scopeAuthData($query, $userid = null)
|
||||||
{
|
{
|
||||||
$user = $user ?: User::auth();
|
$userid = $userid ?: User::userid();
|
||||||
$query->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
$query->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
||||||
->where('project_users.userid', $user->userid);
|
->where('project_users.userid', $userid);
|
||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ use Request;
|
|||||||
* @property-read int|null $task_tag_count
|
* @property-read int|null $task_tag_count
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectTaskUser[] $taskUser
|
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectTaskUser[] $taskUser
|
||||||
* @property-read int|null $task_user_count
|
* @property-read int|null $task_user_count
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask authData($user = null)
|
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask authData($userid = null)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newModelQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newModelQuery()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newQuery()
|
||||||
* @method static \Illuminate\Database\Query\Builder|ProjectTask onlyTrashed()
|
* @method static \Illuminate\Database\Query\Builder|ProjectTask onlyTrashed()
|
||||||
@ -265,14 +265,14 @@ class ProjectTask extends AbstractModel
|
|||||||
/**
|
/**
|
||||||
* 查询自己的任务
|
* 查询自己的任务
|
||||||
* @param self $query
|
* @param self $query
|
||||||
* @param null $user
|
* @param null $userid
|
||||||
* @return self
|
* @return self
|
||||||
*/
|
*/
|
||||||
public function scopeAuthData($query, $user = null)
|
public function scopeAuthData($query, $userid = null)
|
||||||
{
|
{
|
||||||
$user = $user ?: User::auth();
|
$userid = $userid ?: User::userid();
|
||||||
$query->whereIn('id', function ($qy) use ($user) {
|
$query->whereIn('id', function ($qy) use ($userid) {
|
||||||
$qy->select('task_pid')->from('project_task_users')->where('userid', $user->userid);
|
$qy->select('task_pid')->from('project_task_users')->where('userid', $userid);
|
||||||
});
|
});
|
||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
@ -36,4 +36,19 @@ class ProjectUser extends AbstractModel
|
|||||||
{
|
{
|
||||||
return $this->hasOne(Project::class, 'id', 'project_id');
|
return $this->hasOne(Project::class, 'id', 'project_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退出项目
|
||||||
|
*/
|
||||||
|
public function exitProject()
|
||||||
|
{
|
||||||
|
$tasks = ProjectTask::whereProjectId($this->project_id)->authData($this->userid)->get();
|
||||||
|
foreach ($tasks as $task) {
|
||||||
|
if (ProjectTaskUser::whereTaskId($task->id)->whereUserid($this->userid)->delete()) {
|
||||||
|
$task->pushMsg('update');
|
||||||
|
$task->syncDialogUser();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->delete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user