Forráskód Böngészése

Merge branch 'master' of iqiyoo:zhuishuyun_wap

onlinetest 6 éve
szülő
commit
bbff49ec1c

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

@@ -419,6 +419,16 @@ class ChapterController extends BaseController
         //广告
         if($this->isUserInAdSample() && $ad_status && $ad_status == 1 && $user_info->balance < $fee){
             $this->getChapter();
+            //广告解锁2张
+            if($this->chapter->next_cid){
+                $next_chapter  = ChapterService::getChapterNameById($this->chapter->next_cid, $bid);
+                if($next_chapter){
+                    $next_chapter_name = $next_chapter->name;
+                    $this->bookOrderOrChapterOrder($book_info, $this->chapter->next_cid, 0, $next_chapter_name, 1);
+                    AdVisitStatService::create($this->uid,$this->book_info->bid,$this->chapter->next_cid,'UNLOCK_2');
+                }
+            }
+            $this->chapter->is_show_ad = 0;
             $this->bookOrderOrChapterOrder($book_info, $cid, 0, $chapter->name, 1);
             return response()->item(new ChapterTransformer, $this->chapter);
         }

+ 4 - 1
app/Http/Controllers/Wap/Order/OrdersController.php

@@ -490,7 +490,7 @@ class OrdersController extends BaseController
         $chapter_order = $chapter_model->getByUid($this->uid, $page_size);
         foreach ($chapter_order as $item){
             if($item->fee == 0){
-                $result = AdVisitStatService::getInfo($this->uid,$item->cid,'UNLOCK');
+                $result = AdVisitStatService::getInfoV2($this->uid,$item->cid,['UNLOCK','UNLOCK_2']);
                 if($result) $item->fee = '解锁';
             }
         }
