Explorar o código

Merge branch 'stabble' of iqiyoo:zhuishuyun_wap

onlinetest %!s(int64=6) %!d(string=hai) anos
pai
achega
dbf075b563

+ 27 - 0
app/Console/Commands/BookSpider.php

@@ -5,6 +5,7 @@ namespace App\Console\Commands;
 use Illuminate\Console\Command;
 use Illuminate\Console\Command;
 use GuzzleHttp\Client;
 use GuzzleHttp\Client;
 use DB;
 use DB;
+use Redis;
 
 
 class BookSpider extends Command
 class BookSpider extends Command
 {
 {
@@ -136,4 +137,30 @@ WHERE u.openid in (SELECT openid from users WHERE  id = %s)";
         }
         }
     }
     }
 
 
+    public function cleanRedis()
+    {
+        $flag = 0;
+        $i = 0;
+        do{
+            $result = Redis::scan($flag,['match'=>'wap:string:chapter:{*','count'=>1000]);
+            if ($result) {
+                if (isset($result[0])) {
+                    $flag = $result[0];
+                }
+                if (isset($result[1]) && $result[1] ) {
+                    foreach ($result[1] as $v) {
+                        Redis::del($v);
+                        echo $v . PHP_EOL;
+                        $i++;
+                    }
+                }
+            }
+        }while($flag);
+        echo 'del ' . $i . PHP_EOL;
+        return "";
+    }
+
+    private function newYunQi(){
+        \App\Modules\Book\Services\BookService::newYunQiBook(1);
+    }
 }
 }

+ 14 - 0
app/Http/Controllers/Wap/Book/ChapterController.php

@@ -13,6 +13,7 @@ use App\Modules\Statistic\Services\DataAnalysisChapterService;
 use App\Modules\Statistic\Services\DataAnalysisSelectUserService;
 use App\Modules\Statistic\Services\DataAnalysisSelectUserService;
 use App\Modules\Statistic\Services\WapVisitStatService;
 use App\Modules\Statistic\Services\WapVisitStatService;
 use App\Modules\Subscribe\Services\OrderService;
 use App\Modules\Subscribe\Services\OrderService;
+use App\Modules\Subscribe\Models\Order;
 use App\Modules\User\Services\ForceSubscribeUserIService;
 use App\Modules\User\Services\ForceSubscribeUserIService;
 use App\Modules\User\Services\ReadRecordStatsService;
 use App\Modules\User\Services\ReadRecordStatsService;
 use App\Modules\User\Services\UserService;
 use App\Modules\User\Services\UserService;
@@ -1449,14 +1450,27 @@ class ChapterController extends BaseController
             /*if (!ReadRecordService::getRecordByUidBid($this->uid, $book_info->bid)) {
             /*if (!ReadRecordService::getRecordByUidBid($this->uid, $book_info->bid)) {
                 return true;
                 return true;
             }*/
             }*/
+
+
             //版权到期,有包年可以继续阅读
             //版权到期,有包年可以继续阅读
             $year_order = YearOrderService::getRecord($this->uid);
             $year_order = YearOrderService::getRecord($this->uid);
             if($year_order){
             if($year_order){
                 return false;
                 return false;
             }
             }
+            //1155
             //版权到期,有订购记录还可以继续阅读,订购
             //版权到期,有订购记录还可以继续阅读,订购
             $chapter_order = ChapterOrderService::checkBookIsOrdered($this->uid, $book_info->bid);
             $chapter_order = ChapterOrderService::checkBookIsOrdered($this->uid, $book_info->bid);
             if (!$chapter_order) return true;
             if (!$chapter_order) return true;
