where('uid', $uid)->find(); return !empty($user) && $user['permission'] == 1; } /** * 帖子列表 * @param Request $request */ public function postList(Request $request) { $post = UtilService::getMore([ ['page', 1], ['pageSize', 20], ], $request); $result = (new ForumPost())->getList((int)$post['page'], (int)$post['pageSize']); return app('json')->success($result); } /** * 帖子详情 * @param Request $request */ public function postDetail(Request $request) { $post = UtilService::getMore([ ['id', 0, 'empty', '参数错误'], ], $request); $detail = (new ForumPost())->getDetail((int)$post['id']); if (!$detail) { return app('json')->fail('帖子不存在'); } return app('json')->success($detail); } /** * 发布帖子 * @param Request $request */ public function createPost(Request $request) { $uid = $request->user['uid']; // 检查发帖权限 if (!$this->checkPostPermission($uid)) { return app('json')->fail('您没有发帖权限'); } $postData = UtilService::getMore([ ['title', '', 'empty', '请填写标题'], ['content', '', 'empty', '请填写内容'], ['images', []], ], $request); // 验证标题长度 if (mb_strlen($postData['title']) > 200) { return app('json')->fail('标题不能超过200个字符'); } // 验证内容长度 if (mb_strlen($postData['content']) < 10) { return app('json')->fail('内容不能少于10个字符'); } $result = (new ForumPost())->createPost($uid, $postData); if ($result[0]) { return app('json')->success($result[1]); } else { return app('json')->fail($result[1]); } } /** * 我的帖子列表 * @param Request $request */ public function myPosts(Request $request) { $uid = $request->user['uid']; $post = UtilService::getMore([ ['page', 1], ['pageSize', 20], ], $request); $result = (new ForumPost())->getUserPosts($uid, (int)$post['page'], (int)$post['pageSize']); return app('json')->success($result); } /** * 评论列表 * @param Request $request */ public function commentList(Request $request) { $post = UtilService::getMore([ ['post_id', 0, 'empty', '参数错误'], ['page', 1], ['pageSize', 20], ], $request); $result = (new ForumComment())->getList((int)$post['post_id'], (int)$post['page'], (int)$post['pageSize']); return app('json')->success($result); } /** * 添加评论 * @param Request $request */ public function addComment(Request $request) { $uid = $request->user['uid']; $postData = UtilService::getMore([ ['post_id', 0, 'empty', '参数错误'], ['content', '', 'empty', '请填写评论内容'], ], $request); // 验证内容长度 if (mb_strlen($postData['content']) < 1) { return app('json')->fail('评论内容不能为空'); } if (mb_strlen($postData['content']) > 1000) { return app('json')->fail('评论内容不能超过1000个字符'); } $result = (new ForumComment())->addComment($uid, (int)$postData['post_id'], $postData['content']); if ($result[0]) { return app('json')->success($result[1], $result[2] ?? []); } else { return app('json')->fail($result[1]); } } /** * 删除评论 * @param Request $request */ public function deleteComment(Request $request) { $uid = $request->user['uid']; $post = UtilService::getMore([ ['id', 0, 'empty', '参数错误'], ], $request); $result = (new ForumComment())->deleteComment((int)$post['id'], $uid); if ($result[0]) { return app('json')->success($result[1]); } else { return app('json')->fail($result[1]); } } /** * 我的评论列表 * @param Request $request */ public function myComments(Request $request) { $uid = $request->user['uid']; $post = UtilService::getMore([ ['page', 1], ['pageSize', 20], ], $request); $result = (new ForumComment())->getUserComments($uid, (int)$post['page'], (int)$post['pageSize']); return app('json')->success($result); } /** * 检查发帖权限 * @param Request $request */ public function checkPermission(Request $request) { $uid = $request->user['uid']; $hasPermission = $this->checkPostPermission($uid); return app('json')->success('查询成功', [ 'has_permission' => $hasPermission ]); } }