isPost()){ $json_arr = decrypt_data(Request::instance()->post()); if($json_arr){ $username = trim($json_arr['username']); $password = trim($json_arr['password']); if(empty($username) || empty($password)){ return json(['Success' => 0, 'Msg' => '请填写账号密码']); } $find = Db::name('manager')->where(array('username' => $username, 'status' => 1))->find(); if($find){ if(think_ucenter_md5($password, UC_AUTH_KEY) === $find['password'] && $find['password']){ $user_log = array(); $user_log['user_id'] = $find['id']; $user_log['username'] = $find['username']; $user_log['nickname'] = $find['nickname']; $user_log['ip'] = getIP(); $user_log['client'] = 'PC或H5'; $user_log['create_time'] = time(); $user_log['remark'] = '登录'; Db::name('manager_log')->insert($user_log); $online_token = $this->create_online_token($find); $find['online_token'] = $online_token; $find['login_token'] = $online_token; $update = array(); $update['login_token'] = $online_token; $update['last_login_time'] = time(); $update['last_login_ip'] = getIP(); $api_token = create_api_token($find['username'],$find['nickname']); $update['api_token'] = $api_token; Db::name('manager')->where(array('id' => $find['id']))->limit(1)->update($update); $find['api_token'] = $api_token; //存入session Db::name('manager_session')->where(array('last_time' => array('<', time() - Config::get('session_life_time'))))->delete(); $DBSession = Db::name('manager_session')->where(array('session_id' => $api_token))->find(); if($DBSession){ Db::name('manager_session')->where(array('session_id' => $api_token))->update(array('last_time' => time(), 'user_id' => $find['id'])); }else{ Db::name('manager_session')->where(array('user_id' => $find['id']))->delete(); Db::name('manager_session')->insert(array('session_id' =>$api_token, 'last_time' => time(), 'user_id' => $find['id'])); } unset($find['password']); unset($find['encrypt']); $data = encrypt_data($find); return json(['Success' => 1, 'Msg' => '登录成功', 'Data' => $data]); }else{ return json(['Success' => 0, 'Msg' => '账号或者密码错误']); } }else{ return json(['Success' => 0, 'Msg' => '账号或者密码错误']); } }else{ return json(['Success' => 0, 'Msg' => '登录出错']); } }else{ return json(['Success' => 0, 'Msg' => '登录出错']); } } public function get_user_info(){ header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization"); header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE'); if(Request::instance()->isPost()){ $json_arr = decrypt_data(Request::instance()->post()); if($json_arr){ $api_token = trim($json_arr['api_token']); $user_id = Db::name('manager_session')->where(array('session_id' =>$api_token))->value('user_id'); $find = Db::name('manager')->where(array('id' => $user_id,'status' => 1))->find(); if($find){ $online_token = $this->create_online_token($find); $find['online_token'] = $online_token; $find['login_token'] = $online_token; $find['api_token'] = $api_token; unset($find['password']); unset($find['encrypt']); $data = encrypt_data($find); return json(['Success' => 1, 'Msg' => '操作成功', 'Data' => $data]); }else{ return json(['Success' => 0, 'Msg' => '暂无数据']); } }else{ return json(['Success' => 0, 'Msg' => '操作错误']); } }else{ return json(['Success' => 0, 'Msg' => '操作错误']); } } //修改密码 public function update_password(){ header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization"); header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE'); if(Request::instance()->isPost()){ $json_arr = decrypt_data(Request::instance()->post()); if($json_arr){ $user_id = intval($json_arr['user_id']); $password_now = trim($json_arr['password_now']); $password_new = trim($json_arr['password_new']); $password_reply = trim($json_arr['password_reply']); $api_token = trim($json_arr['api_token']); if($user_id > 0){ $find = Db::name('manager')->where(array('id' => $user_id))->find(); if($find && $find['api_token'] == $api_token){ if(empty($password_now) || empty($password_new) || empty($password_reply) || strlen($password_new) < 6){ return json(['Success' => 0, 'Msg' => '请填写当前密码以及新密码,新密码不能小于6个字符']); } if($password_new != $password_reply){ return json(['Success' => 0, 'Msg' => '两次密码不一致']); } if(think_ucenter_md5($password_now, UC_AUTH_KEY) == $find['password'] && $find['password']){ $newPass = think_ucenter_md5($password_new, UC_AUTH_KEY); $res = Db::name('manager')->where(array('id' => $user_id))->limit(1)->update(array('password' => $newPass)); if($res){ return json(['Success' => 1, 'Msg' => '修改密码成功']); }else{ return json(['Success' => 0, 'Msg' => '修改密码失败']); } }else{ return json(['Success' => 0, 'Msg' => '旧密码输入错误']); } }else{ return json(['Success' => 0, 'Msg' => '修改密码失败']); } }else{ return json(['Success' => 0, 'Msg' => '修改密码失败']); } }else{ return json(['Success' => 0, 'Msg' => '修改密码失败']); } }else{ return json(['Success' => 0, 'Msg' => '修改密码失败']); } } //获取玩家列表 public function get_player_list(){ header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization"); header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE'); if(Request::instance()->isPost()){ $json_arr = decrypt_data(Request::instance()->post()); if($json_arr){ $user_id = intval($json_arr['user_id']); $api_token = trim($json_arr['api_token']); $page = intval($json_arr['page']); $find = Db::name('manager')->where(array('id' => $user_id,'status' => 1))->find(); $tableInfo = Db::name('table')->field(['id,table_name'])->select(); $tableInfo = array_column($tableInfo,'table_name','id'); if($find && $find['api_token'] == $api_token && $page > 0){ $page_list = 15; if($page > 1){ $limie_start = ($page - 1) * $page_list; }else{ $limie_start = 0; } $where = []; $where['manager_id'] = $find['id']; $where['is_delete'] = 0; $where['status'] = 1; $where['agent'] = 0; $where['bet_type'] = 2; $findPlayer = Db::name('user')->where($where)->order('last_login_time DESC')->limit($limie_start,$page_list)->select(); $player_num = Db::name('user')->where($where)->count(); $page_num = ceil($player_num/$page_list); $playerData = []; foreach ($findPlayer as $val){ $data = []; $data['id'] = $val['id']; $data['username'] = $val['username']; $data['nickname'] = $val['nickname']; $data['last_login_time'] = $val['last_login_time'] ? date('Y-m-d H:i:s',$val['last_login_time']) : '-'; $data['is_online'] = 0; $data['server_status'] = 0; $data['table_id'] = 0; $data['table_name'] = ''; $data['bet_amount'] = 0; if($val['api_token']){ $sessionInfo = Db::name('session')->where(['session_id' => $val['api_token'],'user_id' => $val['id']])->find(); if((time() - $sessionInfo['last_time']) <= Config::get('session_life_time')){ $data['server_status'] = $sessionInfo['server_status']; $data['is_online'] = 1; if($sessionInfo['table_id']){ $data['table_id'] = $sessionInfo['table_id']; $data['table_name'] = $tableInfo[$sessionInfo['table_id']] ? $tableInfo[$sessionInfo['table_id']] : ''; $numberTabInfo = Db::name('number_tab')->field(['id'])->where('table_id',$sessionInfo['table_id'])->order('id DESC')->limit(1)->find(); if($numberTabInfo['id']){ $betInfo = Db::name('bet')->where(['table_id' => $sessionInfo['table_id'],'number_tab_id' => $numberTabInfo['id'],'user_id' => $val['id']])->field(['amount'])->find(); $data['bet_amount'] = (int)$betInfo['amount']; } } } } $playerData[] = $data; } $returnData['player_data'] = $playerData; $returnData['player_num'] = $player_num; $returnData['page_num'] = $page_num; $returnData = encrypt_data($returnData); return json(array('Success' => 1, 'Data' => $returnData)); }else{ return json(['Success' => 0, 'Msg' => '获取失败']); } }else{ return json(['Success' => 0, 'Msg' => '获取失败']); } }else{ return json(['Success' => 0, 'Msg' => '获取失败']); } } public function online_players() { header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization"); header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE'); if(Request::instance()->post()){ $json_arr = decrypt_data(Request::instance()->post()); if ($json_arr) { $user_id = intval($json_arr['user_id']); $api_token = trim($json_arr['api_token']); $find = Db::name('manager')->where(array('id' => $user_id,'status' => 1, 'api_token' => $api_token))->find(); $user_online = array(); if ($find) { $session_user = Db::name('session')->select(); foreach($session_user as $v){ $time = time() - Config::get('session_life_time'); if($v['last_time'] < $time){ //30分钟内没操作,移除在线在在线玩家的列表 Db::name('session')->where('user_id',$v['user_id'])->delete(); }else{ //30分钟内有操作的玩家,并且是该代理下面的直属玩家 $user = Db::name('user')->where(['id'=>$v['user_id'], 'manager_id'=>$user_id])->find(); if($user){ $user_online[] = $v; } } } } return json(array('Success' => 1, 'Data' => encrypt_data($user_online))); } return json(['Success' => 0, 'Msg' => '获取失败']); }else{ return json(['Success' => 0, 'Msg' => '获取失败']); } } //开始/停止服务 public function operate_server(){ header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization"); header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE'); if(Request::instance()->isPost()){ $json_arr = decrypt_data(Request::instance()->post()); if($json_arr){ $user_id = intval($json_arr['user_id']); $player_id = intval($json_arr['player_id']); $operate_type = intval($json_arr['operate_type']);//1开启 0 关闭 $api_token = trim($json_arr['api_token']); if($user_id && $player_id){ $find = Db::name('manager')->where(array('id' => $user_id))->find(); if($find && $find['api_token'] == $api_token){ $findUserSession = Db::name('session')->where(array('user_id' => $player_id))->find(); if($findUserSession && time() - $findUserSession['last_time'] <= Config::get('session_life_time')){ $updateData = []; $updateData['server_status'] = $operate_type; $res = Db::name('session')->where('user_id',$player_id)->update($updateData); if($res){ return json(['Success' => 1, 'Msg' => '操作成功']); }else{ return json(['Success' => 0, 'Msg' => '操作失败']); } }else{ return json(['Success' => 0, 'Msg' => '操作失败']); } }else{ return json(['Success' => 0, 'Msg' => '操作失败']); } }else{ return json(['Success' => 0, 'Msg' => '操作失败']); } }else{ return json(['Success' => 0, 'Msg' => '操作失败']); } }else{ return json(['Success' => 0, 'Msg' => '操作失败']); } } public function all_table(){ header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization"); header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE'); if(Request::instance()->isPost()){ $json_arr = decrypt_data(Request::instance()->post()); if($json_arr){ $user_id = intval($json_arr['user_id']); $api_token = trim($json_arr['api_token']); $user = Db::name('manager')->where(array('id' => $user_id))->find(); if($user && $user['api_token'] == $api_token){ $tableWhere = []; $tableWhere['status'] = 1; $tableWhere['table_type'] = 0; $tableWhere['bet_type'] = 2; $tables = Db::name('table')->where($tableWhere)->whereIn('game_id',[1,2])->order('sort DESC')->select(); $bootTabTable = 'boot'; $numberTabTable = 'number_tab'; $betTable = 'bet'; foreach($tables AS $key => $value){ $tableData = []; $tableData['id'] = $value['id']; $tableData['table_name'] = $value['table_name']; $tableData['game_id'] = $value['game_id']; $tableData['table_num'] = $value['table_num']; $tableData['game_name'] = $value['game_name']; $tableData['limit_money'] = $value['limit_money']; $tableData['limit_money_tie'] = $value['limit_money_tie']; if($value['game_id'] == 1){ $tableData['limit_money_pair'] = $value['limit_money_pair']; } $tableData['in_checkout'] = $value['in_checkout']; $tableData['bet_amount_msg']['banker_amount'] = 0; $tableData['bet_amount_msg']['player_amount'] = 0; $tableData['bet_amount_msg']['tie_amount'] = 0; if($value['game_id'] == 1){ $tableData['bet_amount_msg']['banker_pair_amount'] = 0; $tableData['bet_amount_msg']['player_pair_amount'] = 0; } $tableData['status'] = $value['status']; $tableData['is_scavenging'] = $value['is_scavenging']; $tableData['wait_time'] = $value['wait_time']; $tableData['rob_time'] = $value['rob_time']; $tableData['media_far_rtmp'] = $value['media_far_rtmp']; $tableData['media_far_flv'] = $value['media_far_flv']; $tableData['media_far_ws'] = $value['media_far_ws']; $tableData['media_near_rtmp'] = $value['media_near_rtmp']; $tableData['media_near_flv'] = $value['media_near_flv']; $tableData['media_near_ws'] = $value['media_near_ws']; $tableData['bet_type'] = $value['bet_type']; $tableData['is_rob'] = $value['is_rob']; $tableData['limit_banker_amount'] = $value['limit_banker_amount']; $tableData['table_type'] = $value['table_type']; $tableData['is_localhost_control'] = $value['is_localhost_control']; $tableData['phone'] = $value['phone']; $tableData['interval_time'] = $value['interval_time']; $tableData['card_first_type'] = $value['card_first_type']; $tableData['spec_type'] = $value['spec_type']; $tableData['scanner_type'] = $value['scanner_type']; $tableData['seat_num'] = $value['seat_num']; $boot = Db::name($bootTabTable)->where('table_id',$value['id'])->order('id DESC')->find(); if($boot){ $tableData['boot_num'] = $boot['boot_num']; $tableData['boot_id'] = $boot['id']; $cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id']))->order('id DESC')->find(); $tableData['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1; $tableData['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1; $tableData['bet_status'] = $cur_number_tab['bet_status']; $seat_arr = json_decode($cur_number_tab['seat_json'],true); //自动台返回牌型 if($value['is_scavenging'] == 1 && $cur_number_tab['bet_status'] == 2){ $card_info = getRedisCardByPosition($cur_number_tab['id']); if($card_info){ $tableData['card_info']['banker_1'] = $card_info['banker_1']; if($value['game_id'] == 1){ $tableData['card_info']['banker_2'] = $card_info['banker_2']; $tableData['card_info']['banker_3'] = $card_info['banker_3']; } $tableData['card_info']['player_1'] = $card_info['player_1']; if($value['game_id'] == 1){ $tableData['card_info']['player_2'] = $card_info['player_2']; $tableData['card_info']['player_3'] = $card_info['player_3']; } }else{ $tableData['card_info']['banker_1'] = 0; if($value['game_id'] == 1){ $tableData['card_info']['banker_2'] = 0; $tableData['card_info']['banker_3'] = 0; } $tableData['card_info']['player_1'] = 0; if($value['game_id'] == 1){ $tableData['card_info']['player_2'] = 0; $tableData['card_info']['player_3'] = 0; } } }else{ $tableData['card_info']['banker_1'] = 0; if($value['game_id'] == 1){ $tableData['card_info']['banker_2'] = 0; $tableData['card_info']['banker_3'] = 0; } $tableData['card_info']['player_1'] = 0; if($value['game_id'] == 1){ $tableData['card_info']['player_2'] = 0; $tableData['card_info']['player_3'] = 0; } } $tableData['bet_info'] = []; $sql = "SELECT u.id,u.username,s.last_time,s.server_status FROM cg_user u,cg_session s WHERE u.manager_id = ".$user['id']." AND u.api_token = s.session_id AND s.table_id = ".$value['id']; $res = Db::query($sql); foreach ($res as $val){ if((time() - $val['last_time']) > Config::get('session_life_time')){ continue; } $userData = []; $userData['user_id'] = $val['id']; $userData['username'] = $val['username']; $userData['server_status'] = $val['server_status']; $userData['bet_amount'] = 0; if(isset($seat_arr[$user_id])){ $nowSeatNum = array_search($val['id'],$seat_arr[$user_id]); if($nowSeatNum){ $userData['seat_num'] = $nowSeatNum; }else{ $userData['seat_num'] = 0; } }else{ $userData['seat_num'] = 0; } if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){ $bet = Db::name($betTable)->where(array('table_id' => $value['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $val['id']))->find(); if($bet){ $userData['seat_num'] = $bet['seat_num']; $userData['bet_amount'] = (int)$bet['amount']; $userData['banker_amount'] = (int)$bet['banker_amount']; $userData['player_amount'] = (int)$bet['player_amount']; $userData['tie_amount'] = (int)$bet['tie_amount']; if($value['game_id'] == 1){ $userData['banker_pair_amount'] = (int)$bet['banker_pair_amount']; $userData['player_pair_amount'] = (int)$bet['player_pair_amount']; } $tableData['bet_amount_msg']['banker_amount'] = (int)$tableData['bet_amount_msg']['banker_amount'] + (int)$bet['banker_amount']; $tableData['bet_amount_msg']['player_amount'] = (int)$tableData['bet_amount_msg']['player_amount'] + (int)$bet['player_amount']; $tableData['bet_amount_msg']['tie_amount'] = (int)$tableData['bet_amount_msg']['tie_amount'] + (int)$bet['tie_amount']; if($value['game_id'] == 1){ $tableData['bet_amount_msg']['banker_pair_amount'] = (int)$tableData['bet_amount_msg']['banker_pair_amount'] + (int)$bet['banker_pair_amount']; $tableData['bet_amount_msg']['player_pair_amount'] = (int)$tableData['bet_amount_msg']['player_pair_amount'] + (int)$bet['player_pair_amount'];; } } } $tableData['bet_info'][] = $userData; } }else{ $tableData['boot_num'] = 1; $tableData['boot_id'] = 0; $tableData['number_tab_number'] = 1; $tableData['number_tab_id'] = 0; $tableData['bet_status'] = 0; $tableData['bet_info'] = []; $tableData['bet_amount_msg'] = []; $tableData['card_info'] = []; } $tables[$key] = $tableData; } $data = encrypt_data($tables); return json(array('Success' => 1, 'Data' => $data)); }else{ return json(array('Success' => 0, 'Msg' => '获取信息失败')); } }else{ return json(array('Success' => 0, 'Msg' => '获取信息失败')); } } else { return json(array('Success' => 0, 'Msg' => '获取信息失败')); } } public function single_table(){ header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization"); header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE'); if(Request::instance()->isPost()){ $json_arr = decrypt_data(Request::instance()->post()); if($json_arr){ $user_id = intval($json_arr['user_id']); $api_token = trim($json_arr['api_token']); $table_id = intval($json_arr['table_id']); $user = Db::name('manager')->where(array('id' => $user_id))->find(); if($user && $user['api_token'] == $api_token){ $tableWhere = []; $tableWhere['status'] = 1; $tableWhere['table_type'] = 0; $tableWhere['bet_type'] = 2; $tableWhere['id'] = $table_id; $tableInfo = Db::name('table')->where($tableWhere)->whereIn('game_id',[1,2])->order('sort DESC')->find(); if($tableInfo){ $bootTabTable = 'boot'; $numberTabTable = 'number_tab'; $betTable = 'bet'; $tableData = []; $tableData['id'] = $tableInfo['id']; $tableData['table_name'] = $tableInfo['table_name']; $tableData['game_id'] = $tableInfo['game_id']; $tableData['table_num'] = $tableInfo['table_num']; $tableData['game_name'] = $tableInfo['game_name']; $tableData['limit_money'] = $tableInfo['limit_money']; $tableData['limit_money_tie'] = $tableInfo['limit_money_tie']; if($tableInfo['game_id'] == 1){ $tableData['limit_money_pair'] = $tableInfo['limit_money_pair']; } $tableData['in_checkout'] = $tableInfo['in_checkout']; $tableData['bet_amount_msg']['banker_amount'] = 0; $tableData['bet_amount_msg']['player_amount'] = 0; $tableData['bet_amount_msg']['tie_amount'] = 0; if($tableInfo['game_id'] == 1){ $tableData['bet_amount_msg']['banker_pair_amount'] = 0; $tableData['bet_amount_msg']['player_pair_amount'] = 0; } $tableData['status'] = $tableInfo['status']; $tableData['is_scavenging'] = $tableInfo['is_scavenging']; $tableData['wait_time'] = $tableInfo['wait_time']; $tableData['rob_time'] = $tableInfo['rob_time']; $tableData['media_far_rtmp'] = $tableInfo['media_far_rtmp']; $tableData['media_far_flv'] = $tableInfo['media_far_flv']; $tableData['media_far_ws'] = $tableInfo['media_far_ws']; $tableData['media_near_rtmp'] = $tableInfo['media_near_rtmp']; $tableData['media_near_flv'] = $tableInfo['media_near_flv']; $tableData['media_near_ws'] = $tableInfo['media_near_ws']; $tableData['bet_type'] = $tableInfo['bet_type']; $tableData['is_rob'] = $tableInfo['is_rob']; $tableData['limit_banker_amount'] = $tableInfo['limit_banker_amount']; $tableData['table_type'] = $tableInfo['table_type']; $tableData['is_localhost_control'] = $tableInfo['is_localhost_control']; $tableData['phone'] = $tableInfo['phone']; $tableData['interval_time'] = $tableInfo['interval_time']; $tableData['card_first_type'] = $tableInfo['card_first_type']; $tableData['spec_type'] = $tableInfo['spec_type']; $tableData['scanner_type'] = $tableInfo['scanner_type']; $tableData['seat_num'] = $tableInfo['seat_num']; $boot = Db::name($bootTabTable)->where('table_id',$tableInfo['id'])->order('id DESC')->find(); if($boot){ $tableData['boot_num'] = $boot['boot_num']; $tableData['boot_id'] = $boot['id']; $cur_number_tab = Db::name($numberTabTable)->where(array('table_id' => $tableInfo['id'], 'boot_id' => $boot['id']))->order('id DESC')->find(); $tableData['number_tab_number'] = is_array($cur_number_tab) ? $cur_number_tab['number'] : 1; $tableData['number_tab_id'] = is_array($cur_number_tab) ? $cur_number_tab['id'] : 1; $tableData['bet_status'] = $cur_number_tab['bet_status']; $seat_arr = json_decode($cur_number_tab['seat_json'],true); //自动台返回牌型 if($tableInfo['is_scavenging'] == 1 && $cur_number_tab['bet_status'] == 2){ $card_info = getRedisCardByPosition($cur_number_tab['id']); if($card_info){ $tableData['card_info']['banker_1'] = $card_info['banker_1']; if($tableInfo['game_id'] == 1){ $tableData['card_info']['banker_2'] = $card_info['banker_2']; $tableData['card_info']['banker_3'] = $card_info['banker_3']; } $tableData['card_info']['player_1'] = $card_info['player_1']; if($tableInfo['game_id'] == 1){ $tableData['card_info']['player_2'] = $card_info['player_2']; $tableData['card_info']['player_3'] = $card_info['player_3']; } }else{ $tableData['card_info']['banker_1'] = 0; if($tableInfo['game_id'] == 1){ $tableData['card_info']['banker_2'] = 0; $tableData['card_info']['banker_3'] = 0; } $tableData['card_info']['player_1'] = 0; if($tableInfo['game_id'] == 1){ $tableData['card_info']['player_2'] = 0; $tableData['card_info']['player_3'] = 0; } } }else{ $tableData['card_info']['banker_1'] = 0; if($tableInfo['game_id'] == 1){ $tableData['card_info']['banker_2'] = 0; $tableData['card_info']['banker_3'] = 0; } $tableData['card_info']['player_1'] = 0; if($tableInfo['game_id'] == 1){ $tableData['card_info']['player_2'] = 0; $tableData['card_info']['player_3'] = 0; } } $tableData['bet_info'] = []; $sql = "SELECT u.id,u.username,s.last_time,s.server_status FROM cg_user u,cg_session s WHERE u.manager_id = ".$user['id']." AND u.api_token = s.session_id AND s.table_id = ".$tableInfo['id']; $res = Db::query($sql); foreach ($res as $val){ if((time() - $val['last_time']) > Config::get('session_life_time')){ continue; } $userData = []; $userData['user_id'] = $val['id']; $userData['username'] = $val['username']; $userData['server_status'] = $val['server_status']; $userData['bet_amount'] = 0; if(isset($seat_arr[$user_id])){ $nowSeatNum = array_search($val['id'],$seat_arr[$user_id]); if($nowSeatNum){ $userData['seat_num'] = $nowSeatNum; }else{ $userData['seat_num'] = 0; } }else{ $userData['seat_num'] = 0; } if($cur_number_tab['bet_status'] == 1 || $cur_number_tab['bet_status'] == 2){ $bet = Db::name($betTable)->where(array('table_id' => $tableInfo['id'], 'boot_id' => $boot['id'], 'number_tab_id' => $cur_number_tab['id'], 'user_id' => $val['id']))->find(); if($bet){ $userData['seat_num'] = $bet['seat_num']; $userData['bet_amount'] = $bet['amount']; $userData['banker_amount'] = (int)$bet['banker_amount']; $userData['player_amount'] = (int)$bet['player_amount']; $userData['tie_amount'] = (int)$bet['tie_amount']; if($tableInfo['game_id'] == 1){ $userData['banker_pair_amount'] = (int)$bet['banker_pair_amount']; $userData['player_pair_amount'] = (int)$bet['player_pair_amount']; } $tableData['bet_amount_msg']['banker_amount'] = (int)$tableData['bet_amount_msg']['banker_amount'] + (int)$bet['banker_amount']; $tableData['bet_amount_msg']['player_amount'] = (int)$tableData['bet_amount_msg']['player_amount'] + $bet['player_amount']; $tableData['bet_amount_msg']['tie_amount'] = (int)$tableData['bet_amount_msg']['tie_amount'] + (int)$bet['tie_amount']; if($tableInfo['game_id'] == 1){ $tableData['bet_amount_msg']['banker_pair_amount'] = (int)$tableData['bet_amount_msg']['banker_pair_amount'] + (int)$bet['banker_pair_amount']; $tableData['bet_amount_msg']['player_pair_amount'] = (int)$tableData['bet_amount_msg']['player_pair_amount'] + (int)$bet['player_pair_amount'];; } } } $tableData['bet_info'][] = $userData; } }else{ $tableData['boot_num'] = 1; $tableData['boot_id'] = 0; $tableData['number_tab_number'] = 1; $tableData['number_tab_id'] = 0; $tableData['bet_status'] = 0; $tableData['bet_info'] = []; $tableData['bet_amount_msg'] = []; $tableData['card_info'] = []; } $data = encrypt_data($tableData); return json(array('Success' => 1, 'Data' => $data)); }else{ return json(array('Success' => 0, 'Msg' => '获取信息失败')); } }else{ return json(array('Success' => 0, 'Msg' => '获取信息失败')); } }else{ return json(array('Success' => 0, 'Msg' => '获取信息失败')); } } else { return json(array('Success' => 0, 'Msg' => '获取信息失败')); } } //游戏记录 public function get_user_bets(){ header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: token, Origin, X-Requested-With, Content-Type, Accept, Authorization"); header('Access-Control-Allow-Methods: POST,GET,PUT,DELETE'); if(Request::instance()->isPost()){ $json_arr = decrypt_data(Request::instance()->post()); if($json_arr){ // 语言包 $langList = ['tw' => 'zh-tw.php','en' => 'en-us.php']; $langType = empty($json_arr['language']) ? 'cn' : $json_arr['language']; $langFile = empty($langList[$langType]) ? 'en-us.php' : $langList[$langType]; $langFile = ROOT_PATH.'thinkphp/lang/'.$langFile; Lang::load($langFile); $lang = Lang::get(); $user_id = intval($json_arr['user_id']); $api_token = trim($json_arr['api_token']); $game_id = empty($json_arr['game_id']) ? 0 : intval($json_arr['game_id']); $table_id = empty($json_arr['table_id']) ? 0 : intval($json_arr['table_id']); $username = empty($json_arr['username']) ? '' : trim($json_arr['username']); $page = intval($json_arr['page']); $user = Db::name('manager')->where(array('id' => $user_id))->find(); if($user && $user['api_token'] == $api_token && $page > 0){ $betWhere = array(); $betWhere['manager_id'] = $user_id; if($game_id){ $betWhere['game_id'] = $game_id; } if($table_id){ $betWhere['table_id'] = $table_id; } if($username){ $betWhere['username'] = $username; } $betWhere['status'] = array('>',0); $page_list = 15; if($page > 1){ $limie_start = ($page - 1) * $page_list; }else{ $limie_start = 0; } $bet = Db::name('bet')->where($betWhere)->whereIn('game_id',[1,2])->order('id desc')->limit($limie_start,$page_list)->select(); $bet_num = Db::name('bet')->where($betWhere)->whereIn('game_id',[1,2])->order('id desc')->count(); $page_num = ceil($bet_num/$page_list); //组装注单信息 $newBet = array(); $user_bets = array(); foreach ($bet as $k => $v){ $data = array(); $v['create_time'] = date('Y-m-d H:i:s',$v['create_time']); $v['game_num'] = $v['game_id'].$v['boot_num'].$v['number']; if($v['game_id'] == 1){ $number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find(); if($number_info['bet_status'] == 3){ if($number_info['result'] == 1){ $result = $lang['banker']; }elseif($number_info['result'] == 2){ $result = $lang['player']; }elseif($number_info['result'] == 3){ $result = $lang['tie']; }else{ $result = '-'; } if($number_info['pair'] == 1){ $pair = ','.$lang['banker_pair']; }elseif($number_info['pair'] == 2){ $pair = ','.$lang['player_pair']; }elseif($number_info['pair'] == 3){ $pair = ','.$lang['both_pair']; }else{ $pair = ''; } if($number_info['luck_six'] > 1){ $luck_six = ','.$lang['luck_6']; }else{ $luck_six = ''; } if($number_info['big_small'] == 1){ $big_small = ','.$lang['big']; }elseif($number_info['big_small'] == 2){ $big_small = ','.$lang['small']; }else{ $big_small = ''; } $v['card_result'] = $result.$pair.$luck_six.$big_small; }else{ $v['card_result'] = '-'; } if($v['status'] == 2){ $v['card_result'] = $lang['void']; } $data['game_num'] = $v['game_num']; $data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')'; $data['card_result'] = $v['card_result']; $data['user_bet'] = ''; if($v['banker_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['banker'].'('.$v['banker_amount'].')'; } if($v['player_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['player'].'('.$v['player_amount'].')'; } if($v['tie_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['tie'].'('.$v['tie_amount'].')'; } if($v['banker_pair_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['banker_pair'].'('.$v['banker_pair_amount'].')'; } if($v['player_pair_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['player_pair'].'('.$v['player_pair_amount'].')'; } if($v['luck_six_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['luck_6'].'('.$v['luck_six_amount'].')'; } if($v['big_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['big'].'('.$v['big_amount'].')'; } if($v['small_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['small'].'('.$v['small_amount'].')'; } if($v['baccarat_type'] == 1){ $data['user_bet'] = $data['user_bet'].'('.$lang['free_commission'].')'; }else{ $data['user_bet'] = $data['user_bet'].'('.$lang['commission'].')'; } $data['create_time'] = $v['create_time']; $data['money_before_bet'] = $v['money_before_bet']; $data['amount'] = $v['amount']; $data['win_total'] = $v['win_total']; $data['seat_num'] = $v['seat_num']; $data['user_id'] = $v['user_id']; $data['username'] = $v['username']; $data['nickname'] = $v['nickname']; $data['manager_id'] = $user['id']; $data['manager_username'] = $user['username']; $data['manager_nickname'] = $user['nickname']; $newBet[] = $data; } if($v['game_id'] == 2){ $number_info = Db::name('number_tab')->where('id',$v['number_tab_id'])->find(); if($number_info['bet_status'] == 3){ if($number_info['result'] == 1){ $result = $lang['dragon']; }elseif($number_info['result'] == 2){ $result = $lang['tiger']; }elseif($number_info['result'] == 3){ $result = $lang['tie']; }else{ $result = '-'; } $v['card_result'] = $result; }else{ $v['card_result'] = '-'; } if($v['status'] == 2){ $v['card_result'] = $lang['void']; } $data['game_num'] = $v['game_num']; $data['table_name'] = $v['table_name'].'('.$v['boot_num'].'/'.$v['number'].')'; $data['card_result'] = $v['card_result']; $data['user_bet'] = ''; if($v['banker_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['dragon'].'('.$v['banker_amount'].')'; } if($v['player_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['tiger'].'('.$v['player_amount'].')'; } if($v['tie_amount'] > 0){ $data['user_bet'] = $data['user_bet'].$lang['tie'].'('.$v['tie_amount'].')'; } $data['create_time'] = $v['create_time']; $data['money_before_bet'] = $v['money_before_bet']; $data['amount'] = $v['amount']; $data['win_total'] = $v['win_total']; $data['seat_num'] = $v['seat_num']; $data['user_id'] = $v['user_id']; $data['username'] = $v['username']; $data['nickname'] = $v['nickname']; $data['manager_id'] = $user['id']; $data['manager_username'] = $user['username']; $data['manager_nickname'] = $user['nickname']; $newBet[] = $data; } } // 重新赋值 $user_bets['bet_info'] = $newBet; $user_bets['bet_num'] = $bet_num; $user_bets['page_num'] = $page_num; $bet = encrypt_data($user_bets); return json(array('Success' => 1, 'Data' => $bet)); }else{ return json(array('Success' => 0, 'Msg' => '获取信息失败')); } }else{ return json(array('Success' => 0, 'Msg' => '获取信息失败')); } } } private function create_online_token($user){ return md5($user['encrypt'].$user['password']); } }