@@ -619,6 +619,9 @@ class OrdersController extends BaseController
 
     private function templateCompare(){
         $start_time = env('TEMPLATE_COMPARE_START_TIME',0);
+        if(!$start_time){
+            return 0;
+        }
         if(!in_array($this->distribution_channel_id,[2,14,211])){
             return 0;
         }

+ 8 - 1
app/Http/Controllers/Wap/Web/RedirectController.php

@@ -24,6 +24,13 @@ class RedirectController extends Controller
     public function index(Request $request, $t, $domain, $param)
     {
         $h5_scheme = 'https';
+        //判断派单链接有没有进黑名单
+        $black_send_order_ids = explode(',', env('BLACK_SEND_ORDER_IDS'));
+        if(in_array($param,$black_send_order_ids))
+        {
+            abort(404);
+        }
+
         if(is_numeric($t)){
             //不是加密site 重定向到加密site
             $domain_distribution_channel_id = $t;
@@ -48,7 +55,7 @@ class RedirectController extends Controller
         $query_param = $request->except('_url');
         $query_param['soid'] = $param;
         //判断是否强制到服务号阅读
-        if($link->force_show_qrcode)
+        if($link && $link->force_show_qrcode)
         {
             Cookie::queue('force_show_qrcode', 1, 1);
         }else{

+ 10 - 3
app/Http/Middleware/ReadOauth.php

@@ -10,6 +10,7 @@ use App\Modules\User\Models\YqMove;
 use App\Modules\User\Services\ReadRecordService;
 use App\Modules\User\Services\UserService;
 use App\Modules\YunQi\Services\BookUserService;
+use App\Modules\YunQi\Services\YqUserBidRelationService;
 use App\Modules\YunQi\Services\YqZsyTestService;
 use Closure;
 use Cookie;
@@ -800,6 +801,7 @@ class ReadOauth
         //Log::info('44444444444444444444444444444');
         //如果是group_1 不错操作
         if($flag == 'group_1'){
+            YqUserBidRelationService::create($uid,$bid,'GROUP_1',0);
             if ($yq_book_user->type == 'INIT'){
                 BookUserService::updateUser($uid, ['type'=>'GROUP_1']);
             }
@@ -824,6 +826,7 @@ class ReadOauth
             if ('ENABLE' == $type) {
                 $yq_zsy_test = YqZsyTestService::getByBid($bid);
                 if ($yq_zsy_test) {
+                    YqUserBidRelationService::create($uid,$bid,'GROUP_2',$bid);
                     //书在测试列表中
                     $data['bid'] = $bid;
                     BookUserService::updateUser($uid, $data);
@@ -849,6 +852,7 @@ class ReadOauth
                     if($redirect){
                         $data['bid'] = $redirect_bid;
                     }
+                    YqUserBidRelationService::create($uid,$bid,'GROUP_2',$redirect_bid);
                     BookUserService::updateUser($uid, $data);
                     return $redirect.'&'.$other_str;
                 }
@@ -871,17 +875,19 @@ class ReadOauth
         $yq_zsy_test = YqZsyTestService::getByBid($bid);
         //如果书在测试样本中 不跳转
         if ($yq_zsy_test) {
+            YqUserBidRelationService::create($uid,$bid,'GROUP_2',0);
             return '';
         }
         //Log::info('ccccccccccccccccccccccccccccc');
         // 用户符合条件 且看的书不样本中
-        if($yq_book_user->bid){
+        $relate_info = YqUserBidRelationService::getByUidAndBid($uid,$bid);
+        if($relate_info && $relate_info->to_bid){
             //已经有对应关系
             //如果有阅读记录
-            $record_url = $this->readerRecpord($uid,$yq_book_user->bid,$channel_id);
+            $record_url = $this->readerRecpord($uid,$relate_info->to_bid,$channel_id);
             if($record_url) return $record_url.'&'.$other_str;
             //没有阅读记录
-            $book_url = $this->getBookReaderUrl($yq_book_user->bid,$channel_id);
+            $book_url = $this->getBookReaderUrl($relate_info->to_bid,$channel_id);
             //Log::info('dddddddddddddddddddddddddd');
             //Log::info($book_url.'&'.$other_str);
             return $book_url.'&'.$other_str;
@@ -903,6 +909,7 @@ class ReadOauth
                 //更新对应关系
                 BookUserService::updateUser($uid, $data);
                 //Log::info('ffffffffffffffffffffffff');
+                YqUserBidRelationService::create($uid,$bid,'GROUP_2',$redirect_bid);
                 return $redirect.'&'.$other_str;
             }
             //Log::info('gggggggggggggggggggggggggggggggg');

+ 7 - 1
app/Libs/Helpers.php

@@ -446,6 +446,9 @@ function specialChannelAuthInfo(){
         '4456'=>'wxc8c1cfb70e568f0c',
         '976'=>'wx21506dfd22a0dc9c',
         '928'=>'wx76da3531773c1f39',
+        '157'=>'wx5ebe6187c0fb0bd5',
+        '4175'=>'wx64cf3051ceb145ae',
+        '4217'=>'wxdb15f8db194bf6f4'
     ];
 }
 
@@ -466,6 +469,9 @@ function specialChannelAuthInfoV2(){
         '4608'=>'wx3723054b39225b9d',
         '4609'=>'wx504c20ebf5cfcd60',
         '4617'=>'wxf45639677a2bb97c',
-        '4624'=>'wx552c4500db26c627'
+        '4624'=>'wx552c4500db26c627',
+        '4658'=>'wx680b1e557a2e811d',
+        '4666'=>'wx8136bdaa80a6dda0',
+        '4667'=>'wx26608e6bb0705656'
     ];
 }

+ 4 - 0
app/Modules/Statistic/Services/AdVisitStatService.php

@@ -23,4 +23,8 @@ class AdVisitStatService
     public static function getInfo($uid,$cid,$type){
         return AdVisitStat::where('uid',$uid)->where('cid',$cid)->where('type',$type)->first();
     }
+
+    public static function getInfoV2($uid,$cid,$type){
+        return AdVisitStat::where('uid',$uid)->where('cid',$cid)->whereIn('type',$type)->first();
+    }
 }

+ 17 - 10
app/Modules/Subscribe/Models/BookOrder.php

@@ -95,40 +95,47 @@ class BookOrder extends Model
     public static function addOrderRecodeAndDecrUserBalance($data, $uid)
     {
         DB::beginTransaction();
-        $res = $result1 = $result2 = null;
+        $res = $result1 = $result2 = $result = null;
         try {
             $user = UserService::getById($uid);
             if ($user->charge_balance >= $data['fee']) {
                 $data['charge_balance'] = $data['fee'];
                 $data['reward_balance'] = 0;
                 $res = BookOrder::create($data);
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('charge_balance', $data['fee']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('charge_balance', $data['fee']);
+                $user->balance -=   $data['fee'];
+                $user->charge_balance -=   $data['fee'];
             } elseif ($user->charge_balance > 0) {
 
                 $data['charge_balance'] = $user->charge_balance;
                 $data['reward_balance'] = $data['fee'] - $user->charge_balance;
                 $res = BookOrder::create($data);
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('charge_balance', $user->charge_balance);
-                $result3 = $user->decrement('reward_balance', $data['reward_balance']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('charge_balance', $user->charge_balance);
+                //$result3 = $user->decrement('reward_balance', $data['reward_balance']);
+                $user->balance -=   $data['fee'];
+                $user->charge_balance =   0;
+                $user->reward_balance -=   $data['reward_balance'];
             } else {
                 $data['charge_balance'] = 0;
                 $data['reward_balance'] = $data['fee'];
                 $res = BookOrder::create($data);
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('reward_balance', $data['fee']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('reward_balance', $data['fee']);
+                $user->balance -=   $data['fee'];
+                $user->reward_balance -=   $data['fee'];
             }
             if ($user->is_new == 1) {
                 $user->is_new = 0;
-                $user->save();
             }
+            $result = $user->save();
 
         } catch (\Exception $e) {
             \Log::info($e);
         }
 
-        if ($res && $result2 && $result1) {
+        if ($res && $result) {
             DB::commit();
             return true;
         }

+ 18 - 11
app/Modules/Subscribe/Services/ChapterOrderService.php

@@ -135,39 +135,46 @@ class ChapterOrderService
         $chapterOrder->distribution_channel_id = $data['distribution_channel_id'];
         $user = UserService::getById($uid);
         DB::beginTransaction();
-        $res = $result1 = $result2 = null;
+        $res = $result1 = $result2 = $result = null;
         try {
             if ($user->charge_balance >= $data['fee']) {
                 $chapterOrder->charge_balance = $data['fee'];
                 $chapterOrder->reward_balance = 0;
                 $res = $chapterOrder->save();
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('charge_balance', $data['fee']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('charge_balance', $data['fee']);
+                $user->balance -= $data['fee'];
+                $user->charge_balance -= $data['fee'];
             } elseif ($user->charge_balance > 0) {
                 $chapterOrder->charge_balance = $user->charge_balance;
                 $chapterOrder->reward_balance = $data['fee'] - $user->charge_balance;
                 $reward = $data['fee'] - $user->charge_balance;
                 $res = $chapterOrder->save();
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('charge_balance', $user->charge_balance);
-                $result3 = $user->decrement('reward_balance', $reward);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('charge_balance', $user->charge_balance);
+                //$result3 = $user->decrement('reward_balance', $reward);
+
+                $user->balance -= $data['fee'];
+                $user->charge_balance = 0;
+                $user->reward_balance -= $reward;
             } else {
                 $chapterOrder->charge_balance = 0;
                 $chapterOrder->reward_balance = $data['fee'];
                 $res = $chapterOrder->save();
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('reward_balance', $data['fee']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('reward_balance', $data['fee']);
+                $user->balance -= $data['fee'];
+                $user->reward_balance -=  $data['fee'];
             }
             if ($user->is_new == 1) {
                 $user->is_new = 0;
-                $user->save();
             }
-
+            $result = $user->save();
         } catch (\Exception $e) {
             //\Log::info($e);
         }
 
-        if ($res && $result1 && $result2) {
+        if ($res && $result) {
             DB::commit();
             return true;
         }

+ 8 - 2
app/Modules/User/Models/User.php

@@ -118,10 +118,16 @@ class User extends Model
      */
     static function addBalance($uid, $fee, $charge, $given)
     {
-        $res1 = User::where('id', $uid)->increment('balance', $fee);
+        /*$res1 = User::where('id', $uid)->increment('balance', $fee);
         $res2 = User::where('id', $uid)->increment('charge_balance', $charge);
         if ($given) User::where('id', $uid)->increment('reward_balance', $given);
-        return $res1 && $res2;
+        return $res1 && $res2;*/
+        return User::where('id', $uid)->update([
+            'balance'=>DB::raw('balance+'.$fee),
+            'charge_balance'=>DB::raw('charge_balance+'.$charge),
+            'reward_balance'=>DB::raw('reward_balance+'.$given)
+            ]
+        );
     }
 
     //获取推广用户总数

+ 3 - 2
app/Modules/User/Services/ReadRecordService.php

@@ -119,9 +119,10 @@ class ReadRecordService
             Redis::setex($chapter_key,3600,$chapter_name);
         }
 
-        Redis::hset('book_read:' . $uid, 'last_read', "{$bid}_{$cid}_" . time());
+        /*Redis::hset('book_read:' . $uid, 'last_read', "{$bid}_{$cid}_" . time());
         //Redis::hset('book_read:'.$uid, $bid, $cid."_".time());
-        Redis::hset('book_read:' . $uid, $bid, "{$cid}_" . time());
+        Redis::hset('book_read:' . $uid, $bid, "{$cid}_" . time());*/
+        Redis::hmset('book_read:' . $uid,'last_read', "{$bid}_{$cid}_" . time(),$bid, "{$cid}_" . time());
     }
     
     /**

+ 11 - 0
app/Modules/YunQi/Models/YqUserBidRelation.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Modules\YunQi\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class YqUserBidRelation extends Model
+{
+    protected $table = 'yq_user_bid_relation';
+    protected $fillable = ['uid','type','from_bid','to_bid'];
+}

+ 47 - 0
app/Modules/YunQi/Services/YqUserBidRelationService.php

@@ -0,0 +1,47 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: z-yang
+ * Date: 2019/1/19
+ * Time: 10:08
+ */
+
+namespace App\Modules\YunQi\Services;
+
+
+use App\Modules\YunQi\Models\YqUserBidRelation;
+
+class YqUserBidRelationService
+{
+    public static function getByUidAndBid($uid,$bid){
+        if(empty($uid) || empty($bid)){
+            return false;
+        }
+        try{
+            return YqUserBidRelation::where('uid',$uid)->where('from_bid',$bid)->select('id','to_bid')->first();
+        }catch (\Exception $e){
+
+        }
+       return false;
+    }
+
+    public static function create($uid,$from_bid,$type,$to_bid){
+        if(empty($uid) || empty($from_bid) || empty($type)){
+            return false;
+        }
+        if(!self::getByUidAndBid($uid,$from_bid)){
+            try{
+                YqUserBidRelation::create([
+                    'uid'=>$uid,
+                    'from_bid'=>$from_bid,
+                    'type'=>$type,
+                    'to_bid'=>$to_bid
+                ]);
+            }catch (\Exception $e){
+
+            }
+
+        }
+        return true;
+    }
+}