LinkSubscribeController.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace App\Http\Controllers\Wap\Subscribe;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use App\Modules\Channel\Services\ChannelSubscribeSettingService;
  6. use Redis;
  7. use Cookie;
  8. use DB;
  9. class LinkSubscribeController extends Controller
  10. {
  11. public function index(Request $request){
  12. $uid = $request->input('uid');
  13. $channel_id = $request->input('distribution_channel_id');
  14. $send_order_id = $request->input('send_order_id',0);
  15. $appid = $request->input('appid');
  16. $bid = $request->input('bid',0);
  17. $h5_scheme = env('H5_SCHEME', 'https');
  18. if(empty($uid) || empty($appid)){
  19. $auth_url = $h5_scheme.'://'._domain();
  20. }else{
  21. $sub_setting = ChannelSubscribeSettingService::getSubscribeTypeByAppId($appid);
  22. if($sub_setting && strpos($sub_setting->force_subscribe_type,'3') !== false && !empty($sub_setting->resource_url)){
  23. $url = $h5_scheme.'://'._domain().'/subauthback/?uid='.$uid.'&distribution_channel_id='.$channel_id.'&bid='.$bid.'&send_order_id='.$send_order_id.'&appid='.$appid;
  24. $auth_url = env('QRCODE_AUTH_URL').'?gzh_app_id='.$appid.'&redirect_url='.urlencode($url);
  25. }else{
  26. $auth_url = $h5_scheme.'://'._domain();
  27. }
  28. }
  29. return redirect()->to($auth_url);
  30. }
  31. public function wxAuthCallBack(Request $request){
  32. $uid = $request->input('uid');
  33. $bid = $request->input('bid',0);
  34. $channel_id = $request->input('distribution_channel_id',5);
  35. $openid = $request->input('openid');
  36. $appid = $request->input('appid');
  37. $send_order_id = $request->input('send_order_id',0);
  38. $sub_setting = ChannelSubscribeSettingService::getSubscribeTypeByAppId($appid);
  39. if($sub_setting && !empty($sub_setting->resource_url)) {
  40. Redis::hset('book:linksubscribe:openid:'.$openid.':channelid:'.$channel_id,'uid',$uid);
  41. Redis::hset('book:linksubscribe:openid:'.$openid.':channelid:'.$channel_id,'bid',$bid);
  42. Redis::hset('book:linksubscribe:openid:'.$openid.':channelid:'.$channel_id,'time',time());
  43. Redis::hset('book:linksubscribe:openid:'.$openid.':channelid:'.$channel_id,'send_order_id',$send_order_id);
  44. Redis::EXPIRE('book:linksubscribe:openid:'.$openid.':channelid:'.$channel_id,300);
  45. Redis::hset('force_subscribe_from_bid',$appid.'_'.$uid,$bid);
  46. Redis::hset('force_subscribe_from_send_order_id',$appid.'_'.$uid,$send_order_id);
  47. return redirect()->to($sub_setting->resource_url);
  48. }else{
  49. $h5_scheme = env('H5_SCHEME', 'https');
  50. $auth_url = $h5_scheme.'://site'.$channel_id.'.leyuee.com/';
  51. return redirect()->to($auth_url);
  52. }
  53. }
  54. public function subscribeView(Request $request){
  55. $title = $request->input('title','扫一扫');
  56. $img = $request->input('img');
  57. $head_img_pool = [
  58. 'https://cdn-novel.iycdm.com/h5/subscribe/headimg/1.png',
  59. 'https://cdn-novel.iycdm.com/h5/subscribe/headimg/2.png',
  60. 'https://cdn-novel.iycdm.com/h5/subscribe/headimg/3.png'
  61. ];
  62. //$head_img = $request->input('head_img','');
  63. $num = Cookie::get('sub_random_num');
  64. if(!$num){
  65. $num = random_int(10,20);
  66. Cookie::queue('sub_random_num', $num);
  67. }
  68. $uid = $request->get('uid');
  69. $head_img = array_random($head_img_pool);
  70. $domain = _domain();
  71. $distribution_channel_id = str_replace('site','',explode('.',$domain)[0]);
  72. if(!is_numeric($distribution_channel_id)){
  73. $distribution_channel_id = decodeDistributionChannelId($distribution_channel_id);
  74. }
  75. $new_sub_page = env('NEW_SUB_PAGE',-1);
  76. $template = 2;
  77. if(in_array($distribution_channel_id,[123,211,2,14])){
  78. if($uid %2 == 0){
  79. $template = 3;
  80. }
  81. $this->userForceSubscribeTemplate($uid,$distribution_channel_id,$template);
  82. }
  83. /*if($uid && in_array($distribution_channel_id,[123,211])){
  84. if($uid%2 == 0){
  85. //偶数 模板 2
  86. $this->userForceSubscribeTemplate($uid,$distribution_channel_id,2);
  87. return view('wap.subscribeV2',compact('title','img','head_img','num'));
  88. }else{
  89. //奇数 模板 1
  90. $this->userForceSubscribeTemplate($uid,$distribution_channel_id,1);
  91. return view('wap.subscribe',compact('title','img','head_img','num'));
  92. }
  93. }
  94. if(in_array($distribution_channel_id,explode(',',$new_sub_page))){
  95. return view('wap.subscribeV2',compact('title','img','head_img','num'));
  96. }else{
  97. return view('wap.subscribe',compact('title','img','head_img','num'));
  98. }*/
  99. return view('wap.subscribeV2',compact('title','img','head_img','num','template'));
  100. //return view('wap.subscribe',compact('title','img','head_img','num'));
  101. }
  102. private function userForceSubscribeTemplate($uid,$distribution_channel_id,$template_type){
  103. try{
  104. DB::table('user_force_subscribe_template')->insert([
  105. 'uid'=>$uid,
  106. 'distribution_channel_id'=>$distribution_channel_id,
  107. 'template_type'=>$template_type,
  108. 'created_at'=>date('Y-m-d H:i:s'),
  109. 'updated_at'=>date('Y-m-d H:i:s'),
  110. ]);
  111. }catch (\Exception $e){
  112. }
  113. }
  114. }