在用戶發起成團,與用戶入團時需要保存其成團信息(主要是活動id與團長、團員openid),暫存在redis中,后期需要保存到sql中,以便查詢。
tuan_redis.php
<?php
include_once('/opt/*****ub/redis.php');//redis配置文件
$redis = new RedisClient;
$redis->connect(array('host'=>'127.0.0.1','port'=>6380));
$redis->selectDB(3);
function judgeTuan($openid,$act_id){
global $redis;
if($redis->get($act_id.$openid)){ //判斷是否已開過團
$tuan_yuan = $redis->get($act_id.$openid);
$people_arr = explode(',',$tuan_yuan);
return $people_arr[0]; //返回之前保存的團長openid(第一個)
}else{
return false; //返回false,之前未有過
}
}
function startTuan($openid,$act_id,$mediaID){ //保存成團信息
global $redis;
//$redis->set($act_id.$openid,$mediaID,86400*10);
$redis->set($act_id.$openid,$mediaID,3600*5); //測試保存5個小時(已$act_id.$openid為鍵名)
return $mediaID;
}
function joinTuan($p_openid,$act_id,$openid){ //保存參團人員信息
global $redis;
if($p_openid == $openid){
return 4; //掃自己本人發出的二維碼無效
}
$tuan_yuan = $redis->get($act_id.$p_openid);
$people_arr = explode(',',$tuan_yuan);
$peo_num = count($people_arr);
if($peo_num <= 9){ //八人團,加第一個圖片地址,為9(第一個為團長信息)
if(strpos($tuan_yuan,$openid) === false){
$tuan_yuan .= ','.$openid;
//$redis->set($act_id.$p_openid,$tuan_yuan,86400*10);
$redis->set($act_id.$p_openid,$tuan_yuan,3600*5); //測試保存5個小時
addTime($p_openid,$act_id,3600*5); //保存對應的入團時間
return 1; //進團成功
}else{
return 3; //已進過此團
}
}else{
return 2; //此團已滿
}
}
function addTime($openid,$act_id,$time){
global $redis;
$now_time = date('Y-m-d H:i:s');
$join_time = $redis->get($act_id.$openid.'time');
if($join_time){
$join_time .= ','.$now_time;
$redis->set($act_id.$openid.'time',$join_time,$time);
}else{
$redis->set($act_id.$openid.'time',$now_time,$time);
}
}