VideoSeacherController.class.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. namespace bibidd\Controller;
  3. use Bibidd\Controller\CommonBaseController;
  4. /**
  5. * 视频标题查询
  6. */
  7. class VideoSeacherController extends CommonBaseController
  8. {
  9. /**
  10. * 通过关键字查询
  11. * @return void
  12. */
  13. public function search_by_key_word()
  14. {
  15. $this->addHeaders(); //添加头部请求
  16. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  17. $uid = $user_info['id'];
  18. $key_word= $_POST['keyWord'];
  19. $page = $_POST['page'];
  20. $one_size = $_POST['pageSize']; //每頁30行記錄
  21. $page_one = ($page - 1) * $one_size;
  22. if(empty($key_word) || mb_strlen($key_word)>40)
  23. {
  24. $this->returnDataAndSendMsg("搜索关键字不能为空或长度不能超过40个字符");
  25. die();
  26. }
  27. $key_word = trim($key_word); //去除两边空格
  28. $video_list = M('video_list_test')->where("MATCH(china_title) AGAINST ('+\"$key_word\"' IN BOOLEAN MODE) AND uploader != '吃瓜'")->LIMIT($page_one, $one_size)->select();
  29. foreach ($video_list as $key=>$value)
  30. {
  31. $v_id = $value['id'];
  32. $value['isUnlock']=false; //是否解锁
  33. $value['payType']= $this->uploader_map_to_pay_type($value['uploader']); //付费方式
  34. $video_list[$key] = $value;
  35. $jiesuo_chigua = M("chigua_vieo_jiesuo")->field("id")->where("user_id = '$uid' AND video_list_test_id='$v_id'")->find();
  36. if(!empty($jiesuo_chigua))
  37. {
  38. $value['isUnlock']=true; //是否解锁
  39. $video_list[$key] = $value;
  40. continue;
  41. }
  42. $jiesuo_other = M("free_riben_jiesuo")->field("id")->where("uid='$uid' AND v_id='$v_id'")->find();
  43. if(!empty($jiesuo_other))
  44. {
  45. $value['isUnlock']=true; //是否解锁
  46. $video_list[$key] = $value;
  47. continue;
  48. }
  49. }
  50. $data['code'] = '200';
  51. $data['message'] = 'ok';
  52. $data['all_num'] = M('video_list_test')->where("MATCH(china_title) AGAINST ('+\"$key_word\"' IN BOOLEAN MODE) AND uploader != '吃瓜'")->count();
  53. $data['data'] = $video_list;
  54. echo json_encode($data);
  55. if(!empty($video_list))
  56. {
  57. //记录查询次数,统计最新关键字
  58. $serch_count_info = M("search_count")->where("key_word='$key_word'")->find();
  59. if(!empty($serch_count_info))
  60. {
  61. //更新查询次数
  62. $serch_count_info['search_count']+=1;
  63. $serch_count_info['last_update_time']=date('Y-m-d H:i:s');
  64. $serch_count_info['pian_count']=$data['all_num'];
  65. M("search_count")->save($serch_count_info);
  66. $this->count_for_days($serch_count_info);
  67. die();
  68. }
  69. $serch_count_info['search_count']=1;
  70. $serch_count_info['last_update_time']=date('Y-m-d H:i:s');
  71. $serch_count_info['key_word']=$key_word;
  72. $serch_count_info['pian_count']=$data['all_num'];
  73. M("search_count")->add($serch_count_info);
  74. $this->count_for_days($serch_count_info);
  75. }
  76. }//end fn
  77. /**
  78. * 统计每日流水
  79. * @return void
  80. */
  81. private function count_for_days($serch_count_info)
  82. {
  83. $serach_id = $serch_count_info['id'];
  84. $counrent_date = date('Y-m-d 00:00:00');
  85. $days_info = M("search_count_sub")->where("search_count_id='$serach_id' AND search_date='$counrent_date'")->find();
  86. if(!empty($days_info))
  87. {
  88. //更新
  89. $id = $days_info['id'];
  90. $sub_info = $days_info;
  91. $sub_info['search_count']+=1;
  92. $sub_info['pian_count']= $serch_count_info['pian_count'];
  93. M("search_count_sub")->where("id='$id'")->save($sub_info);
  94. die();
  95. }
  96. $sub_info['search_count_id'] = $serach_id;
  97. $sub_info['search_date'] = $counrent_date;
  98. $sub_info['search_count'] = 1;
  99. $sub_info['pian_count']= $serch_count_info['pian_count'];
  100. M("search_count_sub")->add($sub_info);
  101. }
  102. /**
  103. * 查询热门10条关键字
  104. * @return void
  105. */
  106. public function query_key_word_top_10()
  107. {
  108. $this->addHeaders(); //添加头部请求
  109. $top_10_data = M("search_count")->order("search_count DESC")->LIMIT(10)->select();
  110. $data['code'] = '200';
  111. $data['message'] = 'ok';
  112. $data['data'] = $top_10_data;
  113. echo json_encode($data);
  114. }
  115. }