xiaogang 4 năm trước cách đây
mục cha
commit
8cd52d1bb4

+ 45 - 0
app/Http/Controllers/Api/HomeController.php

xqd xqd xqd
@@ -4,6 +4,9 @@
 namespace App\Http\Controllers\Api;
 
 
+use App\Http\Params\UserCommentParam;
+use App\Http\Params\UserLikeParam;
+use App\Models\UserComment;
 use App\Services\DynamicService;
 use App\Services\GeohashService;
 use App\Services\HomeService;
@@ -11,6 +14,7 @@ use App\Services\RedisService;
 use http\Env\Response;
 use Illuminate\Filesystem\Cache;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
 use PHPUnit\Util\Exception;
 
 class HomeController extends Controller
@@ -100,6 +104,47 @@ class HomeController extends Controller
         return response()->json($res);
     }
 
+    /**
+     * 用户喜欢
+     */
+    public function do_like(Request $request){
+        DB::beginTransaction();
+        try {
+            $user = auth('api')->user();
+            $UserLikeParam = new UserLikeParam();
+            $UserLikeParam->user_id = $user->id;
+            $UserLikeParam->like_id = $request->user_id;
+            $is_like = $this->homeService->do_like($UserLikeParam);
+            DB::commit();
+        }catch (\Exception $exception){
+            DB::rollBack();
+            return $this->response->errorForbidden($exception->getMessage());
+        }
+        return response()->json(['message'=>$is_like==1?"已喜欢":"取消喜欢",'is_like'=>$is_like]);
+    }
+
+    /**
+     * 用户评价
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse|void
+     */
+    public function do_comment(Request $request){
+        try {
+            $user = auth('api')->user();
+            $UserComment = new UserCommentParam();
+            $UserComment->user_id = $user->id;
+            $UserComment->comment_id = $request->user_id;
+            $UserComment->con1 = $request->con1;
+            $UserComment->con2 = $request->con2;
+            $UserComment->con3 = $request->con3;
+            $UserComment->con4 = $request->con4;
+            $is_like = $this->homeService->do_comment($UserComment);
+        }catch (\Exception $exception){
+            return $this->response->errorForbidden($exception->getMessage());
+        }
+        return response()->json(['message'=>'评价成功']);
+    }
+
 
 
 }

+ 13 - 0
app/Http/Params/UserCommentParam.php

xqd
@@ -0,0 +1,13 @@
+<?php
+
+namespace App\Http\Params;
+class UserCommentParam
+{
+    public $id;
+    public $user_id;
+    public $comment_id;
+    public $con1;
+    public $con2;
+    public $con3;
+    public $con4;
+}

+ 11 - 0
app/Http/Params/UserLikeParam.php

xqd
@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Http\Params;
+class UserLikeParam
+{
+    public $id;
+    public $user_id;
+    public $like_id;
+    public $satus;
+    public $atime;
+}

+ 13 - 0
app/Models/UserComment.php

xqd
@@ -0,0 +1,13 @@
+<?php
+
+
+namespace App\Models;
+
+
+class UserComment extends BaseModel
+{
+    protected $table = 'users_comment';
+    public $timestamps = true;
+    protected $fillable = ['user_id', 'comment_id','con1','con2','con3','con4'];
+
+}

+ 82 - 0
app/Services/HomeService.php

xqd xqd xqd
@@ -4,9 +4,13 @@
 namespace App\Services;
 
 
+use App\Http\Params\UserCommentParam;
+use App\Http\Params\UserLikeParam;
 use App\Models\User;
+use App\Models\UserComment;
 use App\Models\UserLikeModel;
 use Illuminate\Support\Facades\DB;