+            if($book_info->bid == 1155){
+                $charge_info = Order::where('uid',$this->uid)
+                    ->where('price','>=',redisEnv('OFF_SHELF_BOOK_LIMIT_CHARGE',0))
+                    ->where('from_bid',$book_info->bid)
+                    ->where('status','PAID')
+                    ->first();
+                if(!$charge_info){
+                    return true;
+                }
+            }
         }
         }
 
 
         if($book_info->is_on_shelf == 10){
         if($book_info->is_on_shelf == 10){

+ 26 - 4
app/Http/Controllers/Wap/User/CoflController.php

@@ -97,9 +97,27 @@ class CoflController extends Controller
         $get_free_currency = UserBindHkWelfareService::isHasGet($user[0]);
         $get_free_currency = UserBindHkWelfareService::isHasGet($user[0]);
         if($get_free_currency){
         if($get_free_currency){
             //已经领过
             //已经领过
-            return view('jump.bindHkFreeCurrency',['fee'=>$fee,'url'=>$this->getLink($get_free_currency->distribution_channel_id).'?'.http_build_query($params),'is_get'=>1,'uid'=>$get_free_currency->uid]);
+            if(isset($user[2]) && !empty($user[2]) && isset($user[3]) && !empty($user[3])){
+                $bid = Hashids::encode($user[2]);
+                $cid = $user[3];
+                $params['bid'] = $bid;
+                $params['cid'] = $cid;
+                $link = $this->getLink($get_free_currency->distribution_channel_id).'reader?'.http_build_query($params);
+            }else{
+                $link = $this->getLink($get_free_currency->distribution_channel_id).'?'.http_build_query($params);
+            }
+            return view('jump.bindHkFreeCurrency',['fee'=>$fee,'url'=>$link,'is_get'=>1,'uid'=>$get_free_currency->uid]);
         }else{
         }else{
-            return view('jump.bindHkFreeCurrency',['fee'=>$fee,'url'=>$this->getLink($user[1]).'?'.http_build_query($params),'is_get'=>0,'uid'=>$user[0]]);
+            if(isset($user[2]) && !empty($user[2]) && isset($user[3]) && !empty($user[3])){
+                $bid = Hashids::encode($user[2]);
+                $cid = $user[3];
+                $params['bid'] = $bid;
+                $params['cid'] = $cid;
+                $link = $this->getLink($user[1]).'reader?'.http_build_query($params);
+            }else{
+                $link = $this->getLink($user[1]).'?'.http_build_query($params);
+            }
+            return view('jump.bindHkFreeCurrency',['fee'=>$fee,'url'=>$link,'is_get'=>0,'uid'=>$user[0]]);
         }
         }
     }
     }
 
 
@@ -225,10 +243,12 @@ class CoflController extends Controller
 
 
     private function getUsers($openid){
     private function getUsers($openid){
         $users = User::where('openid',$openid)->select('id','distribution_channel_id')->get();
         $users = User::where('openid',$openid)->select('id','distribution_channel_id')->get();
-        if($users->isEmpty()) return [0,0];
+        if($users->isEmpty()) return [0,0,0,0];
         $temp = null;
         $temp = null;
         $distribution_channel_id = 0;
         $distribution_channel_id = 0;
         $uid = 0;
         $uid = 0;
+        $bid = 0;
+        $cid = 0;
         foreach ($users as $user){
         foreach ($users as $user){
             $last_read = ReadRecordService::getByField($user->id,'last_read');
             $last_read = ReadRecordService::getByField($user->id,'last_read');
             if(!$last_read) continue;
             if(!$last_read) continue;
@@ -243,10 +263,12 @@ class CoflController extends Controller
                     $uid = $user->id;
                     $uid = $user->id;
                     $distribution_channel_id = $user->distribution_channel_id;
                     $distribution_channel_id = $user->distribution_channel_id;
                     $temp = $last_read;
                     $temp = $last_read;
+                    $bid = $last_read_info[0];
+                    $cid = $last_read_info[1];
                 }
                 }
             }
             }
         }
         }
