AdvertiseController.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Http\Controllers\Wap\Advertise;
  3. use App\Http\Controllers\Wap\BaseController;
  4. use App\Modules\Activity\Services\AdvertiseService;
  5. use App\Modules\Activity\Services\AdvertiseUsersService;
  6. use Illuminate\Http\Request;
  7. use Redis;
  8. use Hashids;
  9. use DB;
  10. class AdvertiseController extends BaseController
  11. {
  12. public static function jump(Request $request){
  13. $bid=$request->input('bid','');
  14. $uid=$request->input('uid','');
  15. Redis::incr("advertise_jump_h5_pv:");
  16. if(empty($bid)||empty($uid)){
  17. return response()->error('PARAM_ERROR');
  18. }
  19. $ads = AdvertiseService::getAds();
  20. $timestamp = time();
  21. $private_key = '^^zhuishuyun';
  22. $pre_str = arr_to_url(compact('bid','uid','timestamp'));
  23. $my_sign = md5($pre_str.$private_key);
  24. return view()->with(['params'=>compact('bid','uid','timestamp','my_sign'),'ads'=>$ads]);
  25. }
  26. public static function jumpToSource(Request $request){
  27. $bid=$request->input('bid','');
  28. $uid=$request->input('uid','');
  29. $ad =$request->input('ad','');
  30. $timestamp = $request->input('timestamp','');
  31. $sign = $request->input('sign','');
  32. if(empty($bid)||empty($uid)||empty($ad)){
  33. return response()->error('PARAM_EMPTY');
  34. }
  35. //签名
  36. $pre_str = arr_to_url(compact('bid','uid','timestamp'));
  37. $private_key = '^^zhuishuyun';
  38. $my_sign = md5($pre_str.$private_key);
  39. //签名时间超过两小时过期
  40. $now = time();
  41. if(($now-$timestamp) > 60*60*2){
  42. return response()->error('PARAM_ERROR');
  43. }
  44. if($my_sign != $sign){
  45. return response()->error('PARAM_ERROR');
  46. }
  47. $bid=Hashids::decode($bid)[0];
  48. AdvertiseUsersService::addOrUpdateAdUsers(['bid'=>$bid,'uid'=>$uid,'advertise_id'=>$ad]);
  49. }
  50. public function getAds(Request $request){
  51. $uid=$request->input('uid','');
  52. if(empty($uid)) {
  53. return response()->error('PARAM_EMPTY');
  54. }
  55. $ads = AdvertiseService::getAds();
  56. foreach ($ads as &$ad){
  57. $adv = AdvertiseUsersService::getOne(['uid'=>$uid]);
  58. if($adv){
  59. $ad->is_download=1;
  60. }else{
  61. $ad->is_download =0;
  62. }
  63. }
  64. return response()->success($ads);
  65. }
  66. private function getAdvs($uid) {
  67. $ads = AdvertiseService::getAds();
  68. foreach ($ads as &$ad){
  69. $adv = AdvertiseUsersService::getOne(['uid'=>$uid]);
  70. if($adv){
  71. $ad->is_download=1;
  72. }else{
  73. $ad->is_download =0;
  74. }
  75. }
  76. return response()->success($ads);
  77. }
  78. }