SfsixlotteryGameParse.php 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134
  1. <?php
  2. namespace App\Lib\Biz\Game\Parse;
  3. /**
  4. * Created by PhpStorm.
  5. * User: admin
  6. * Date: 2017/11/30
  7. * Time: 16:42
  8. */
  9. class SfsixlotteryGameParse extends BaseParse {
  10. protected $game='sfsixlottery';
  11. protected $name='极速六合彩';
  12. //投注内容
  13. function packbet($data) {
  14. $game = $this->game;
  15. $this->name = trans('common.' . $game);
  16. //获取开奖号码
  17. if (!isset($data['prizes_code'])) {
  18. $data['prizes_code'] = $data['codes'];
  19. }
  20. $data['name'] = $this->name;
  21. $data['game'] = $this->game;
  22. //投注号码解析
  23. $data['bet_'] = '';
  24. if (isset($data['codes']) && !empty($data['codes'])) {
  25. $codes = json_decode($data['codes'], 1);
  26. if (is_array($codes) && count($codes) > 0) {
  27. foreach ($codes as $k => $v) {
  28. if (is_array($v) && count($v) > 0) {
  29. $data['bet_'] .= '<b>' . trans($this->game . '.' . $k) . '</b>:'; //玩法
  30. $flag = 1;
  31. foreach ($v as $ka => $va) {
  32. if($k=='join_born'){
  33. $ys = explode('_', $ka);
  34. $ka = $ys[0];
  35. $typeyn = (isset($ys[1]) && $ys[1]=='Y')?'中':'不中';
  36. if($flag==1){
  37. $data['bet_'] = $data['bet_'] . $typeyn . '(';
  38. }
  39. }
  40. $flag ++;
  41. if (is_numeric($ka) || preg_match("/^\d+_\d+$/", $ka)) {
  42. if($k=='sum_born'&&$ka==2){
  43. $ka='234';
  44. }
  45. $data['bet_'] .= $ka . ' ';
  46. } else {
  47. $data['bet_'] .= trans($this->game . '.' . $ka) . ' ';
  48. }
  49. }
  50. if($k=='join_born'){
  51. $data['bet_'] = $data['bet_'] . ')';
  52. }
  53. $data['bet_'] .= '<br/>';
  54. }
  55. }
  56. }
  57. }
  58. //中奖撤单未中奖状态的处理
  59. $data['ceshi'] = $data['game_status'];
  60. if (isset($data['game_status'])) {
  61. if ($data['status'] == 4) {
  62. $data['game_status'] = 4;
  63. }
  64. $lang = trans('status.money_buy.game_status');
  65. $data['game_status'] = $lang[$data['game_status']];
  66. }
  67. unset($data['status']);
  68. return $data;
  69. }
  70. /**
  71. * 单注可赢金额计算
  72. */
  73. function winMomey($data){
  74. //print_r($data);
  75. $winMoney=0;
  76. $betmoney = isset($data['money'])?$data['money']:0;
  77. $prizestatus='';
  78. $get_money = 0;
  79. /*if(!empty($data['prize'])){
  80. $prizetype=json_decode($data['prize'],1);
  81. foreach ($prizetype as $key => $value) {
  82. if($key=='seven_colorwave'&&$value[0]=='draw'){
  83. $prizestatus='和';
  84. }
  85. }
  86. }*/
  87. if(isset($data['codes'])){
  88. $data=json_decode($data['codes'],1);
  89. $grouptype = $this->groupType();
  90. foreach ($data as $k=>$v){
  91. if(in_array($k, $grouptype)){
  92. foreach ($v as $key=>$value){
  93. if(isset($value['settings']['multiple']['max'])){
  94. $winMoney=$betmoney*$value['settings']['multiple']['max'];
  95. }else{
  96. $winMoney=$betmoney*$value['settings']['multiple'];
  97. }
  98. break;
  99. }
  100. break;
  101. }
  102. if($k=='general_pass'){
  103. $settings = 1;
  104. foreach ($v as $key=>$value){
  105. if(isset($value['settings']['multiple']['max'])){
  106. $settings*=$value['settings']['multiple']['max'];
  107. }else{
  108. $settings*=$value['settings']['multiple'];
  109. }
  110. }
  111. $winMoney = $betmoney*$settings;
  112. break;
  113. }else if(is_array($v)&&count($v)>0){
  114. foreach ($v as $key=>$value){
  115. if(isset($value['settings']['multiple']['max'])){
  116. $winMoney+=$value[0]*$value['settings']['multiple']['max'];
  117. }else{
  118. $winMoney+=$value[0]*$value['settings']['multiple'];
  119. }
  120. if(isset($value['settings']['back'])){
  121. $get_money+=$value[0]*$value['settings']['back'];
  122. }
  123. }
  124. }
  125. }
  126. }
  127. return array('winmoney'=>$winMoney,'prizestatus'=>$prizestatus,'return_money'=>$get_money);
  128. }
  129. /**
  130. * 开奖号吗解析
  131. */
  132. function prizeParse($data,$game='') {
  133. //print_r($data);
  134. $game = $this->game;
  135. $this->name = trans('common.' . $game);
  136. $prize = json_decode($data['prizes'], 1);
  137. if (is_array($prize) && count($prize) > 0) {
  138. $prize = current($prize);
  139. if (is_array($prize) && count($prize) > 0) {
  140. foreach ($prize as $k => $v) {
  141. if (is_array($v) && count($v) > 0) {
  142. $data[$k] = '';
  143. foreach ($v as $key => $value) {
  144. if($k=='general_color'||$k=='special_colorwave'){
  145. $data[$k] .= $key . ' ';
  146. }else{
  147. $data[$k] .= trans($this->game . '.' . $k . '-' . $key) . '<br/>';
  148. }
  149. }
  150. }
  151. }
  152. }
  153. }
  154. unset($data['prizes']);
  155. //解析开奖补充号码
  156. if (isset($data['extra']) && !empty($data['extra'])) {
  157. $extra = json_decode($data['extra'], 1);
  158. if (is_array($extra) && count($extra) > 0) {
  159. foreach ($extra as $kq => $vq) {
  160. if (is_numeric($vq)) {
  161. //处理数字开奖号码
  162. if ($vq < 0) {
  163. //处理未开出奖
  164. $data[$kq] = '';
  165. } else {
  166. $data[$kq] = $vq;
  167. }
  168. } else {
  169. //非数字
  170. if (is_array($vq) && count($vq)) {
  171. $data[$kq] = '';
  172. foreach ($vq as $ka => $va) {
  173. if (is_array($va) && count($va)) {
  174. foreach ($va as $kw => $vw) {
  175. $data[$kq] .= trans($this->game . '.' . $kq . '-' . $vw);
  176. }
  177. } else {
  178. $data[$kq] .= trans($this->game . '.' . $va) . ' ';
  179. }
  180. }
  181. } else {
  182. $data[$kq] = trans($this->game . '.' . $vq);
  183. }
  184. }
  185. }
  186. if (isset($data['one'])) {
  187. $data['prizes_code'] = $data['one'] . '+' . $data['two'] . '+' . $data['three'] . '=' . $data['code'];
  188. } else if (isset($data['prizes_code'])) {
  189. $data['prizes_code'] = $data['prizes_code'];
  190. }
  191. }
  192. }
  193. if (!isset($data['prizes_code'])) {
  194. $data['prizes_code'] = $data['codes'];
  195. }
  196. $data['name'] = $this->name;
  197. $data['game'] = $this->game;
  198. //中奖撤单未中奖状态的处理
  199. if (isset($data['game_status'])) {
  200. if ($data['status'] == 4) {
  201. $data['game_status'] = 4;
  202. }
  203. $lang = trans('status.money_buy.game_status');
  204. $data['game_status'] = $lang[$data['game_status']];
  205. }
  206. unset($data['status']);
  207. return $data;
  208. }
  209. //赔率
  210. function getSettings() {
  211. $game = 'sfsixlottery';
  212. //权限检测
  213. $arrys = array(
  214. 'series_twospecial',//二中特
  215. 'series_threetwo-0',
  216. 'series_fiveend-0',
  217. 'series_fourend-0',
  218. 'series_threeend-0',
  219. 'series_twoend-0',
  220. 'series_twoborn-rate',
  221. 'series_twoborn-cattle',
  222. 'series_twoborn-tiger',
  223. 'series_twoborn-rabbit',
  224. 'series_twoborn-dragon',
  225. 'series_twoborn-snake',
  226. 'series_twoborn-horse',
  227. 'series_twoborn-sheep',
  228. 'series_twoborn-monkey',
  229. 'series_twoborn-chick',
  230. 'series_twoborn-dog',
  231. 'series_twoborn-pig',
  232. 'general_born'
  233. );
  234. if(!checkRriv('/odds/game/'.$game)){
  235. return responseToJson(array());
  236. }
  237. $db = new \App\Models\GameOdds();
  238. $data = $db->getOdds($game);
  239. if($data<0){
  240. return responseToJson($data);
  241. }
  242. $data = json_decode($data['odds'], 1);
  243. return $data;
  244. $array = array();
  245. $i = 0;
  246. foreach ($arrys as $v){
  247. $bs[$v]=$data[$v];
  248. }
  249. return $bs;
  250. }
  251. /**
  252. *
  253. */
  254. function betParse($data, $game = '') {
  255. $this->game = $game;
  256. $this->name = trans('common.' . $game);
  257. //获取开奖号码
  258. if (isset($data['extra']) && !empty($data['extra'])) {
  259. $extra = json_decode($data['extra'], 1);
  260. if (is_array($extra) && count($extra) > 0) {
  261. if (isset($extra['one'])) {
  262. $data['prizes_code'] = $extra['one'] . '+' . $extra['two'] . '+' . $extra['three'] . '=' . $extra['code'];
  263. } else if (isset($data['prizes_code'])) {
  264. $data['prizes_code'] = $data['prizes_code'];
  265. }
  266. }
  267. }
  268. if (!isset($data['prizes_code'])) {
  269. $data['prizes_code'] = $data['codes'];
  270. }
  271. $data['name'] = $this->name;
  272. $data['game'] = $this->game;
  273. //解析投注号码
  274. if (isset($data['extra']) && !empty($data['extra'])) {
  275. $codes = json_decode($data['codes'], 1);
  276. if (is_array($codes) && count($codes) > 0) {
  277. foreach ($codes as $k => $v) {
  278. if (is_array($v) && count($v) > 0) {
  279. $data[$k] = '';
  280. foreach ($v as $ka => $va) {
  281. $data[$k] .= trans($this->game . '.' . $k . '-' . $ka) . ' ';
  282. }
  283. }
  284. }
  285. }
  286. }
  287. //中奖撤单未中奖状态的处理
  288. if (isset($data['game_status'])) {
  289. if ($data['status'] == 4) {
  290. $data['game_status'] = 4;
  291. }
  292. $lang = trans('status.money_buy.game_status');
  293. $data['game_status'] = $lang[$data['game_status']];
  294. }
  295. unset($data['status']);
  296. return $data;
  297. }
  298. /**
  299. * 单注号码解析
  300. * @param $data 号码json
  301. * @param $game
  302. * @return array
  303. */
  304. function dataChange($data,$orderCode) {
  305. /*echo '<pre>';
  306. print_r($data);
  307. print_r($orderCode);*/
  308. $year = date('Y',strtotime($orderCode['open_time']));
  309. $month = date('m',strtotime($orderCode['open_time']));
  310. $day = date('d',strtotime($orderCode['open_time']));
  311. $lunar = new \App\Http\Controllers\Admin\LunarHandleController;
  312. $newdate=$lunar->convertSolarToLunar($year,$month,$day);
  313. $borrn=$newdate[6];
  314. $args = array();
  315. $buy_code = json_decode($data['codes'], 1); //该注购买号码
  316. $prize_code = json_decode($data['prize'], 1); //该注中奖号码(解析)
  317. $color_code = json_decode($orderCode['prizes'], 1); //该期开奖号码(解析)
  318. $prize_num = $orderCode['codes']; //该期开奖号码(未解析)
  319. //购买号码解析
  320. $color_codes=$color_code['data']['general_color'];
  321. $color_coded=$color_code['data']['seven_colorwave'];
  322. $general_born=$color_code['data']['general_born'];
  323. //正码1-6
  324. $asb=array(
  325. 'general_size',
  326. 'general_parity',
  327. 'general_sumsize',
  328. 'general_sumparity',
  329. 'general_endsize',
  330. );
  331. //两面1-6
  332. $assb=array(
  333. 'general_twofacesize',
  334. 'general_twofaceparity',
  335. 'generalsum_twofacesize',
  336. 'generalsum_twofaceparity',
  337. );
  338. //合肖、半波、半半波
  339. $asd =array(
  340. 'join_born',//合肖
  341. 'special_halfwave',//半波
  342. 'special_mixwave',//半半波
  343. );
  344. //特码混合
  345. $iop = array(
  346. // 特码A_大小、单双、半特(混合)
  347. 'special_size_a',
  348. 'special_parity_a',
  349. 'special_half_a',
  350. 'special_sumsize_a',
  351. 'special_sumparity_a',
  352. 'special_endsize_a',
  353. // 特码b_大小、单双、半特(混合)
  354. 'special_size_b',
  355. 'special_parity_b',
  356. 'special_half_b',
  357. 'special_sumsize_b',
  358. 'special_sumparity_b',
  359. 'special_endsize_b',
  360. //两面
  361. 'special_twofaceparity',
  362. 'specialsum_twofaceparity',
  363. 'special_twofacesize',
  364. 'specialsum_twofacesize'
  365. );
  366. //正码过关注单详情
  367. if(array_key_exists('general_pass', $buy_code)){
  368. return $this->sixGenPass($data);
  369. }
  370. $odds=$this->getSettings();//特殊玩法赔率获取
  371. $dataw=explode(',',$prize_num); //开奖号码转换
  372. //开奖号码尾数获取
  373. foreach ($dataw as $k=>$vv){
  374. $aa[$k]=$vv % 10;
  375. }
  376. $bb=array_unique($aa);
  377. //分组玩法号码分组对应投注金额及赔率
  378. $paramt = $this->CodesData($buy_code, 2);
  379. $paramt = ($paramt<0)?$buy_code:$paramt;
  380. if (is_array($paramt) && count($paramt) > 0) {
  381. $i = 0;
  382. $a="";
  383. foreach ($paramt as $k => $v) {
  384. if (is_array($v) && count($v) > 0) {
  385. foreach ($v as $k1 => $v1) {
  386. $name =trans($data['game_name'] . '.' . $k). '-' . trans($data['game_name'] . '.' . $k1);
  387. //var_dump($name,$data['game_name']);
  388. if(strpos($name,$data['game_name']) !== false){
  389. $datas=explode(',',$k1);
  390. foreach ($datas as $value){
  391. if ($value > 0 || strlen($value) == 1){
  392. $a.=$value.",";
  393. }else{
  394. $a.=trans($data['game_name'] . '.' . $value).",";
  395. }
  396. }
  397. $a= rtrim($a, ',');
  398. if($k=='sum_born' && $k1==2){
  399. $a = '234';
  400. }
  401. $args[$i] = array(
  402. 'gameType' => trans($data['game_name'] . '.' . $k),
  403. 'codes' => trans($data['game_name'] . '.' . $k). '-' . $a,
  404. 'money' => $v1[0],
  405. 'maybe' => $v1[0] * $v1['settings']['multiple'],
  406. 'play' => $k,
  407. 'p_code' => $k1,
  408. 'back' => empty($v1['settings']['back']) ? 0 : $v1['settings']['back'],
  409. );
  410. }else{
  411. $args[$i] = array(
  412. 'gameType' => trans($data['game_name'] . '.' . $k),
  413. 'codes' => trans($data['game_name'] . '.' . $k). '-' . trans($data['game_name'] . '.' . $k1),
  414. 'money' => $v1[0],
  415. 'maybe' => $v1[0] * $v1['settings']['multiple'],
  416. 'play' => $k,
  417. 'p_code' => $k1,
  418. 'back' => empty($v1['settings']['back']) ? 0 : $v1['settings']['back'],
  419. );
  420. }
  421. if (isset($v1['settings']['multiple']['max'])) {
  422. $args[$i]['odds'] = $v1['settings']['multiple']['max'];
  423. } else {
  424. $args[$i]['odds'] = $v1['settings']['multiple'];
  425. }
  426. if ($data['status'] == 4) {
  427. $args[$i]['prize_status'] = '撤单';
  428. $args[$i]['get_money']=0;
  429. } else if ($data['game_status'] == 0) {
  430. $args[$i]['prize_status'] = '待开奖';
  431. $args[$i]['back'] = $v1['settings']['back']*$v1[0];
  432. $args[$i]['get_money']=0;
  433. }elseif(in_array($k,$asd)) {
  434. $datas1 = explode(',', $prize_num);
  435. if (in_array(49, $datas1)) {
  436. $args[$i]['prize_status'] = '和';
  437. $args[$i]['back'] = $v1['settings']['back']*$v1[0];
  438. $args[$i]['get_money'] = $v1[0];
  439. $args[$i]['odds'] = 1;
  440. } else {
  441. $args[$i]['prize_status'] = '未中奖';
  442. $args[$i]['back'] = $v1['settings']['back']*$v1[0];
  443. $args[$i]['get_money'] = -$v1[0];
  444. }
  445. }else{
  446. $args[$i]['back'] = $v1['settings']['back']*$v1[0];
  447. $args[$i]['prize_status'] = '未中奖';
  448. $args[$i]['get_money'] =($v1['settings']['back']*$v1[0])-$v1[0];
  449. }
  450. $i++;
  451. $a="";
  452. }
  453. }
  454. }
  455. }
  456. /*echo '中奖号码';
  457. print_r($args);
  458. print_r($prize_code);*/
  459. $datauu = $dataw;
  460. if (is_array($prize_code) && count($prize_code)) {
  461. foreach ($prize_code as $kk => $vv) {
  462. $name = $kk; //玩法名称
  463. }
  464. foreach ($dataw as $k=>$vv){
  465. if ($vv > 9){
  466. $aa[$k]=$vv % 10;
  467. }
  468. $dataw=''.intval($vv).'';
  469. }
  470. $bb[$name]=array_unique($aa);
  471. $cc=array_unique($aa);
  472. $datass[$name] = $datauu;
  473. array_pop($datauu);
  474. $datd[$name] =$datauu;
  475. //中奖号码
  476. if (array_key_exists("series_twospecial", $prize_code)) {
  477. //二中特
  478. $paramt = $this->CodesDatas($datass, 2, 2, 1);
  479. } elseif (array_key_exists("series_four", $prize_code)) {
  480. //四全中
  481. $paramt = $this->CodesDatas($datd, 4, 4);
  482. } elseif (array_key_exists("series_three", $prize_code)) {
  483. //三全中
  484. $paramt = $this->CodesDatas($datd, 3, 3);
  485. } elseif (array_key_exists("series_specialmix", $prize_code)) {
  486. //特串
  487. $paramt = $this->CodesDatas($datass, 2, 2);
  488. } elseif (array_key_exists("series_two", $prize_code)) {
  489. //二全中
  490. $paramt = $this->CodesDatas($datd, 2, 2);
  491. } elseif (array_key_exists("series_threetwo", $prize_code)) {
  492. //三种二
  493. $paramt = $this->CodesDatas($datass, 3, 2);
  494. } elseif (array_key_exists("series_fiveborn", $prize_code)) {
  495. $paramt = $this->CodesDatas($prize_code, 5, 5, '');
  496. } elseif (array_key_exists("series_fourborn", $prize_code)) {
  497. $paramt = $this->CodesDatas($prize_code, 4, 4, '');
  498. } elseif (array_key_exists("series_threeborn", $prize_code)) {
  499. $paramt = $this->CodesDatas($prize_code, 3, 3, '');
  500. } elseif (array_key_exists("series_twoborn", $prize_code)) {
  501. $paramt = $this->CodesDatas($prize_code, 2, 2, '');
  502. } elseif (array_key_exists("series_fiveend", $prize_code)) {
  503. //五尾碰
  504. if (count($cc) >= 5){
  505. $paramt = $this->CodesDatas($bb, 5, 5);
  506. }else{
  507. $paramt = $this->CodesDatas($datass, 5, 5);
  508. }
  509. } elseif (array_key_exists("series_fourend", $prize_code)) {
  510. if (count($cc) >= 4){
  511. $paramt = $this->CodesDatas($bb, 4, 4);
  512. }else{
  513. $paramt = $this->CodesDatas($datass, 4, 4);
  514. }
  515. } elseif (array_key_exists("series_threeend", $prize_code)) {
  516. if (count($cc) >= 3){
  517. $paramt = $this->CodesDatas($bb, 3, 3);
  518. }else{
  519. $paramt = $this->CodesDatas($datass, 3, 3);
  520. }
  521. } elseif (array_key_exists("series_twoend", $prize_code)) {
  522. //二尾碰
  523. if (count($cc) >= 2){
  524. $paramt = $this->CodesDatas($bb, 2, 2);
  525. }else{
  526. $paramt = $this->CodesDatas($datass, 2, 2);
  527. }
  528. } elseif (array_key_exists("selfselect_fivelose", $buy_code)) {
  529. //五不中
  530. $paramt = $datass;
  531. } elseif (array_key_exists("selfselect_sevenlose", $buy_code)) {
  532. //七不中
  533. $paramt = $datass;
  534. } elseif (array_key_exists("selfselect_ninelose", $buy_code)) {
  535. //九不中
  536. $paramt = $datass;
  537. } elseif (array_key_exists("selfselect_sixlose", $buy_code)) {
  538. //六不中
  539. $paramt = $datass;
  540. } elseif (array_key_exists("selfselect_tenlose", $buy_code)) {
  541. //十不中
  542. $paramt = $datass;
  543. } elseif (array_key_exists("selfselect_twelvelose", $buy_code)) {
  544. //十二不中
  545. $paramt = $datass;
  546. } elseif (array_key_exists("selfselect_elevenlose", $buy_code)) {
  547. //十一不中
  548. $paramt = $datass;
  549. } elseif (array_key_exists("selfselect_eightlose", $buy_code)) {
  550. //八不中
  551. $paramt = $datass;
  552. } else {
  553. $paramt = $prize_code;
  554. }
  555. //print_r($paramt);
  556. //自选不中
  557. $arry = array(
  558. 'selfselect_eightlose',//八不中
  559. 'selfselect_elevenlose',
  560. 'selfselect_twelvelose',
  561. 'selfselect_tenlose',
  562. 'selfselect_sixlose',
  563. 'selfselect_ninelose',
  564. 'selfselect_sevenlose',
  565. 'selfselect_fivelose',//五不中
  566. );
  567. //连码
  568. $arrys = array(
  569. 'series_twospecial',//二中特
  570. 'series_threetwo'
  571. );
  572. //连尾
  573. $asse = array(
  574. '5'=>'series_fiveend',
  575. '4'=>'series_fourend',
  576. '3'=>'series_threeend',
  577. '2'=>'series_twoend',
  578. );
  579. // 连肖
  580. $assed = array(
  581. 'series_twoborn',
  582. 'series_threeborn',
  583. 'series_fourborn',
  584. 'series_fiveborn',
  585. );
  586. /*echo '<br>args:';
  587. print_r($args);
  588. echo 'borrn:'.$borrn;*/
  589. if ($data['status'] != 4) {
  590. foreach ($paramt as $p_k => $p_v) {
  591. //购买号码
  592. foreach ($args as $num => $v) {
  593. if ($v['play'] == $p_k) {
  594. if (is_array($p_v) && count($p_v) > 0) {
  595. if (in_array($p_k, $arry)) {
  596. $not_num = 2;
  597. foreach ($p_v as $p_k1 => $p_v2) {
  598. $datas = explode(',', $v['p_code']);
  599. foreach ($datas as $vss) {
  600. if ($vss == $p_v2) {
  601. $not_num = 1;
  602. break;
  603. }
  604. }
  605. }
  606. if ($not_num == 2) {
  607. $args[$num]['prize_status'] = '中奖';
  608. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  609. } else {
  610. $args[$num]['back'] = ($v['back'] * 100) . '%';
  611. $args[$num]['prize_status'] = '未中奖';
  612. }
  613. } elseif (in_array($p_k, $arrys)) {
  614. foreach ($p_v as $p_k1 => $p_v2) {
  615. $datass = explode(',', $p_v2);
  616. $datas2 = explode(',', $v['p_code']);
  617. foreach ($datass as $va) {
  618. $datas1[] = intval($va);
  619. }
  620. if (count($datas1) == 2) {
  621. if ($v['p_code'] == $p_v2) {
  622. $args[$num]['prize_status'] = '中奖';
  623. $args[$num]['get_money'] = ($v['money'] * $odds[$p_k]['settings']['multiple']['min'] + $v['back']) - $v['money'];
  624. $args[$num]['odds'] = $odds[$p_k]['settings']['multiple']['min'];
  625. $args[$num]['maybe'] = $odds[$p_k]['settings']['multiple']['min'] * $v['money'];
  626. }
  627. if ($v['p_code'] == $p_v2 && stripos($v['p_code'], $dataw) !== false) {
  628. $args[$num]['prize_status'] = '中奖';
  629. $args[$num]['odds'] = $odds[$p_k]['settings']['multiple']['max'];
  630. $args[$num]['get_money'] = ($v['money'] * $odds[$p_k]['settings']['multiple']['max'] + $v['back']) - $v['money'];
  631. $args[$num]['maybe'] = $odds[$p_k]['settings']['multiple']['max'] * $v['money'];
  632. }
  633. }
  634. if (count($datas1) == 3) {
  635. if ($v['p_code'] == $p_v2 && stripos($v['p_code'], $dataw) === false) {
  636. $args[$num]['prize_status'] = '中奖';
  637. $args[$num]['get_money'] = ($v['money'] * $odds[$p_k]['settings']['multiple']['min'] + $v['back']) - $v['money'];
  638. $args[$num]['odds'] = $odds[$p_k]['settings']['multiple']['min'];
  639. $args[$num]['maybe'] = $v['money'] * $odds[$p_k]['settings']['multiple']['min'];
  640. break;
  641. }
  642. $intersection = array_intersect($datas1, $datas2);
  643. if (count($intersection) == 2 && $v['p_code'] != $p_v2) {
  644. $args[$num]['prize_status'] = '中奖';
  645. $args[$num]['odds'] = $odds[$p_k]['settings']['multiple']['max'];
  646. $args[$num]['get_money'] = ($v['money'] * $odds[$p_k]['settings']['multiple']['max'] + $v['back']) - $v['money'];
  647. $args[$num]['maybe'] = $v['money'] * $odds[$p_k]['settings']['multiple']['max'];
  648. }
  649. }
  650. unset($datas1);
  651. }
  652. } elseif (in_array($p_k, $asd)) {
  653. $datas1 = explode(',', $prize_num);
  654. if (in_array(49, $datas1)) {
  655. $args[$num]['prize_status'] = '和';
  656. $args[$num]['odds'] = 1;
  657. $args[$num]['get_money'] = $v['money'];
  658. } else {
  659. foreach ($p_v as $p_k1 => $p_v2) {
  660. if ($v['p_code'] == $p_v2) {
  661. $args[$num]['prize_status'] = '中奖';
  662. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  663. break;
  664. } else {
  665. $args[$num]['prize_status'] = '未中奖';
  666. }
  667. }
  668. }
  669. }elseif (in_array($p_k, $iop)) {
  670. $datas1 = explode(',', $prize_num);
  671. $nums= count($datas1);
  672. if ($datas1[$nums-1] == "49") {
  673. $args[$num]['prize_status'] = '和';
  674. $args[$num]['odds'] = 1;
  675. $args[$num]['get_money'] = $v['money'];
  676. } else {
  677. foreach ($p_v as $p_k1 => $p_v2) {
  678. if ($v['p_code'] == $p_v2) {
  679. $args[$num]['prize_status'] = '中奖';
  680. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  681. }
  682. }
  683. }
  684. } elseif ($p_k == 'series_specialmix') {
  685. foreach ($p_v as $p_k1 => $p_v2) {
  686. if ($v['p_code'] == $p_v2 && stripos($v['p_code'], $dataw) !== false) {
  687. $args[$num]['prize_status'] = '中奖';
  688. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  689. break;
  690. } else {
  691. $args[$num]['prize_status'] = '未中奖';
  692. }
  693. }
  694. } elseif ($p_k == 'general_born') {
  695. $num_data = $general_born;
  696. foreach ($num_data as $p_k1 => $p_v2) {
  697. if ($v['p_code'] == $p_k1 && count($p_v2) > 1) {
  698. $args[$num]['prize_status'] = '中奖';
  699. $args[$num]['maybe'] = $v['money'] * $v['odds'] * count($p_v2) - $v['money'] . " (" . count($p_v2) . "倍)";
  700. $args[$num]['get_money'] = ($v['money'] * $v['odds'] - $v['money']) * count($p_v2) + $v['back'] . " (" . count($p_v2) . "倍)";
  701. break;
  702. } elseif ($v['p_code'] == $p_k1 && count($p_v2) == 1) {
  703. $args[$num]['prize_status'] = '中奖';
  704. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  705. break;
  706. } else {
  707. $args[$num]['prize_status'] = '未中奖';
  708. }
  709. }
  710. }elseif ($p_k == 'seven_colorwave') {
  711. foreach ($p_v as $p_k1 => $p_v2) {
  712. if ($v['p_code'] == $p_v2 && $v['p_code'] == 'draw') {
  713. $args[$num]['prize_status'] = '中奖';
  714. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  715. break;
  716. } else {
  717. $args[$num]['prize_status'] = '和';
  718. $args[$num]['get_money'] = 0;
  719. }
  720. if ($v['p_code'] == $p_v2 ) {
  721. $args[$num]['prize_status'] = '中奖';
  722. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  723. break;
  724. } else {
  725. $args[$num]['prize_status'] = '未中奖';
  726. }
  727. }
  728. } elseif (in_array($p_k, $asb)) {
  729. $datas1 = explode(',', $prize_num);
  730. $datrr = explode('_', $v['p_code']);
  731. foreach ($datas1 as $k1 => $v1) {
  732. foreach ($datrr as $k2 => $v2) {
  733. if ((string)$k1 + 1 == $v2 && $v1 == "49") {
  734. $args[$num]['prize_status'] = '和';
  735. $args[$num]['get_money'] = $v['money'];
  736. $args[$num]['odds'] = 1;
  737. } else {
  738. foreach ($p_v as $p_k1 => $p_v2) {
  739. if ($v['p_code'] == $p_v2) {
  740. $args[$num]['prize_status'] = '中奖';
  741. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  742. }
  743. }
  744. }
  745. }
  746. }
  747. } elseif (in_array($p_k, $assb)) {
  748. $datas1 = explode(',', $prize_num);
  749. $datrr = explode('_', $v['p_code']);
  750. foreach ($datas1 as $k1 => $v1) {
  751. foreach ($datrr as $k2 => $v2) {
  752. if ((string)$k1 + 1 == $v2 && $v1 == "49") {
  753. $args[$num]['prize_status'] = '和';
  754. $args[$num]['get_money'] = $v['money'];
  755. $args[$num]['odds'] = 1;
  756. } else {
  757. foreach ($p_v as $p_k1 => $p_v2) {
  758. if ($v['p_code'] == $p_v2) {
  759. $args[$num]['prize_status'] = '中奖';
  760. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  761. }
  762. }
  763. }
  764. }
  765. }
  766. } elseif (in_array($p_k, $asse)) {
  767. foreach ($asse as $kk => $vv) {
  768. if (count($bb) < $kk) {
  769. $args[$num]['prize_status'] = '未中奖';
  770. }
  771. }
  772. foreach ($p_v as $p_k1 => $p_v2) {
  773. if ($v['p_code'] == $p_v2) {
  774. if (stripos($p_v2, '0') !== false) {
  775. $args[$num]['prize_status'] = '中奖';
  776. $args[$num]['odds'] = $odds[$p_k . '-' . '0']['settings']['multiple']['max'];
  777. $args[$num]['get_money'] = $v['money'] * $odds[$p_k . '-' . '0']['settings']['multiple']['max'] + $v['back'] - $v['money'];
  778. $args[$num]['maybe'] = $v['money'] * $odds[$p_k . '-' . '0']['settings']['multiple']['max'];
  779. break;
  780. } else {
  781. $args[$num]['prize_status'] = '中奖';
  782. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  783. break;
  784. }
  785. } else {
  786. $args[$num]['prize_status'] = '未中奖';
  787. }
  788. }
  789. } elseif (in_array($p_k, $assed)) {
  790. foreach ($p_v as $p_k1 => $p_v2) {
  791. //echo '<br>'.$v['p_code'].'p-v2:'.$p_v2;
  792. if ($v['p_code'] == $p_v2) {
  793. if (stripos($p_v2, $borrn) !== false) {
  794. $args[$num]['prize_status'] = '中奖';
  795. $args[$num]['odds'] = $odds[$p_k . '-' . $borrn]['settings']['multiple']['max'];
  796. $args[$num]['get_money'] = $v['money'] * $odds[$p_k . '-' . $borrn]['settings']['multiple']['max'] + $v['back'] - $v['money'];
  797. $args[$num]['maybe'] = $v['money'] * $odds[$p_k . '-' . $borrn]['settings']['multiple']['max'];
  798. break;
  799. } else {
  800. $args[$num]['prize_status'] = '中奖';
  801. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  802. break;
  803. }
  804. } else {
  805. $args[$num]['prize_status'] = '未中奖';
  806. }
  807. }
  808. } else {
  809. foreach ($p_v as $p_k1 => $p_v2) {
  810. if ($v['p_code'] == $p_v2) {
  811. $args[$num]['prize_status'] = '中奖';
  812. $args[$num]['get_money'] = ($v['money'] * $v['odds'] + $v['back']) - $v['money'];
  813. break;
  814. } else {
  815. $args[$num]['prize_status'] = '未中奖';
  816. }
  817. }
  818. }
  819. }
  820. }
  821. }
  822. }
  823. }
  824. }
  825. //echo '</pre>';
  826. return $args;
  827. }
  828. //购买号码
  829. function buyCodes($data, $game) {
  830. }
  831. private function groupTypedata($type){
  832. $codegroup = array(
  833. 'series_twospecial'=>array(2,2,1),//二中特
  834. 'series_four' => array(4,4),//四全中
  835. 'series_three' => array(3,3),//三全中
  836. 'series_specialmix' => array(2,2),//特串
  837. 'series_two' => array(2,2),//二全中
  838. 'series_threetwo' => array(3,2),//三中二
  839. 'series_fiveborn' => array(5,5,''),//五连肖
  840. 'series_fourborn' => array(4,4,''),//四连肖
  841. 'series_threeborn' => array(3,3,''),//三连肖
  842. 'series_twoborn' => array(2,2,''),//二连肖
  843. 'series_fiveend' => array(5,5,''),//五尾碰
  844. 'series_fourend' => array(4,4,''),//四尾碰
  845. 'series_threeend' => array(3,3,''),//三尾碰
  846. 'series_twoend' => array(2,2,''),//二尾碰
  847. 'selfselect_fivelose' => array(5,5),//五不中
  848. 'selfselect_sixlose' => array(6,6),//六不中
  849. 'selfselect_sevenlose' => array(7,7),//七不中
  850. 'selfselect_eightlose' => array(8,8),//八不中
  851. 'selfselect_ninelose' => array(9,9),//九不中
  852. 'selfselect_tenlose' => array(10,10),//十不中
  853. 'selfselect_elevenlose' => array(11,11),//十一不中
  854. 'selfselect_twelvelose' => array(12,12),//十二不中
  855. );
  856. if(isset($codegroup[$type])){
  857. return $codegroup[$type];
  858. }else{
  859. return -1;
  860. }
  861. }
  862. function CodesData($data, $num, $is_prize = '', $is_str = '', $game = '')
  863. {
  864. $codes = array();
  865. foreach ($data as $k => $v) {
  866. $groupinfo = $this->groupTypedata($k);
  867. $type = $k;
  868. if (is_array($v) && count($v) > 0) {
  869. foreach ($v as $k1 => $v1) {
  870. $money = $v[$k1][0];
  871. if ($k == 'series_twospecial'){
  872. $codes[]= str_replace('g_','',$k1);
  873. }else{
  874. $codes[] = $k1;
  875. }
  876. }
  877. }
  878. }
  879. if($groupinfo<0){
  880. return $groupinfo;
  881. }
  882. $num = $groupinfo[0];
  883. $datas=array();
  884. $datad=array();
  885. sort($codes);
  886. if(count($codes) >= $num){
  887. $a = $this->Isniu($codes, $num);
  888. }else{
  889. $nums = count($codes);
  890. $a = $this->Isniu($codes, $nums);
  891. }
  892. foreach ($data as $val){
  893. foreach ($val as $value){
  894. foreach ($a as $k=>$v){
  895. $datas[$v]=$value;
  896. }
  897. }
  898. }
  899. $datad[$type]=$datas;
  900. return $datad;
  901. }
  902. function CodeData($data)
  903. {
  904. $codes = array();
  905. foreach ($data as $k => $v) {
  906. $type = $k;
  907. if (is_array($v) && count($v) > 0) {
  908. foreach ($v as $k1 => $v1) {
  909. $temp = explode('_', $k1);
  910. $money = $v[$k1][0];
  911. if (!array_key_exists($temp[0] - 1, $codes)) {
  912. $codes[$temp[0] - 1] = array();
  913. array_push($codes[$temp[0] - 1], intval($temp[1]));
  914. } else {
  915. array_push($codes[$temp[0] - 1], intval($temp[1]));
  916. }
  917. }
  918. }
  919. }
  920. $tempArr = $this->countNum($codes, $money, $type);
  921. return $tempArr;
  922. }
  923. function CodesDatas($data, $num, $is_prize = '', $is_str = '', $game = '')
  924. {
  925. $codes = array();
  926. foreach ($data as $k => $v) {
  927. $type = $k;
  928. if (is_array($v) && count($v) > 0) {
  929. foreach ($v as $k1 => $v1) {
  930. $money = $v[$k1][0];
  931. $codes[] = is_numeric($v1)?intval($v1):$v1;
  932. }
  933. }
  934. }
  935. $datas=array();
  936. $datad=array();
  937. sort($codes);
  938. $a = $this->Isniu($codes, $num);
  939. foreach ($a as $k=>$v){
  940. $datas[$k]=$v;
  941. }
  942. $datad[$type]=$datas;
  943. return $datad;
  944. }
  945. function getCombinationToString($arr, $m)
  946. {
  947. $result = array();
  948. if ($m == 1) {
  949. return $arr;
  950. }
  951. if ($m == count($arr)) {
  952. $result[] = implode(',', $arr);
  953. return $result;
  954. }
  955. $temp_firstelement = $arr[0];
  956. unset($arr[0]);
  957. $arr = array_values($arr);
  958. $temp_list1 = $this->getCombinationToString($arr, ($m - 1));
  959. foreach ($temp_list1 as $s) {
  960. $s = $temp_firstelement . ',' . $s;
  961. $result[] = $s;
  962. }
  963. unset($temp_list1);
  964. $temp_list2 = $this->getCombinationToString($arr, $m);
  965. foreach ($temp_list2 as $s) {
  966. $result[] = $s;
  967. }
  968. unset($temp_list2);
  969. return $result;
  970. }
  971. function Isniu($codes, $num)
  972. {
  973. $r = $this->getCombinationToString($codes, $num);
  974. return $r;
  975. }
  976. function CodesDatasd($data, $num, $game_name)
  977. {
  978. $codes = array();
  979. foreach ($data as $k => $v) {
  980. $type = $k;
  981. if (is_array($v) && count($v) > 0) {
  982. foreach ($v as $k1 => $v1) {
  983. $money = $v[$k1][0];
  984. $codes[] = $k1;
  985. }
  986. }
  987. }
  988. // dump($codes);
  989. foreach ($codes as $v) {
  990. $coded[] = lang($game_name)->get($v);
  991. }
  992. // dump($coded);
  993. if(count($codes) >= $num){
  994. $a = $this->Isniu($codes, $num);
  995. }else{
  996. $nums = count($codes);
  997. $a = $this->Isniu($codes, $nums);
  998. }
  999. // dump($a);
  1000. foreach ($a as $k => $v) {
  1001. $codelists[$k]['codes'] = $v;
  1002. $codelists[$k]['money'] = $money;
  1003. $codelists[$k]['codeDate'] = $type;
  1004. }
  1005. // dump($codelists);
  1006. return $codelists;
  1007. }
  1008. //六合彩正码过关解析
  1009. function sixGenPass($data){
  1010. $buy_code = json_decode($data['codes'], 1); //该注购买号码
  1011. $prize_code = json_decode($data['prize'], 1); //改注中奖号码
  1012. $game=$data['game_name'];
  1013. if (is_array($buy_code) && count($buy_code) > 0) {
  1014. $return_data=array();
  1015. //投注数组
  1016. foreach ($buy_code as $k=>$v){
  1017. $return_data['gameType']=trans($game. '.' . $k);//玩法
  1018. if (is_array($v) && count($v) > 0) {
  1019. $codes_content='';//号码
  1020. $money=0;//投注金额
  1021. $maybe=0;//可赢金额
  1022. $odds=1;//倍率
  1023. foreach ($v as $ka => $va) {
  1024. $codes_content.=trans($game . '.' . $ka).' ';//号码
  1025. $money+=$va[0];
  1026. $maybe += $va[0] * $va['settings']['multiple'];
  1027. $back = empty($va['settings']['back']) ? 0 : $va['settings']['back'];
  1028. $return_data['play'] = $k;
  1029. $return_data['p_code'] = $ka;
  1030. if (isset($va['settings']['multiple']['max'])) {
  1031. $odds *= $va['settings']['multiple']['max'];
  1032. } else {
  1033. $odds *= $va['settings']['multiple'];
  1034. }
  1035. }
  1036. //中奖状态
  1037. if ($data['status'] == 4) {
  1038. $return_data['prize_status'] = '撤单';
  1039. } else if ($data['game_status'] == 0) {
  1040. $return_data['prize_status'] = '待开奖';
  1041. }else if ($data['game_status'] == 1){
  1042. $return_data['prize_status']='中奖';
  1043. $odds=round($data['prize_money']/$data['money'],2);
  1044. } else if ($data['game_status'] == 2){
  1045. $return_data['prize_status']='未中奖';
  1046. }
  1047. $maybe=$odds*$data['money'];
  1048. $return_data['codes']=$codes_content;
  1049. $return_data['money']=round($data['money'],2);
  1050. $return_data['maybe']=round($maybe,2);
  1051. $return_data['odds']=round($odds,2);
  1052. $return_data['get_money']=round($data['get_money'],2);
  1053. }
  1054. $res_data[]=$return_data;
  1055. }
  1056. }
  1057. return $res_data;
  1058. }
  1059. //六合彩组合类型
  1060. private function groupType(){
  1061. return array('series_threetwo','series_three','series_two','series_four','series_twospecial','series_specialmix','selfselect_fivelose','selfselect_sixlose','selfselect_sevenlose','selfselect_eightlose','selfselect_ninelose','selfselect_tenlose','selfselect_elevenlose','selfselect_twelvelose','join_born','series_twoborn','series_threeborn','series_fourborn','series_fiveborn','series_twoend','series_threeend','series_fourend','series_fiveend','join_born');
  1062. }
  1063. }