Browse Source

'统一返回格式'

zhuchengjie 2 years ago
parent
commit
73ae857205

+ 35 - 16
app/Http/Controllers/QuickApp/Book/BookController.php

@@ -32,6 +32,7 @@ use App\Modules\Subscribe\Services\ChapterOrderService;
 use App\Modules\Subscribe\Services\YearOrderService;
 use App\Modules\User\Services\ReadRecordService;
 use Hashids;
+use Log;
 use Illuminate\Support\Facades\Redis;
 
 class BookController extends BaseController
@@ -601,43 +602,48 @@ class BookController extends BaseController
 
         if($release_type == '4' || $release_type == '5'){
             //弹窗和充值页返回需要先判断频率跟权限
-            $advert = ChannelAdvert::where('distribution_id',$distribution_id)
+            $advert = ChannelAdvert::select('id','photo as banner_url','type','content','person','frequency')
+                ->where('distribution_id',$distribution_id)
                 ->where('release_type',$release_type)
                 ->where('status',1)
                 ->first();
+
             if(!$advert){
                 return response()->success([]);
             }
-
-            $advert->id = Hashids::encode($advert->id);
-            if($advert->type == 1){
-                $advert->redirect_url = 'views/Reader';
-                $content = explode(';',$advert->content);
-                $advert->bid = isset($content[2]) ? $content[2] : '';
-                $advert->cid = isset($content[3]) ? $content[3] : '';
+            $advert = $advert->toArray();
+            $advert['ids'] = Hashids::encode($advert['id']);
+            if($advert['type'] == 1){
+                $advert['redirect_url'] = 'views/Reader';
+                $content = explode(';',$advert['content']);
+                $advert['bid'] = isset($content[2]) ? $content[2] : '';
+                $advert['cid'] = isset($content[3]) ? $content[3] : '';
             }else{
-                $advert->redirect_url = 'views/Detail';
+                $advert['redirect_url'] = 'views/Detail';
             }
 
             if($release_type == '4'){
                 //弹窗需要判断频率
-                if($advert->frequency == 'always'){
+                if($advert['frequency'] == 'always'){
+                    $advert = self::getBackFormat($advert);
                     return response()->success($advert);
                 }
 
                 $day = strtotime(date('Y-m-d H:i:s'));
                 $nextDay = strtotime( date('Y-m-d'). ' +1 day');
                 $nextWeek = strtotime(date('Y-m-d',strtotime('+1 week last monday')));
-                if($advert->frequency == 'day'){
+                if($advert['frequency'] == 'day'){
                     if(!Redis::exists('banner:'.$distribution_id.':'.$this->uid)){
                         Redis::setex('banner:'.$distribution_id.':'.$this->uid,($nextDay-$day),1);
+                        $advert = self::getBackFormat($advert);
                         return response()->success($advert);
                     }
                 }
 
-                if($advert->frequency == 'week'){
+                if($advert['frequency'] == 'week'){
                     if(!Redis::exists('banner:'.$distribution_id.':'.$this->uid)){
                         Redis::setex('banner:'.$distribution_id.':'.$this->uid,($nextWeek-$day),1);
+                        $advert = self::getBackFormat($advert);
                         return response()->success($advert);
                     }
 
@@ -648,10 +654,11 @@ class BookController extends BaseController
 
             if($release_type == '5'){
                 //充值页返回需要判断用户权限
-                $check_user = $this->checkUsers($advert->person);
+                $check_user = $this->checkUsers($advert['person']);
                 if(!$check_user){
                     return response()->success([]);
                 }
+                $advert = self::getBackFormat($advert);
                 return response()->success($advert);
             }
 
@@ -665,7 +672,7 @@ class BookController extends BaseController
         }
 
         $banner->transform(function ($item) {
-            $item->id = Hashids::encode($item->id);
+            $item->ids = Hashids::encode($item->id);
             if($item->type == 1){
                 $item->redirect_url = 'views/Reader';
                 $content = explode(';',$item->content);
@@ -674,10 +681,21 @@ class BookController extends BaseController
             }else{
                 $item->redirect_url = 'views/Detail';
             }
+            self::getBackFormat($item);
+            return $item;
         });
         return response()->success($banner);
     }
 
+    static function getBackFormat($data)
+    {
+        if(isset($data['id']) || $data->id) unset($data['id'],$data->id);
+        if(isset($data['type']) || $data->type) unset($data['type'],$data->type);
+        if(isset($data['person']) || $data->person) unset($data['person'],$data->person);
+        if(isset($data['frequency']) || $data->frequency) unset($data['frequency'],$data->frequency);
+        return $data;
+    }
+
     /**
      * 默认获取banner
      * @return mixed
@@ -690,13 +708,14 @@ class BookController extends BaseController
             $result    = $this->getBidCidFromUrl($item->redirect_url);
             $item->bid = $result['bid'];
             $item->cid = $result['cid'];
-            $item->id  = Hashids::encode($item->id);
+            $item->ids  = Hashids::encode($item->id);
             $item->type  = 'default';
             if ($result['cid']) {
                 $item->redirect_url = "views/Reader";
             } else {
                 $item->redirect_url = "views/Detail";
             }
+            unset($item->id);
             return $item;
         });
         return $banner;
@@ -953,7 +972,7 @@ class BookController extends BaseController
     public function getCheckAdvertisement(Request $request)
     {
         $type = $request->get('type','');
-        $id = $request->get('id','');
+        $id = $request->get('ids','');
         $distribution_id = $this->distribution_channel_id;
         if(empty($type) || empty($id) || empty($distribution_id)){
             return response()->success();

+ 1 - 0
app/Modules/Book/Models/RecoBanner.php

@@ -8,6 +8,7 @@ class RecoBanner extends Model
 {
     protected $table = 'reco_banners';
     protected $fillable = [
+        'id',
         'redirect_url',
         'desc',
         'reco_type',

+ 1 - 0
app/Modules/Channel/Services/ChannelAdvertService.php

@@ -18,6 +18,7 @@ class ChannelAdvertService
         return ChannelAdvert::where('status',1)
             ->where('distribution_id',$distribution_id)
             ->where('release_type',$release_type)
+            ->select('id','photo as banner_url','type','content')
             ->get();
     }
 }