307 lines
11 KiB
PHP
307 lines
11 KiB
PHP
<?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));
|
||
}
|
||
|
||
} |