edu_select_video.auto_cache.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?php
  2. class edu_select_video_auto_cache extends auto_cache{
  3. private $key = "edu:select:video:";
  4. public function load($param)
  5. {
  6. $sex = intval($param['sex_type']);
  7. $city = strim($param['area_type']);
  8. $cate_id = intval($param['cate_id']);
  9. $has_private = intval($param['has_private']);//1:包括私密直播
  10. $is_classify = intval($param['is_classify']);//分类
  11. $order = strim($param['order']);//排序字段
  12. $sort = strim($param['sort']);//排序方式
  13. $limit= strim($param['limit']);//获取范围个数
  14. if ($city == '热门' || $city == 'null'){
  15. $city = '';
  16. }
  17. $this->key .= $sex . '_' . $city . '_' . $cate_id.'_'.$has_private . '_'.$is_classify;
  18. if($order){
  19. $this->key .= '_' . $order;
  20. }
  21. if($sort){
  22. $this->key .= '_' . $sort;
  23. }
  24. if($limit){
  25. $this->key .= '_' . $limit;
  26. }
  27. $key_bf = $this->key.'_bf';
  28. $list = $GLOBALS['cache']->get($this->key,true);
  29. if ($list === false) {
  30. $is_ok = $GLOBALS['cache']->set_lock($this->key);
  31. if(!$is_ok){
  32. $list = $GLOBALS['cache']->get($key_bf,true);
  33. }else{
  34. $m_config = load_auto_cache("m_config");//初始化手机端配置
  35. $has_is_authentication = intval($m_config['has_is_authentication'])?1:0;
  36. if($has_is_authentication&&$has_private==0){
  37. $sql = "SELECT v.id AS room_id, v.sort_num, v.group_id, v.user_id, v.city, v.title, v.cate_id, v.live_in, v.video_type, v.create_type, v.room_type,
  38. (v.robot_num + v.virtual_watch_number + v.watch_number) as watch_number, u.head_image,u.thumb_head_image,v.live_image, v.xpoint,v.ypoint,ev.tags,
  39. ev.is_verify,ev.deal_id,ev.edu_cate_id,ev.booking_class_id,u.v_type, u.v_icon, u.nick_name,u.user_level,v.is_live_pay,v.live_pay_type,v.live_fee,u.create_time as user_create_time FROM ".DB_PREFIX."video v
  40. LEFT JOIN ".DB_PREFIX."user u ON u.id = v.user_id LEFT JOIN ".DB_PREFIX."edu_video_info as ev ON ev.video_id = v.id
  41. where v.live_in in (1,3) and u.is_authentication = 2 and u.is_hot_on =0 and u.mobile != '13888888888' and u.mobile != '13999999999' ";
  42. }else{
  43. $sql = "SELECT v.id AS room_id, v.sort_num, v.group_id, v.user_id, v.city, v.title, v.cate_id, v.live_in, v.video_type, v.create_type, v.room_type,
  44. (v.robot_num + v.virtual_watch_number + v.watch_number) as watch_number, u.head_image,u.thumb_head_image,v.live_image, v.xpoint,v.ypoint,ev.tags,
  45. ev.is_verify,ev.deal_id,ev.edu_cate_id,ev.booking_class_id,u.v_type, u.v_icon, u.nick_name,u.user_level,v.is_live_pay,v.live_pay_type,v.live_fee,u.create_time as user_create_time FROM ".DB_PREFIX."video v
  46. LEFT JOIN ".DB_PREFIX."user u ON u.id = v.user_id LEFT JOIN ".DB_PREFIX."edu_video_info as ev ON ev.video_id = v.id
  47. where v.live_in in (1,3) and u.is_hot_on =0 and u.mobile != '13888888888' and u.mobile != '13999999999' ";
  48. }
  49. if($is_classify){
  50. $sql .= " and v.classified_id = ".$is_classify; //分类
  51. }
  52. if ($has_private == 1){
  53. $sql .= ' and v.room_type in (1,3)'; //1:私密直播;3:直播
  54. }else{
  55. $sql .= ' and v.room_type = 3'; //1:私密直播;3:直播
  56. }
  57. if ($sex == 1 || $sex == 2){
  58. $sql .= ' and v.sex = '.$sex;
  59. }
  60. if ($city != ''){
  61. $sql .= " and v.province = '".$city."'";
  62. }
  63. if ($cate_id > 0){
  64. $sql .= " and ev.edu_cate_id = '".$cate_id."'";
  65. }
  66. if($has_private != 1 && (defined('OPEN_ROOM_HIDE')&&OPEN_ROOM_HIDE==1)&&intval($m_config['open_room_hide'])==1){
  67. $sql.= " and v.province <> '火星' and v.province <>''";
  68. }
  69. if($order){
  70. $sql.=" order by v.".$order;
  71. if($sort){
  72. $sql.=" ".$sort;
  73. }
  74. }else{
  75. $sql .= " order by v.sort_num desc,v.sort desc";
  76. }
  77. if($limit){
  78. $sql .= " limit ".$limit."";
  79. }
  80. $list = $GLOBALS['db']->getAll($sql,true,true);
  81. foreach($list as $k=>$v){
  82. //判断用户是否为今日创建的新用户,是:1,否:0
  83. if (date('Y-m-d') == date('Y-m-d',$list[$k]['user_create_time']+3600*8)){
  84. $list[$k]['today_create'] = 1;
  85. }else{
  86. $list[$k]['today_create'] = 0;
  87. }
  88. if($v['live_image']==''){
  89. $list[$k]['live_image'] = get_spec_image($v['head_image']);
  90. $list[$k]['head_image'] = get_spec_image($v['head_image']);
  91. }else{
  92. $list[$k]['live_image'] = get_spec_image($v['live_image']);
  93. $list[$k]['head_image'] = get_spec_image($v['head_image'],150,150);
  94. }
  95. if ($v['thumb_head_image'] == ''){
  96. $list[$k]['thumb_head_image'] = get_spec_image($v['head_image'],150,150);
  97. }else{
  98. //$list[$k]['thumb_head_image'] = get_abs_img_root($v['thumb_head_image']);
  99. $list[$k]['thumb_head_image'] = get_spec_image($v['thumb_head_image'],150,150);
  100. }
  101. if(!$v['tags']){
  102. $list[$k]['tags'] = array();
  103. }else{
  104. $list[$k]['tags']=explode(',',$v['tags']);
  105. }
  106. $list[$k]['is_verify'] = intval($v['is_verify']);
  107. $list[$k]['deal_id'] = intval($v['deal_id']);
  108. $list[$k]['edu_cate_id'] = intval($v['edu_cate_id']);
  109. }
  110. $GLOBALS['cache']->set($this->key, $list, 10, true);
  111. $GLOBALS['cache']->set($key_bf, $list, 86400, true);//备份
  112. //echo $this->key;
  113. }
  114. }
  115. if ($list == false) $list = array();
  116. return $list;
  117. }
  118. public function rm()
  119. {
  120. //$GLOBALS['cache']->clear_by_name($this->key);
  121. }
  122. public function clear_all()
  123. {
  124. $GLOBALS['cache']->clear_by_name($this->key);
  125. }
  126. }
  127. ?>