no message
This commit is contained in:
parent
befd5c3b08
commit
bae5afc0da
@ -660,7 +660,7 @@ class ProjectController extends AbstractController
|
|||||||
{
|
{
|
||||||
User::auth();
|
User::auth();
|
||||||
//
|
//
|
||||||
$builder = ProjectTask::select(ProjectTask::taskSelect)->with(['taskUser', 'taskTag']);
|
$builder = ProjectTask::with(['taskUser', 'taskTag']);
|
||||||
//
|
//
|
||||||
$parent_id = intval(Request::input('parent_id'));
|
$parent_id = intval(Request::input('parent_id'));
|
||||||
$project_id = intval(Request::input('project_id'));
|
$project_id = intval(Request::input('project_id'));
|
||||||
@ -672,12 +672,12 @@ class ProjectController extends AbstractController
|
|||||||
//
|
//
|
||||||
if ($parent_id > 0) {
|
if ($parent_id > 0) {
|
||||||
ProjectTask::userTask($parent_id);
|
ProjectTask::userTask($parent_id);
|
||||||
$builder->leftData()->where('project_tasks.parent_id', $parent_id);
|
$builder->ownerData()->where('project_tasks.parent_id', $parent_id);
|
||||||
} elseif ($project_id > 0) {
|
} elseif ($project_id > 0) {
|
||||||
Project::userProject($project_id);
|
Project::userProject($project_id);
|
||||||
$builder->leftData()->where('project_tasks.project_id', $project_id);
|
$builder->ownerData()->where('project_tasks.project_id', $project_id);
|
||||||
} else {
|
} else {
|
||||||
$builder->authData();
|
$builder->joinData();
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
if ($name) {
|
if ($name) {
|
||||||
|
@ -85,7 +85,7 @@ 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)->authData(User::userid(), true)->whereNull('archived_at');
|
$builder = ProjectTask::whereProjectId($this->id)->whereParentId(0)->authData(User::userid())->whereNull('archived_at');
|
||||||
$this->appendattrs['task_my_num'] = $builder->count();
|
$this->appendattrs['task_my_num'] = $builder->count();
|
||||||
$this->appendattrs['task_my_complete'] = $builder->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;
|
||||||
|
@ -54,8 +54,9 @@ 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($userid = null, $owner = false)
|
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask authData($userid = null)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask leftData($userid = null)
|
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask joinData($userid = null)
|
||||||
|
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask ownerData($userid = null)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask betweenTime($start, $end)
|
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask betweenTime($start, $end)
|
||||||
* @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()
|
||||||
@ -256,37 +257,64 @@ class ProjectTask extends AbstractModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询自己的任务
|
* 查询自己负责的任务
|
||||||
* @param self $query
|
* @param self $query
|
||||||
* @param null $userid
|
* @param null $userid
|
||||||
* @param bool $owner
|
|
||||||
* @return self
|
* @return self
|
||||||
*/
|
*/
|
||||||
public function scopeAuthData($query, $userid = null, $owner = false)
|
public function scopeAuthData($query, $userid = null)
|
||||||
{
|
{
|
||||||
$userid = $userid ?: User::userid();
|
$userid = $userid ?: User::userid();
|
||||||
$query->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_id')
|
$query->whereIn('id', function ($qy) use ($userid) {
|
||||||
->where('project_task_users.userid', $userid);
|
$qy->select('task_pid')->from('project_task_users')->where('userid', $userid)->where('owner', 1);
|
||||||
if ($owner) {
|
});
|
||||||
$query->where('project_task_users.owner', 1);
|
|
||||||
}
|
|
||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询自己的任务
|
* 查询自己参与的任务
|
||||||
* @param self $query
|
* @param self $query
|
||||||
* @param null $userid
|
* @param null $userid
|
||||||
* @return self
|
* @return self
|
||||||
*/
|
*/
|
||||||
public function scopeLeftData($query, $userid = null)
|
public function scopeJoinData($query, $userid = null)
|
||||||
{
|
{
|
||||||
|
DB::statement("SET SQL_MODE=''");
|
||||||
|
$pre = DB::connection()->getTablePrefix();
|
||||||
$userid = $userid ?: User::userid();
|
$userid = $userid ?: User::userid();
|
||||||
$query->leftJoin('project_task_users', function ($leftJoin) use ($userid) {
|
$query
|
||||||
|
->select([
|
||||||
|
'project_tasks.*',
|
||||||
|
DB::raw("MAX({$pre}project_task_users.owner) as owner")
|
||||||
|
])
|
||||||
|
->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_id')
|
||||||
|
->where('project_task_users.userid', $userid)
|
||||||
|
->groupBy('project_tasks.id');
|
||||||
|
return $query;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询自己参与的任务(参与条件非必须)
|
||||||
|
* @param self $query
|
||||||
|
* @param null $userid
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function scopeOwnerData($query, $userid = null)
|
||||||
|
{
|
||||||
|
DB::statement("SET SQL_MODE=''");
|
||||||
|
$pre = DB::connection()->getTablePrefix();
|
||||||
|
$userid = $userid ?: User::userid();
|
||||||
|
$query
|
||||||
|
->select([
|
||||||
|
'project_tasks.*',
|
||||||
|
DB::raw("MAX({$pre}project_task_users.owner) as owner")
|
||||||
|
])
|
||||||
|
->leftJoin('project_task_users', function ($leftJoin) use ($userid) {
|
||||||
$leftJoin
|
$leftJoin
|
||||||
->on('project_task_users.userid', '=', DB::raw($userid))
|
->on('project_task_users.userid', '=', DB::raw($userid))
|
||||||
->on('project_tasks.id', '=', 'project_task_users.task_id');
|
->on('project_tasks.id', '=', 'project_task_users.task_id');
|
||||||
});
|
})
|
||||||
|
->groupBy('project_tasks.id');
|
||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,14 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot()
|
public function boot()
|
||||||
{
|
{
|
||||||
//
|
\Illuminate\Database\Query\Builder::macro('rawSql', function(){
|
||||||
|
return array_reduce($this->getBindings(), function($sql, $binding){
|
||||||
|
return preg_replace('/\?/', is_numeric($binding) ? $binding : "'".$binding."'" , $sql, 1);
|
||||||
|
}, $this->toSql());
|
||||||
|
});
|
||||||
|
|
||||||
|
\Illuminate\Database\Eloquent\Builder::macro('rawSql', function(){
|
||||||
|
return ($this->getQuery()->rawSql());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user