flower_svr/ajax_class/ajax_init.class.php
2021-06-11 16:09:56 +08:00

307 lines
11 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Created by PhpStorm.
* User: ddcai
* Date: 2018/6/11
* Time: 13:40
*/
class ajax_init extends ajax_base{
//请求登陆
public function login(){
//登录返回的信息
$return_arr = array(
'ga' => 'HTTP_ERROR_BAK',
"code" => 2,//1成功2失败,3停服维护
"msg" => '登陆失败' //登陆信息提示
);
//接收数据
$mydata["code"] = $this->arr['d']["code"];//登录时获取的 code
$mydata["thirdid"] = intval($this->arr['d']["tid"]); //第三方登录id 微信
$mydata["reid"] = intval($this->arr['d']["reid"]); //推荐人
$mydata["source_id"] = intval($this->arr['d']["sid"]); //渠道
$mydata["source_id2"] = intval($this->arr['d']["sid2"]); //渠道2
$mydata['sys'] = $this->arr['d']['sys'];//操作系统
if(!empty($mydata['sys'])){
$mydata['sys'] = check_tel_sys($mydata['sys']);
}else{
$mydata['sys'] = 3;
}
//查用户的信息
$tmp_arr = array(
"uid","user_name","pwd","user_nickname","user_avatar","sex",
"reg_time","reg_ip","email","tel",
"referee_id","referee_time","source_id","source_id2"
);
if($mydata["thirdid"]==1) {//如果是微信登陆
}else if($mydata["thirdid"]==2) {//如果是其它的注册方式
//查这个用户在系统里是否有信息(即用户是否有注册过系统)
$tmp_where = " and `key2`='".md5($mydata["code"])."' ";
$tmp_wx_info = get_info($GLOBALS['conn'],'game_member_third',array('uid'),$tmp_where);
if( !isset($tmp_wx_info['uid']) || $tmp_wx_info['uid']<1){//用户不存在,则注册
//用户注册
$tmp_user = array(
'gzhq_nickname' => '玩家'.cai_get_pwd(6),
'gzhq_pwd' => md5(cai_get_pwd(8)),
'gzhq_name' => 'HQ@'.THIS_DATETIME.cai_get_pwd(4),
'gzhq_sex' => 3,
'gzhq_reid' => $mydata["reid"],
'gzhq_wximg' => WEBPATH_DIR_INC.'media/images/default_avatar.png',
'gzhq_country' => '',
'gzhq_province' => '',
'gzhq_city' => '',
'ip' => $this->arr['ip'],
'gzhq_tel' => '',
'source_id' => $mydata["source_id"],
'source_id2' => $mydata["source_id2"],
'sys_name' => $mydata['sys'],
);
//进行新用户的插入
$tmp_user_info = add_user_reg($tmp_user);
if(!$tmp_user_info){
$return_arr['msg'] = '注册出错';
die(return_ajax($return_arr));
}else{
//如果注册新用户成功则存用户的第三方登陆数据
$add_arr = array(
'uid' => $tmp_user_info['uid'],// '用户ID',
'key' => $mydata["code"],// '第三方唯一键2',
'key2' => md5($mydata["code"]),//'第三方唯一键',
'type' => 2,//'第三方应用ID',
'add_time' => $tmp_user_info['reg_time'],//'绑定时间',
'add_ip' => $tmp_user_info['reg_ip'],//'绑定时IP',
'info' => '',// '第三方特别信息',
);
$add_rs = add_record($GLOBALS['conn'],'game_member_third',$add_arr);
if(!isset($add_rs['id'])){//如果添加失败,则记录出错
sys_log_write_content( 'game_member_third:'.json_encode($add_arr) ,"error_log","add_sql");
unset($add_arr,$add_rs);
}
}
}else{//如果用户已经注册了
$tmp_user_info = get_uinfo_by_uid($tmp_wx_info["uid"],$tmp_arr);
}
}else{
$return_arr['msg'] = '注册方式出错222';
die(return_ajax($return_arr));
}
//查一下这个用户是否有被封号
//记录用户的初始化信息
$tmp_arr = array(
'uid'=>$tmp_user_info['uid']//'用户ID',
);
if(!add_member_prop($tmp_arr)){
$return_arr['msg'] = '添加区相关信息出错';
sys_log_write_content( 'add_member_prop:'.json_encode($tmp_arr).$return_arr['msg'] ,"error_log","game_member_prop");
die(return_ajax($return_arr));
}
//初始化用户花田信息
$tmp_arr = array(
'uid'=>$tmp_user_info['uid']//'用户ID',
);
add_member_flower_field($tmp_arr);
//初始化用户仓库信息
$tmp_arr = array(
'uid'=>$tmp_user_info['uid']//'用户ID',
);
add_member_store($tmp_arr);
//初始化用户数据统计数据
$tmp_arr = array(
'uid'=>$tmp_user_info['uid']//'用户ID',
);
add_game_num($tmp_arr);
//登陆信息的记录
$tmp_arr = array(
'uid' => $tmp_user_info['uid'],//玩家ID
'user_name' => $tmp_user_info['user_name'],//玩家名称,
'reg_time' => $tmp_user_info['reg_time'],//注册时间,
'reg_ip' => $tmp_user_info['reg_ip'],//注册IP
'referee_id' => $tmp_user_info['referee_id'],//推荐人ID,
'referee_time' => $tmp_user_info['referee_time'],//推荐时间,
'source_id' => $tmp_user_info['source_id'],//渠道ID,
'source_id2' => $tmp_user_info['source_id2'],//渠道ID2,
'login_time' => date("Y-m-d H:i:s",THIS_DATETIME),//登陆时间,
'login_ip' => $this->arr['ip']//登陆IP
);
if(!add_user_area_login($tmp_arr)){//如果添加失败
$return_arr['msg'] = '检查登陆信息出错';
sys_log_write_content( 'add_user_area_login:'.json_encode($tmp_arr).$return_arr['msg'] ,"error_log","login_error_log");
die(return_ajax($return_arr));
}
//获取可进行长连接的服务器地址
$tmp_server_url = get_server_adder($GLOBALS['myredis'],$tmp_user_info['uid']);
if(!$tmp_server_url){
sys_log_write_content( '获取服务器长连接地址出错:' ,"error_log","login_error_log");
}
//生成用户的连接token
$tmp_token = array(
'uid' =>$tmp_user_info['uid'],//用户的uid
'ip'=>$this->arr['ip'],//ip,
'time'=>THIS_DATETIME,
);
$tmp_token = set_login_token($tmp_token);
//设置用户可以长连接
$tmp_web_login = array(
"ws"=>$tmp_server_url,//"游戏URL:端口",
"time"=>THIS_DATETIME,
"uid"=>$tmp_user_info['uid'],//"用户ID",
);
set_web_login($GLOBALS['myredis'],$tmp_user_info['uid'],$tmp_web_login);
//登录返回的信息
$return_arr = array(
"ga" => 'HTTP_LOGIN_OK',
"code" => 1,
"gd" => array(
'info' => array(
'sid' => intval($tmp_user_info['source_id']),
'sid2' => intval($tmp_user_info['source_id2']),
'uid' => $tmp_user_info['uid'],
'name' => emoji_decode($tmp_user_info['user_name']),
'nickname' => $tmp_user_info['user_nickname'],
'pic' => $tmp_user_info['user_avatar'],
'sex' => $tmp_user_info['sex'],
'time' => THIS_DATETIME,//登陆时间
'token' => $tmp_token
),
'ws' => array(
'ws' => $tmp_web_login['ws'],
'time' => THIS_DATETIME
)
)
);
die(return_ajax($return_arr));
}
//获取玩家某些物品
public function send_good(){
$uid = $this->arr['token']['uid'];
$goods_arr = $this->arr['d']['good_id']; //物品id数组
if(empty($goods_arr)){
$return_arr["gd"]["msg"] = "物品数据不能为空";
die(return_ajax($return_arr));
}
$good_id = implode(",", "'".$goods_arr."'");//物品id
$arr = " `good_id`,`num` ";//需返回的物品字段
$is_sub = 'good_id'; //指定 数组key
$tmp_data = array();
foreach($goods_arr as $k=>$v){
$tmp_data[$v] = array(
'id'=>$v,
'num'=>0
);
}
$data = get_game_user_goods_all($uid,$good_id,$arr,$is_sub,$GLOBALS["conn"],$GLOBALS['myredis']);
$info = array();
if($data){
foreach($tmp_data as $k=>$v){
foreach($data as $i=>$j){
if($k == $i){
$info[$k] = array(
'id' => $k,
'num' => $j['num']
);
break;
}else{
$info[$k] = array(
'id' => $k,
'num' => 0
);
}
}
}
}else{
$info = $tmp_data;
}
$return_arr = array(
"ga" => 'send_good_bak',
"code" => 1,
"gd" => $info?$info:''
);
die(return_ajax($return_arr));
}
//获取工厂数据
public function send_factory(){
$uid = $this->arr['token']['uid'];
$arr = " `mf_id`,`grade`,`open_seat_num`,`goods_num`,`being_goods`,`queue_goods`,`succ_goods` ";//需返回的物品字段
$is_sub = 'mf_id'; //指定 数组key
$info = get_game_user_factory_all($uid,$arr,$is_sub,$GLOBALS["conn"],$GLOBALS['myredis']);
$return_arr = array(
"ga" => 'send_factory_bak',
"code" => 1,
"gd" => $info?$info:''
);
die(return_ajax($return_arr));
}
//获取当天订单列表
public function lottery_info(){
$uid = $this->arr['token']['uid'];
$daytime = date("Y-m-d",time());
$info = get_lottery_data($uid,$daytime,$GLOBALS["conn"],$GLOBALS['myredis']);
$return_arr = array(
"ga" => 'lottery_info_bak',
"code" => 1,
"gd" => $info?$info:''
);
die(return_ajax($return_arr));
}
//获取用户数据统计 (即种植的花卉、完成的订单、制造的商品等成就)
public function user_count_info(){
$uid = $this->arr['token']['uid'];
$info = get_user_count_info($uid,$GLOBALS["conn"],$GLOBALS['myredis']);
$return_arr = array(
"ga" => 'user_count_info_bak',
"code" => 1,
"gd" => $info?$info:''
);
die(return_ajax($return_arr));
}
//获取游戏数据配置
public function data_config_info(){
$return_arr = array(
"ga" => 'data_config_info_bak',
"code" => 1,
"gd" => array()
);
//获取游戏配置的数据
foreach($GLOBALS['DATA_CONFIF_ARR'] as $val){
if(!empty($val)){
if($val=='sys_flower_member_2'){
$return_arr['gd'][strtoupper('sys_flower_member')] = $GLOBALS[strtoupper($val)];
}else{
$return_arr['gd'][strtoupper($val)] = $GLOBALS[strtoupper($val)];
}
}
}
die(return_ajax($return_arr));
}
}