ActivityController.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517
  1. <?php
  2. namespace App\Http\Controllers\Wap\Web;
  3. use App\Modules\Activity\Services\ActivityService;
  4. use App\Modules\Product\Services\ProductService;
  5. use App\Modules\User\Services\UserService;
  6. use Illuminate\Http\Request;
  7. use App\Http\Controllers\Wap\BaseController;
  8. use Redis;
  9. use DB;
  10. use Log;
  11. class ActivityController extends BaseController
  12. {
  13. //渠道自定义活动 可以多少充值
  14. public function channelCustomActivity(Request $request)
  15. {
  16. $encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
  17. $token = $request->input('token');
  18. $activity_info = ActivityService::getByToken($token);
  19. $img = 'https://cdn-novel.iycdm.com/h5/activity-chanel-custom/btn48.jpg';
  20. if ($activity_info && $activity_info->product_id) {
  21. $customer_activity_info = DB::table('channel_custom_activity')->where('product_id', $activity_info->product_id)->select('setting')->first();
  22. if ($customer_activity_info && $customer_activity_info->setting) {
  23. $img = json_decode($customer_activity_info->setting, 1)['img'];
  24. }
  25. $from = $request->input('fromtype', 'main');
  26. $uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
  27. $pv_key_format = 'activity:%s:distribution_channel_id:%s:pv';
  28. $uv_key = sprintf($uv_key_format, $activity_info->id, $this->distribution_channel_id, date('Y-m-d'));
  29. $pv_key = sprintf($pv_key_format, $activity_info->id, $this->distribution_channel_id);
  30. Redis::sadd($uv_key, $this->uid);
  31. Redis::hincrby($pv_key, date('Y-m-d'), 1);
  32. //$order = Order::where('uid',$this->uid)->where('status','PAID')->where('activity_id',$activity_info->id)->count();
  33. //渠道不符合
  34. if ($activity_info->distribution_channel_id != $this->distribution_channel_id) {
  35. return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img' => $img, 'code' => -1, 'start_time' => date('Y-m-d', time() - 86400 * 2), 'end_time' => date('Y-m-d', time() - 86400)]);
  36. }
  37. //活动未开始
  38. if (time() < strtotime($activity_info->start_time)) {
  39. return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img' => $img, 'code' => -3, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
  40. }
  41. //活动结束
  42. if (time() > strtotime($activity_info->end_time)) {
  43. return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img' => $img, 'code' => -1, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
  44. }
  45. if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
  46. $param = [
  47. 'uid' => $this->uid,
  48. 'distribution_channel_id' => $this->distribution_channel_id,
  49. 'product_id' => $activity_info->product_id,
  50. 'activity_id' => $activity_info->id,
  51. 'fromtype' => $from,
  52. 'limit' => 100,
  53. 'pay_redirect_url' => env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person'
  54. ];
  55. $url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  56. return view('pay.activity.ChannelCustomerV1', ['url' => $url, 'img' => $img, 'code' => 0, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
  57. }
  58. }
  59. return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img' => $img, 'code' => -1, 'start_time' => date('Y-m-d', time() - 86400 * 2), 'end_time' => date('Y-m-d', time() - 86400)]);
  60. }
  61. public function commonActivity(Request $request)
  62. {
  63. $encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
  64. $token = $request->input('token');
  65. $activity_info = ActivityService::getByToken($token);
  66. if ($activity_info && isset($activity_info->setting) && empty(!$activity_info->setting)) {
  67. $imgs = json_decode($activity_info->setting, 1);
  68. $from = $request->input('fromtype', 'main');
  69. $uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
  70. $pv_key_format = 'activity:%s:distribution_channel_id:%s:pv';
  71. $uv_key = sprintf($uv_key_format, $activity_info->id, $this->distribution_channel_id, date('Y-m-d'));
  72. $pv_key = sprintf($pv_key_format, $activity_info->id, $this->distribution_channel_id);
  73. $redirect_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person';
  74. if ($request->input('redirect_url')) {
  75. $redirect_url = $request->input('redirect_url');
  76. $redirect_url = urldecode($redirect_url);
  77. }
  78. $product_id = $activity_info->product_id;
  79. if ($activity_info->id == 6000) {
  80. $imgs['page_bd_img'] = 'https://cdn-novel.iycdm.com/h5/activity-2019-04-29/bg2.jpg';
  81. $product_id = 5788;
  82. }
  83. if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
  84. Redis::sadd($uv_key, $this->uid);
  85. Redis::hincrby($pv_key, date('Y-m-d'), 1);
  86. $param = [
  87. 'uid' => $this->uid,
  88. 'distribution_channel_id' => $this->distribution_channel_id,
  89. 'product_id' => $product_id,
  90. 'activity_id' => $activity_info->id,
  91. 'fromtype' => $from,
  92. 'pay_redirect_url' => $redirect_url,
  93. 'limit' => 100,
  94. ];
  95. $url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  96. return view('pay.order.common', ['url' => $url, 'code' => 0, 'img' => $imgs]);
  97. } else if (time() <= strtotime($activity_info->start_time)) {
  98. return view('pay.order.common', ['url' => [], 'code' => 1, 'img' => $imgs]);
  99. } else {
  100. return view('pay.order.common', ['url' => [], 'code' => 2, 'img' => $imgs]);
  101. }
  102. }
  103. $default_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
  104. return redirect()->to($default_url);
  105. }
  106. public function crmActivity(Request $request)
  107. {
  108. $default_url = env('H5_SCHEME', 'https') . '://site' . $this->en_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
  109. $token = $request->input('token');
  110. if (!$token) {
  111. return redirect()->to($default_url);
  112. }
  113. $activity_info = ActivityService::getByToken($token);
  114. if (!$activity_info) {
  115. return redirect()->to($default_url);
  116. }
  117. $crm = $request->get('crm', 'crm' );
  118. $img = \GuzzleHttp\json_decode($activity_info->setting, 1);
  119. $param = [
  120. 'uid' => $this->uid,
  121. 'distribution_channel_id' => $this->distribution_channel_id,
  122. 'product_id' => $activity_info->product_id,
  123. 'activity_id' => $activity_info->id,
  124. 'fromtype' => 'crm',
  125. 'pay_redirect_url' => $default_url . 'person',
  126. 'limit' => 100,
  127. 'crm'=>$crm
  128. ];
  129. $product_info = ProductService::getProductSingle($activity_info->product_id);
  130. $url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  131. $fee = $product_info->price * 100 + $product_info->given;
  132. return view('crm.crmActivity', ['url' => $url, 'img' => $img['button'], 'fee' => $fee]);
  133. }
  134. public function huaweiActivity(Request $request)
  135. {
  136. $encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
  137. $activity_id = redisEnv('HUAWEI_ACTIVITY_ID', 0);
  138. $activity_info = ActivityService::getById($activity_id);
  139. if ($activity_info && isset($activity_info->setting) && empty(!$activity_info->setting)) {
  140. $from = $request->input('fromtype', 'main');
  141. $display_dialog = $request->input('display_dialog', 'none');
  142. $uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
  143. $pv_key_format = 'activity:%s:distribution_channel_id:%s:pv';
  144. $uv_key = sprintf($uv_key_format, $activity_info->id, $this->distribution_channel_id, date('Y-m-d'));
  145. $pv_key = sprintf($pv_key_format, $activity_info->id, $this->distribution_channel_id);
  146. if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
  147. Redis::sadd($uv_key, $this->uid);
  148. Redis::hincrby($pv_key, date('Y-m-d'), 1);
  149. $products = explode(',', $activity_info->setting);
  150. $url = [];
  151. $request_param = $request->except('_url');
  152. $request_param['display_dialog'] = 'block';
  153. $count_info = DB::table('huaweilottery_user_counts')->where('uid', $this->uid)->select('count')->first();
  154. $count = 0;
  155. if ($count_info && $count_info->count) {
  156. $count = $count_info->count;
  157. }
  158. $default_url = env('H5_SCHEME', 'https') . '://site' . $this->en_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com';
  159. foreach ($products as $v) {
  160. $param = [
  161. 'uid' => $this->uid,
  162. 'distribution_channel_id' => $this->distribution_channel_id,
  163. 'product_id' => $v,
  164. 'activity_id' => $activity_info->id,
  165. 'fromtype' => $from,
  166. 'pay_redirect_url' => $default_url . '/activity/huaweiActivity?' . http_build_query($request_param),
  167. 'limit' => 100,
  168. ];
  169. $url[] = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  170. }
  171. return view('pay.activity.huaweiActivity', ['url' => $url, 'code' => 0, 'display_dialog' => $display_dialog, 'count' => $count, 'end_time' => date('n月d日',strtotime($activity_info->end_time))]);
  172. } else if (time() <= strtotime($activity_info->start_time)) {
  173. return view('pay.activity.huaweiActivity', ['url' => [], 'code' => 1, 'display_dialog' => 'none', 'count' => 0, 'end_time' => date('n月d日',strtotime($activity_info->end_time))]);
  174. } else {
  175. return view('pay.activity.huaweiActivity', ['url' => [], 'code' => 2, 'display_dialog' => 'none', 'count' => 0, 'end_time' => date('n月d日',strtotime($activity_info->end_time))]);
  176. }
  177. }
  178. $default_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
  179. return redirect()->to($default_url);
  180. }
  181. //端午活动
  182. public function ragonBoatActivity(Request $request)
  183. {
  184. $encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
  185. $default_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
  186. $token = $request->input('token');
  187. if (!$token) {
  188. return redirect()->to($default_url);
  189. }
  190. $activity_info = ActivityService::getByToken($token);
  191. if (!$activity_info) {
  192. return redirect()->to($default_url);
  193. }
  194. $from = $request->input('fromtype', 'main');
  195. $uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
  196. $pv_key_format = 'activity:%s:distribution_channel_id:%s:pv';
  197. $uv_key = sprintf($uv_key_format, $activity_info->id, $this->distribution_channel_id, date('Y-m-d'));
  198. $pv_key = sprintf($pv_key_format, $activity_info->id, $this->distribution_channel_id);
  199. $redirect_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person';
  200. if ($request->input('redirect_url')) {
  201. $redirect_url = $request->input('redirect_url');
  202. $redirect_url = urldecode($redirect_url);
  203. }
  204. //$product_id = $activity_info->product_id;
  205. if (in_array($this->distribution_channel_id, [123, 211, 146, 155, 255, 256, 691, 722, 4364, 4427, 695, 4174, 4025, 4593, 4426, 4889, 4891, 4742, 4053, 4334, 4487, 5611, 6122, 6123, 6124, 8, 5, 160, 4236, 4237, 4241, 273, 148, 266, 202, 271])) {
  206. if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
  207. Redis::sadd($uv_key, $this->uid);
  208. Redis::hincrby($pv_key, date('Y-m-d'), 1);
  209. $url = [];
  210. $product_ids = [6172, 6173, 6174];
  211. foreach ($product_ids as $item) {
  212. $param = [
  213. 'uid' => $this->uid,
  214. 'distribution_channel_id' => $this->distribution_channel_id,
  215. 'product_id' => $item,
  216. 'activity_id' => $activity_info->id,
  217. 'fromtype' => $from,
  218. 'pay_redirect_url' => $redirect_url,
  219. 'limit' => 100,
  220. ];
  221. $url[] = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  222. }
  223. return view('pay.activity.ragonBoatInnerActivity', ['url' => $url, 'code' => 0]);
  224. } elseif (time() <= strtotime($activity_info->start_time)) {
  225. return view('pay.activity.ragonBoatInnerActivity', ['url' => ['javascript:void(0)', 'javascript:void(0)', 'javascript:void(0)'], 'code' => 1]);
  226. } else {
  227. return view('pay.activity.ragonBoatInnerActivity', ['url' => ['javascript:void(0)', 'javascript:void(0)', 'javascript:void(0)'], 'code' => 2]);
  228. }
  229. } else {
  230. if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
  231. Redis::sadd($uv_key, $this->uid);
  232. Redis::hincrby($pv_key, date('Y-m-d'), 1);
  233. $url = [];
  234. $product_ids = [6191, 6192];
  235. foreach ($product_ids as $item) {
  236. $param = [
  237. 'uid' => $this->uid,
  238. 'distribution_channel_id' => $this->distribution_channel_id,
  239. 'product_id' => $item,
  240. 'activity_id' => $activity_info->id,
  241. 'fromtype' => $from,
  242. 'pay_redirect_url' => $redirect_url,
  243. 'limit' => 100
  244. ];
  245. $url[] = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  246. }
  247. return view('pay.activity.ragonBoatActivity', ['url' => $url, 'code' => 0]);
  248. } elseif (time() <= strtotime($activity_info->start_time)) {
  249. return view('pay.activity.ragonBoatActivity', ['url' => ['javascript:void(0)', 'javascript:void(0)'], 'code' => 1]);
  250. } else {
  251. return view('pay.activity.ragonBoatActivity', ['url' => ['javascript:void(0)', 'javascript:void(0)'], 'code' => 2]);
  252. }
  253. }
  254. }
  255. public function huaweiLotteryView()
  256. {
  257. $count_info = DB::table('huaweilottery_user_counts')->where('uid', $this->uid)->select('count')->first();
  258. $total = DB::table('huaweilottery_record')->sum('price');
  259. $left_total = 5000000 - ($total ? $total : 0);
  260. $count = 0;
  261. if ($count_info && $count_info->count) {
  262. $count = $count_info->count;
  263. }
  264. $activity_id = redisEnv('HUAWEI_ACTIVITY_ID', 0);
  265. $activity_info = ActivityService::getById($activity_id);
  266. \Log::info($activity_info);
  267. if (!$activity_info) {
  268. $diff = 0;
  269. } else {
  270. $diff = strtotime($activity_info->end_time) - time();
  271. $diff = $diff > 0 ? $diff : 0;
  272. }
  273. $list = DB::table('huaweilottery_record')
  274. ->where('uid', $this->uid)
  275. ->where('price', '>', 0)
  276. ->select('created_at', 'price')
  277. ->get();
  278. return view('pay.activity.huaweiLottery', ['count' => $count, 'time_diff' => $diff, 'list' => $list, 'total' => $left_total]);
  279. }
  280. public function huaweiLottery()
  281. {
  282. $count_info = DB::table('huaweilottery_user_counts')->where('uid', $this->uid)->select('count')->first();
  283. $rest_count = 0;
  284. if ($count_info && $count_info->count) {
  285. $rest_count = $count_info->count;
  286. }
  287. $count = random_int(6, 10);
  288. if ($rest_count <= 0) {
  289. //Log::info('--------------------------');
  290. return response()->success(['rotate' => 20 + 45 * 2 + 360 * $count]);
  291. }
  292. DB::table('huaweilottery_user_counts')->where('uid', $this->uid)->update([
  293. 'count' => $rest_count - 1,
  294. 'updated_at' => date('Y-m-d H:i:s')
  295. ]);
  296. $code = random_int(1, 1000);
  297. if ($code <= 20) {
  298. //Log::info('00000000000000000000000');
  299. // 1000书币
  300. $point = 20 + 45 * 7;
  301. $price = 1000;
  302. } elseif ($code <= 200) {
  303. //100
  304. $point = 20 + 45;
  305. $price = 100;
  306. //Log::info('11111111111111111111');
  307. } elseif ($code <= 700) {
  308. //50
  309. $point = 20 + 45 * 3;
  310. $price = 50;
  311. //Log::info('2222222222222222222222222');
  312. } else {
  313. $point = 20 + 45 * 2;
  314. $price = 0;
  315. //Log::info('333333333333333333333333');
  316. }
  317. $rotate = $point + 360 * $count;
  318. if ($price > 0) {
  319. UserService::addBalance($this->uid, $price, 0, $price);
  320. }
  321. DB::table('huaweilottery_record')->insert([
  322. 'uid' => $this->uid,
  323. 'price' => $price,
  324. 'created_at' => date('Y-m-d H:i:s'),
  325. 'updated_at' => date('Y-m-d H:i:s'),
  326. ]);
  327. return response()->success(compact('rotate', 'price'));
  328. }
  329. public function summerHoliday(Request $request)
  330. {
  331. $encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
  332. //$encode_distribution_channel_id = 2;
  333. /*$sites = env('YEAR_ACTIVITY_CHANNEL', '');
  334. $not_access_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
  335. if (empty($sites)) {
  336. return redirect()->to($not_access_url);
  337. }
  338. $site_arr = explode(',', $sites);
  339. if (!in_array($this->distribution_channel_id, $site_arr)) {
  340. return redirect()->to($not_access_url);
  341. }*/
  342. $token = $request->input('token');
  343. $activity_info = ActivityService::getByToken($token);
  344. if (!$activity_info) {
  345. $default_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
  346. return redirect()->to($default_url);
  347. }
  348. $from = $request->get('fromtype', 'main');
  349. $uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
  350. $pv_key_format = 'activity:%s:distribution_channel_id:%s:pv';
  351. $uv_key = sprintf($uv_key_format, $activity_info->id, $this->distribution_channel_id, date('Y-m-d'));
  352. $pv_key = sprintf($pv_key_format, $activity_info->id, $this->distribution_channel_id);
  353. Redis::sadd($uv_key, $this->uid);
  354. Redis::hincrby($pv_key, date('Y-m-d'), 1);
  355. $redirect_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person';
  356. if ($request->input('redirect_url')) {
  357. $redirect_url = $request->input('redirect_url');
  358. $redirect_url = urldecode($redirect_url);
  359. }
  360. //$product_ids = [6621, 6622,6623];
  361. $imgs = [
  362. 'page_bd_img'=>'https://cdn-novel.iycdm.com/h5/activity-2019-07-25/bg.jpg',
  363. 'page_btn_pre_img'=>'https://cdn-novel.iycdm.com/h5/activity-2019-07-25/undone.png',
  364. 'page_btn_doing_img'=>'https://cdn-novel.iycdm.com/h5/activity-2019-07-25/doing.png',
  365. 'page_btn_end_img'=>'https://cdn-novel.iycdm.com/h5/activity-2019-07-25/over.png'
  366. ];
  367. //未开始
  368. if (time() < strtotime($activity_info->start_time)) {
  369. //return view('pay.activity.summerHoliday', ['url' => ['javascript:void(0)', 'javascript:void(0)','javascript:void(0)'], 'code' => -1]);
  370. return view('pay.order.common', ['url' => [], 'code' => 1, 'img' => $imgs]);
  371. }
  372. //结束
  373. if (time() > strtotime($activity_info->end_time)) {
  374. //return view('pay.order.common', ['url' => [], 'code' => 2, 'img' => $imgs]);
  375. return view('pay.activity.summerHoliday', ['url' => ['javascript:void(0)', 'javascript:void(0)','javascript:void(0)'], 'code' => -2]);
  376. }
  377. /*$url = [];
  378. foreach ($product_ids as $product_id) {
  379. $param = [
  380. 'uid' => $this->uid,
  381. 'distribution_channel_id' => $this->distribution_channel_id,
  382. 'product_id' => $product_id,
  383. 'activity_id' => $activity_info->id,
  384. 'fromtype' => $from,
  385. 'pay_redirect_url' => $redirect_url,
  386. 'limit' => 100
  387. ];
  388. $url[] = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  389. }*/
  390. $param = [
  391. 'uid' => $this->uid,
  392. 'distribution_channel_id' => $this->distribution_channel_id,
  393. 'product_id' => $activity_info->product_id,
  394. 'activity_id' => $activity_info->id,
  395. 'fromtype' => $from,
  396. 'pay_redirect_url' => $redirect_url,
  397. 'limit' => 100,
  398. ];
  399. $url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  400. return view('pay.order.common', ['url' => $url, 'code' => 0, 'img' => $imgs]);
  401. //return view('pay.activity.summerHoliday', ['url' => $url, 'code' => 0]);
  402. }
  403. public function crmYearActivity(Request $request)
  404. {
  405. $default_url = env('H5_SCHEME', 'https') . '://site' . $this->en_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
  406. $activity_info = ActivityService::getById(11378);
  407. if (!$activity_info) {
  408. return redirect()->to($default_url);
  409. }
  410. $crm = $request->get('crm', 'crm_year_activity' );
  411. $param = [
  412. 'uid' => $this->uid,
  413. 'distribution_channel_id' => $this->distribution_channel_id,
  414. 'product_id' => $activity_info->product_id,
  415. 'activity_id' => $activity_info->id,
  416. 'fromtype' => 'crm',
  417. 'pay_redirect_url' => $default_url . 'person',
  418. 'limit' => 100,
  419. 'crm'=>$crm
  420. ];
  421. $url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  422. $is_get = 0;
  423. $discount_coupon = DB::table('discount_coupons')->where('uid', $this->uid)->where('activity_id', $activity_info->id)->count();
  424. if($discount_coupon){
  425. $is_get = 1;
  426. }else{
  427. DB::table('discount_coupons')->insert([
  428. 'uid' => $this->uid,
  429. 'activity_id' => $activity_info->id,
  430. 'created_at' => date('Y-m-d H:i:s'),
  431. 'updated_at' => date('Y-m-d H:i:s')
  432. ]);
  433. }
  434. return view('crm.crmYearActivity', ['url' => $url,'is_get'=>$is_get]);
  435. }
  436. /**
  437. * @return string
  438. */
  439. public function nationDayActivity(Request $request)
  440. {
  441. $encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
  442. $token = $request->input('token');
  443. $activity_info = ActivityService::getByToken($token);
  444. if ($activity_info && isset($activity_info->setting) && empty(!$activity_info->setting)) {
  445. $is_show_year_order = in_array($this->distribution_channel_id,[3]) ?1:0;
  446. $imgs = json_decode($activity_info->setting, 1);
  447. $from = $request->input('fromtype', 'main');
  448. $uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
  449. $pv_key_format = 'activity:%s:distribution_channel_id:%s:pv';
  450. $uv_key = sprintf($uv_key_format, $activity_info->id, $this->distribution_channel_id, date('Y-m-d'));
  451. $pv_key = sprintf($pv_key_format, $activity_info->id, $this->distribution_channel_id);
  452. $redirect_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person';
  453. if ($request->input('redirect_url')) {
  454. $redirect_url = $request->input('redirect_url');
  455. $redirect_url = urldecode($redirect_url);
  456. }
  457. if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
  458. Redis::sadd($uv_key, $this->uid);
  459. Redis::hincrby($pv_key, date('Y-m-d'), 1);
  460. $product_ids = explode(',',$activity_info->setting);
  461. $param = [
  462. 'uid' => $this->uid,
  463. 'distribution_channel_id' => $this->distribution_channel_id,
  464. //'product_id' => $activity_info->product_id,
  465. 'activity_id' => $activity_info->id,
  466. 'fromtype' => $from,
  467. 'pay_redirect_url' => $redirect_url,
  468. 'limit' => 100,
  469. ];
  470. $url = [];
  471. foreach ($product_ids as $product_id) {
  472. $param['product_id'] = $product_id;
  473. $url[] = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  474. }
  475. //$url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
  476. return view('pay.activity.wapnationDayActivity', ['url' => $url, 'code' => 0,'is_show_year_order'=>$is_show_year_order]);
  477. } else if (time() <= strtotime($activity_info->start_time)) {
  478. return view('pay.activity.wapnationDayActivity', ['url' => ['javascript:void(0)', 'javascript:void(0)', 'javascript:void(0)'], 'code' => 1,'is_show_year_order'=>$is_show_year_order]);
  479. } else {
  480. return view('pay.activity.wapnationDayActivity', ['url' => ['javascript:void(0)', 'javascript:void(0)', 'javascript:void(0)'], 'code' => 2,'is_show_year_order'=>$is_show_year_order]);
  481. }
  482. }
  483. $default_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
  484. return redirect()->to($default_url);
  485. }
  486. }