175 lines
6.1 KiB
PHP
175 lines
6.1 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: ddcai
|
|
* Date: 2018/6/11
|
|
* Time: 13:40
|
|
*/
|
|
|
|
class gzhq_lottery extends gzhq_base{
|
|
|
|
//提交订单
|
|
public function lottery_act(){
|
|
$return_arr = array(
|
|
"ga" => 'game_txt_tip',
|
|
"code" => 1,
|
|
"gd" => array(
|
|
'uid'=>0,
|
|
'msg'=>"fail"
|
|
)
|
|
);
|
|
|
|
$redis_conn = $this->arr['server']->redis_pool->get();
|
|
$mysql_conn = $this->arr['server']->mysql_pool->get();
|
|
$tmp_user_info = $this->arr['server']->get_user_by_fd($this->arr['fd']);
|
|
if($tmp_user_info['uid']) {//如果用户登陆正常
|
|
$uid = $tmp_user_info['uid'];
|
|
$ip = $this->arr['ip'];
|
|
$lottery_id = $this->arr['d']["lottery_id"]; //任务ID
|
|
if( empty($lottery_id) ){
|
|
$return_arr["gd"]["msg"] = "数据不能为空";
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}
|
|
|
|
$user_prop = get_game_user_prop($uid,$mysql_conn,$redis_conn);//用户属性
|
|
|
|
//任务数据
|
|
$lottery_info = $GLOBALS["SYS_FLOWER_LOTTERY"][$lottery_id];
|
|
if(!$lottery_info){
|
|
$return_arr["gd"]["msg"] = "获取数据出错";
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}
|
|
/*if($user_prop['grade']<$lottery_info['grade']){
|
|
$return_arr["gd"]["msg"] = "你的等级不够,不能接该任务";
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}
|
|
if($user_prop['grade']>$lottery_info['grade2']){
|
|
$return_arr["gd"]["msg"] = "你的等级已超过该任务等级,不能接该任务";
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}*/
|
|
|
|
//判断任务是否已完成
|
|
$daytime = date("Y-m-d",time());
|
|
$user_lottery = get_user_lottery($uid,$lottery_id,$daytime,$mysql_conn,$redis_conn);
|
|
if($user_lottery['num']>=$lottery_info['num'] || $user_lottery['is_ok'] == 2 ){
|
|
$return_arr["gd"]["msg"] = "该任务已完成";
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}
|
|
|
|
//判断物品数量
|
|
$check_goods = check_user_good($uid,$lottery_info['goods'],$mysql_conn,$redis_conn);
|
|
if(!$check_goods){
|
|
$return_arr["gd"]["msg"] = "物品不足,无法提交!";
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}
|
|
$del_goods = del_user_good($uid,$ip,$lottery_info['goods'],$mysql_conn,$redis_conn);
|
|
if(!$del_goods){
|
|
$return_arr["gd"]["msg"] = "扣除物品失败";
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}
|
|
|
|
//检测仓库
|
|
$is_store = get_store_good_pos($uid,$mysql_conn,$redis_conn);
|
|
if(!$is_store){
|
|
$return_arr["gd"]["msg"] = "仓库空间不足";
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}
|
|
|
|
if(($user_lottery['num']+1)==$lottery_info['num']){//已完成订单
|
|
$up_arr = array(
|
|
//'get_good' => json_encode($lottery_info['goods3'],JSON_UNESCAPED_UNICODE), //实际获取物品
|
|
'num' => ($user_lottery['num']+1), //接任务的次数
|
|
'is_ok' => 2, //是否已完成任务
|
|
'up_time' => date("Y-m-d H:i:s",time()), //完成时间
|
|
'up_ip' => $ip //完成时IP
|
|
);
|
|
}else{//未完成订单
|
|
$up_arr = array(
|
|
//'get_good' => json_encode($lottery_info['goods3'],JSON_UNESCAPED_UNICODE), //实际获取物品
|
|
'num' => ($user_lottery['num']+1) //接任务的次数
|
|
);
|
|
}
|
|
|
|
$num = $user_lottery['num']+1;
|
|
|
|
$info = update_game_user_lottery($uid,$lottery_id,$daytime,$up_arr,$mysql_conn,$redis_conn);
|
|
if($info){
|
|
|
|
//循环奖励
|
|
if($lottery_info['goods3']){
|
|
foreach($lottery_info['goods3'] as $k=>$v){
|
|
//入仓库
|
|
$goods_arr = array(
|
|
'good_id' => $v['id'],
|
|
'num' => $v['num']?$v['num']:1
|
|
);
|
|
store_good_data_save($uid,$goods_arr,$ip,$mysql_conn,$redis_conn);
|
|
}
|
|
}
|
|
|
|
//更新用户完成订单总数
|
|
$num_arr = array(
|
|
'order_num' => 'order_num+1', //完成的订单总数
|
|
'up_time' => date("Y-m-d H:i:s",time()) //数据更新时间
|
|
);
|
|
update_game_num($uid,$num_arr,$mysql_conn,$redis_conn);
|
|
|
|
//获取新数据
|
|
$new_user_lottery = get_user_lottery($uid,$lottery_id,$daytime,$mysql_conn,$redis_conn);
|
|
|
|
$info = array(
|
|
'lottery_id' => $lottery_id,
|
|
'task_uid' => $new_user_lottery['task_uid'],
|
|
'task_uid_pic' => $new_user_lottery['task_uid_pic'],//'分配任务用户头像'
|
|
'type' => $new_user_lottery['type'],//'任务类型',
|
|
'is_ok' => $new_user_lottery['is_ok'],//'是否已完成任务',
|
|
'num' => $num,
|
|
'msg' => '提交订单成功'
|
|
);
|
|
|
|
$return_arr = array(
|
|
"ga" => 'lottery_act_bak',
|
|
"code" => 1,
|
|
"gd" => $info?$info:''
|
|
);
|
|
}else{
|
|
$return_arr["gd"]["msg"] = "提交订单失败";
|
|
}
|
|
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
$this->arr['server']->send_user($this->arr['fd'],$return_arr);
|
|
return true;
|
|
}else{
|
|
echo("用户不在线:fd=".$this->arr['fd']."||uid=".$tmp_user_info['uid']);
|
|
}
|
|
$this->arr['server']->redis_pool->put($redis_conn);
|
|
$this->arr['server']->mysql_pool->put($mysql_conn);
|
|
return true;
|
|
}
|
|
|
|
} |