zz il y a 6 ans
Parent
commit
74264219e2

+ 16 - 1
app/Http/Controllers/Wap/Book/BookController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Wap\Book;
 
 use App\Modules\Book\Models\BookSearchStat;
 use App\Modules\Book\Services\BookSearchStatService;
+use App\Modules\Book\Services\BookUrgeUpdateService;
 use App\Modules\RecommendBook\Services\RecommendService;
 use Illuminate\Http\Request;
 use App\Http\Controllers\Wap\BaseController;
@@ -546,7 +547,21 @@ class BookController extends BaseController
         $bid = Hashids::decode($bid)[0];
         $book_info = BookConfigService::getBookById($bid);
         $res = BookConfigService::getRecommendBooks($bid,$book_info->channel_name);
-        return response()->collection(new BookTransformer(),$res);
+        $urge_status = 0;
+        if($book_info->status == 0 && !BookUrgeUpdateService::isHadUrged($this->uid,$bid)){
+            $urge_status = 1;
+        }
+        $recommend_result = collectionTransform(new BookTransformer(),$res);
+        $book_status = [
+            'status'=>$book_info->status,
+            'urge_status'=>$urge_status
+        ];
+        $data = [
+            'recommend_result'=>$recommend_result,
+            'book_status'=>$book_status
+        ];
+        //return response()->collection(new BookTransformer(),$res);
+        return response()->success($data);
     }
     
     /**

+ 19 - 4
app/Http/Controllers/Wap/User/UserController.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers\Wap\User;
 
+use App\Modules\Book\Services\BookUrgeUpdateService;
 use App\Modules\Statistic\Services\AdVisitStatService;
 use App\Modules\Subscribe\Services\OrderService;
 use App\Modules\User\Services\ReadRecordService;
@@ -253,6 +254,20 @@ class UserController extends BaseController
         return response()->success();
     }
 
+    public function urgeUpdate(Request $request){
+        $bid = $request->get('bid');
+        if(!$bid){
+            return response()->error('PARAM_ERROR');
+        }
+        $bid = Hashids::decode($bid)[0];
+
+        $result = BookUrgeUpdateService::UrgeRecord($this->uid,$bid);
+        if($result && !$result->id){
+            BookUrgeUpdateService::UrgeUpdate($this->uid,$bid,$result->updated_at);
+        }
+        return response()->success();
+    }
+
     function logout()
     {
         setcookie(env('COOKIE_AUTH_WEB_WECHAT'), '', -1);
@@ -260,12 +275,12 @@ class UserController extends BaseController
         return response('logout');
     }
     
-    function test_add_user_login_cookie(Request $request)
+    function test_add_user_login_cookie(Request $request)
     {
     	$uid = $request->get('uid');
-    	\Log::info('test_add_user_login_cookie:'.$uid);
-    	Cookie::queue(env('COOKIE_AUTH_WEB_WECHAT'), $uid, env('U_COOKIE_EXPIRE'), null, null, false, false);
-    	return response('add_cookie:'.$uid);
+    	\Log::info('test_add_user_login_cookie:'.$uid);
+    	Cookie::queue(env('COOKIE_AUTH_WEB_WECHAT'), $uid, env('U_COOKIE_EXPIRE'), null, null, false, false);
+    	return response('add_cookie:'.$uid);
     }
     
 }

+ 3 - 1
app/Http/Routes/Wap/WapRoutes.php

@@ -99,7 +99,9 @@ Route::group(['domain'=>env('WAP_DOMAIN'),'namespace'=>'App\Http\Controllers\Wap
         //签到记录
         Route::get('user/sign_record','User\UserController@signRecord');
         Route::get('user/sign','User\UserController@sign');
-        
+        //催更
+        Route::get('user/urgeUpdate','User\UserController@urgeUpdate');
+
         // 测试登录
 //         Route::any('user/test_add_user_login_cookie','User\UserController@test_add_user_login_cookie');
         

+ 12 - 0
app/Modules/Book/Models/BookUrgeUpdate.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace App\Modules\Book\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class BookUrgeUpdate extends Model
+{
+    protected  $table = 'book_urge_update';
+
+    protected $fillable = ['uid','bid','last_update_time'];
+}

+ 54 - 0
app/Modules/Book/Services/BookUrgeUpdateService.php

@@ -0,0 +1,54 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: z-yang
+ * Date: 2019/1/29
+ * Time: 17:26
+ */
+
+namespace App\Modules\Book\Services;
+
+use App\Modules\Book\Models\BookUrgeUpdate;
+use DB;
+
+class BookUrgeUpdateService
+{
+
+    public static function UrgeRecord($uid,$bid){
+        return  BookUrgeUpdate::rightJoin('books',function ($join)use($uid){
+            $join->on('books.id','=','book_urge_update.bid')
+                ->where('book_urge_update.uid','=',$uid)
+                ->whereColumn('book_urge_update.created_at','>','books.updated_at');
+                })
+            ->select('books.updated_at','book_urge_update.id')
+            ->where('books.id',$bid)
+            ->first();
+    }
+
+
+    public static function isHadUrged($uid,$bid){
+        $result = self::UrgeRecord($uid,$bid);
+        if($result && $result->id){
+            return true;
+        }
+        return false;
+    }
+
+    public static function UrgeUpdate($uid,$bid,$time){
+        $data = [
+            'uid'=>$uid,
+            'bid'=>$bid,
+            'last_update_time'=>$time
+        ];
+        return BookUrgeUpdate::create($data);
+    }
+
+    public static function getUrgeUpdateRecord(){
+        return BookUrgeUpdate::join('book_configs','book_urge_update.bid','=','book_configs.bid')
+            ->select(DB::raw('count(*) as uv,book_urge_update.bid,book_urge_update.last_update_time'),'book_configs.book_name')
+            ->orderBy('book_urge_update.last_update_time','desc')
+            ->groupBy('book_urge_update.last_update_time')
+            ->groupBy('book_urge_update.bid')
+            ->paginate(30);
+    }
+}