帖子详情
This commit is contained in:
@@ -88,6 +88,28 @@ class PostController extends BaseController
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取详情
|
||||||
|
*
|
||||||
|
* @param Request $request 请求对象
|
||||||
|
* @param int|string $id 资源 ID
|
||||||
|
* @return mixed 返回资源详情数据
|
||||||
|
*/
|
||||||
|
public function show(Request $request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$raw = $this->service->serviceShow($request);
|
||||||
|
$data = $this->transformData($raw, method_exists($this, 'showFormat')
|
||||||
|
? [$this, 'showFormat']
|
||||||
|
: null);
|
||||||
|
return $this->success($data);
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
return $this->error($e->getMessage().$e->getFile().$e->getLine());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列表页数据格式化
|
* 列表页数据格式化
|
||||||
*
|
*
|
||||||
@@ -100,8 +122,21 @@ class PostController extends BaseController
|
|||||||
$data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
|
$data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
|
||||||
if (isset($data['updated_at']))
|
if (isset($data['updated_at']))
|
||||||
$data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
|
$data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
|
||||||
if (isset($data['id']))
|
$ossservice = new OssService();
|
||||||
$data['media'] = PostMedia::where('post_id', $data['id'])->get();
|
if (isset($data['id'])){
|
||||||
|
$data['media'] = PostMedia::where('post_id', $data['id'])->get()->toArray();
|
||||||
|
foreach ($data['media'] as &$media) {
|
||||||
|
$media['url_pull'] = $ossservice->generatePrivateUrl($media['url']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isset($data['user_id'])){
|
||||||
|
$data['user'] = User::where('id', $data['user_id'])->first();
|
||||||
|
unset($data['user']['password']);
|
||||||
|
$data['user']['avatar_pull'] = $data['user']['avatar'];
|
||||||
|
if(!str_contains($data['user']['avatar'], 'http') && !empty($data['user']['avatar'])){
|
||||||
|
$data['user']['avatar_pull'] = $ossservice->generatePrivateUrl($data['user']['avatar']);
|
||||||
|
}
|
||||||
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -126,9 +126,12 @@ class PostFavoriteService
|
|||||||
$where['user_id'] = $param['user_id'];
|
$where['user_id'] = $param['user_id'];
|
||||||
$count = PostFavorite::where($where)->delete();
|
$count = PostFavorite::where($where)->delete();
|
||||||
|
|
||||||
$post = PostFavorite::where(['id' => $param['post_id']])->first();
|
if ($count) {
|
||||||
$post['favorite'] = $post['favorite']-1;
|
$post = PostFavorite::where(['id' => $param['post_id']])->first();
|
||||||
$post->save();
|
$post['favorite'] = $post['favorite']-1;
|
||||||
|
$post['favorite'] = $post['favorite']<0?0:$post['favorite'];
|
||||||
|
$post->save();
|
||||||
|
}
|
||||||
|
|
||||||
return $count;
|
return $count;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,9 +126,12 @@ class PostLikeService
|
|||||||
$where['user_id'] = $param['user_id'];
|
$where['user_id'] = $param['user_id'];
|
||||||
$count = PostLike::where($where)->delete();
|
$count = PostLike::where($where)->delete();
|
||||||
|
|
||||||
$post = Post::where(['id' => $param['post_id']])->first();
|
if ($count) {
|
||||||
$post['like'] = $post['like']-1;
|
$post = Post::where(['id' => $param['post_id']])->first();
|
||||||
$post->save();
|
$post['like'] = $post['like']-1;
|
||||||
|
$post['like'] = $post['like']<0?0:$post['like'];
|
||||||
|
$post->save();
|
||||||
|
}
|
||||||
|
|
||||||
return $count;
|
return $count;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ Route::group('/common', function () {
|
|||||||
// 帖子
|
// 帖子
|
||||||
Route::group('/post', function () {
|
Route::group('/post', function () {
|
||||||
Route::any('/list', [app\common\controller\PostController::class, 'index']);
|
Route::any('/list', [app\common\controller\PostController::class, 'index']);
|
||||||
|
Route::any('/show', [app\common\controller\PostController::class, 'show']);
|
||||||
Route::any('/store', [app\admin\controller\PostController::class, 'store']);
|
Route::any('/store', [app\admin\controller\PostController::class, 'store']);
|
||||||
|
|
||||||
// 评论
|
// 评论
|
||||||
|
|||||||
Reference in New Issue
Block a user