WelcomeController.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. namespace App\Http\Controllers\WapAlipay\Web;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\WapAlipay\BaseController;
  5. use Cookie;
  6. use App\Modules\OfficialAccount\Services\CustomMsgService;
  7. use App\Modules\Activity\Services\ActivityService;
  8. use App\Modules\Activity\Models\Activity;
  9. use App\Modules\OfficialAccount\Services\OfficialAccountService;
  10. class WelcomeController extends BaseController
  11. {
  12. /**
  13. * 首页
  14. */
  15. public function index(Request $request)
  16. {
  17. //site标题
  18. $title = $this->getSiteTitle($request);
  19. //客服图片
  20. $customer_service = $this->getCustomerServiceImg();
  21. //活动配置
  22. $activity_options = $this->activityOptions();
  23. $url = $activity_options['url'];
  24. $is_show_activity = $activity_options['is_show_activity'];
  25. $activity_title = $activity_options['activity_title'];
  26. $bottom_show_type = $activity_options['bottom_show_type'];
  27. $activity_img = $activity_options['activity_img'];
  28. //$user = $activity_options['user'];
  29. $hidden_reader_menus = false;
  30. $send_order_id = Cookie::get('send_order_id');
  31. //隐藏阅读页面菜单
  32. if($send_order_id && in_array($send_order_id,explode(',',env('HIDDEN_READER_MENUS')))){
  33. $hidden_reader_menus = true;
  34. }
  35. $options = json_encode([
  36. 'distribution_channel_id' => (int)$this->distribution_channel_id,
  37. 'send_order_id' => $send_order_id,
  38. 'uid' => $this->uid,
  39. 'pay_url' => env('CREATE_PAY_URL'),
  40. 'title' => $title,
  41. 'kefu' => $customer_service,
  42. 'background' => env('WEB_READER_BACKGROUND'),
  43. 'font_size' => env('WEB_READER_FONT_SIZE'),
  44. 'page_style' => env('WEB_READER_PAGE_STYLE'),
  45. 'from' => Cookie::get('from') ? Cookie::get('from') : 'main',
  46. 'is_show_activity' => $is_show_activity,
  47. 'activity_url' => $url,
  48. 'activity_title' => $activity_title,
  49. 'bottom_show_type' => $bottom_show_type,
  50. 'activity_img' => $activity_img,
  51. 'special_bottom_sub_banner'=>'',
  52. 'hidden_reader_menus'=>$hidden_reader_menus
  53. ]);
  54. return view('wap.index', compact('options', 'title'));
  55. }
  56. /**
  57. * 获取活动配置信息
  58. */
  59. private function activityOptions(){
  60. $url = '';
  61. $is_show_activity = 0;
  62. $activity_title = '';
  63. $bottom_show_type = 1;
  64. $activity_img = '';
  65. $user = $this->userInfo($this->uid);
  66. $no_participate_activity = env('no_participate_activity','');
  67. if($no_participate_activity && in_array($this->distribution_channel_id, explode(',',$no_participate_activity))){
  68. return compact('url','is_show_activity','activity_title','bottom_show_type','activity_img','user');
  69. }
  70. $activity_setting = ActivityService::getActivitySetting();
  71. $h5_scheme = env('H5_SCHEME', 'https');
  72. if ($activity_setting) {
  73. $activity_id = isset($activity_setting['activity_id']) ? $activity_setting['activity_id'] : 0;
  74. $activity_info = Activity::find($activity_id);
  75. if ($activity_info &&
  76. time() > strtotime($activity_info->start_time) &&
  77. time() < strtotime($activity_info->end_time) &&
  78. $user &&
  79. isset($user->created_at) &&
  80. (time() - strtotime($user->created_at)) >= 86400 * 2
  81. ) {
  82. $activity_img = isset($activity_setting['wap_bottom_img']) ? $activity_setting['wap_bottom_img'] : '';
  83. $url = $h5_scheme . '://' . _domain() . $activity_info->activity_page . '&fromtype=reader';
  84. $activity_title = isset($activity_setting['activity_title']) ? $activity_setting['activity_title'] : '';
  85. $is_show_activity = 1;
  86. $bottom_show_type = 2;
  87. }
  88. }
  89. return compact('url','is_show_activity','activity_title','bottom_show_type','activity_img','user');
  90. }
  91. /**
  92. * 获取site标题
  93. */
  94. private function getSiteTitle(Request $request){
  95. $title = "追书云";
  96. $subscribe = $request->cookie('force_subscribe_name');
  97. if ($subscribe) {
  98. $title = $subscribe;
  99. } else {
  100. $res = OfficialAccountService::canUseOfficialAccountByChannelId(['distribution_channel_id' => $this->distribution_channel_id]);
  101. if ($res && isset($res->nickname) && !empty($res->nickname)) {
  102. Cookie::queue('force_subscribe_name', $res->nickname, 12 * 3600);
  103. $title = $res->nickname;
  104. }
  105. }
  106. return $title;
  107. }
  108. /**
  109. * 获取客服图片
  110. */
  111. private function getCustomerServiceImg(){
  112. $setting = CustomMsgService::customerImgUrlByChannelId($this->distribution_channel_id);
  113. if ($setting && $setting->customer_img_url) {
  114. $customer_service = $setting->customer_img_url;
  115. } else {
  116. $customer_service = "https://cdn-novel.iycdm.com/static/img/kefu20180724.jpg";
  117. }
  118. return $customer_service;
  119. }
  120. }