1493 lines
42 KiB
PHP
1493 lines
42 KiB
PHP
<?PHP
|
||
|
||
/**
|
||
*功能:加密解密函数
|
||
*@param string $string 要加密字符串
|
||
*@param string $operation 动作 DECODE 解密, ENCODE 加密
|
||
*@param string $key 加密key
|
||
*@param int expiry
|
||
*@return string 加密或解密的字符串
|
||
*/
|
||
function uc_authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
|
||
$ckey_length = 4;
|
||
$key = md5($key ? $key : '12R,sf2$1U5)kk#UI9.wiu');
|
||
$keya = md5(substr($key, 0, 16));
|
||
$keyb = md5(substr($key, 16, 16));
|
||
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
|
||
|
||
$cryptkey = $keya.md5($keya.$keyc);
|
||
$key_length = strlen($cryptkey);
|
||
|
||
$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
|
||
$string_length = strlen($string);
|
||
|
||
$result = '';
|
||
$box = range(0, 255);
|
||
|
||
$rndkey = array();
|
||
for($i = 0; $i <= 255; $i++) {
|
||
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
|
||
}
|
||
|
||
for($j = $i = 0; $i < 256; $i++) {
|
||
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
|
||
$tmp = $box[$i];
|
||
$box[$i] = $box[$j];
|
||
$box[$j] = $tmp;
|
||
}
|
||
|
||
for($a = $j = $i = 0; $i < $string_length; $i++) {
|
||
$a = ($a + 1) % 256;
|
||
$j = ($j + $box[$a]) % 256;
|
||
$tmp = $box[$a];
|
||
$box[$a] = $box[$j];
|
||
$box[$j] = $tmp;
|
||
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
|
||
}
|
||
|
||
if($operation == 'DECODE') {
|
||
if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
|
||
return substr($result, 26);
|
||
} else {
|
||
return '';
|
||
}
|
||
} else {
|
||
return $keyc.str_replace('=', '', base64_encode($result));
|
||
}
|
||
}
|
||
|
||
//获取用户信息
|
||
function get_uinfo_by_uid($uid,$arr=array(),$conn=false){
|
||
if(empty($uid)){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
$where = " and uid=".$uid;
|
||
$data = get_info($conn,"game_member",$arr,$where);
|
||
return $data;
|
||
}
|
||
|
||
//获取用户信息
|
||
function get_uinfo_by_name($myname,$arr=array(),$conn=false){
|
||
if(empty($myname)){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
$where = " and user_name='".$myname."'";
|
||
$data = get_info($conn,"game_member",$arr,$where);
|
||
return $data;
|
||
}
|
||
|
||
//获取用户信息
|
||
function get_uinfo_by_tel($myname,$arr=array(),$conn=false){
|
||
if(empty($myname)){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
$where = " and tel='".$myname."'";
|
||
$data = get_info($conn,"game_member",$arr,$where);
|
||
return $data;
|
||
}
|
||
|
||
//通过用户unionid获取用户的uid
|
||
function get_uid_by_unionid($unionid,$conn=false){
|
||
if(empty($unionid)){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
$where = " and key2='".$unionid."'";
|
||
$data = get_info($conn,"game_member_third",array('uid'),$where);
|
||
if(isset($data['uid'])){
|
||
return $data['uid'];
|
||
}
|
||
return false;
|
||
}
|
||
|
||
//产生玩家的uid
|
||
function get_user_uid($conn=false){
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
while(true){
|
||
$num = mt_rand(100000000,999999999);
|
||
//如果UID不存在,则跳出并返回
|
||
if(!exist_check($conn,"game_member",array('uid'=>$num))){
|
||
break;
|
||
}
|
||
}
|
||
return $num;
|
||
}
|
||
|
||
|
||
//匹配敏感字库
|
||
function get_sensitive_font($str,$conn=false){
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
|
||
$sql = "select name from ".get_table("game_global_sensitive_font")." WHERE LOCATE(name,'".$str."')";
|
||
$rs = $conn->Query($sql);
|
||
if($rs){
|
||
$row=$conn->FetchArray($rs);
|
||
return $row;
|
||
}else{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* 错误消息输出
|
||
*/
|
||
function json_error_msg($str,$issucc=0){
|
||
$return_arr = array(
|
||
'code' => $issucc?1:2,
|
||
'msg' => $str
|
||
);
|
||
$string= return_ajax($return_arr);
|
||
die($string);
|
||
}
|
||
|
||
|
||
/**
|
||
* 获取当月第一天及最后一天
|
||
*/
|
||
function getthemonth($date){
|
||
$firstday = date('Y-m-01', strtotime($date));//当月的第一天
|
||
$lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));//最后一天
|
||
return array($firstday,$lastday);
|
||
}
|
||
|
||
/**
|
||
* 获取当年第一天及最后一天
|
||
*/
|
||
function gettheyeat($date){
|
||
$firstday = date('Y-01-01', strtotime($date));//当年的第一天
|
||
$lastday = date('Y-m-d', strtotime("$firstday +12 month -1 day"));//最年一天
|
||
return array($firstday,$lastday);
|
||
}
|
||
|
||
/**
|
||
* 返回每个月具体天数的数据
|
||
* $str 总天数
|
||
* $typestr1 参数1 是否有值
|
||
* $typestr2 当月具体的天数
|
||
*/
|
||
function get_num_list($str,$typestr1,$typestr2){
|
||
$data = '';
|
||
for($i=0;$i<$str;$i++){
|
||
$data[$i] = array( $typestr1=>0, $typestr2=>$i+1 );
|
||
}
|
||
return $data;
|
||
}
|
||
|
||
/**
|
||
* 返回每天具体每小时的数据
|
||
*/
|
||
function get_num_list_house($typestr1,$typestr2){
|
||
$data = '';
|
||
for($i=0;$i<24;$i++){
|
||
$data[$i] = array( $typestr1=>0, $typestr2=>($i<10?'0'.$i:$i) );
|
||
}
|
||
return $data;
|
||
}
|
||
|
||
/**
|
||
* 获取一年中每周的开始日期和结束日期的方法
|
||
*/
|
||
function get_week($year){
|
||
$year_start = $year . "-01-01";
|
||
$year_end = $year . "-12-31";
|
||
$startday = strtotime($year_start);
|
||
if (intval(date('N', $startday)) != '1') {
|
||
$startday=strtotime("next Monday",$startday);//获取年第一周的起始日期时间戳
|
||
}
|
||
$year_monday = date("Y-m-d", $startday);//获取年第一周的起始日期
|
||
$endday = strtotime($year_end);
|
||
$end_d = intval(date('N', $endday));//最后一天周几
|
||
if ($end_d != '7') {
|
||
$less_d = 7-$end_d;
|
||
$endday=strtotime("+$less_d day",$endday);//获取年最后一周的结束日期时间戳
|
||
}
|
||
$num = intval(date('W', $endday));//一年的总周数
|
||
for ($i = 1; $i <= $num; $i++) {
|
||
$j = $i -1;
|
||
$start_date = date("Y-m-d", strtotime("$year_monday +$j week "));
|
||
$end_day = date("Y-m-d", strtotime("$start_date +6 day"));
|
||
if($i<=9){
|
||
$i = '0'.$i;
|
||
}
|
||
$week_array[$i] = array(
|
||
$start_date,
|
||
$end_day,
|
||
);
|
||
}
|
||
return $week_array;
|
||
}
|
||
|
||
/**
|
||
* 获取用户第三方绑定信息
|
||
*/
|
||
function get_third_uinfo_uid($userid,$type,$arr=array(),$conn=false){
|
||
if(empty($userid)){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
$type = $type?intval($type):1;
|
||
$where = " and uid=".$userid." and type=".$type;
|
||
$data = get_info($conn,"game_member_third",$arr,$where);
|
||
return $data?$data:false;
|
||
}
|
||
|
||
|
||
//=====================================================================
|
||
//==============begin redis里的操作=====================================
|
||
//随机返回给客户端连接的服务器
|
||
function get_server_adder($myredis,$uid=0){
|
||
if(empty($uid)){
|
||
return false;
|
||
}
|
||
$user_key = USER_LOGIN_KEY.$uid;;
|
||
//判断用户是否已经有长连接,如果有,则返回当前的长连接节点给他
|
||
if($myredis->exists($user_key)){
|
||
$tmp_val = $myredis->get($user_key);
|
||
if(!empty($tmp_val)){
|
||
$tmp_val = json_decode($tmp_val,true);
|
||
if(!empty($tmp_val['ws'])){
|
||
return $tmp_val['ws'];
|
||
}
|
||
}
|
||
}
|
||
$tmp_return = array_rand(SYS_SERVER_NODE,1);
|
||
return SYS_SERVER_NODE[$tmp_return];
|
||
}
|
||
|
||
|
||
//设置用户WEB登陆
|
||
/*
|
||
array(
|
||
"ws" =>,//"游戏URL:端口",
|
||
"time" =>登陆时间,
|
||
"uid" =>,//"用户ID",
|
||
)
|
||
*/
|
||
function set_web_login($myredis,$uid,$data){
|
||
//用户登入完的key
|
||
$user_key = USER_LOGIN_KEY.$uid;
|
||
return $myredis->set($user_key,json_encode($data));//设置登陆的cookies;
|
||
}
|
||
|
||
//获取用户WEB登陆
|
||
/* 输入参数:
|
||
* $uid 用户ID
|
||
* 返回参数:
|
||
*/
|
||
function get_web_login($myredis,$uid){
|
||
//用户登入完的key
|
||
$user_key = USER_LOGIN_KEY.$uid;
|
||
if($myredis->exists($user_key)){
|
||
$tmp_val = $myredis->get($user_key);
|
||
if(!empty($tmp_val)){
|
||
return json_decode($tmp_val,true);
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
//T掉前一个在线用户
|
||
function del_user_redis($myredis,$uid){
|
||
//用户登入完的key
|
||
$user_key = USER_LOGIN_KEY.$uid;
|
||
//判断用户是否有登陆,以及有建立长连接
|
||
if($myredis->exists($user_key)){
|
||
return $myredis->delete($user_key);//删掉原来的找连接
|
||
}
|
||
return false;
|
||
}
|
||
|
||
|
||
//生成加密的临时登陆key
|
||
/*
|
||
$arr = array(
|
||
'uid' =>$tmp_user_info['uid'],//用户的uid
|
||
'ip'=>$ip,//ip连接时的ip
|
||
'time'=>THIS_DATETIME//连接时的时间截
|
||
);
|
||
*/
|
||
function set_login_token($arr){
|
||
$arr = json_encode($arr);
|
||
return base64_encode(uc_authcode($arr, 'ENCODE'));
|
||
}
|
||
//解密临时登陆key
|
||
function get_login_token($str){
|
||
if($str){
|
||
$val = uc_authcode(base64_decode($str),'DECODE');
|
||
if(!empty($val)){
|
||
$val = json_decode($val,true);
|
||
}else{
|
||
$val = false;
|
||
}
|
||
return $val;
|
||
}else{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
|
||
//把信息插入redis队列
|
||
/*
|
||
$myredis=>redis连接,
|
||
$key=>队列key,
|
||
$data=>array(
|
||
't'=>生成消息的时间,
|
||
'uid'=>用户的UID,
|
||
'a'=>要执行的动作,
|
||
'm'=>要执行的模块,
|
||
'd'=>相关的数据(数组)
|
||
)
|
||
*/
|
||
function set_reids_push($myredis,$key,$data){
|
||
if(!isset($data['t']) || !isset($data['uid']) || !isset($data['a']) || !isset($data['m']) || !isset($data['d']) ){
|
||
return false;
|
||
}
|
||
$tmp_return = $myredis->LPUSH($key,json_encode($data));
|
||
if($tmp_return){
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
//返回消息队列尾的消息
|
||
/*
|
||
$myredis=>redis连接,
|
||
$key=>队列key
|
||
返回的内容
|
||
$data=>array(
|
||
't'=>生成消息的时间,
|
||
'uid'=>用户的UID,
|
||
'a'=>要执行的动作,
|
||
'm'=>要执行的模块,
|
||
'd'=>相关的数据(数组)
|
||
)
|
||
or
|
||
false
|
||
*/
|
||
function get_reids_push($myredis,$key){
|
||
if( empty($key) ){
|
||
return false;
|
||
}
|
||
$data = $myredis->RPOP($key);
|
||
if(!empty($data)){
|
||
$data = json_decode($data,true);
|
||
if(isset($data['uid']) && !empty($data['uid']) ){
|
||
return $data;
|
||
}else{
|
||
return false;
|
||
}
|
||
}else{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
//返回消息队列头的消息
|
||
/*
|
||
$myredis=>redis连接,
|
||
$key=>队列key
|
||
返回的内容
|
||
$data=>array(
|
||
't'=>生成消息的时间,
|
||
'uid'=>用户的UID,
|
||
'a'=>要执行的动作,
|
||
'm'=>要执行的模块,
|
||
'd'=>相关的数据(数组)
|
||
)
|
||
or
|
||
false
|
||
*/
|
||
function get_reids_push2($myredis,$key){
|
||
if( empty($key) ){
|
||
return false;
|
||
}
|
||
$data = $myredis->LPOP($key);
|
||
if(!empty($data)){
|
||
$data = json_decode($data,true);
|
||
if(isset($data['uid']) && !empty($data['uid']) ){
|
||
return $data;
|
||
}else{
|
||
return false;
|
||
}
|
||
}else{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
|
||
//==============end redis里的操作=======================================
|
||
//=====================================================================
|
||
|
||
|
||
|
||
//返回大的二维码地址
|
||
function get_ewm($uid){
|
||
//底图
|
||
$tmp_share_bg = "../uploadfile/share_nul.png";
|
||
$area_id = AREA_ID;
|
||
$file_path = WEBPATH_DIR_INC.'uploadfile/ewm/member/my'.$uid.'_'.$area_id.'.png';
|
||
//判断是否已经有生成过这个用户的分享图片
|
||
if( file_exists($file_path) ){
|
||
return $file_path;
|
||
}
|
||
$myurl = WEBPATH_DIR_INC.'?reuserid='.$uid.'&areaid='.$area_id;
|
||
$myfile = new zdeFile();
|
||
$PNG_TEMP_DIR = "../uploadfile/ewm/member/";
|
||
if (!file_exists($PNG_TEMP_DIR)){ $myfile->mkDir($PNG_TEMP_DIR); }
|
||
$filename = 'my'.$uid.'_'.$area_id.'.png';
|
||
$filename2 = $PNG_TEMP_DIR.$filename;
|
||
if( $myfile->touch($filename2,true) ){
|
||
QRcode::png($myurl, $filename2, 'H', '10', 2);
|
||
$logo = '../uploadfile/logo.png';
|
||
$QR = imagecreatefromstring(file_get_contents($filename2));
|
||
$QR_width = imagesx($QR);
|
||
$QR_height = imagesy($QR);
|
||
if($logo !== FALSE) {
|
||
$logo = imagecreatefromstring(file_get_contents($logo));
|
||
$logo_width = imagesx($logo);
|
||
$logo_height = imagesy($logo);
|
||
$logo_qr_width = $QR_width / 5;
|
||
$scale = $logo_width / $logo_qr_width;
|
||
$logo_qr_height = $logo_height / $scale;
|
||
$from_width = ($QR_width - $logo_qr_width) / 2;
|
||
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
|
||
}
|
||
imagepng($QR,$filename2);
|
||
unset($QR,$logo);
|
||
|
||
//合成底图
|
||
$tmp_qr = imagecreatefromstring(file_get_contents($filename2));
|
||
$tmp_qr_width = imagesx($tmp_qr);
|
||
$tmp_qr_height = imagesy($tmp_qr);
|
||
|
||
$tmp_share_bg = imagecreatefromstring(file_get_contents($tmp_share_bg));
|
||
$share_bg_width = imagesx($tmp_share_bg);
|
||
$share_bg_height = imagesy($tmp_share_bg);
|
||
$from_width = ($share_bg_width-240)/2;//二维码放的起点X
|
||
|
||
imagecopyresampled($tmp_share_bg, $tmp_qr, $from_width, 272, 0, 0, 240, 240, $tmp_qr_width, $tmp_qr_height);
|
||
imagepng($tmp_share_bg,$filename2);
|
||
unset($tmp_qr,$tmp_share_bg);
|
||
|
||
$myimg = WEBPATH_DIR_INC.'uploadfile/ewm/member/'.basename($filename);
|
||
}
|
||
return $myimg;
|
||
}
|
||
|
||
//返回小二维码地址
|
||
function get_ewm2($uid){
|
||
$area_id = AREA_ID;
|
||
$file_path = WEBPATH_DIR_INC.'uploadfile/ewm2/member/min_my'.$uid.'_'.$area_id.'.png';
|
||
//判断是否已经有生成过这个用户的分享图片
|
||
if(file_exists($file_path) ){
|
||
return $file_path;
|
||
}
|
||
$myurl = WEBPATH_DIR_INC.'?reuserid='.$uid.'&areaid='.$area_id;
|
||
$myfile = new zdeFile();
|
||
$PNG_TEMP_DIR = "../uploadfile/ewm2/member/";
|
||
if (!file_exists($PNG_TEMP_DIR)){ $myfile->mkDir($PNG_TEMP_DIR); }
|
||
$filename = 'min_my'.$uid.'_'.$area_id.'.png';
|
||
$filename2 = $PNG_TEMP_DIR.$filename;
|
||
if( $myfile->touch($filename2,true) ){
|
||
QRcode::png($myurl, $filename2, 'H', '10', 2);
|
||
$logo = '../uploadfile/logo.png';
|
||
$QR = imagecreatefromstring(file_get_contents($filename2));
|
||
$QR_width = imagesx($QR);
|
||
$QR_height = imagesy($QR);
|
||
if($logo !== FALSE) {
|
||
$logo = imagecreatefromstring(file_get_contents($logo));
|
||
$logo_width = imagesx($logo);
|
||
$logo_height = imagesy($logo);
|
||
$logo_qr_width = $QR_width / 5;
|
||
$scale = $logo_width / $logo_qr_width;
|
||
$logo_qr_height = $logo_height / $scale;
|
||
$from_width = ($QR_width - $logo_qr_width) / 2;
|
||
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
|
||
}
|
||
imagepng($QR,$filename2);
|
||
}
|
||
$myimg = WEBPATH_DIR_INC.'uploadfile/ewm2/member/'.basename($filename);
|
||
|
||
return $myimg;
|
||
}
|
||
|
||
|
||
//从某个范围获取N个不同的随机数
|
||
/*
|
||
* $begin=>开始数,
|
||
* $end=>结束数,
|
||
* $arr=>array(),要返回的数组
|
||
* $num=>要求的个数,
|
||
* $diff=true(是否要求不同,默认是要求不同的)
|
||
*/
|
||
function get_mt_rand($begin,$end,$arr,$num,$diff=true){
|
||
$tmp_arr = mt_rand($begin,$end);
|
||
if(!in_array($tmp_arr,$arr)){
|
||
$arr[] = $tmp_arr;
|
||
$num--;
|
||
}
|
||
if($num<1){
|
||
return $arr;
|
||
}else{
|
||
return get_mt_rand($begin,$end,$arr,$num,$diff);
|
||
}
|
||
}
|
||
|
||
//添加会员登陆日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>玩家ID,
|
||
'user_name'=>'自己定义名称',
|
||
'reg_time'=>'注册时间',
|
||
'reg_ip'=>'注册IP',
|
||
'login_time'=>'登陆时间',
|
||
'login_ip'=>'登陆IP',
|
||
'source_id'=>'渠道ID',
|
||
'source_id2'=>'渠道ID2',
|
||
'referee_id'=>'推荐人ID',
|
||
'referee_time'=>'推荐时间',
|
||
)
|
||
*/
|
||
function add_user_area_login($arr,$conn=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
//存一下登陆日志
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'user_name'=>$arr['user_name'],
|
||
'reg_time'=>$arr['reg_time'],
|
||
'reg_ip'=>$arr['reg_ip'],
|
||
'login_time'=>$arr['login_time'],
|
||
'login_ip'=>$arr['login_ip'],
|
||
'source_id'=>$arr['source_id'],
|
||
'source_id2'=>$arr['source_id2'],
|
||
'referee_id'=>$arr['referee_id'],
|
||
'referee_time'=>$arr['referee_time']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_login_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_login_log:'.json_encode($add_arr) ,"error_log","add_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//初始化用户属性数据
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
);
|
||
*/
|
||
function add_member_prop($arr,$conn=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
//开启事务
|
||
$conn->BeginRoll();
|
||
|
||
$tmp_check = array('uid'=>$arr['uid']);
|
||
//如果未初始化用户的数据,则进行初始化
|
||
if(!exist_check($conn,'game_member_prop',$tmp_check)){
|
||
//用户属性
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],//'用户ID',
|
||
'have_gold'=>$GLOBALS['SYS_FLOWER_MEMBER_2'][1]['num'],// 可用宝石数
|
||
'used_gold'=>0,// 已用宝石数
|
||
'grade'=>1,// 当前等级
|
||
'exp'=>0,// 当前等级经验
|
||
'up_time'=>date("Y-m-d H:i:s",time())// 升级时间
|
||
);
|
||
$add_rs = add_record($conn,'game_member_prop',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_prop:'.json_encode($add_arr) ,"error_log","add_sql");
|
||
unset($add_arr,$add_rs);
|
||
$conn->RollBack();
|
||
return false;
|
||
}
|
||
}
|
||
$conn->CommitRoll();
|
||
return true;
|
||
}
|
||
|
||
//初始化用户数据统计数据
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
);
|
||
*/
|
||
function add_game_num($arr,$conn=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
//开启事务
|
||
$conn->BeginRoll();
|
||
|
||
$tmp_check = array('uid'=>$arr['uid']);
|
||
//如果未初始化用户的数据,则进行初始化
|
||
if(!exist_check($conn,'game_num',$tmp_check)){
|
||
//用户属性
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],//'用户ID',
|
||
'flower_num'=>0,// 种植的花卉总数
|
||
'order_num'=>0,// 完成的订单总数
|
||
'goods_num'=>0,// 制造的商品总数
|
||
'up_time'=>date("Y-m-d H:i:s",time())// 数据更新时间
|
||
);
|
||
$add_rs = add_record($conn,'game_num',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_num:'.json_encode($add_arr) ,"error_log","add_game_num_sql");
|
||
unset($add_arr,$add_rs);
|
||
$conn->RollBack();
|
||
return false;
|
||
}
|
||
}
|
||
$conn->CommitRoll();
|
||
return true;
|
||
}
|
||
|
||
//初始化用户花田数据
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
);
|
||
*/
|
||
function add_member_flower_field($arr,$conn=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
//开启事务
|
||
$conn->BeginRoll();
|
||
|
||
$tmp_check = array( 'uid' => $arr['uid'] );
|
||
|
||
//如果未初始化用户的数据,则进行初始化
|
||
if(!exist_check($conn,'game_flower_field',$tmp_check)){
|
||
//用户花田数据
|
||
//for($i = 1; $i <= $GLOBALS['SYS_FLOWER_MEMBER_2'][1]['field']; $i++) {
|
||
for($i = 1; $i <= 9; $i++) {
|
||
$add_arr = array(
|
||
'uid' => $arr['uid'],//'用户ID',
|
||
'ff_id' => 'ht0'.$i,// 花田编号
|
||
'ff_vip' => ($i==1?2:1),// 花田等级
|
||
'ff_exp' => 0,// 花田的经验值
|
||
'w_uid' => '0',// 浇水ID
|
||
'w_time' => 0,// 浇水总节省时间
|
||
'w_js_time' => '0000-00-00 00:00:00',// 可浇水时间
|
||
'w_produce' => 0,// 浇水增加的产量
|
||
'w_rate' => 0,// 浇水增加的产量百份比
|
||
'fat_uid' => '0',// 施肥ID
|
||
'fat_time' => '0000-00-00 00:00:00',// 施肥时间
|
||
'fat_produce'=> 0,// 施肥增加的产量
|
||
'fat_rate' => 0,// 施肥增加的产量百份比
|
||
'seed_num' => '0',// 种子编号
|
||
'ger_time' => '0000-00-00 00:00:00',// 发芽时间
|
||
'grow_time' => '0000-00-00 00:00:00',// 生长时间
|
||
'bud_time' => '0000-00-00 00:00:00',// 花苞时间
|
||
'mature_time'=> '0000-00-00 00:00:00',// 成熟时间
|
||
'grow_static'=> 0 // 生长状态
|
||
);
|
||
$add_rs = add_record($conn,'game_flower_field',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_flower_field:'.json_encode($add_arr) ,"error_log","add_game_flower_field_sql");
|
||
unset($add_arr,$add_rs);
|
||
$conn->RollBack();
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
$conn->CommitRoll();
|
||
return true;
|
||
}
|
||
|
||
//添加用户工厂数据
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
);
|
||
*/
|
||
function add_member_factory($arr,$conn=false){
|
||
//如果用户ID为空
|
||
if( empty($arr['uid']) ){
|
||
return false;
|
||
}
|
||
//工厂编号
|
||
if( empty($arr['mf_id']) ){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
//开启事务
|
||
$conn->BeginRoll();
|
||
|
||
$tmp_check = array( 'uid' => $arr['uid'],'mf_id' => $arr['mf_id'] );
|
||
//如果未初始化用户的数据,则进行初始化
|
||
if(!exist_check($conn,'game_member_factory',$tmp_check)){
|
||
|
||
$add_arr = array(
|
||
'uid' => $arr['uid'],//'用户ID',
|
||
'mf_id' => $arr['mf_id'],//'工厂编号',
|
||
'grade' => $arr['grade'],
|
||
'exp' => 0, //当前经验数
|
||
'open_seat_num' => $arr['open_seat_num'], //已开放生产位数量
|
||
'max_seat_num' => $arr['max_seat_num'], //最大生产位数量
|
||
'used_seat_num' => 0, //已用生产位数量
|
||
'goods_num' => 0, //已经生产的物品总数量
|
||
'being_goods' => '', //正在生产的物品
|
||
'queue_goods' => '', //准备生产的物品队列
|
||
'succ_goods' => '' //已完成生产的物品
|
||
);
|
||
$add_rs = add_record($conn,'game_member_factory',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_factory:'.json_encode($add_arr) ,"error_log","add_game_member_factory_sql");
|
||
unset($add_arr,$add_rs);
|
||
$conn->RollBack();
|
||
return false;
|
||
}
|
||
}
|
||
$conn->CommitRoll();
|
||
return true;
|
||
}
|
||
|
||
|
||
//初始化用户仓库数据
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
);
|
||
*/
|
||
function add_member_store($arr,$conn=false){
|
||
//如果用户ID为空
|
||
if( empty($arr['uid']) ){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
//开启事务
|
||
$conn->BeginRoll();
|
||
|
||
$tmp_check = array( 'uid' => $arr['uid'] );
|
||
//如果未初始化用户的数据,则进行初始化
|
||
if(!exist_check($conn,'game_member_store',$tmp_check)){
|
||
|
||
$add_arr = array(
|
||
'uid' => $arr['uid'],//'用户ID',
|
||
'grade' => 1,//仓库初始等级
|
||
'num' => $GLOBALS['SYS_STORE_INFO'][1]['num'],//仓库总大小
|
||
'num2' => 0,//仓库已使用数量
|
||
'num3' => $GLOBALS['SYS_STORE_INFO'][1]['num2'],//每格的大小
|
||
'name' => '1',//仓库名称
|
||
'add_time' => date("Y-m-d H:i:s",time()), //获得时间
|
||
'up_time' => '0000-00-00 00:00:00' // 修改时间
|
||
);
|
||
$add_rs = add_record($conn,'game_member_store',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_store:'.json_encode($add_arr) ,"error_log","add_game_member_store_sql");
|
||
unset($add_arr,$add_rs);
|
||
$conn->RollBack();
|
||
return false;
|
||
}
|
||
}
|
||
$conn->CommitRoll();
|
||
return true;
|
||
}
|
||
|
||
//添加用户到会员表
|
||
/*
|
||
$tmp_user= array(
|
||
'gzhq_nickname' => $user_obj['nickname'],
|
||
'gzhq_name' => 'HQ@'.THIS_DATETIME.cai_get_pwd(4),
|
||
'gzhq_pwd' => '',
|
||
'gzhq_sex' => $user_obj['sex'],
|
||
'gzhq_wximg' =>$user_obj['headimgurl'],
|
||
'gzhq_country'=>$user_obj['country'],
|
||
'gzhq_province'=>$user_obj['province'],
|
||
'gzhq_city'=>$user_obj['city'],
|
||
'ip'=>ip,
|
||
'gzhq_reid'=>推荐人ID
|
||
'source_id'=>'',
|
||
'source_id2'=>'',
|
||
'gzhq_email'=>'',
|
||
'gzhq_tel'=>'',
|
||
'sys_name'=>'手机系统ID',
|
||
);
|
||
*/
|
||
function add_user_reg($tmp_user,$conn=false){
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
//进行新用户的插入
|
||
$rearr = array(
|
||
'uid' => get_user_uid($conn),
|
||
'pwd' =>$tmp_user['gzhq_pwd'],//用户密码',
|
||
'user_name' =>$tmp_user['gzhq_name'],//'用户帐号',
|
||
'user_nickname' =>$tmp_user['gzhq_nickname'],//'用户昵称',
|
||
'user_avatar' =>$tmp_user['gzhq_wximg'],//'用户头像',
|
||
'sex' =>$tmp_user['gzhq_sex'],//'性别',
|
||
'reg_time' =>date("Y-m-d H:i:s",THIS_DATETIME),//'注册时间',
|
||
'reg_ip' =>$tmp_user['ip'],//注册时IP',
|
||
'login_num' =>0,//'登陆次数',
|
||
'last_time' =>date("Y-m-d H:i:s",THIS_DATETIME),//'最后登陆时间',
|
||
'last_ip' =>$tmp_user['ip'],//'最后登陆IP',
|
||
'country' =>$tmp_user['gzhq_country'],//'所在国家',
|
||
'province' =>$tmp_user['gzhq_province'],//'所在省',
|
||
'city' =>$tmp_user['gzhq_city'],//'所在市',
|
||
'area' =>'',//'所在区',
|
||
'email' =>$tmp_user['gzhq_email'],//'邮箱',
|
||
'tel' =>$tmp_user['gzhq_tel'],//'电话号码',
|
||
'address' =>'',//'联系地址',
|
||
'id_number' =>'',//'身份证号',
|
||
'true_name' =>'',//'真实姓名',
|
||
'referee_id' =>$tmp_user['gzhq_reid'],//'推荐人ID',
|
||
'referee_time' =>date("Y-m-d H:i:s",THIS_DATETIME),//'推荐时间',
|
||
'source_id' =>$tmp_user['source_id'],//'来源渠道ID',
|
||
'source_id2' =>$tmp_user['source_id2'],//'来源渠道ID2',
|
||
'wx'=>'',// 微信号
|
||
'is_open_wx'=>'1',//是否公开微信号',
|
||
'referee_num'=>'',//'推荐码',
|
||
'chat_ok'=>'1',//'聊天气泡',
|
||
'sys_ok'=>'1',//'系统广播',
|
||
'music_ok'=>'1',//'音效',
|
||
'day_ok'=>'1',//'推送提醒(白天)',
|
||
'night_ok'=>'1',//'推送提醒(晚上)',
|
||
'xz_ok'=>'1',//'用户星座',
|
||
'sign_info'=>'',//'个性签名',
|
||
'up_time'=>date("Y-m-d H:i:s",THIS_DATETIME),//'修改时间',
|
||
'sys_name' => $tmp_user['sys_name']
|
||
);
|
||
|
||
$tmp_record = add_record($conn,"game_member",$rearr,true);
|
||
if(isset($tmp_record['id'])) {
|
||
unset($tmp_user);
|
||
//初始化注册用户的信息(参照变量$tmp_arr)
|
||
$tmp_user_info = array(
|
||
"uid" => $rearr['uid'],
|
||
"user_name" => $rearr['user_name'],
|
||
"pwd" => $rearr['pwd'],
|
||
"user_nickname" => $rearr['user_nickname'],
|
||
"user_avatar" => $rearr['user_avatar'],
|
||
"sex" => $rearr['sex'],
|
||
"reg_time" => $rearr['reg_time'],
|
||
"reg_ip" => $rearr['reg_ip'],
|
||
"email" => $rearr['email'],
|
||
"tel" => $rearr['tel'],
|
||
"referee_id" => $rearr['referee_id'],
|
||
"referee_time" => $rearr['referee_time'],
|
||
"source_id" => $rearr['source_id'],
|
||
"source_id2" => $rearr['source_id2']
|
||
);
|
||
|
||
sys_log_write_content( 'game_member:'.$tmp_record['error'] ,"error_log","add_sql2");
|
||
|
||
return $tmp_user_info;
|
||
}else{
|
||
sys_log_write_content( 'game_member:'.json_encode($rearr) ,"error_log","add_sql");
|
||
return false;
|
||
}
|
||
}
|
||
|
||
//添加用户宝石日志
|
||
/*
|
||
$arr = array(
|
||
'data_id'=>'服务唯ID',
|
||
'uid'=>'用户ID',
|
||
'card_num'=>'数量',
|
||
'state'=>'处理状态', //1锁定,2取消,3成功
|
||
'create_time'=>'记录时间',
|
||
'create_ip'=>'记录IP',
|
||
'mod_time'=>'修改时间',
|
||
'mod_ip'=>'修改IP',
|
||
'info'=>'备注',
|
||
'pay_type'=>'消耗类型'//1获得,2失去
|
||
)
|
||
*/
|
||
function add_gold_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'data_id'=>$arr['data_id'],
|
||
'uid'=>$arr['uid'],
|
||
'card_num'=>$arr['card_num'],
|
||
'state'=>$arr['state'],
|
||
'create_time'=>$arr['create_time'],
|
||
'create_ip'=>$arr['create_ip'],
|
||
'mod_time'=>$arr['mod_time'],
|
||
'mod_ip'=>$arr['mod_ip'],
|
||
'info'=>$arr['info'],
|
||
'pay_type'=>$arr['pay_type']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_global_gold_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_global_gold_log:'.json_encode($add_arr) ,"error_log","add_game_global_gold_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
//添加用户等级升级日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'before_grade'=>'升级前的等级',
|
||
'after_grade'=>'升级后的等级',
|
||
'exp'=>'升级时所用的经验',
|
||
'gold'=>'升级时所用的宝石',
|
||
'add_time'=>'升级时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_grade_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'before_grade'=>$arr['before_grade'],
|
||
'after_grade'=>$arr['after_grade'],
|
||
'exp'=>$arr['exp'],
|
||
'gold'=>$arr['gold'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_grade_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_grade_log:'.json_encode($add_arr) ,"error_log","add_game_member_grade_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
//添加用户花田升级/解锁日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'ff_id'=>'花田ID',
|
||
'type'=>'类型',
|
||
'before_vip'=>'升级前的等级',
|
||
'after_vip'=>'升级后的等级',
|
||
'exp'=>'升级时所用的经验',
|
||
'gold'=>'升级时所用的宝石',
|
||
'add_time'=>'升级时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_flower_field_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'ff_id'=>$arr['ff_id'],
|
||
'type'=>$arr['type'],
|
||
'before_vip'=>$arr['before_vip'],
|
||
'after_vip'=>$arr['after_vip'],
|
||
'exp'=>$arr['exp'],
|
||
'gold'=>$arr['gold'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_flower_field_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_flower_field_log:'.json_encode($add_arr) ,"error_log","add_game_member_flower_field_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
//添加用户花田浇水日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'w_uid'=>'浇水好友ID',
|
||
'ff_id'=>'花田ID',
|
||
'w_id'=>'浇水id',
|
||
'w_vip'=>'浇水等级',
|
||
'w_exp'=>'增加花田经验数',
|
||
'w_exp2'=>'增加玩家经验数',
|
||
'w_t'=>'有效时长',
|
||
'add_time'=>'浇水时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_flower_water_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'w_uid'=>$arr['w_uid'],
|
||
'ff_id'=>$arr['ff_id'],
|
||
'w_id'=>$arr['w_id'],
|
||
'w_vip'=>$arr['w_vip'],
|
||
'w_exp'=>$arr['w_exp'],
|
||
'w_exp2'=>$arr['w_exp2'],
|
||
'w_t'=>$arr['w_t'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_flower_water_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_flower_water_log:'.json_encode($add_arr) ,"error_log","add_game_member_flower_water_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户花田施肥日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'f_uid'=>'施肥好友ID',
|
||
'ff_id'=>'花田ID',
|
||
'f_id'=>'施肥id',
|
||
'f_vip'=>'施肥等级',
|
||
'f_num'=>'增加产量',
|
||
'f_num2'=>'增加生长时间的百分比',
|
||
'f_exp'=>'增加花田经验数',
|
||
'f_exp2'=>'增加玩家经验数',
|
||
'f_t'=>'有效时长',
|
||
'add_time'=>'施肥时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_flower_ferti_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'f_uid'=>$arr['f_uid'],
|
||
'ff_id'=>$arr['ff_id'],
|
||
'f_id'=>$arr['f_id'],
|
||
'f_vip'=>$arr['f_vip'],
|
||
'f_num'=>$arr['f_num'],
|
||
'f_num2'=>$arr['f_num2'],
|
||
'f_exp'=>$arr['f_exp'],
|
||
'f_exp2'=>$arr['f_exp2'],
|
||
'f_t'=>$arr['f_t'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_flower_ferti_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_flower_ferti_log:'.json_encode($add_arr) ,"error_log","add_game_member_flower_ferti_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户花田种植日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'ff_id'=>'花田ID',
|
||
'ff_vip'=>'花田等级',
|
||
'gold'=>'所需宝石',
|
||
'seed_num'=>'种子编号',
|
||
'add_time'=>'种植时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_flower_plant_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'ff_id'=>$arr['ff_id'],
|
||
'ff_vip'=>$arr['ff_vip'],
|
||
'gold'=>$arr['gold'],
|
||
'seed_num'=>$arr['seed_num'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_flower_plant_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_flower_plant_log:'.json_encode($add_arr) ,"error_log","add_game_member_flower_plant_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户花田收获日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'ff_id'=>'花田ID',
|
||
'ff_vip'=>'花田等级',
|
||
'num'=>'收获数量',
|
||
'seed_num'=>'种子编号',
|
||
'add_time'=>'收获时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_flower_reward_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'ff_id'=>$arr['ff_id'],
|
||
'ff_vip'=>$arr['ff_vip'],
|
||
'num'=>$arr['num'],
|
||
'seed_num'=>$arr['seed_num'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_flower_reward_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_flower_reward_log:'.json_encode($add_arr) ,"error_log","add_game_member_flower_reward_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户经验日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'num'=>'数量',
|
||
'type'=>'类型',//1获得2失去
|
||
'add_time'=>'添加时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_exp_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'num'=>$arr['num'],
|
||
'type'=>$arr['type'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_exp_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_exp_log:'.json_encode($add_arr) ,"error_log","add_game_member_exp_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户用户物品使用日志(记录物品回收数据)
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'good_id'=>'物品ID',
|
||
'store_id'=>'仓库ID',
|
||
'pos'=>'仓库位置',
|
||
'num'=>'物品数量',
|
||
'add_time'=>'回收时间',
|
||
'add_ip'=>'回收时IP',
|
||
'info'=>'物品信息'
|
||
)
|
||
*/
|
||
function add_member_goods_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'good_id'=>$arr['good_id'],
|
||
'store_id'=>$arr['store_id'],
|
||
'pos'=>$arr['pos'],
|
||
'num'=>$arr['num'],
|
||
'add_time'=>$arr['add_time'],
|
||
'add_ip'=>$arr['add_ip'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_goods_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_goods_log:'.json_encode($add_arr) ,"error_log","add_game_member_goods_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户工厂升级/解锁日志数据表
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'mf_id'=>'工厂编号',
|
||
'type'=>'类型',
|
||
'before_vip'=>'升级前的等级',
|
||
'after_vip'=>'升级后的等级',
|
||
'exp'=>'升级时所用的经验',
|
||
'gold'=>'升级时所用的宝石',
|
||
'add_time'=>'升级时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_factory_upgrade_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'mf_id'=>$arr['mf_id'],
|
||
'type'=>$arr['type'],
|
||
'before_vip'=>$arr['before_vip'],
|
||
'after_vip'=>$arr['after_vip'],
|
||
'exp'=>$arr['exp'],
|
||
'gold'=>$arr['gold'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_factory_upgrade_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_factory_upgrade_log:'.json_encode($add_arr) ,"error_log","add_game_member_factory_upgrade_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户用户工厂生产日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'mf_id'=>'工厂编号',
|
||
'mf_vip'=>'工厂等级',
|
||
'gold'=>'所需宝石',
|
||
'goods_num'=>'物品编号',
|
||
'add_time'=>'生产时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_factory_output_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'mf_id'=>$arr['mf_id'],
|
||
'mf_vip'=>$arr['mf_vip'],
|
||
'gold'=>$arr['gold'],
|
||
'goods_num'=>$arr['goods_num'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_factory_output_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_factory_output_log:'.json_encode($add_arr) ,"error_log","add_game_member_factory_output_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户工厂收获日志
|
||
/*
|
||
$arr = array(
|
||
'uid'=>'用户ID',
|
||
'mf_id'=>'工厂编号',
|
||
'ff_vip'=>'工厂等级',
|
||
'num'=>'收获数量',
|
||
'goods_num'=>'物品编号',
|
||
'add_time'=>'收获时间',
|
||
'info'=>'备注'
|
||
)
|
||
*/
|
||
function add_member_factory_reward_log($arr,$conn=false,$myredis=false){
|
||
//如果用户ID为空
|
||
if(empty($arr['uid'])){
|
||
return false;
|
||
}
|
||
if(!$conn){
|
||
$conn = $GLOBALS["conn"];
|
||
}
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS["myredis"];
|
||
}
|
||
$add_arr = array(
|
||
'uid'=>$arr['uid'],
|
||
'mf_id'=>$arr['mf_id'],
|
||
'mf_vip'=>$arr['mf_vip'],
|
||
'num'=>$arr['num'],
|
||
'goods_num'=>$arr['goods_num'],
|
||
'add_time'=>$arr['add_time'],
|
||
'info'=>$arr['info']
|
||
);
|
||
|
||
$add_rs = add_record($conn,'game_member_factory_reward_log',$add_arr);
|
||
if(!isset($add_rs['id'])){//如果添加失败
|
||
sys_log_write_content( 'game_member_factory_reward_log:'.json_encode($add_arr) ,"error_log","add_game_member_factory_reward_log_sql");
|
||
unset($add_arr,$add_rs);
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
//请求游戏服务器给登陆的用户发送数据
|
||
/*输入参数
|
||
$uid=>的线用户uid,
|
||
$param=发送的参数,
|
||
$method='post',//请求方式 ,
|
||
$header=''//头部消息
|
||
返回执行的结果
|
||
*/
|
||
function do_act_post_websocket($uid,$param=null,$myredis=false,$method='post',$header=''){
|
||
if(!$myredis){
|
||
$myredis = $GLOBALS['myredis'];
|
||
}
|
||
//sys_log_write_content( $uid.'-----------' ,"error_log","do_act_post_websocket");
|
||
if($uid==1){//如果是系统的消息则需要发给所有的游戏服务器
|
||
$re = "";
|
||
foreach(SYS_SERVER_NODE as $key=>$val){
|
||
if(isset($val['ws']) && !empty($val['ws'])){
|
||
$re .= post_request("https://".$val['ws'], "token=" . $param);
|
||
}
|
||
}
|
||
return $re;
|
||
}else{
|
||
//获取用户登陆的游戏服务器
|
||
$tmp_login = get_web_login($myredis,$uid);
|
||
if($tmp_login){
|
||
$re = "";
|
||
if(!empty($tmp_login['ws']['ws'])){
|
||
//sys_log_write_content( $uid.':http://'.$tmp_login['ws']['ws'] ,"error_log","do_act_post_websocket");
|
||
$re = post_request("https://".$tmp_login['ws']['ws'], "token=" . $param);
|
||
return $re;
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|