-        return [$uid,$distribution_channel_id];
+        return [$uid,$distribution_channel_id,$bid,$cid];
     }
     }
 
 
     private function getLink($distribution_channel_id=123){
     private function getLink($distribution_channel_id=123){

+ 49 - 1
app/Modules/Book/Services/BookService.php

@@ -3,9 +3,11 @@
 namespace App\Modules\Book\Services;
 namespace App\Modules\Book\Services;
 
 
 use App\Modules\Book\Models\Book;
 use App\Modules\Book\Models\Book;
+use App\Modules\Book\Models\Chapter;
+use GuzzleHttp\Client;
 use Redis;
 use Redis;
 use App\Modules\Statistic\Services\WapVisitStatService;
 use App\Modules\Statistic\Services\WapVisitStatService;
-
+use DB;
 
 
 class BookService
 class BookService
 {
 {
@@ -80,4 +82,50 @@ class BookService
     public static function getBookById($bid){
     public static function getBookById($bid){
         return Book::find($bid);
         return Book::find($bid);
     }
     }
+
+    public static function newYunQiBook($bid){
+        $old = DB::table('book_yunqi')->where('yq_bid',$bid)->where('type','NEW_YUNQI')->first();
+        if($old){
+            return -1;
+        }
+        $new_yunqi_book = DB::connection('new_yunqi')->table('books')->where('id',$bid)->fist();
+        if(!$new_yunqi_book){
+            return -2;
+        }
+
+        $book = Book::create(
+            [
+                'ly_bid'=>0,'name'=>$new_yunqi_book->name,'author'=>$new_yunqi_book->author,'intro'=>$new_yunqi_book->intro,'cover'=>$new_yunqi_book->cover,
+                'category_name'=>$new_yunqi_book->category_name,'keyword'=>$new_yunqi_book->keyword,'category_id'=>0,'status'=>$new_yunqi_book->status,
+                'chapter_count'=>$new_yunqi_book->chapter_count,'first_cid'=>0,'last_cid'=>0,'size'=>$new_yunqi_book->size,'last_chapter'=>$new_yunqi_book->last_chapter,
+                'sequence'=>0,'yq_bid'=>$bid
+            ]
+        );
+        DB::table('book_yunqi')->insert([
+            'bid'=>$book->id,
+            'yq_bid'=>$bid,
+            'type'=>'NEW_YUNQI',
+            'created_at'=>date('Y-m-d H:i:s'),
+            'updated_at'=>date('Y-m-d H:i:s')
+        ]);
+        for ($i = 1;$i<=$new_yunqi_book->chapter_count;$i++){
+            $temp = DB::connection('new_yunqi')->table('chapters')->where('bid',$bid)->where('sequence',$i)->select('name','content','is_vip','size')->first();
+            if($new_yunqi_book){
+                Chapter::create([
+                    'bid'=>$book->id,
+                    'name'=>$temp->name,
+                    'sequence'=>$i,
+                    'is_vip'=>$temp->is_vip,
+                    'size'=>$temp->size,
+                    'prev_cid'=>0,
+                    'next_cid'=>0,
+                    'recent_update_at'=>date('Y-m-d H:i:s'),
+                    'content'=>$temp->content,
+                    'ly_chapter_id'=>0
+                ]);
+            }
+        }
+        \Artisan::callSilent('book:afs',['bid'=>[$book->id]]);
+        return 0;
+    }
 }
 }

+ 13 - 0
config/database.php

@@ -84,6 +84,19 @@ return [
             'strict' => false,
             'strict' => false,
             'engine' => null,
             'engine' => null,
         ],
         ],
+        'new_yunqi'=>[
+            'driver' => 'mysql',
+            'host' => env('NEW_YUNQI_DB_HOST', 'localhost'),
+            'port' => env('NEW_YUNQI_DB_PORT', '3306'),
+            'database' => env('NEW_YUNQI_DB_DATABASE', 'forget'),
+            'username' => env('NEW_YUNQI_DB_USERNAME', 'forget'),
+            'password' => env('NEW_YUNQI_DB_PASSWORD', ''),
+            'charset' => 'utf8',
+            'collation' => 'utf8_unicode_ci',
+            'prefix' => '',
+            'strict' => false,
+            'engine' => null,
+        ],
         'pgsql' => [
         'pgsql' => [
             'driver' => 'pgsql',
             'driver' => 'pgsql',
             'host' => env('DB_HOST', 'localhost'),
             'host' => env('DB_HOST', 'localhost'),