edu_video_info.auto_cache.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. class edu_video_info_auto_cache extends auto_cache{
  3. private $key = "edu:video:info:";
  4. //参数有:
  5. public function load($param)
  6. {
  7. $this->key .= md5(serialize($param));
  8. $list = $GLOBALS['cache']->get($this->key);
  9. $key_bf = $this->key.'_bf';
  10. if($list === false)
  11. {
  12. $is_ok = $GLOBALS['cache']->set_lock($this->key);
  13. if(!$is_ok){
  14. $list = $GLOBALS['cache']->get($key_bf,true);
  15. }else{
  16. $video_id=intval($param['video_id']);
  17. $sql = "SELECT v.id AS room_id,v.user_id,ev.tags,ev.deal_id,ev.edu_cate_id,ev.video_code,ev.is_verify FROM ".DB_PREFIX."video as v
  18. LEFT JOIN ".DB_PREFIX."edu_video_info as ev ON ev.video_id = v.id where v.live_in in (1,3) and v.id=".$video_id."";
  19. $list = $GLOBALS['db']->getRow($sql,true,true);
  20. if(!$list){
  21. $sql = "SELECT v.id AS room_id,v.user_id,ev.tags,ev.deal_id,ev.edu_cate_id,ev.video_code,ev.is_verify FROM ".DB_PREFIX."video_history as v
  22. LEFT JOIN ".DB_PREFIX."edu_video_info as ev ON ev.video_id = v.id where v.group_id!='' and v.is_delete = 0 and v.is_del_vod = 0 and v.id=".$video_id."";
  23. $list = $GLOBALS['db']->getRow($sql,true,true);
  24. }
  25. $GLOBALS['cache']->set($this->key,$list,10,true);
  26. $GLOBALS['cache']->set($key_bf, $list, 86400, true);//备份
  27. }
  28. }
  29. if ($list == false) $list = array();
  30. return $list;
  31. }
  32. public function rm($param)
  33. {
  34. $GLOBALS['cache']->rm($this->key);
  35. }
  36. public function clear_all()
  37. {
  38. $GLOBALS['cache']->rm($this->key);
  39. }
  40. }
  41. ?>