PostRepositories.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: edz
  5. * Date: 2019-06-10
  6. * Time: 17:53
  7. */
  8. namespace App\Repositories;
  9. use App\Models\Behavior;
  10. use App\Models\PostData;
  11. use Illuminate\Support\Facades\Log;
  12. use Illuminate\Support\Facades\Redis;
  13. class PostRepositories
  14. {
  15. public function __construct()
  16. {
  17. }
  18. /**
  19. * 更新帖子统计数量
  20. * @param $request
  21. * @return mixed
  22. */
  23. public function updatePostData($request)
  24. {
  25. $postId = $request['post_id'];
  26. $post = PostData::where('post_id', $postId)->first();
  27. if (isset($request['behavior_flag']) && $request['behavior_flag'] == 'read') {
  28. $post->pv += 1;
  29. $post->pv_real += 1;
  30. } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'unlike') {
  31. $post->dislike += 1;
  32. } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'like') {
  33. $post->praise_count += 1;
  34. $post->praise_real_count += 1;
  35. } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'forward') {
  36. $post->share_count += 1;
  37. $post->share_real_count += 1;
  38. } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'comment') {
  39. $post->comment_count += 1;
  40. } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'collect') {
  41. $post->collect_count += 1;
  42. $post->collect_real_count += 1;
  43. }
  44. return $post->save();
  45. }
  46. /**
  47. * 收集所有有操作的帖子,存入redis
  48. * 供后续计算帖子权重
  49. * @param $id
  50. */
  51. public function collectPostId($id)
  52. {
  53. $key = "community_calc_post_score";
  54. Redis::sadd($key,$id);
  55. }
  56. }