|
@@ -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();
|