Skip to content

Commit

Permalink
feat: 列表查询后, 每条增加浏览量
Browse files Browse the repository at this point in the history
  • Loading branch information
boxshadow committed May 7, 2018
1 parent c4a1ca6 commit 97c15f1
Showing 1 changed file with 24 additions and 14 deletions.
38 changes: 24 additions & 14 deletions packages/slimkit-plus-feed/src/API2/FeedController.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ public function getPinnedFeeds(Request $request, FeedModel $feedModel, FeedRepos
->get();

$user = $request->user('api')->id ?? 0;

$ids = $feeds->pluck('id');
$feedModel->whereIn('id', $ids)->increment('feed_view_count');

return $feedModel->getConnection()->transaction(function () use ($feeds, $repository, $user) {
return $feeds->map(function (FeedModel $feed) use ($repository, $user) {
$repository->setModel($feed);
Expand Down Expand Up @@ -115,7 +117,7 @@ public function new(Request $request, FeedModel $feedModel, FeedRepository $repo
$after = $request->query('after');
$user = $request->user('api')->id ?? 0;
$search = $request->query('search');

$feeds = $feedModel->when($after, function ($query) use ($after) {
return $query->where('id', '<', $after);
})->when(isset($search), function ($query) use ($search) {
Expand All @@ -131,6 +133,9 @@ public function new(Request $request, FeedModel $feedModel, FeedRepository $repo
->limit($limit)
->get();

$ids = $feeds->pluck('id');
$feedModel->whereIn('id', $ids)->increment('feed_view_count');

return $feedModel->getConnection()->transaction(function () use ($feeds, $repository, $user) {
return $feeds->map(function (FeedModel $feed) use ($repository, $user) {
$repository->setModel($feed);
Expand All @@ -140,7 +145,7 @@ public function new(Request $request, FeedModel $feedModel, FeedRepository $repo

$feed->has_collect = $feed->collected($user);
$feed->has_like = $feed->liked($user);

return $feed;
});
});
Expand Down Expand Up @@ -186,12 +191,13 @@ public function hot(Request $request, LikeModel $model, FeedRepository $reposito
->orderBy('id', 'desc')
->get();

return $model->getConnection()->transaction(function () use ($feeds, $repository, $user) {
$feedModel->whereIn('id', $ids)->increment('feed_view_count');

return $model->getConnection()->transaction(function () use ($feeds, $repository, $user, $ids, $feedModel) {
return $feeds->map(function ($feed) use ($repository, $user) {
if (! $feed) {
return null;
}

$repository->setModel($feed);
$repository->images();
$repository->format($user);
Expand Down Expand Up @@ -244,8 +250,11 @@ public function follow(Request $request, FeedModel $model, FeedRepository $repos
->orderBy('feeds.id', 'desc')
->limit($limit)
->get();
$ids = $feeds->pluck('id');
$feedModel->whereIn('id', $ids)->increment('feed_view_count');

return $model->getConnection()->transaction(function () use ($repository, $user, $feeds) {

return $feeds->map(function (FeedModel $feed) use ($repository, $user) {
$repository->setModel($feed);
$repository->images();
Expand Down Expand Up @@ -465,10 +474,11 @@ protected function fillFeedBaseData(Request $request, FeedModel $feed): FeedMode
* @return mixed
* @author Seven Du <[email protected]>
*/
public function destroy(Request $request,
ResponseContract $response,
FeedModel $feed)
{
public function destroy(
Request $request,
ResponseContract $response,
FeedModel $feed
) {
$user = $request->user();

if ($user->id !== $feed->user_id) {
Expand Down Expand Up @@ -508,10 +518,11 @@ public function destroy(Request $request,
* @return mixed
* @author BS <[email protected]>
*/
public function newDestroy(Request $request,
ResponseContract $response,
FeedModel $feed)
{
public function newDestroy(
Request $request,
ResponseContract $response,
FeedModel $feed
) {
$user = $request->user();

if ($user->id !== $feed->user_id) {
Expand All @@ -520,7 +531,6 @@ public function newDestroy(Request $request,

$feed->getConnection()->transaction(function () use ($feed, $user) {
if ($pinned = $feed->pinned()->where('user_id', $user->id)->where('expires_at', null)->first()) { // 存在未审核的置顶申请时退款

$process = new UserProcess();
$process->reject(0, $pinned->amount, $user->id, '动态申请置顶退款', sprintf('退还申请置顶动态《%s》的款项', str_limit($feed->feed_content, 100)));
}
Expand Down

0 comments on commit 97c15f1

Please sign in to comment.