1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- /**
- * Created by PhpStorm.
- * User: edz
- * Date: 2019-06-10
- * Time: 17:53
- */
- namespace App\Repositories;
- use App\Models\Behavior;
- use App\Models\PostCollect;
- use App\Models\PostData;
- use App\Models\PostLike;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Support\Facades\Redis;
- class PostRepositories
- {
- public function __construct()
- {
- }
- /**
- * 更新帖子统计数量
- * @param $request
- * @return mixed
- */
- public function updatePostData($request)
- {
- $postId = $request['post_id'];
- $post = PostData::where('post_id', $postId)->first();
- if (isset($request['behavior_flag']) && $request['behavior_flag'] == 'read') {
- $post->pv += 1;
- $post->pv_real += 1;
- } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'unlike') {
- $post->dislike += 1;
- } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'like') {
- if($request['behavior_value']){
- $post->praise_count += 1;
- $post->praise_real_count += 1;
- PostLike::create(['uid'=>$request['target_id'],'post_id'=>$request['post_id']]);
- }else{
- $post->praise_count -= 1;
- $post->praise_real_count -= 1;
- PostLike::where(['uid'=>$request['target_id'],'post_id'=>$request['post_id']])->delete();
- }
- } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'forward') {
- $post->share_count += 1;
- $post->share_real_count += 1;
- } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'comment') {
- $post->comment_count += 1;
- } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'collect') {
- if($request['behavior_value']) {
- $post->collect_count += 1;
- $post->collect_real_count += 1;
- PostCollect::create(['uid'=>$request['target_id'],'post_id'=>$request['post_id']]);
- }else{
- $post->collect_count -= 1;
- $post->collect_real_count -= 1;
- PostCollect::where(['uid'=>$request['target_id'],'post_id'=>$request['post_id']])->delete();
- }
- }
- return $post->save();
- }
- /**
- * 收集所有有操作的帖子,存入redis
- * 供后续计算帖子权重
- * @param $id
- */
- public function collectPostId($id)
- {
- $key = "community_calc_post_score";
- Redis::sadd($key,$id);
- }
- }
|