+use PHPUnit\Util\Exception;
 
 class HomeService
 {
@@ -51,12 +55,19 @@ class HomeService
     public function user_detail($user_id){
         $user = auth('api')->user();
         $is_like = 0;
+        $is_comment = 0;
         if($user){
             //登录状态  增加 谁看了我记录
             look_log($user->id,$user_id);
             if(UserLikeModel::query()->where(['user_id'=>$user->id,'like_id'=>$user_id])->first()){
                 $is_like = 1;
             }
+
+            //查询评价
+
+            if(UserComment::query()->where(['user_id'=>$user->id,'comment_id'=>$user_id])->first()){
+                $is_comment = 1;
+            }
         }
         $userinfo = User::query()
             ->leftJoin('users_info','users.id','=','users_info.user_id')
@@ -68,6 +79,77 @@ class HomeService
         $userinfo->video = json_decode($userinfo->video,true);
 
         $userinfo->is_like = $is_like;
+
+
+        //查询评价
+        $userinfo->is_comment = $is_comment;
+        //评价星级
+        $con1_star = UserComment::query()->where(['comment_id'=>$user_id])->avg('con1');
+        $con2_star = UserComment::query()->where(['comment_id'=>$user_id])->avg('con2');
+        $con3_star = UserComment::query()->where(['comment_id'=>$user_id])->avg('con3');
+        $con4_star = UserComment::query()->where(['comment_id'=>$user_id])->avg('con4');
+        $total_star = round(($con1_star+$con2_star+$con3_star+$con4_star)/4,1);
+        $total_num = UserComment::query()->where(['comment_id'=>$user_id])->count();
+        $comment = array();
+        $comment['con1_star'] = round($con1_star,1);
+        $comment['con2_star'] = round($con2_star,1);
+        $comment['con3_star'] = round($con3_star,1);
+        $comment['con4_star'] = round($con4_star,1);
+        $comment['total_star'] = $total_star;
+        $comment['total_num'] = $total_num;
+        $userinfo->comment = $comment;
         return $userinfo;
     }
+
+    //用户喜欢
+    public function do_like(UserLikeParam $param){
+        if(empty($param->like_id)){
+            throw new Exception('参数错误');
+        }
+        $user = User::query()->where(['id'=>$param->like_id])->first();
+        if(!$user){
+            throw new Exception("用户不存在");
+        }
+        $is_like = 0;
+        if($like = UserLikeModel::query()->where(['user_id'=>$param->user_id,'like_id'=>$param->like_id])->first()){
+            $is_like = 0;
+            User::query()->where('id',$param->like_id)->decrement('like_me_num',1);
+            User::query()->where('id',$param->user_id)->decrement('like_num',1);
+            $like->delete();
+        }else{
+            $is_like = 1;
+            User::query()->where('id',$param->like_id)->increment('like_me_num',1);
+            User::query()->where('id',$param->user_id)->increment('like_num',1);
+            UserLikeModel::query()->create([
+               'user_id'=>$param->user_id,
+               'like_id'=>$param->like_id,
+               'status'=>0,
+               'atime'=>date('Y-m-d H:i:s'),
+            ]);
+        }
+        return $is_like;
+    }
+
+    //用户评论
+    public function do_comment(UserCommentParam $param){
+        if(empty($param->comment_id)){
+            throw new Exception('参数错误');
+        }
+        $user = User::query()->where(['id'=>$param->comment_id])->first();
+        if(!$user){
+            throw new Exception("用户不存在");
+        }
+        if(UserComment::query()->where(['user_id'=>$param->user_id,'comment_id'=>$param->comment_id])->first()){
+            throw new Exception("已经评价过");
+        }
+        UserComment::query()->create([
+           'user_id'=>$param->user_id,
+           'comment_id'=>$param->comment_id,
+           'con1'=>$param->con1,
+           'con2'=>$param->con2,
+           'con3'=>$param->con3,
+           'con4'=>$param->con4,
+        ]);
+        return true;
+    }
 }

+ 9 - 2
routes/api.php

xqd
@@ -123,8 +123,15 @@ $api->version('v1', [
             $api->post('/report', 'DynamicController@report')->name('dynamic.report');
         });
 
-
-
+        /*
+        |--------------------------------------------------------------
+        |  首页内容
+        |--------------------------------------------------------------
+        */
+        $api->group(['prefix' => 'home'], function ($api) {
+            $api->post('/do_like', 'HomeController@do_like')->name('home.do_like');
+            $api->post('/do_comment', 'HomeController@do_comment')->name('home.do_comment');
+        });
 
         /*
         |--------------------------------------------------------------