diff --git a/app/index/controller/Post.php b/app/index/controller/Post.php index 34b302a..1f2469e 100644 --- a/app/index/controller/Post.php +++ b/app/index/controller/Post.php @@ -5,105 +5,116 @@ declare(strict_types=1); namespace app\index\controller; use app\model\Post as ModelPost; +use think\facade\Cache; use think\facade\View; use think\model\Relation; use think\Request; class Post extends Common { - /** - * 显示资源列表 - * - * @return \think\Response - */ - public function index() - { - // - } - - /** - * 显示创建资源表单页. - * - * @return \think\Response - */ - public function create() - { - // - } - - /** - * 保存新建的资源 - * - * @param \think\Request $request - * @return \think\Response - */ - public function save(Request $request) - { - // - } - - /** - * 显示指定的资源 - * - * @param int $id - * @return \think\Response - */ - public function read($uid) - { - // - - $model_post = ModelPost::with([ - 'comments' => function (Relation $query) { - $query->order('id asc'); - } - ])->where('uid', $uid)->find(); - - if (empty($model_post)) { - return $this->error('链接已失效', '/'); + /** + * 显示资源列表 + * + * @return \think\Response + */ + public function index() + { + // } - $model_post->hits = $model_post->hits + 1; + /** + * 显示创建资源表单页. + * + * @return \think\Response + */ + public function create() + { + // + } - $model_post->save(); + /** + * 保存新建的资源 + * + * @param \think\Request $request + * @return \think\Response + */ + public function save(Request $request) + { + // + } - View::assign('post', $model_post); + /** + * 显示指定的资源 + * + * @param int $id + * @return \think\Response + */ + public function read($uid) + { + // - return View::fetch(); - } + $cache_key = 'post_' . $uid; + + $model_post = Cache::get($cache_key); + + if (empty($model_post)) { + + $model_post = ModelPost::with([ + 'comments' => function (Relation $query) { + $query->order('id asc'); + } + ])->where('uid', $uid)->find(); + + if (empty($model_post)) { + return $this->error('链接已失效', '/'); + } + + Cache::set($cache_key, $model_post); + } + + + $model_post->hits = $model_post->hits + 1; + + $model_post->save(); + + View::assign('post', $model_post); + + return View::fetch(); + } - /** - * 显示编辑资源表单页. - * - * @param int $id - * @return \think\Response - */ - public function edit($id) - { - // - } + /** + * 显示编辑资源表单页. + * + * @param int $id + * @return \think\Response + */ + public function edit($id) + { + // + } - /** - * 保存更新的资源 - * - * @param \think\Request $request - * @param int $id - * @return \think\Response - */ - public function update(Request $request, $id) - { - // - } + /** + * 保存更新的资源 + * + * @param \think\Request $request + * @param int $id + * @return \think\Response + */ + public function update(Request $request, $id) + { + // + } - /** - * 删除指定资源 - * - * @param int $id - * @return \think\Response - */ - public function delete($id) - { - // - } + /** + * 删除指定资源 + * + * @param int $id + * @return \think\Response + */ + public function delete($id) + { + // + } } diff --git a/app/index/controller/PostComment.php b/app/index/controller/PostComment.php index bbd17a4..fb46f6c 100644 --- a/app/index/controller/PostComment.php +++ b/app/index/controller/PostComment.php @@ -4,7 +4,9 @@ declare(strict_types=1); namespace app\index\controller; +use app\model\Post; use app\model\PostComment as ModelPostComment; +use think\facade\Cache; use think\facade\Session; use think\facade\Validate; use think\Request; @@ -12,112 +14,121 @@ use think\validate\ValidateRule; class PostComment extends Common { - /** - * 显示资源列表 - * - * @return \think\Response - */ - public function index() - { - // - } - - /** - * 显示创建资源表单页. - * - * @return \think\Response - */ - public function create() - { - // - } - - /** - * 保存新建的资源 - * - * @param \think\Request $request - * @return \think\Response - */ - public function save(Request $request) - { - // - - $user_uid = Session::get('user_uid'); - - if (empty($user_uid)) { - return json_message('请先登录'); + /** + * 显示资源列表 + * + * @return \think\Response + */ + public function index() + { + // } - $post_data = $request->post(); - - $validate = Validate::rule('post_id', ValidateRule::isRequire()) - ->rule('content|评论内容', ValidateRule::isRequire()->length('5,200', '评论字符长度需要在5-200之间')); - - if (!$validate->check($post_data)) { - return json_message($validate->getError()); + /** + * 显示创建资源表单页. + * + * @return \think\Response + */ + public function create() + { + // } - $post_data['type'] = 3; + /** + * 保存新建的资源 + * + * @param \think\Request $request + * @return \think\Response + */ + public function save(Request $request) + { + // + + $user_uid = Session::get('user_uid'); + + if (empty($user_uid)) { + return json_message('请先登录'); + } + + $post_data = $request->post(); + + $validate = Validate::rule('post_id', ValidateRule::isRequire()) + ->rule('content|评论内容', ValidateRule::isRequire()->length('5,200', '评论字符长度需要在5-200之间')); + + if (!$validate->check($post_data)) { + return json_message($validate->getError()); + } + + $model_post = Post::find($post_data['post_id']); + + if (empty($model_post)) { + return json_message('文章不存在'); + } + + $post_data['type'] = 3; + + $post_data['user_uid'] = $user_uid; + + ModelPostComment::create($post_data); + + ModelPostComment::clearCountCache(); + + Cache::delete('post_' . $model_post->uid); - $post_data['user_uid'] = $user_uid; - ModelPostComment::create($post_data); - ModelPostComment::clearCountCache(); - + return json_message(); + } - return json_message(); - } + /** + * 显示指定的资源 + * + * @param int $id + * @return \think\Response + */ + public function read($id) + { + // + } - /** - * 显示指定的资源 - * - * @param int $id - * @return \think\Response - */ - public function read($id) - { - // - } + /** + * 显示编辑资源表单页. + * + * @param int $id + * @return \think\Response + */ + public function edit($id) + { + // + } - /** - * 显示编辑资源表单页. - * - * @param int $id - * @return \think\Response - */ - public function edit($id) - { - // - } + /** + * 保存更新的资源 + * + * @param \think\Request $request + * @param int $id + * @return \think\Response + */ + public function update(Request $request, $id) + { + // + } - /** - * 保存更新的资源 - * - * @param \think\Request $request - * @param int $id - * @return \think\Response - */ - public function update(Request $request, $id) - { - // - } + /** + * 删除指定资源 + * + * @param int $id + * @return \think\Response + */ + public function delete($id) + { + // - /** - * 删除指定资源 - * - * @param int $id - * @return \think\Response - */ - public function delete($id) - { - // + ModelPostComment::destroy($id); - ModelPostComment::destroy($id); + ModelPostComment::clearCountCache(); - ModelPostComment::clearCountCache(); - - return json_message(); - } + return json_message(); + } }