From 69d6417985a0f17bc053ac5786711ac6f3bceca5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A6=E8=8D=A3=E8=B6=85?= <302645122@qq.com> Date: Tue, 22 Feb 2022 16:49:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BD=AE=E9=A1=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/ProjectController.php | 27 ++++++++ app/Models/Project.php | 2 + app/Models/ProjectUser.php | 1 + ..._02_22_142148_project_users_add_top_at.php | 34 ++++++++++ resources/assets/js/pages/manage.vue | 63 ++++++++++++++++++- resources/assets/sass/pages/page-manage.scss | 13 ++++ 6 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 database/migrations/2022_02_22_142148_project_users_add_top_at.php 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 @@
-