diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 662ff350..991ead0a 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -1747,4 +1747,31 @@ class ProjectController extends AbstractController // return Base::retSuccess('success', $list); } + + /** + * @api {get} api/project/top 37. 项目置顶 + * + * @apiDescription 需要token身份 + * @apiVersion 1.0.0 + * @apiGroup project + * @apiName top + * + * @apiParam {Number} project_id 项目ID + * + * @apiSuccess {Number} ret 返回状态码(1正确、0错误) + * @apiSuccess {String} msg 返回信息(错误描述) + * @apiSuccess {Object} data 返回数据 + */ + public function top() + { + $user = User::auth(); + $projectId = intval(Request::input('project_id')); + $projectUser = ProjectUser::whereUserid($user->userid)->whereProjectId($projectId)->first(); + if (!$projectUser) { + return Base::retError("项目不存在"); + } + $projectUser->top_at = $projectUser->top_at ? null : Carbon::now(); + $projectUser->save(); + return Base::retSuccess("success", $projectId); + } } diff --git a/app/Models/Project.php b/app/Models/Project.php index 37d0a532..3a33022e 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -113,6 +113,7 @@ class Project extends AbstractModel ->select([ 'projects.*', 'project_users.owner', + 'project_users.top_at', ]) ->leftJoin('project_users', function ($leftJoin) use ($userid) { $leftJoin @@ -136,6 +137,7 @@ class Project extends AbstractModel ->select([ 'projects.*', 'project_users.owner', + 'project_users.top_at', ]) ->join('project_users', 'projects.id', '=', 'project_users.project_id') ->where('project_users.userid', $userid); diff --git a/app/Models/ProjectUser.php b/app/Models/ProjectUser.php index fad1568f..45365d62 100644 --- a/app/Models/ProjectUser.php +++ b/app/Models/ProjectUser.php @@ -11,6 +11,7 @@ use App\Module\Base; * @property int|null $project_id 项目ID * @property int|null $userid 成员ID * @property int|null $owner 是否负责人 + * @property \Illuminate\Support\Carbon|null $top_at 置顶时间 * @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $updated_at * @property-read \App\Models\Project|null $project diff --git a/database/migrations/2022_02_22_142148_project_users_add_top_at.php b/database/migrations/2022_02_22_142148_project_users_add_top_at.php new file mode 100644 index 00000000..83a808ae --- /dev/null +++ b/database/migrations/2022_02_22_142148_project_users_add_top_at.php @@ -0,0 +1,34 @@ +timestamp('top_at')->nullable()->after('owner')->comment('置顶时间'); + } + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('project_users', function (Blueprint $table) { + $table->dropColumn("top_at"); + }); + } +} diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 9117e41b..0513c23e 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -70,13 +70,20 @@
-