addHeaders(); //添加头部请求 $uid = $_POST['uid']; $retun_info['current'] = M("game_bet_qishu")->field("id,bet_time,bet_jiang,bet_jie_zhi")->where("bet_hit=0")->find(); $pre_info = M("game_bet_qishu")->field("id,bet_result,bet_jiang,bet_zhong_jian,bet_jiang_rd,bet_zhong_jian_rd")->where("bet_hit=1")->find(); //处理中奖人数 $pre_info['bet_jiang']=$pre_info['bet_jiang_rd']; $pre_info['bet_zhong_jian']=$pre_info['bet_zhong_jian_rd']; unset($pre_info['bet_jiang_rd']); unset($pre_info['bet_zhong_jian_rd']); $retun_info['pre'] = $pre_info; $data['isFen'] = 'no'; $is_fen = M("game_user_fenjin")->where("uid = '$uid'")->getField("uid"); if(!empty($is_fen)) { $data['isFen'] = 'yes'; //被封禁 } $data['code'] = '200'; $data['message'] = 'ok'; $data['data'] = $retun_info; echo json_encode($data); } /** * 查询列表 * @return void */ public function query_game_list() { $this->addHeaders(); //添加头部请求 $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户 $uid = $user_info['id']; //用户id $page = $_POST['page']; $one_size = empty($_POST['pageSize']) ? 30 : $_POST['pageSize']; //每頁30行記錄 $page_one = ($page - 1) * $one_size; //期数列表 $data_list = M("game_bet_qishu")->field("id,bet_time,bet_jie_zhi,bet_result,bet_hit,bet_jiang,bet_zhong_jian,bet_jiang_rd,bet_zhong_jian_rd")->order("bet_time DESC")->LIMIT($page_one, $one_size)->select(); $data_list = $this->hand_touchu($data_list,$uid); $data['code'] = '200'; $data['message'] = 'ok'; $data['user_coin'] = $user_info['gold_coins_number']; $data['data'] = $data_list; $data['all_num'] = M("game_bet_qishu")->field("id,bet_time,bet_result,bet_jiang,bet_zhong_jian")->count(); echo json_encode($data); } /** * 查询投注列表 * @return void */ public function query_touzhu_list() { $this->addHeaders(); //添加头部请求 $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户 $uid = $user_info['id']; //用户id $page = $_POST['page']; $one_size = empty($_POST['pageSize']) ? 30 : $_POST['pageSize']; //每頁30行記錄 $page_one = ($page - 1) * $one_size; //我投注的期数 $tempList = M("game_bet_touzhu")->where("uid='$uid'")->distinct(true)->field('qishu_id')->select(); $qishu_ids = array_column($tempList,'qishu_id'); $sql_charu = ""; foreach ($qishu_ids as $key1 => $value1) { $duifang_id = $value1;; $xianzhi_one = " or id='$duifang_id'"; $sql_charu .= $xianzhi_one; } //期数列表 $data_list = M("game_bet_qishu") ->field("id,bet_time,bet_jie_zhi,bet_result,bet_hit,bet_jiang,bet_zhong_jian,bet_jiang_rd,bet_zhong_jian_rd") ->where("id=0 $sql_charu") ->order("bet_time DESC") ->LIMIT($page_one, $one_size) ->select(); $data_list = $this->hand_touchu($data_list,$uid); $data['code'] = '200'; $data['message'] = 'ok'; $data['user_coin'] = $user_info['gold_coins_number']; $data['data'] = $data_list; $data['all_num'] = M("game_bet_qishu")->field("id,bet_time,bet_result,bet_jiang,bet_zhong_jian") ->where("id=0 $sql_charu")->count(); echo json_encode($data); } private function hand_touchu($data_list,$uid) { foreach ($data_list as $key => $value) { if($value['bet_hit']!=0) { //处理中奖人数 $data_list[$key]['bet_jiang']=$value['bet_jiang_rd']; $data_list[$key]['bet_zhong_jian']=$value['bet_zhong_jian_rd']; unset($data_list[$key]['bet_jiang_rd']); unset($data_list[$key]['bet_zhong_jian_rd']); } $data_list[$key]['touzhu'] = null;//添加动态字段,存储投注列表 $qishu_id = $value['id']; $user_touzhu = M("game_bet_touzhu")->field("id,qishu_id,touzhu_type,touzhu_jin,shu_ying,yingli,touzhu_time")->where("qishu_id='$qishu_id' AND uid='$uid'")->order("touzhu_type")->select(); if (!empty($user_touzhu)) { $data_list[$key]['touzhu'] = $user_touzhu; } } //判断数组数组有2个0,则把上一期标记为正在开奖,状态为 -99 if(count($data_list)>=2 && $data_list[0]['bet_hit']=='0' && $data_list[1]['bet_hit']=='0') { $data_list[1]['bet_hit']="-99"; } return $data_list; } /** * 用户投注 * @return void */ public function bet_on() { $this->addHeaders(); //添加头部请求 $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户 $uid = $user_info['id']; //用户id $user_coins = $user_info['gold_coins_number']; $qishu_id = $_POST['qishu_id']; //期数id $coins = $_POST['coins']; //投注金额 $type = $_POST['type']; //投注类型 //检查 if (!ctype_digit($coins) || !ctype_digit($type)) { $this->returnDataAndSendMsg("请输入整数参数"); die(); } $type_arrr = array('1','2','3'); if (!in_array($type,$type_arrr,true)) { $this->returnDataAndSendMsg("非法操作"); die(); } $is_fen = M("game_user_fenjin")->where("uid = '$uid'")->getField("uid"); if(!empty($is_fen)) { $this->returnDataAndSendMsg("账号违规封禁
无法进行游戏"); die(); } if($user_coins<$coins) { $this->returnDataAndSendMsg("余额不足"); die(); } //期数 $qishu_info = M("game_bet_qishu")->where("id = '$qishu_id'")->find(); if (empty($qishu_info)) { $this->returnDataAndSendMsg("非法操作"); die(); } $jiezhi_time = strtotime($qishu_info['bet_jie_zhi']);//截至投注时间 $current_time =time(); if ($current_time >= $jiezhi_time) { $this->returnDataAndSendMsg("投注时间已截止"); die(); } //复投只能5次 $touzhu_count = M("game_bet_touzhu")->field("id")->where("uid='$uid' AND qishu_id='$qishu_id' AND touzhu_type='$type'")->count(); if(!empty($touzhu_count) && $touzhu_count>=5) { $this->returnDataAndSendMsg("同一类型动物投注次数以超过5次"); die(); } $this->count_bet_on($qishu_id,$type,$coins,$uid); $rs = M("user_info")->where("id='$uid' AND gold_coins_number=$user_coins")->setDec("gold_coins_number",$coins); if(!$rs) { $this->returnDataAndSendMsg("投注失败,请稍后重试"); die(); } //保存 $save_info['qishu_id'] = $qishu_id; $save_info['uid'] = $uid; $save_info['touzhu_type'] = $type; $save_info['touzhu_jin'] = $coins; $save_info['u_ip'] = $this->getIp(); $user_weizhi=$this->get_user_ip_info($save_info['u_ip']); if($user_weizhi['code']=="200" && !empty($user_weizhi['data']['region'])){ $save_info['u_ip_addr']=$user_weizhi['data']['region']."省".$user_weizhi['data']['city']."市 ".$user_weizhi['data']['isp']; }else{ $save_info['u_ip_addr']="暂无"; } $save_info['touzhu_time'] = date('Y-m-d H:i:s'); $rs = M("game_bet_touzhu")->add($save_info); if(!$rs) { M("user_info")->where("id='$uid' AND gold_coins_number=$user_coins")->setInc("gold_coins_number",$coins); //回滚用户金额 $this->returnDataAndSendMsg("投注失败,请稍后重试"); die(); } //更新统计 M("game_bet_qishu")->where("id = '$qishu_id'")->setInc("bet_amount",$coins); M("game_bet_qishu")->where("id = '$qishu_id'")->setInc("bet_count",1); $data['code'] = '200'; $data['message'] = 'ok'; $data['data'] =$rs; echo json_encode($data); //统计 $this->touzhu_tongji_for_day($uid,$coins,0); $this->xiaofei_detail($uid,"幸运动物园下注","期数[$qishu_id],下注动物[$type]",$coins); } /** * 统计投注信息 * @param $qishu_id * @param $touzhu_type * @param $touzhu_coins * @return void */ private function count_bet_on($qishu_id,$touzhu_type,$touzhu_coins,$uid) { $game_count_info = M("game_bet_qishu_count")->where("qishu_id='$qishu_id' AND touzhu_leixing='$touzhu_type'")->find(); if(empty($game_count_info)) { //插入 $add_info['qishu_id'] = $qishu_id; $add_info['touzhu_leixing'] = $touzhu_type; $add_info['touzhu_renshu'] = 1; $add_info['touzhu_leixing_coins'] = $touzhu_coins; $add_info['last_updater'] = date('Y-m-d H:i:s'); $rs = M("game_bet_qishu_count")->add($add_info); if(!$rs) { M("game_bet_qishu_count")->where("qishu_id='$qishu_id' AND touzhu_leixing='$touzhu_type'")->setInc("error_coins",$touzhu_coins); $this->returnDataAndSendMsg("投注失败,请稍后重试"); die(); } return; } //更新 $id = $game_count_info["id"]; $old_coins = $game_count_info["touzhu_leixing_coins"]; //金额 $old_renshu = $game_count_info["touzhu_renshu"]; //投注人数 // $temp_renshu = M("game_bet_touzhu")->where("qishu_id = '$qishu_id' AND touzhu_type = '$touzhu_type'")->distinct(true)->field('uid')->select(); // $update_info['touzhu_renshu'] = count($temp_renshu); //投注人数 $temp_renshu = M("game_bet_touzhu")->where("uid='$uid' AND qishu_id = '$qishu_id' AND touzhu_type = '$touzhu_type'")->find(); if(empty($temp_renshu)) { $update_info['touzhu_renshu'] = $old_renshu+1; } $update_info['touzhu_leixing_coins'] = $old_coins+$touzhu_coins; $rs = M("game_bet_qishu_count")->where("id='$id' AND touzhu_leixing_coins='$old_coins'")->save($update_info); if(!$rs) { M("game_bet_qishu_count")->where("qishu_id='$qishu_id' AND touzhu_leixing='$touzhu_type'")->setInc("error_coins",$touzhu_coins); $this->returnDataAndSendMsg("投注失败,请稍后重试"); die(); } } public function test() { $this->addHeaders(); $uid = $_POST['uid']; $qishu_id = $_POST['qishu_id']; //期数id $coins = $_POST['coins']; //投注金额 $type = $_POST['type']; //投注类型 $this->count_bet_on($qishu_id,$type,$coins,$uid); $data['code'] = '200'; $data['message'] = 'ok'; echo json_encode($data); } /** * 获取提款账号 * @return void */ public function get_card() { $this->addHeaders(); //添加头部请求 $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户 $uid = $user_info['id']; //用户id $data['code'] = '200'; $data['message'] = 'ok'; $data['data'] = M("game_user_card")->where("uid='$uid'")->find(); echo json_encode($data); } /** * 保存提款账号 * @return void */ public function save_card() { $this->addHeaders(); //添加头部请求 $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户 $uid = $user_info['id']; //用户id $name = $_POST['name']; $card_num = $_POST['cardNum']; $bank = $_POST['bank']; if (empty($name) || empty($card_num) || empty($bank) || !ctype_digit($card_num)) { $this->returnDataAndSendMsg("请正确填写收款信息"); die(); } //重复添加 $check_info = M("game_user_card")->field("id")->where("name_='$name' AND card_num='$card_num'")->find(); if(!empty($check_info)) { $this->returnDataAndSendMsg("卡片重复"); die(); } $save_info['uid'] = $uid; $save_info['name_'] = $name; $save_info['card_num'] = $card_num; $save_info['bank_'] = $bank; $card_info = M("game_user_card")->field("id")->where("uid='$uid'")->find(); if (empty($card_info)) { $rs = M("game_user_card")->add($save_info); } else { $rs = M("game_user_card")->where("uid='$uid'")->save($save_info); } $data['code'] = '200'; $data['message'] = 'ok'; $data['data'] = $rs; echo json_encode($data); } /** * 用户提现 * @return void */ public function tx() { $this->addHeaders(); //添加头部请求 $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户 $uid = $user_info['id']; //用户id //判断用户是否被封禁 $is_fen = M("game_user_fenjin")->where("uid = '$uid'")->getField("uid"); if(!empty($is_fen)) { $this->returnDataAndSendMsg("违规封禁(如有疑问请联系客服)"); die(); } //用户余额 $user_coins = $user_info['gold_coins_number']; $money = $_POST['money']; //提现金额 if (empty($money) || !ctype_digit($money)) { $this->returnDataAndSendMsg("请正确填写正确金额"); die(); } if($user_coins<$money) { $this->returnDataAndSendMsg("余额不足"); die(); } //控制提现规则:保证消费金额必须大于消费金额。不管历史数据 $can_tx_amount = M("game_user_tixian_count")->where("uid='$uid'")->sum("can_tixian"); $tx_count = M("game_user_tixian_count")->where("uid='$uid'")->sum("tx_count"); //累计提现金额 if(empty($can_tx_amount) || $can_tx_amount<=0) { //重来没有下注过 $this->returnDataAndSendMsg("为防止恶意洗钱,请全额投注后在申请提现"); die(); } if($can_tx_amount-$tx_count-$money<0) { //重来没有下注过 $this->returnDataAndSendMsg("为了避免洗钱,提款需全额投注后方可提款"); die(); } $current_date = date('Y-m-d'); $start_time = $current_date.' 00:00:00'; $end_time = $current_date.' 23:59:59'; //当天提现总额 $totalAmount = M("game_user_tixian")->where("uid='$uid' AND apply_time>='$start_time' AND apply_time<='$end_time'") ->sum('amount_'); if(!empty($totalAmount) && $totalAmount+$money>=100000)//十万 { $this->returnDataAndSendMsg("已超出当日提现最大提现额度"); die(); } //提现需要间隔1个小时 $check_info = M("game_user_tixian")->where("uid='$uid'")->order("id DESC")->find(); if(!empty($check_info)) { $tx_time = $check_info['apply_time']; $now_time = time(); if($now_time-strtotime($tx_time)<1*60*60) { $this->returnDataAndSendMsg("提款需间隔1小时"); die(); } } $rs = M("user_info")->where("id='$uid' AND gold_coins_number=$user_coins")->setDec("gold_coins_number",$money); if(!$rs) { $this->returnDataAndSendMsg("提现失败,请稍后重试"); die(); } //保存 $save_info['uid'] = $uid; $save_info['amount_'] = $money; $save_info['apply_time'] = date("Y-m-d H:i:s"); $save_info['status_'] = 0; $save_info['tongji'] = 0; $save_info['dakuan_result'] = '打款审核中'; $rs = M("game_user_tixian")->add($save_info); //累加提现金额 $tx_count_info = M("game_user_tixian_count")->where("uid='$uid'")->find(); $tx_id = $tx_count_info['id']; $tx_count = $tx_count_info['tx_count']; //提现汇总 $rs = M("game_user_tixian_count")->where("id='$tx_id' AND tx_count=$tx_count")->setInc("tx_count",$money); $data['code'] = '200'; $data['message'] = 'ok'; $data['data'] =$rs; echo json_encode($data); //提现统计 $this->tx_tongji_for_day($uid,$money); } /** * 提现列表 * @return void */ public function query_tx_list() { $this->addHeaders(); //添加头部请求 $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户 $uid = $user_info['id']; //用户id $page = $_POST['page']; $one_size = empty($_POST['pageSize']) ? 30 : $_POST['pageSize']; //每頁30行記錄 $page_one = ($page - 1) * $one_size; $data_list = M("game_user_tixian")->where("uid='$uid'")->order("apply_time DESC")->LIMIT($page_one, $one_size)->select(); $data['code'] = '200'; $data['message'] = 'ok'; $data['user_coin'] = $user_info['gold_coins_number']; $data['data'] = $data_list; $data['all_num'] = M("game_user_tixian")->where("uid='$uid'")->order("apply_time DESC")->count(); echo json_encode($data); } /** * 删除统计数据,只保留当前期和上一期。 * @return void */ public function del_qishu_count() { $this->addHeaders(); //添加头部请求 $qishu_arry = M("game_bet_qishu")->where("bet_hit in ('0','1')")->field("id")->select(); $string = implode(',', array_column($qishu_arry,'id')); $rs = M("game_bet_qishu_count")->where("qishu_id NOT IN ($string)")->delete(); $data['code'] = '200'; $data['message'] = 'ok'; $data['data'] = $string; echo json_encode($data); } }