在用戶發(fā)起成團(tuán),與用戶入團(tuán)時(shí)需要保存其成團(tuán)信息(主要是活動(dòng)id與團(tuán)長、團(tuán)員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)){ //判斷是否已開過團(tuán)
$tuan_yuan = $redis->get($act_id.$openid);
$people_arr = explode(',',$tuan_yuan);
return $people_arr[0]; //返回之前保存的團(tuán)長openid(第一個(gè))
}else{
return false; //返回false,之前未有過
}
}
function startTuan($openid,$act_id,$mediaID){ //保存成團(tuán)信息
global $redis;
//$redis->set($act_id.$openid,$mediaID,86400*10);
$redis->set($act_id.$openid,$mediaID,3600*5); //測試保存5個(gè)小時(shí)(已$act_id.$openid為鍵名)
return $mediaID;
}
function joinTuan($p_openid,$act_id,$openid){ //保存參團(tuán)人員信息
global $redis;
if($p_openid == $openid){
return 4; //掃自己本人發(fā)出的二維碼無效
}
$tuan_yuan = $redis->get($act_id.$p_openid);
$people_arr = explode(',',$tuan_yuan);
$peo_num = count($people_arr);
if($peo_num <= 9){ //八人團(tuán),加第一個(gè)圖片地址,為9(第一個(gè)為團(tuán)長信息)
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個(gè)小時(shí)
addTime($p_openid,$act_id,3600*5); //保存對應(yīng)的入團(tuán)時(shí)間
return 1; //進(jìn)團(tuán)成功
}else{
return 3; //已進(jìn)過此團(tuán)
}
}else{
return 2; //此團(tuán)已滿
}
}
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);
}
}