GameLuck100Controller.class.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. <?php
  2. namespace bibidd\Controller;
  3. use Bibidd\Controller\CommonBaseController;
  4. /**
  5. * 快乐100
  6. * AdmincrontabController:add_luck_100_hui_dia
  7. */
  8. class GameLuck100Controller extends CommonBaseController
  9. {
  10. /**
  11. * 首页入口
  12. * @return void
  13. */
  14. public function get_pre_result()
  15. {
  16. $this->addHeaders(); //添加头部请求
  17. $uid = $_POST['uid'];
  18. $retun_info['current'] = M("game_luck_100_qishu")->field("id,bet_time,bet_amount,touzhu_renshu,bet_result")->where("bet_hit=0")->find();
  19. $pre_info = M("game_luck_100_qishu")->field("id,bet_time,bet_amount,touzhu_renshu,bet_result")->where("bet_hit=1")->find();
  20. $retun_info['pre'] = $pre_info;
  21. $data['isFen'] = 'no';
  22. $is_fen = M("game_user_fenjin")->where("uid = '$uid'")->getField("uid");
  23. if(!empty($is_fen))
  24. {
  25. $data['isFen'] = 'yes'; //被封禁
  26. }
  27. $data['code'] = '200';
  28. $data['message'] = 'ok';
  29. $data['data'] = $retun_info;
  30. echo json_encode($data);
  31. }
  32. /**
  33. * 期数列表
  34. * @return void
  35. */
  36. public function query_game_list()
  37. {
  38. $this->addHeaders(); //添加头部请求
  39. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  40. $uid = $user_info['id']; //用户id
  41. $page = $_POST['page'];
  42. $one_size = empty($_POST['pageSize']) ? 30 : $_POST['pageSize']; //每頁30行記錄
  43. $page_one = ($page - 1) * $one_size;
  44. //期数列表
  45. $data_list = M("game_luck_100_qishu")->field("id,bet_time,bet_amount,touzhu_renshu,bet_result,bet_hit,bet_result")->order("bet_time DESC")->LIMIT($page_one, $one_size)->select();
  46. $data_list = $this->hand_touchu($data_list,$uid);
  47. $data['code'] = '200';
  48. $data['message'] = 'ok';
  49. $data['user_coin'] = $user_info['gold_coins_number'];
  50. $data['data'] = $data_list;
  51. $data['all_num'] = M("game_luck_100_qishu")->field("id")->count();
  52. echo json_encode($data);
  53. }
  54. private function hand_touchu($data_list,$uid)
  55. {
  56. foreach ($data_list as $key => $value) {
  57. $data_list[$key]['touzhu'] = null;//添加动态字段,存储投注列表
  58. $qishu_id = $value['id'];
  59. $user_touzhu = M("game_luck_100_touzhu")->field("id,uid,qishu_id,tz_luck_number,base_coins,tz_beishu,tz_jin,tz_yingli,tz_time,shu_ying")->where("qishu_id='$qishu_id' AND uid='$uid'")->find();
  60. if (!empty($user_touzhu)) {
  61. $data_list[$key]['touzhu'] = $user_touzhu;
  62. }
  63. //填充中奖人数
  64. $win_user_touzhu = M("game_luck_100_touzhu")->field("id,qishu_id,uid,tz_yingli,tz_jin,tz_beishu")->where("qishu_id='$qishu_id' AND shu_ying=1")->select();
  65. foreach ($win_user_touzhu as $key1=>$value)
  66. {
  67. $uid= $value['uid'];
  68. $user_name = M("user_info")->where("id='$uid'")->getField("name");
  69. $win_user_touzhu[$key1]['user_name'] = $user_name;
  70. }
  71. $data_list[$key]['luck_users'] = $win_user_touzhu;
  72. }
  73. //判断数组数组有2个0,则把上一期标记为正在开奖,状态为 -99
  74. if(count($data_list)>=2 && $data_list[0]['bet_hit']=='0' && $data_list[1]['bet_hit']=='0')
  75. {
  76. $data_list[1]['bet_hit']="-99";
  77. }
  78. return $data_list;
  79. }
  80. /**
  81. * 投注列表
  82. * @return void
  83. */
  84. public function query_touzhu_list()
  85. {
  86. $this->addHeaders(); //添加头部请求
  87. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  88. $uid = $user_info['id']; //用户id
  89. $page = $_POST['page'];
  90. $one_size = empty($_POST['pageSize']) ? 30 : $_POST['pageSize']; //每頁30行記錄
  91. $page_one = ($page - 1) * $one_size;
  92. //我投注的期数
  93. $tempList = M("game_luck_100_touzhu")->where("uid='$uid'")->distinct(true)->field('qishu_id')->select();
  94. $qishu_ids = array_column($tempList,'qishu_id');
  95. $sql_charu = "";
  96. foreach ($qishu_ids as $key1 => $value1) {
  97. $duifang_id = $value1;;
  98. $xianzhi_one = " or id='$duifang_id'";
  99. $sql_charu .= $xianzhi_one;
  100. }
  101. //期数列表
  102. $data_list = M("game_luck_100_qishu")
  103. ->field("id,bet_time,bet_amount,touzhu_renshu,bet_result,bet_hit,bet_result")
  104. ->where("id=0 $sql_charu")
  105. ->order("bet_time DESC")
  106. ->LIMIT($page_one, $one_size)
  107. ->select();
  108. $data_list = $this->hand_touchu($data_list,$uid);
  109. $data['code'] = '200';
  110. $data['message'] = 'ok';
  111. $data['user_coin'] = $user_info['gold_coins_number'];
  112. $data['data'] = $data_list;
  113. $data['all_num'] = M("game_luck_100_qishu")->field("id") ->where("id=0 $sql_charu")->count();
  114. echo json_encode($data);
  115. }
  116. /**
  117. * 投注
  118. * @return void
  119. */
  120. public function bet_on()
  121. {
  122. $this->addHeaders(); //添加头部请求
  123. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  124. $uid = $user_info['id']; //用户id
  125. $user_coins = $user_info['gold_coins_number']; //用户余额
  126. $qishu_id = $_POST['qishu_id']; //期数id
  127. $base_coins = empty($_POST['base_coins'])?5:intval($_POST['base_coins']); //每注金额
  128. $beishu = empty($_POST['beishu'])?1:intval($_POST['beishu']); //倍数,默认10倍
  129. $luck_number = $_POST['luck_number']; //幸运数字
  130. if(empty($qishu_id)
  131. || empty($base_coins)
  132. || empty($beishu)
  133. || empty($luck_number)
  134. || !is_int($base_coins)
  135. || !is_int($beishu)
  136. || $base_coins<0
  137. || $beishu<0
  138. || intval($luck_number)<0
  139. || intval($luck_number)>9999
  140. || $beishu>10
  141. )
  142. {
  143. $this->returnDataAndSendMsg("请求参数错误");
  144. die();
  145. }
  146. $is_fen = M("game_user_fenjin")->where("uid = '$uid'")->getField("uid");
  147. if(!empty($is_fen))
  148. {
  149. $this->returnDataAndSendMsg("账号违规封禁<br/>无法进行游戏");
  150. die();
  151. }
  152. //期数
  153. $qishu_info = M("game_luck_100_qishu")->field("id,touzhu_renshu,bet_amount,bet_jie_zhi")->where("id = '$qishu_id'")->find();
  154. if (empty($qishu_info)) {
  155. $this->returnDataAndSendMsg("非法操作");
  156. die();
  157. }
  158. $jiezhi_time = strtotime($qishu_info['bet_jie_zhi']);//截至投注时间
  159. $current_time =time();
  160. if ($current_time >= $jiezhi_time) {
  161. $this->returnDataAndSendMsg("投注时间已截止");
  162. die();
  163. }
  164. $check_info = M("game_luck_100_touzhu")->where("qishu_id = '$qishu_id' AND uid='$uid'")->find();
  165. if(!empty($check_info))
  166. {
  167. $this->returnDataAndSendMsg("重复投注");
  168. die();
  169. }
  170. //投注金额
  171. $touzhu_coins = $base_coins*$beishu;
  172. if($user_coins<$touzhu_coins)
  173. {
  174. $this->returnDataAndSendMsg("余额不足");
  175. die();
  176. }
  177. //添加统计
  178. $qishu_rs = $qishu_info['touzhu_renshu'];
  179. $qishu_jc = $qishu_info['bet_amount']; //奖池金额
  180. $up_tjInfo['touzhu_renshu'] = $qishu_rs+1;//人数+1
  181. $up_tjInfo['bet_amount'] = $qishu_jc+$touzhu_coins;//人数+1
  182. $rs = M("game_luck_100_qishu")->where("id = '$qishu_id' AND touzhu_renshu=$qishu_rs AND bet_amount=$qishu_jc")->save($up_tjInfo);
  183. if(!$rs)
  184. {
  185. $this->returnDataAndSendMsg("投注失败,请稍后再试");
  186. die();
  187. }
  188. //添加投注
  189. $add_info['qishu_id'] = $qishu_id;
  190. $add_info['uid'] = $uid;
  191. $add_info['tz_luck_number'] = $luck_number;
  192. $add_info['base_coins'] = $base_coins;
  193. $add_info['tz_beishu'] = $beishu;
  194. $add_info['tz_jin'] = $touzhu_coins;
  195. $add_info['tz_time'] = date('Y-m-d H:i:s');
  196. $add_info['u_ip'] = $this->getIp();
  197. $user_weizhi=$this->get_user_ip_info($add_info['u_ip']);
  198. if($user_weizhi['code']=="200" && !empty($user_weizhi['data']['region'])){
  199. $add_info['u_ip_addr']=$user_weizhi['data']['region']."省".$user_weizhi['data']['city']."市 ".$user_weizhi['data']['isp'];
  200. }else{
  201. $add_info['u_ip_addr']="暂无";
  202. }
  203. $rs = M("game_luck_100_touzhu")->add($add_info);
  204. if(!$rs)
  205. {
  206. $up_tjInfo['touzhu_renshu'] = $qishu_rs;//人数+1
  207. $up_tjInfo['bet_amount'] = $qishu_jc;//奖池
  208. $rs = M("game_luck_100_qishu")->where("id = '$qishu_id' AND touzhu_renshu=$qishu_rs AND $touzhu_coins=$qishu_jc")->save($up_tjInfo);
  209. $this->returnDataAndSendMsg("投注失败,请稍后再试");
  210. die();
  211. }
  212. //扣除用户金币
  213. $rs = M("user_info")->where("id = '$uid' AND gold_coins_number=$user_coins")->setDec("gold_coins_number",$touzhu_coins);
  214. $data['code'] = '200';
  215. $data['message'] = 'ok';
  216. $data['data'] =$rs;
  217. echo json_encode($data);
  218. //统计
  219. $this->touzhu_tongji_for_day($uid,$touzhu_coins,1);
  220. $this->xiaofei_detail($uid,"快乐100","期数[$qishu_id],幸运数字[$luck_number]",$touzhu_coins);
  221. }
  222. /**
  223. * 获取上一期,中奖用户
  224. * @return void
  225. */
  226. public function get_luck_users()
  227. {
  228. $this->addHeaders(); //添加头部请求
  229. //$time = date("Y-m-d 22:00:00");
  230. //2025-3-5 往期有中奖
  231. $qishi_id = M("game_luck_100_touzhu")->where("shu_ying=1")->order("id DESC")->getField("qishu_id");
  232. if(empty($qishi_id))
  233. {
  234. $data['code'] = '200';
  235. $data['message'] = 'ok';
  236. $data['data'] = array();
  237. echo json_encode($data);
  238. die();
  239. }
  240. //查询中间用户
  241. $win_user_touzhu = M("game_luck_100_touzhu")->field("id,uid,tz_yingli,tz_jin,tz_beishu")->where("qishu_id='$qishi_id' AND shu_ying='1'")->select();
  242. foreach ($win_user_touzhu as $key=>$value)
  243. {
  244. $uid= $value['uid'];
  245. $user_name = M("user_info")->where("id='$uid'")->getField("name");
  246. $win_user_touzhu[$key]['user_name'] = $user_name;
  247. }
  248. $data['code'] = '200';
  249. $data['message'] = 'ok';
  250. $data['jian_cions'] = M("game_luck_100_qishu")->where("id='$qishi_id'")->getField("bet_amount");
  251. $data['qi_shu'] = M("game_luck_100_qishu")->where("id='$qishi_id'")->getField("bet_time");
  252. $data['data'] =$win_user_touzhu;
  253. echo json_encode($data);
  254. }
  255. }