| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | 
							- <?php
 
- namespace app\common\model;
 
- use think\Model;
 
- use Redis;
 
- /**
 
-  * 模型
 
-  */
 
- class Party extends Model
 
- {
 
-     // 开启自动写入时间戳字段
 
-     protected $autoWriteTimestamp = 'int';
 
-     // 定义时间戳字段名
 
-     protected $createTime = 'createtime';
 
-     protected $updateTime = 'updatetime';
 
-     /**
 
-      * 根据partyid 获取 party 信息
 
-      */
 
-     public function getPatyInfoByPartyId($party_id,$room_type,$type_id,$is_recommend,$all,$start = 0,$end = 9,$index) {
 
-         if(!$party_id) return false;
 
-         // 判断派对是否存在
 
-         $redis = new Redis();
 
-         $redisconfig = config("redis");
 
-         $redis->connect($redisconfig["host"], $redisconfig["port"]);
 
-         if ($redisconfig['redis_pwd']) {
 
-             $redis->auth($redisconfig['redis_pwd']);
 
-         }
 
-         if($redisconfig['redis_selectdb'] > 0){
 
-             $redis->select($redisconfig['redis_selectdb']);
 
-         }
 
-         if(!is_array($party_id)) {
 
-             return [];
 
-         }
 
-       
 
-         $redisPartyInfo = [];
 
-         foreach($party_id as $k => $v) {
 
-             $getredisPartyInfo = $redis->get($room_type.'_'.$k);
 
-             $foreachData = json_decode($getredisPartyInfo,true);
 
-             if(!$foreachData || $foreachData["is_close"] == 1) continue;
 
-             // if(!$foreachData || $foreachData["is_online"] == 0) continue;
 
-             if(!$foreachData || $foreachData["party_pass"] != '') continue;
 
-             $mod = isset($foreachData["party_type"])?intval($foreachData["party_type"])%5:1;
 
-             if(isset($foreachData["type_name"]) && $foreachData["type_name"]) {
 
-                 $type_name = $foreachData["type_name"];
 
-             } else {
 
-                 $type_name = "普通房";
 
-             }
 
-             $hasdata = false;
 
-             if($all == 1) {
 
-                 if($is_recommend == 1) {
 
-                     if($foreachData["is_recommend"] == 1) $hasdata = true;
 
-                 } else {
 
-                     $hasdata = true;
 
-                 }
 
-             } elseif($type_id > 0) {
 
-                 if($type_id == $foreachData["party_type"]) $hasdata = true;
 
-             }
 
-             if($foreachData["status"] != 1) $hasdata = false;
 
-             $hasdata && $redisPartyInfo[] = [
 
-                 "id" => $foreachData["id"],
 
-                 "party_id" => $foreachData["party_id"],
 
-                 "r_id" => $foreachData["party_id"],
 
-                 "party_name" => $foreachData["party_name"],
 
-                 "party_pass" => $foreachData["party_pass"]?$foreachData["party_pass"]:"",
 
-                 "party_hot" => $v,
 
-                 "party_logo" => $this->httpurl($foreachData["party_logo"]),
 
-                 "party_type" => $type_name,
 
-                 "avatar" => $room_type == 2 ? $foreachData["avatar"]:"",
 
-                 "party_type_color" => $mod == 0?5:$mod,
 
-                 "party_user" => isset($foreachData["party_user"]) ? array_values($foreachData["party_user"]) : [] // 当前麦位人头像
 
-             ];
 
-         }
 
-         $resdata = [];
 
-         if($index == 1) {
 
-             $num = $end - $start + 1;
 
-             $countData = count($redisPartyInfo);
 
-             if($num > $countData) $num = $countData;
 
-             if($redisPartyInfo) {
 
-                 $dataRand = array_rand($redisPartyInfo,$num);
 
-                 $dataRand = is_array($dataRand)?$dataRand:[$dataRand];
 
-                 if($redisPartyInfo) foreach($redisPartyInfo as $k => $v) if(in_array($k,$dataRand)) $resdata[] = $v;
 
-             }
 
-         } else {
 
-             if($redisPartyInfo) foreach($redisPartyInfo as $k => $v) if($k >= $start && $k <= $end) $resdata[] = $v;
 
-         }
 
-         return $resdata;
 
-     }
 
-     /**
 
-      * 判断当前url是否为全路径,并返回全路径
 
-      */
 
-     protected function httpurl($path) {
 
-         // 获取当前域名
 
-         if(strpos($path,'http://') === false && strpos($path,'https://') === false) {
 
-             $host = config("cos")['url'];
 
-             $url = $host.$path;
 
-         } else {
 
-             $url = $path;
 
-         }
 
-         return $url;
 
-     }
 
- }
 
 
  |