FootballSettlement.php 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616
  1. <?php
  2. use app\models\SportEvent;
  3. /***************胜相关的玩法***************** */
  4. /**
  5. * 全场胜负(Match Winner) 玩法
  6. * 主胜(Home)、平局(Draw)、客胜(Away)
  7. * $amount:下注金额
  8. * $params['score']:主队-客对
  9. * $detail:下注时的详情
  10. */
  11. function MatchWinner($amount, $detail, $params)
  12. {
  13. $score = getScore($params['score']);
  14. $home = $score['home'];
  15. $away = $score['away'];
  16. $value_and_odd = getValueAndOdd($detail);
  17. $value = $value_and_odd['value'];
  18. $odd = $value_and_odd['odd'];
  19. $is_win = 0;
  20. if ($home > $away && $value == 'Home') {
  21. $is_win = 1;
  22. } elseif ($away > $home && $value == 'Away') {
  23. $is_win = 1;
  24. } elseif ($home == $away && $value == 'Draw') {
  25. $is_win = 1;
  26. }
  27. return getResult($is_win, $amount, $odd);
  28. }
  29. /**
  30. * Home/Away(主胜/客胜) 玩法(平局不输不赢)
  31. * 主胜(Home)、平局(Draw)、客胜(Away)
  32. * $amount:下注金额
  33. * $params['score']:主队-客对
  34. * $detail:下注时的详情
  35. */
  36. function HomeAwayWinner($amount, $detail, $params)
  37. {
  38. $score = getScore($params['score']);
  39. $home = $score['home'];
  40. $away = $score['away'];
  41. $value_and_odd = getValueAndOdd($detail);
  42. $value = $value_and_odd['value'];
  43. $odd = $value_and_odd['odd'];
  44. $is_win = 0;
  45. if ($home > $away && $value == 'Home') {
  46. $is_win = 1;
  47. } elseif ($away > $home && $value == 'Away') {
  48. $is_win = 1;
  49. } elseif ($home == $away && $value == 'Draw') {
  50. $is_win = 2;
  51. }
  52. return getResult($is_win, $amount, $odd);
  53. }
  54. /**
  55. * Second Half Winner(下半场胜负) 玩法
  56. * 主胜(Home)、平局(Draw)、客胜(Away)
  57. * $amount:下注金额
  58. * $half_score:上半场比分
  59. * $score:主队-客对
  60. * $detail:下注时的详情
  61. */
  62. function SecondHalfWinner($amount, $detail, $params)
  63. {
  64. $score = getHalfScore($params['score'], $params['half_score']);
  65. $home = $score['home'];
  66. $away = $score['away'];
  67. $value_and_odd = getValueAndOdd($detail);
  68. $value = $value_and_odd['value'];
  69. $odd = $value_and_odd['odd'];
  70. $is_win = 0;
  71. if ($home > $away && $value == 'Home') {
  72. $is_win = 1;
  73. } elseif ($away > $home && $value == 'Away') {
  74. $is_win = 1;
  75. } elseif ($home == $away && $value == 'Draw') {
  76. $is_win = 1;
  77. }
  78. return getResult($is_win, $amount, $odd);
  79. }
  80. /**
  81. * Win to Nil - Home(主队零封获胜:主队赢,客队的进球数为 0) 玩法
  82. * -yes: 主队零封获胜就中奖
  83. * -no: 非主队零封获胜就中奖
  84. * $amount:下注金额
  85. * $score:主队-客对
  86. * $detail:下注时的详情
  87. */
  88. function WinToNilHomeWinner($amount, $detail, $params)
  89. {
  90. }
  91. /**
  92. * First Half Winner(上半场胜负) 玩法
  93. * 主胜(Home)、平局(Draw)、客胜(Away)
  94. * $amount:下注金额
  95. * $half_score:上半场比分
  96. * $detail:下注时的详情
  97. */
  98. function FirstHalfWinner($amount, $detail, $params)
  99. {
  100. $score = getScore($params['half_score']);
  101. $home = $score['home'];
  102. $away = $score['away'];
  103. $value_and_odd = getValueAndOdd($detail);
  104. $value = $value_and_odd['value'];
  105. $odd = $value_and_odd['odd'];
  106. $is_win = 0;
  107. if ($home > $away && $value == 'Home') {
  108. $is_win = 1;
  109. } elseif ($away > $home && $value == 'Away') {
  110. $is_win = 1;
  111. } elseif ($home == $away && $value == 'Draw') {
  112. $is_win = 1;
  113. }
  114. return getResult($is_win, $amount, $odd);
  115. }
  116. /**
  117. * Win Both Halves(上下半场均获胜) 玩法
  118. * -Home: 主队上下半场都赢就中奖
  119. * -Away: 客队上下半场都赢就中奖
  120. * $amount:下注金额
  121. * $params['half_score']:上半场比分
  122. * $params['score']:主队-客对
  123. * $detail:下注时的详情
  124. */
  125. function WinBothHalvesWinner($amount, $detail, $params)
  126. {
  127. //上半场得分
  128. $score = getScore($params['half_score']);
  129. $home_first_half = $score['home'];
  130. $away_first_half = $score['away'];
  131. //下半场得分
  132. $score = getHalfScore($params['score'], $params['half_score']);
  133. $home_second_half = $score['home'];
  134. $away_second_half = $score['away'];
  135. $value_and_odd = getValueAndOdd($detail);
  136. $value = $value_and_odd['value'];
  137. $odd = $value_and_odd['odd'];
  138. $is_win = 0;
  139. if ($home_first_half > $away_first_half && $home_second_half > $away_second_half && $value == 'Home') {
  140. $is_win = 1; //主胜
  141. } elseif ($home_first_half < $away_first_half && $home_second_half < $away_second_half && $value == 'Away') {
  142. $is_win = 1; //客胜
  143. }
  144. return getResult($is_win, $amount, $odd);
  145. }
  146. /**
  147. * Double Chance(双选胜平负) 玩法
  148. * -Home or Draw:主队赢或打平就中奖
  149. * -Away or Draw:客队赢或打平就中奖
  150. * -Home or Away:只要分出胜负你就中奖
  151. * $amount:下注金额
  152. * $params['score']:主队-客对
  153. * $detail:下注时的详情
  154. */
  155. function DoubleChance($amount, $detail, $params)
  156. {
  157. $score = getScore($params['score']);
  158. $home = $score['home'];
  159. $away = $score['away'];
  160. $value_and_odd = getValueAndOdd($detail);
  161. $value = $value_and_odd['value'];
  162. $odd = $value_and_odd['odd'];
  163. $is_win = 0;
  164. if ($home >= $away && ($value == 'Home or Draw' || $value == 'Home/Draw')) {
  165. $is_win = 1;
  166. } elseif ($away >= $home && ($value == 'Away or Draw' || $value == 'Away/Draw')) {
  167. $is_win = 1;
  168. } elseif ($home != $away && ($value == 'Home or Away' || $value == 'Home/Away')) {
  169. $is_win = 1;
  170. }
  171. return getResult($is_win, $amount, $odd);
  172. }
  173. /**
  174. * Double Chance - First Half(上半场双选胜平负) 玩法
  175. * -Home or Draw:主队赢或打平就中奖
  176. * -Away or Draw:客队赢或打平就中奖
  177. * -Home or Away:只要分出胜负你就中奖
  178. * $amount:下注金额
  179. * $score:主队-客对
  180. * $detail:下注时的详情
  181. */
  182. function DoubleChanceFirstHalf($amount, $detail, $params)
  183. {
  184. $score = getScore($params['half_score']);
  185. $home = $score['home'];
  186. $away = $score['away'];
  187. $value_and_odd = getValueAndOdd($detail);
  188. $value = $value_and_odd['value'];
  189. $odd = $value_and_odd['odd'];
  190. $is_win = 0;
  191. if ($home >= $away && ($value == 'Home or Draw' || $value == 'Home/Draw')) {
  192. $is_win = 1;
  193. } elseif ($away >= $home && ($value == 'Away or Draw' || $value == 'Away/Draw')) {
  194. $is_win = 1;
  195. } elseif ($home != $away && ($value == 'Home or Away' || $value == 'Home/Away')) {
  196. $is_win = 1;
  197. }
  198. return getResult($is_win, $amount, $odd);
  199. }
  200. /***************进球相关的玩法***************** */
  201. /**
  202. * Both Teams Score(双方均有进球) 玩法
  203. * -Yes: 预测两支球队在比赛中都能至少攻入 1 球
  204. * -No: 预测至少有一支球队进球数为 0(或者两队都没有进球)
  205. * $amount:下注金额
  206. * $score:主队-客对
  207. * $detail:下注时的详情
  208. */
  209. function BothTeamsScore($amount, $detail, $params)
  210. {
  211. $score = getScore($params['score']);
  212. $home = $score['home'];
  213. $away = $score['away'];
  214. return getBothTeamsScore($amount, $home, $away,$detail);
  215. }
  216. /**
  217. * Team To Score First(首支进球球队) 玩法
  218. * -Home: 预测主队打入全场第一个进球
  219. * -Away: 预测客队打入全场第一个进球
  220. * -Draw: 预测两队打平
  221. * $amount:下注金额
  222. * $score:主队-客对
  223. * $detail:下注时的详情
  224. */
  225. function TeamToScoreFirst($amount, $detail, $params)
  226. {
  227. return teamToScore($amount, $detail, $params['data_id'], $params['home_team_id'], $params['guest_team_id'], 'first');
  228. }
  229. /**
  230. * Team To Score Last(首支进球球队) 玩法
  231. * -Home: 预测主队打入全场第一个进球
  232. * -Away: 预测客队打入全场第一个进球
  233. * -Draw: 预测两队打平
  234. * $amount:下注金额
  235. * $score:主队-客对
  236. * $detail:下注时的详情
  237. */
  238. function TeamToScoreLast($amount, $detail, $params)
  239. {
  240. return teamToScore($amount, $detail, $params['data_id'], $params['home_team_id'], $params['guest_team_id'], 'last');
  241. }
  242. function teamToScore($amount, $detail, $data_id, $home_team_id, $away_team_id, $type = 'first')
  243. {
  244. $order = $type == 'first' ? 'asc' : 'desc';
  245. $team_id = SportEvent::where('data_id', $data_id)->where('type', 'Goal')->order('time_elapsed', $order)->value('team_id');
  246. $value_and_odd = getValueAndOdd($detail);
  247. $value = $value_and_odd['value'];
  248. $odd = $value_and_odd['odd'];
  249. $is_win = 0;
  250. if ($home_team_id == $team_id && strtolower($value) == 'home' ) {
  251. $is_win = 1;
  252. } elseif ($away_team_id == $team_id && strtolower($value) == 'away' ) {
  253. $is_win = 1;
  254. }
  255. return getResult($is_win, $amount, $odd);
  256. }
  257. /**
  258. * Total - Home(主队总进球数) 玩法
  259. * -Over 1.5: 预测主队至少打进 2 个 或更多球
  260. * -Under 1.5: 预测主队进球数为 0 个 或 1 个
  261. * $amount:下注金额
  262. * $score:主队-客对
  263. * $detail:下注时的详情
  264. */
  265. function TotalHome($amount,$detail, $params)
  266. {
  267. $score = getScore($params['score']);
  268. $home = $score['home'];
  269. return totalHomeOrAway($amount, $home,$detail);
  270. }
  271. /**
  272. * Total - Away(客队总进球数) 玩法
  273. * -Over 1.5: 预测客队至少打进 2 个 或更多球
  274. * -Under 1.5: 预测客队进球数为 0 个 或 1 个
  275. * $amount:下注金额
  276. * $score:主队-客对
  277. * $detail:下注时的详情
  278. */
  279. function TotalAway($amount, $detail, $params)
  280. {
  281. $score = getScore($params['score']);
  282. $away = $score['away'];
  283. return totalHomeOrAway($amount, $away,$detail);
  284. }
  285. /**
  286. * Both Teams Score - First Half(上半场双方均进球) 玩法
  287. * -Yes: 预测上半场结束时,两队都至少各进一球
  288. * -No: 预测上半场结束时,至少有一支球队没进球
  289. * $amount:下注金额
  290. * $score:主队-客对
  291. * $detail:下注时的详情
  292. */
  293. function BothTeamsScoreFirstHalf($amount,$detail, $params)
  294. {
  295. $score = getScore($params['half_score']);
  296. $home = $score['home'];
  297. $away = $score['away'];
  298. return getBothTeamsScore($amount, $home, $away, $detail);
  299. }
  300. /**
  301. * Both Teams To Score - Second Half(下半场双方均进球) 玩法
  302. * -Yes: 预测下半场结束时,两队都至少各进一球
  303. * -No: 预测下半场结束时,至少有一支球队没进球
  304. * $amount:下注金额
  305. * $score:主队-客对
  306. * $detail:下注时的详情
  307. */
  308. function BothTeamsScoreSecondHalf($amount,$detail, $params)
  309. {
  310. $half_score = getHalfScore($params['score'], $params['half_score']);
  311. $half_home = $half_score['home'];
  312. $half_away = $half_score['away'];
  313. return getBothTeamsScore($amount, $half_home, $half_away, $detail);
  314. }
  315. /**
  316. * Goals Over/Under(全场大小球) 玩法
  317. * -Over 1.5: 预测全场总进球数大于1.5
  318. * -Under 1.5: 预测全场进球数小于1.5
  319. * $amount:下注金额
  320. * $score:主队-客对
  321. * $detail:下注时的详情
  322. */
  323. function GoalsOverUnder($amount,$detail, $params)
  324. {
  325. $score = getScore($params['score']);
  326. $score = $score['home'] + $score['away'];
  327. return totalHomeOrAway($amount, $score, $detail);
  328. }
  329. /**
  330. * Goals Over/Under First Half(上半场大小球) 玩法
  331. * -Over 1.5: 预测上半场总进球数大于1.5
  332. * -Under 1.5: 预测上半场进球数小于1.5
  333. * $amount:下注金额
  334. * $score:主队-客对
  335. * $detail:下注时的详情
  336. */
  337. function GoalsOverUnderFirstHalf($amount,$detail, $params)
  338. {
  339. $score = getScore($params['half_score']);
  340. $score = $score['home'] + $score['away'];
  341. return totalHomeOrAway($amount, $score, $detail);
  342. }
  343. /**
  344. * Goals Over/Under - Second Half(下半场大小球) 玩法
  345. * -Over 1.5: 预测下半场总进球数大于1.5
  346. * -Under 1.5: 预测下半场进球数小于1.5
  347. * $amount:下注金额
  348. * $score:主队-客对
  349. * $detail:下注时的详情
  350. */
  351. function GoalsOverUnderSecondHalf($amount,$detail, $params)
  352. {
  353. $score = getHalfScore($params['score'], $params['half_score']);
  354. $score = $score['home'] + $score['away'];
  355. return totalHomeOrAway($amount, $score, $detail);
  356. }
  357. //双方均进球的处理方法
  358. function getBothTeamsScore($amount, $home, $away,$detail)
  359. {
  360. $value_and_odd = getValueAndOdd($detail);
  361. $odd = $value_and_odd['odd'];
  362. $value = $value_and_odd['value'];
  363. $is_win = 0;
  364. if ($home > 0 && $away > 0 && strtolower($value) == 'yes' ) {
  365. $is_win = 1;
  366. } elseif (($away == 0 || $home == 0) && strtolower($value) == 'no' ) {
  367. $is_win = 1;
  368. }
  369. return getResult($is_win, $amount, $odd);
  370. }
  371. /**
  372. * Odd/Even(总进球数奇偶) 玩法
  373. * -Yes: 预测上半场结束时,两队都至少各进一球
  374. * -No: 预测上半场结束时,至少有一支球队没进球
  375. * $amount:下注金额
  376. * $score:主队-客对
  377. * $detail:下注时的详情
  378. */
  379. function OddEven($amount,$detail, $params)
  380. {
  381. $score = getScore($params['score']);
  382. $goals = $score['home'] + $score['away'];
  383. return getOddEven($amount, $goals, $detail);
  384. }
  385. /**
  386. * Odd/Even - First Half(上半场进球奇偶) 玩法
  387. * -Odd: 进球数除以 2 余 1
  388. * -Even: 进球数除以 2 余 0
  389. * $amount:下注金额
  390. * $score:主队-客对
  391. * $detail:下注时的详情
  392. */
  393. function OddEvenFirstHalf($amount,$detail, $params)
  394. {
  395. $score = getScore($params['half_score']);
  396. $half_goals = $score['home'] + $score['away'];
  397. return getOddEven($amount, $half_goals, $detail);
  398. }
  399. /**
  400. * Odd/Even - Second Half(下半场进球奇偶) 玩法
  401. * -Odd: 进球数除以 2 余 1
  402. * -Even: 进球数除以 2 余 0
  403. * $amount:下注金额
  404. * $score:主队-客对
  405. * $detail:下注时的详情
  406. */
  407. function OddEvenSecondHalf($amount,$detail, $params)
  408. {
  409. $score = getHalfScore($params['score'], $params['half_score']);
  410. $half_goals = $score['home'] + $score['away'];
  411. return getOddEven($amount, $half_goals, $detail);
  412. }
  413. /**
  414. * Home Odd/Even(主队进球奇偶) 玩法
  415. * -Odd: 进球数除以 2 余 1
  416. * -Even: 进球数除以 2 余 0
  417. * $amount:下注金额
  418. * $score:主队-客对
  419. * $detail:下注时的详情
  420. */
  421. function HomeOddEven($amount,$detail, $params)
  422. {
  423. $score = getScore($params['score']);
  424. $home = $score['home'];
  425. return getOddEven($amount, $home, $detail);
  426. }
  427. /**
  428. * Away Odd/Even(客队进球奇偶) 玩法
  429. * -Odd: 进球数除以 2 余 1
  430. * -Even: 进球数除以 2 余 0
  431. * $amount:下注金额
  432. * $score:主队-客对
  433. * $detail:下注时的详情
  434. */
  435. function AwayOddEven($amount,$detail, $params)
  436. {
  437. $score = getScore($params['score']);
  438. $away = $score['away'];
  439. return getOddEven($amount, $away, $detail);
  440. }
  441. //进球数奇偶的处理方法
  442. function getOddEven($amount, $goals,$detail)
  443. {
  444. $value_and_odd = getValueAndOdd($detail);
  445. $odd = $value_and_odd['odd'];
  446. $value = $value_and_odd['value'];
  447. $is_win = 0;
  448. if ($goals % 2 == 1 && strtolower($value) == 'odd' ) {
  449. $is_win = 1;
  450. } elseif ($goals % 2 == 0 && strtolower($value) == 'even' ) {
  451. $is_win = 1;
  452. }
  453. return getResult($is_win, $amount, $odd);
  454. }
  455. /**
  456. * Home Team Total Goals(1st Half)(主队上半场总进球) 玩法
  457. * -Over 1.5: 预测主队上半场至少打进 2 个 或更多球
  458. * -Under 1.5: 预测主队上半场进球数为 0 个 或 1 个
  459. * $amount:下注金额
  460. * $score:主队-客对
  461. * $detail:下注时的详情
  462. */
  463. function HomeTeamTotalGoals($amount,$detail, $params)
  464. {
  465. $score = getScore($params['half_score']);
  466. $home = $score['home'];
  467. return totalHomeOrAway($amount, $home,$detail);
  468. }
  469. /**
  470. * Away Team Total Goals(1st Half)(客队上半场总进球) 玩法
  471. * -Over 1.5: 预测客队上半场至少打进 2 个 或更多球
  472. * -Under 1.5: 预测客队上半场进球数为 0 个 或 1 个
  473. * $amount:下注金额
  474. * $score:主队-客对
  475. * $detail:下注时的详情
  476. */
  477. function AwayTeamTotalGoals($amount,$detail, $params)
  478. {
  479. $score = getScore($params['half_score']);
  480. $away = $score['away'];
  481. return totalHomeOrAway($amount, $away,$detail);
  482. }
  483. /**
  484. * Home Team Total Goals(2nd Half)(主队下半场总进球) 玩法
  485. * -Over 1.5: 预测主队下半场至少打进 2 个 或更多球
  486. * -Under 1.5: 预测主队下半场进球数为 0 个 或 1 个
  487. * $amount:下注金额
  488. * $score:主队-客对
  489. * $detail:下注时的详情
  490. */
  491. function HomeTeamTotalGoals2($amount,$detail, $params)
  492. {
  493. $score = getHalfScore($params['score'], $params['half_score']);
  494. $home_half = $score['home'];
  495. return totalHomeOrAway($amount, $home_half,$detail);
  496. }
  497. /**
  498. * Away Team Total Goals(2nd Half)(客队下半场总进球) 玩法
  499. * -Over 1.5: 预测客队下半场至少打进 2 个 或更多球
  500. * -Under 1.5: 预测客队下半场进球数为 0 个 或 1 个
  501. * $amount:下注金额
  502. * $score:主队-客对
  503. * $detail:下注时的详情
  504. */
  505. function AwayTeamTotalGoals2($amount,$detail, $params)
  506. {
  507. $score = getHalfScore($params['score'], $params['half_score']);
  508. $away_half = $score['away'];
  509. return totalHomeOrAway($amount, $away_half,$detail);
  510. }
  511. //$score:主队/客队的进球数
  512. function totalHomeOrAway($amount, $score,$detail)
  513. {
  514. $value_and_odd = getValueAndOdd($detail);
  515. $odd = $value_and_odd['odd'];
  516. $value = $value_and_odd['value'];
  517. $value = explode(' ', $value);
  518. $type = $value[0];
  519. $goal = $value[1];
  520. $is_win = 0;
  521. if ($score > $goal && strtolower($type) == 'over' ) {
  522. $is_win = 1;
  523. } elseif ($score < $goal && strtolower($type) == 'under' ) {
  524. $is_win = 1;
  525. }
  526. return getResult($is_win, $amount, $odd);
  527. }
  528. /**
  529. * Total Goals/Both Teams To Score(总进球+双方进球) 玩法
  530. * -o/yes 2.5: 大于 2.5 且 双方进球
  531. * -o/no 2.5: 大于 2.5 且 双方不同时进球(有一方为0)
  532. * -u/yes 2.5: 小于 2.5 且 双方进球
  533. * -u/no 2.5: 小于 2.5 且 双方不同时进球(且至少有一队没进球)
  534. * $amount:下注金额
  535. * $score:主队-客对
  536. * $detail:下注时的详情
  537. */
  538. function TotalGoalsBothTeamsToScore($amount,$detail, $params)
  539. {
  540. $score = getScore($params['score']);
  541. $home = $score['home'];
  542. $away = $score['away'];
  543. $score = $home + $away;
  544. $value_and_odd = getValueAndOdd($detail);
  545. $odd = $value_and_odd['odd'];
  546. $value = $value_and_odd['value'];
  547. $value = explode(' ', $value);
  548. $type = $value[0];
  549. $goal = $value[1];
  550. $is_win = 0;
  551. if ($score > $goal && $home > 0 && $away > 0 && strtolower($type) == 'o/yes' ) {
  552. $is_win = 1;
  553. } elseif ($score > $goal && ($home == 0 || $away == 0) && strtolower($type) == 'o/no' ) {
  554. $is_win = 1;
  555. } elseif ($score < $goal && $home > 0 && $away > 0 && strtolower($type) == 'u/yes' ) {
  556. $is_win = 1;
  557. } elseif ($score < $goal && ($home == 0 || $away == 0) && strtolower($type) == 'u/no' ) {
  558. $is_win = 1;
  559. }
  560. return getResult($is_win, $amount, $odd);
  561. }
  562. /**
  563. * RTG_H1(上半场进球数(简写)) 玩法
  564. * -Draw/Over 1.5: 平局 + 大 1.5 上半场打平 且 总进球≥2
  565. * -Away/Over 1.5: 客胜 + 大 1.5 上半场客队赢 且 总进球≥2
  566. * -Home/Over 1.5 主胜 + 大 1.5 上半场主队赢 且 总进球≥2
  567. * -Home/Under 1.5 主胜 + 小 1.5 上半场主队赢 且 总进球≤1
  568. * -Draw/Under 1.5 平局 + 小 1.5 上半场打平 且 总进球≤1
  569. * -Away/Under 1.5 客胜 + 小 1.5 上半场客队赢 且 总进球≤1
  570. * $amount:下注金额
  571. * $score:主队-客对
  572. * $detail:下注时的详情
  573. */
  574. function RTGH1($amount,$detail, $params)
  575. {
  576. $score = getScore($params['half_score']);
  577. $home = $score['home'];
  578. $away = $score['away'];
  579. $score = $home + $away;
  580. $value_and_odd = getValueAndOdd($detail);
  581. $odd = $value_and_odd['odd'];
  582. $value = $value_and_odd['value'];
  583. $value = explode(' ', $value);
  584. $type = $value[0];
  585. $goal = $value[1];
  586. $is_win = 0;
  587. if ($score > $goal && $home == $away && strtolower($type) == 'draw/over' ) {
  588. $is_win = 1;
  589. } elseif ($score > $goal && $home < $away && strtolower($type) == 'away/over' ) {
  590. $is_win = 1;
  591. } elseif ($score > $goal && $home > $away && strtolower($type) == 'home/over' ) {
  592. $is_win = 1;
  593. } elseif ($score < $goal && $home > $away && strtolower($type) == 'home/under' ) {
  594. $is_win = 1;
  595. } elseif ($score < $goal && $home == $away && strtolower($type) == 'draw/under' ) {
  596. $is_win = 1;
  597. } elseif ($score < $goal && $home < $away && strtolower($type) == 'away/under' ) {
  598. $is_win = 1;
  599. }
  600. return getResult($is_win, $amount, $odd);
  601. }
  602. /**
  603. * Home team will score in both halves(主队上下半场均进球) 玩法
  604. * -yes: 主队在上半场至少进一球,且在下半场也至少进一球。
  605. * -no: 主队在其中一个半场没进球,或者两个半场都没进球
  606. * $amount:下注金额
  607. * $score:主队-客对
  608. * $detail:下注时的详情
  609. */
  610. function HomeTeamWillScoreInBothHalves($amount,$detail, $params)
  611. {
  612. $score = getScore($params['half_score']);
  613. $home = $score['home'];
  614. $half_score = getHalfScore($params['score'], $params['half_score']);
  615. $home_half = $half_score['home'];
  616. $value_and_odd = getValueAndOdd($detail);
  617. $odd = $value_and_odd['odd'];
  618. $value = $value_and_odd['value'];
  619. $is_win = 0;
  620. if ($home > 0 && $home_half > 0 && strtolower($value) == 'yes' ) {
  621. $is_win = 1;
  622. } elseif (($home == 0 || $home_half == 0) && strtolower($value) == 'no' ) {
  623. $is_win = 1;
  624. }
  625. return getResult($is_win, $amount, $odd);
  626. }
  627. /**
  628. * Away team will score in both halves(客队上下半场均进球) 玩法
  629. * -yes: 客队在上半场至少进一球,且在下半场也至少进一球。
  630. * -no: 客队在其中一个半场没进球,或者两个半场都没进球。
  631. * $amount:下注金额
  632. * $score:主队-客对
  633. * $detail:下注时的详情
  634. */
  635. function AwayTeamWillScoreInBothHalves($amount,$detail, $params)
  636. {
  637. $score = getScore($params['half_score']);
  638. $away = $score['away'];
  639. $half_score = getHalfScore($params['score'], $params['half_score']);
  640. $away_half = $half_score['away'];
  641. $value_and_odd = getValueAndOdd($detail);
  642. $odd = $value_and_odd['odd'];
  643. $value = $value_and_odd['value'];
  644. $is_win = 0;
  645. if ($away > 0 && $away_half > 0 && strtolower($value) == 'yes' ) {
  646. $is_win = 1;
  647. } elseif (($away == 0 || $away_half == 0) && strtolower($value) == 'no' ) {
  648. $is_win = 1;
  649. }
  650. return getResult($is_win, $amount, $odd);
  651. }
  652. /**
  653. * How many goals will Home Team score?(主队进球数) 玩法
  654. * -No goal: 主队全场 0 进球
  655. * -1: 主队恰好进 1 个球
  656. * -2: 主队恰好进 2 个球
  657. * -3 or more: 主队射门 3 个或更多球
  658. * $amount:下注金额
  659. * $score:主队-客对
  660. * $detail:下注时的详情
  661. */
  662. function HowManyGoalsWillHomeTeamScore($amount,$detail, $params)
  663. {
  664. $score = getScore($params['score']);
  665. $home = $score['home'];
  666. $value_and_odd = getValueAndOdd($detail);
  667. $odd = $value_and_odd['odd'];
  668. $value = $value_and_odd['value'];
  669. $is_win = 0;
  670. if ($home == 0 && strtolower($value) == 'no goal' ) {
  671. $is_win = 1;
  672. } elseif (is_numeric($value) && $home == $value ) {
  673. $is_win = 1;
  674. } elseif (strpos($value, 'or more') !== false && $home >= intval($value)) {
  675. $is_win = 1;
  676. }
  677. return getResult($is_win, $amount, $odd);
  678. }
  679. /**
  680. * How many goals will Away Team score?(客队进球数) 玩法
  681. * -No goal: 客队全场 0 进球
  682. * -1: 客队恰好进 1 个球
  683. * -2: 客队恰好进 2 个球
  684. * -3 or more: 客队打进 3 个或更多球
  685. * $amount:下注金额
  686. * $score:主队-客对
  687. * $detail:下注时的详情
  688. */
  689. function HowManyGoalsWillAwayTeamScore($amount,$detail, $params)
  690. {
  691. $score = getScore($params['score']);
  692. $away = $score['away'];
  693. $value_and_odd = getValueAndOdd($detail);
  694. $odd = $value_and_odd['odd'];
  695. $value = $value_and_odd['value'];
  696. $is_win = 0;
  697. if ($away == 0 && strtolower($value) == 'no goal' ) {
  698. $is_win = 1;
  699. } elseif (is_numeric($value) && $away == $value ) {
  700. $is_win = 1;
  701. } elseif (strpos($value, 'or more') !== false && $away >= intval($value)) {
  702. $is_win = 1;
  703. }
  704. return getResult($is_win, $amount, $odd);
  705. }
  706. /**
  707. * Match Goals(全场进球,按盘口分类) 玩法
  708. * -value: over/under
  709. * -handicap: 1.5 2.5 ..
  710. * $amount:下注金额
  711. * $score:主队-客对
  712. * $detail:下注时的详情
  713. */
  714. function MatchGoals($amount,$detail, $params)
  715. {
  716. $score = getScore($params['score']);
  717. $score = $score['home'] + $score['away'];
  718. $value_and_odd = getValueAndOdd($detail);
  719. $odd = $value_and_odd['odd'];
  720. $value = $value_and_odd['value'];
  721. $handicap = $value_and_odd['handicap'];
  722. $is_win = 0;
  723. if ($score > $handicap && strtolower($value) == 'over' ) {
  724. $is_win = 1;
  725. } elseif ($score < $handicap && strtolower($value) == 'under' ) {
  726. $is_win = 1;
  727. }
  728. return getResult($is_win, $amount, $odd);
  729. }
  730. /**
  731. * Home Team Goals(主队进球,按盘口分类) 玩法
  732. * -value: over/under
  733. * -handicap: 1.5 2.5 ..
  734. * $amount:下注金额
  735. * $score:主队-客对
  736. * $detail:下注时的详情
  737. */
  738. function HomeTeamGoals($amount,$detail, $params)
  739. {
  740. $score = getScore($params['score']);
  741. $home = $score['home'];
  742. $value_and_odd = getValueAndOdd($detail);
  743. $odd = $value_and_odd['odd'];
  744. $value = $value_and_odd['value'];
  745. $handicap = $value_and_odd['handicap'];
  746. $is_win = 0;
  747. if ($home > $handicap && strtolower($value) == 'over' ) {
  748. $is_win = 1;
  749. } elseif ($home < $handicap && strtolower($value) == 'under' ) {
  750. $is_win = 1;
  751. }
  752. return getResult($is_win, $amount, $odd);
  753. }
  754. /**
  755. * Away Team Goals(客队进球,按盘口分类) 玩法
  756. * -value: over/under
  757. * -handicap: 1.5 2.5 ..
  758. * $amount:下注金额
  759. * $score:主队-客对
  760. * $detail:下注时的详情
  761. */
  762. function AwayTeamGoals($amount,$detail, $params)
  763. {
  764. $score = getScore($params['score']);
  765. $away = $score['away'];
  766. $value_and_odd = getValueAndOdd($detail);
  767. $odd = $value_and_odd['odd'];
  768. $value = $value_and_odd['value'];
  769. $handicap = $value_and_odd['handicap'];
  770. $is_win = 0;
  771. if ($away > $handicap && strtolower($value) == 'over' ) {
  772. $is_win = 1;
  773. } elseif ($away < $handicap && strtolower($value) == 'under' ) {
  774. $is_win = 1;
  775. }
  776. return getResult($is_win, $amount, $odd);
  777. }
  778. /**
  779. * Over/Under Line(大小球盘口) 玩法
  780. * -value: over/under
  781. * -handicap: 1.5 2.5 ..
  782. * $amount:下注金额
  783. * $score:主队-客对
  784. * $detail:下注时的详情
  785. */
  786. function OverUnderLine($amount,$detail, $params)
  787. {
  788. $score = getScore($params['score']);
  789. $score = $score['home'] + $score['away'];
  790. $value_and_odd = getValueAndOdd($detail);
  791. $odd = $value_and_odd['odd'];
  792. $value = $value_and_odd['value'];
  793. $handicap = $value_and_odd['handicap'];
  794. $is_win = 0;
  795. if ($score > $handicap && strtolower($value) == 'over' ) {
  796. $is_win = 1;
  797. } elseif ($score < $handicap && strtolower($value) == 'under' ) {
  798. $is_win = 1;
  799. } elseif ($score == $handicap) {
  800. //不输不赢,需要退款
  801. $is_win = 2;
  802. }
  803. return getResult($is_win, $amount, $odd);
  804. }
  805. /**
  806. * Home Team Score a Goal (2nd Half)(主队下半场进球) 玩法
  807. * -Yes: 主队在下半场至少打进一球
  808. * -No: 主队在下半场一个球都不进
  809. * $amount:下注金额
  810. * $score:主队-客对
  811. * $detail:下注时的详情
  812. */
  813. function HomeTeamScoreAGoal2($amount,$detail, $params)
  814. {
  815. $half_score = getHalfScore($params['score'], $params['half_score']);
  816. $home_half = $half_score['home'];
  817. $value_and_odd = getValueAndOdd($detail);
  818. $odd = $value_and_odd['odd'];
  819. $value = $value_and_odd['value'];
  820. $is_win = 0;
  821. if ($home_half > 0 && strtolower($value) == 'yes' ) {
  822. $is_win = 1;
  823. } elseif ($home_half == 0 && strtolower($value) == 'no' ) {
  824. $is_win = 1;
  825. }
  826. return getResult($is_win, $amount, $odd);
  827. }
  828. /**
  829. * Away Team Score a Goal (2nd Half)(客队下半场进球) 玩法
  830. * -Yes: 客队在下半场至少打进一球
  831. * -No: 客队在下半场一个球都不进
  832. * $amount:下注金额
  833. * $score:主队-客对
  834. * $detail:下注时的详情
  835. */
  836. function AwayTeamScoreAGoal2($amount,$detail, $params)
  837. {
  838. $half_score = getHalfScore($params['score'], $params['half_score']);
  839. $away_half = $half_score['away'];
  840. $value_and_odd = getValueAndOdd($detail);
  841. $odd = $value_and_odd['odd'];
  842. $value = $value_and_odd['value'];
  843. $is_win = 0;
  844. if ($away_half > 0 && strtolower($value) == 'yes' ) {
  845. $is_win = 1;
  846. } elseif ($away_half == 0 && strtolower($value) == 'no' ) {
  847. $is_win = 1;
  848. }
  849. return getResult($is_win, $amount, $odd);
  850. }
  851. /**
  852. * Both Teams to Score(双方进球) 玩法
  853. * -yes: 主队有进球,且客队也有进球
  854. * -no: 至少有一支球队没进球
  855. * $amount:下注金额
  856. * $score:主队-客对
  857. * $detail:下注时的详情
  858. */
  859. function BothTeamsToScore($amount,$detail, $params)
  860. {
  861. $score = getScore($params['score']);
  862. $home = $score['home'];
  863. $away = $score['away'];
  864. $value_and_odd = getValueAndOdd($detail);
  865. $odd = $value_and_odd['odd'];
  866. $value = $value_and_odd['value'];
  867. $is_win = 0;
  868. if ($home > 0 && $away > 0 && strtolower($value) == 'yes' ) {
  869. $is_win = 1;
  870. } elseif (($home == 0 || $away == 0) && strtolower($value) == 'no' ) {
  871. $is_win = 1;
  872. }
  873. return getResult($is_win, $amount, $odd);
  874. }
  875. /**
  876. * Both Teams To Score (2nd Half)(下半场双方进球) 玩法
  877. * -yes: 下半场主队有进球,且下半场客队也有进球
  878. * -no: 下半场至少有一支球队没进球
  879. * $amount:下注金额
  880. * $score:主队-客对
  881. * $detail:下注时的详情
  882. */
  883. function BothTeamsToScore2($amount,$detail, $params)
  884. {
  885. $half_score = getHalfScore($params['score'], $params['half_score']);
  886. $home_half = $half_score['home'];
  887. $away_half = $half_score['away'];
  888. $value_and_odd = getValueAndOdd($detail);
  889. $odd = $value_and_odd['odd'];
  890. $value = $value_and_odd['value'];
  891. $is_win = 0;
  892. if ($home_half > 0 && $away_half > 0 && strtolower($value) == 'yes' ) {
  893. $is_win = 1;
  894. } elseif (($home_half == 0 || $away_half == 0) && strtolower($value) == 'no' ) {
  895. $is_win = 1;
  896. }
  897. return getResult($is_win, $amount, $odd);
  898. }
  899. /**
  900. * Goals Odd/Even (进球数奇偶) 玩法
  901. */
  902. function GoalsOddEven($amount,$detail, $params)
  903. {
  904. $score = getScore($params['score']);
  905. $goals = $score['home'] + $score['away'];
  906. return getOddEven($amount, $goals, $detail);
  907. }
  908. /**
  909. * Home Team Exact Goals Number(主队精确进球数) 玩法
  910. * -0: 预测主队全场比赛一个球都进不了
  911. * -1: 预测主队刚好只进 1 个球。
  912. * -more 2: 预测主队进球数达到或超过 2 个
  913. * $amount:下注金额
  914. * $score:主队-客对
  915. * $detail:下注时的详情
  916. */
  917. function HomeTeamExactGoalsNumber($amount,$detail, $params)
  918. {
  919. $score = getScore($params['score']);
  920. $home = $score['home'];
  921. $value_and_odd = getValueAndOdd($detail);
  922. $odd = $value_and_odd['odd'];
  923. $value = $value_and_odd['value'];
  924. $is_win = 0;
  925. if (is_numeric($value) && $home == $value ) {
  926. $is_win = 1;
  927. } elseif (strpos($value, 'more') !== false && $home >= intval($value)) {
  928. $is_win = 1;
  929. }
  930. return getResult($is_win, $amount, $odd);
  931. }
  932. /**
  933. * Away Team Exact Goals Number(客队精确进球数) 玩法
  934. * -0: 预测客队全场比赛一个球都进不了
  935. * -1: 预测客队刚好只进 1 个球。
  936. * -more 2: 预测客队进球数达到或超过 2 个。
  937. * $amount:下注金额
  938. * $score:主队-客对
  939. * $detail:下注时的详情
  940. */
  941. function AwayTeamExactGoalsNumber($amount,$detail, $params)
  942. {
  943. $score = getScore($params['score']);
  944. $away = $score['away'];
  945. $value_and_odd = getValueAndOdd($detail);
  946. $odd = $value_and_odd['odd'];
  947. $value = $value_and_odd['value'];
  948. $is_win = 0;
  949. if (is_numeric($value) && $away == $value ) {
  950. $is_win = 1;
  951. } elseif (strpos($value, 'more') !== false && $away >= intval($value)) {
  952. $is_win = 1;
  953. }
  954. return getResult($is_win, $amount, $odd);
  955. }
  956. /**
  957. * Fulltime Result(全场赛果) 玩法
  958. * -Home: 主队赢球
  959. * -Away: 客队赢球
  960. * -Draw: 双方打平
  961. * $amount:下注金额
  962. * $score:主队-客对
  963. * $detail:下注时的详情
  964. */
  965. function FulltimeResult($amount,$detail, $params)
  966. {
  967. $score = getScore($params['score']);
  968. $home = $score['home'];
  969. $away = $score['away'];
  970. $value_and_odd = getValueAndOdd($detail);
  971. $value = strtolower($value_and_odd['value']);
  972. $odd = $value_and_odd['odd'];
  973. $is_win = 0;
  974. if ($home > $away && $value == 'home') {
  975. $is_win = 1;
  976. } elseif ($away > $home && $value == 'away') {
  977. $is_win = 1;
  978. } elseif ($home == $away && $value == 'draw') {
  979. $is_win = 1;
  980. }
  981. return getResult($is_win, $amount, $odd);
  982. }
  983. /**
  984. * Results/Both Teams Score(赛果+双方进球) 玩法
  985. * -Home/Yes: 主队赢球,且客队也进了球
  986. * -Away/Yes: 客队赢球,且主队也进了球
  987. * -Draw/Yes: 双方打平,且都有进球
  988. * -Home/No: 主队赢球,且零封了客队
  989. * -Away/No: 客队赢球,且零封了主队
  990. * -Draw/No: 双方打平,且都没有进球
  991. * $amount:下注金额
  992. * $score:主队-客对
  993. * $detail:下注时的详情
  994. */
  995. function ResultsBothTeamsScore($amount,$detail, $params)
  996. {
  997. $score = getScore($params['score']);
  998. $home = $score['home'];
  999. $away = $score['away'];
  1000. $value_and_odd = getValueAndOdd($detail);
  1001. $value = strtolower($value_and_odd['value']);
  1002. $odd = $value_and_odd['odd'];
  1003. $is_win = 0;
  1004. if ($home > $away && $away > 0 && ($value == 'home or yes' || $value == 'home/yes')) {
  1005. $is_win = 1;
  1006. } elseif ($away > $home && $home > 0 && ($value == 'away or yes' || $value == 'away/yes')) {
  1007. $is_win = 1;
  1008. } elseif ($home == $away && $home > 0 && $away >0 && ($value == 'draw or yes' || $value == 'draw/yes')) {
  1009. $is_win = 1;
  1010. } elseif ($home > $away && $away == 0 && ($value == 'home or no' || $value == 'home/no')) {
  1011. $is_win = 1;
  1012. } elseif ($away > $home && $home == 0 && ($value == 'away or no' || $value == 'away/no')) {
  1013. $is_win = 1;
  1014. } elseif ($home == $away && $home == 0 && $away == 0 && ($value == 'draw or no' || $value == 'draw/no')) {
  1015. $is_win = 1;
  1016. }
  1017. return getResult($is_win, $amount, $odd);
  1018. }
  1019. /**
  1020. * Result/Total Goals(赛果+总进球数) 玩法
  1021. * -Draw/Over 1.5: 平局 + 大 1.5 总进球数打平 且 总进球≥2
  1022. * -Away/Over 1.5: 客胜 + 大 1.5 总进球数赢 且 总进球≥2
  1023. * -Home/Over 1.5 主胜 + 大 1.5 总进球数赢 且 总进球≥2
  1024. * -Home/Under 1.5 主胜 + 小 1.5 总进球数赢 且 总进球≤1
  1025. * -Draw/Under 1.5 平局 + 小 1.5 总进球数打平 且 总进球≤1
  1026. * -Away/Under 1.5 客胜 + 小 1.5 总进球数赢 且 总进球≤1
  1027. * $amount:下注金额
  1028. * $score:主队-客对
  1029. * $detail:下注时的详情
  1030. */
  1031. function ResultTotalGoals($amount,$detail, $params)
  1032. {
  1033. $score = getScore($params['score']);
  1034. $home = $score['home'];
  1035. $away = $score['away'];
  1036. $score = $home + $away;
  1037. $value_and_odd = getValueAndOdd($detail);
  1038. $odd = $value_and_odd['odd'];
  1039. $value = $value_and_odd['value'];
  1040. $value = explode(' ', $value);
  1041. $type = $value[0];
  1042. $goal = $value[1];
  1043. $is_win = 0;
  1044. if ($score > $goal && $home == $away && strtolower($type) == 'draw/over' ) {
  1045. $is_win = 1;
  1046. } elseif ($score > $goal && $home < $away && strtolower($type) == 'away/over' ) {
  1047. $is_win = 1;
  1048. } elseif ($score > $goal && $home > $away && strtolower($type) == 'home/over' ) {
  1049. $is_win = 1;
  1050. } elseif ($score < $goal && $home > $away && strtolower($type) == 'home/under' ) {
  1051. $is_win = 1;
  1052. } elseif ($score < $goal && $home == $away && strtolower($type) == 'draw/under' ) {
  1053. $is_win = 1;
  1054. } elseif ($score < $goal && $home < $away && strtolower($type) == 'away/under' ) {
  1055. $is_win = 1;
  1056. }
  1057. return getResult($is_win, $amount, $odd);
  1058. }
  1059. /**
  1060. * Result / Both Teams To Score(赛果+双方进球) 玩法
  1061. * -Home/Yes: 主队赢球,且客队也进了球
  1062. * -Away/Yes: 客队赢球,且主队也进了球
  1063. * -Draw/Yes: 双方打平,且都有进球
  1064. * -Home/No: 主队赢球,且零封了客队
  1065. * -Away/No: 客队赢球,且零封了主队
  1066. * -Draw/No: 双方打平,且都没有进球
  1067. * $amount:下注金额
  1068. * $score:主队-客对
  1069. * $detail:下注时的详情
  1070. */
  1071. function ResultBothTeamsToScore($amount,$detail, $params)
  1072. {
  1073. $score = getScore($params['score']);
  1074. $home = $score['home'];
  1075. $away = $score['away'];
  1076. $value_and_odd = getValueAndOdd($detail);
  1077. $value = strtolower($value_and_odd['value']);
  1078. $odd = $value_and_odd['odd'];
  1079. $is_win = 0;
  1080. if ($home > $away && $away > 0 && ($value == 'home or yes' || $value == 'home/yes')) {
  1081. $is_win = 1;
  1082. } elseif ($away > $home && $home > 0 && ($value == 'away or yes' || $value == 'away/yes')) {
  1083. $is_win = 1;
  1084. } elseif ($home == $away && $home > 0 && $away >0 && ($value == 'draw or yes' || $value == 'draw/yes')) {
  1085. $is_win = 1;
  1086. } elseif ($home > $away && $away == 0 && ($value == 'home or no' || $value == 'home/no')) {
  1087. $is_win = 1;
  1088. } elseif ($away > $home && $home == 0 && ($value == 'away or no' || $value == 'away/no')) {
  1089. $is_win = 1;
  1090. } elseif ($home == $away && $home == 0 && $away == 0 && ($value == 'draw or no' || $value == 'draw/no')) {
  1091. $is_win = 1;
  1092. }
  1093. return getResult($is_win, $amount, $odd);
  1094. }
  1095. /**
  1096. * Highest Scoring Half(进球更多的半场) 玩法
  1097. * -Draw: 两个半场的进球数完全相等
  1098. * -1st Half: 上半场产生的总进球数 > 下半场产生的总进球数
  1099. * -2nd Half: 下半场产生的总进球数 > 上半场产生的总进球数
  1100. * $amount:下注金额
  1101. * $score:主队-客对
  1102. * $detail:下注时的详情
  1103. */
  1104. function HighestScoringHalf($amount,$detail, $params)
  1105. {
  1106. $score = getScore($params['half_score']);
  1107. $first_half = $score['home'] + $score['away'];
  1108. $score = getHalfScore($params['score'], $params['half_score']);
  1109. $second_half = $score['home'] + $score['away'];
  1110. $value_and_odd = getValueAndOdd($detail);
  1111. $value = strtolower($value_and_odd['value']);
  1112. $odd = $value_and_odd['odd'];
  1113. $is_win = 0;
  1114. if ($first_half > $second_half && $value == '1st Half') {
  1115. $is_win = 1;
  1116. } elseif ($first_half < $second_half && $value == '2nd Half') {
  1117. $is_win = 1;
  1118. } elseif ($first_half == $second_half && $value == 'draw') {
  1119. $is_win = 1;
  1120. }
  1121. return getResult($is_win, $amount, $odd);
  1122. }
  1123. /**
  1124. * Final Score(最终比分) 玩法
  1125. * -value: 1-2
  1126. * $amount:下注金额
  1127. * $score:主队-客对
  1128. * $detail:下注时的详情
  1129. */
  1130. function FinalScore($amount,$detail, $params)
  1131. {
  1132. $score = $params['score'];
  1133. $value_and_odd = getValueAndOdd($detail);
  1134. $value = strtolower($value_and_odd['value']);
  1135. $odd = $value_and_odd['odd'];
  1136. $is_win = 0;
  1137. if ($score == $value ) {
  1138. $is_win = 1;
  1139. }
  1140. return getResult($is_win, $amount, $odd);
  1141. }
  1142. /**
  1143. * Exact Score(精确比分) 玩法
  1144. * -value: 1:2
  1145. * $amount:下注金额
  1146. * $score:主队-客对
  1147. * $detail:下注时的详情
  1148. */
  1149. function ExactScore($amount,$detail, $params)
  1150. {
  1151. $score = $params['score'];
  1152. $value_and_odd = getValueAndOdd($detail);
  1153. $value = str_replace(":", "-", $value_and_odd['value']);
  1154. $odd = $value_and_odd['odd'];
  1155. $is_win = 0;
  1156. if ($score == $value ) {
  1157. $is_win = 1;
  1158. }
  1159. return getResult($is_win, $amount, $odd);
  1160. }
  1161. /**
  1162. * Correct Score - First Half(上半场精确比分) 玩法
  1163. * -value: 1:2
  1164. * $amount:下注金额
  1165. * $score:主队-客对
  1166. * $detail:下注时的详情
  1167. */
  1168. function CorrectScoreFirstHalf($amount,$detail, $params)
  1169. {
  1170. $half_score = $params['half_score'];
  1171. $value_and_odd = getValueAndOdd($detail);
  1172. $value = str_replace(":", "-", $value_and_odd['value']);
  1173. $odd = $value_and_odd['odd'];
  1174. $is_win = 0;
  1175. if ($half_score == $value ) {
  1176. $is_win = 1;
  1177. }
  1178. return getResult($is_win, $amount, $odd);
  1179. }
  1180. /**
  1181. * Correct Score - Second Half(下半场精确比分) 玩法
  1182. * -value: 1:2
  1183. * $amount:下注金额
  1184. * $score:主队-客对
  1185. * $detail:下注时的详情
  1186. */
  1187. function CorrectScoreSecondHalf($amount,$detail, $params)
  1188. {
  1189. $half_score = getHalfScore($params['score'], $params['half_score']);
  1190. $half_score = $half_score['home'] . '-' . $half_score['away'];
  1191. $value_and_odd = getValueAndOdd($detail);
  1192. $value = str_replace(":", "-", $value_and_odd['value']);
  1193. $odd = $value_and_odd['odd'];
  1194. $is_win = 0;
  1195. if ($half_score == $value ) {
  1196. $is_win = 1;
  1197. }
  1198. return getResult($is_win, $amount, $odd);
  1199. }
  1200. /**
  1201. * To Win Either Half(赢得任意半场) 玩法
  1202. * -Home: 主队在上/下半场的进球数 > 客队在上/下半场的进球数
  1203. * -Away: 客队在上/下半场的进球数 > 主队在上/下半场的进球数
  1204. * $amount:下注金额
  1205. * $score:主队-客对
  1206. * $detail:下注时的详情
  1207. */
  1208. function ToWinEitherHalf($amount,$detail, $params)
  1209. {
  1210. //上半场
  1211. $score = getScore($params['half_score']);
  1212. $home_first = $score['home'];
  1213. $away_first = $score['away'];
  1214. //下半场
  1215. $score = getHalfScore($params['score'], $params['half_score']);
  1216. $home_half = $score['home'];
  1217. $away_half = $score['away'];
  1218. $value_and_odd = getValueAndOdd($detail);
  1219. $value = strtolower($value_and_odd['value']);
  1220. $odd = $value_and_odd['odd'];
  1221. $is_win = 0;
  1222. if (($home_first > $away_first || $home_half > $away_half) && $value == 'home') {
  1223. $is_win = 1;
  1224. } if (($home_first < $away_first || $home_half < $away_half) && $value == 'away') {
  1225. $is_win = 1;
  1226. }
  1227. return getResult($is_win, $amount, $odd);
  1228. }
  1229. /**
  1230. * To Win 2nd Half(赢下半场) 玩法
  1231. * -Home: 主队在下半场的进球数 > 客队在下半场的进球数
  1232. * -Draw: 双方在下半场的进球数相等
  1233. * -Away: 客队在下半场的进球数 > 主队在下半场的进球数
  1234. * $amount:下注金额
  1235. * $score:主队-客对
  1236. * $detail:下注时的详情
  1237. */
  1238. function ToWin2ndHalf($amount,$detail, $params)
  1239. {
  1240. $score = getHalfScore($params['score'], $params['half_score']);
  1241. $home_half = $score['home'];
  1242. $away_half = $score['away'];
  1243. $value_and_odd = getValueAndOdd($detail);
  1244. $value = strtolower($value_and_odd['value']);
  1245. $odd = $value_and_odd['odd'];
  1246. $is_win = 0;
  1247. if ($home_half > $away_half && $value == 'home') {
  1248. $is_win = 1;
  1249. } elseif ($home_half == $away_half && $value == 'draw') {
  1250. $is_win = 1;
  1251. } elseif ($away_half > $home_half && $value == 'away') {
  1252. $is_win = 1;
  1253. }
  1254. return getResult($is_win, $amount, $odd);
  1255. }
  1256. /**
  1257. * Win To Nil(零封获胜) 玩法
  1258. * -Home: 主队赢球,客队为0
  1259. * -Away: 客队赢球,主队为0
  1260. * $amount:下注金额
  1261. * $score:主队-客对
  1262. * $detail:下注时的详情
  1263. */
  1264. function WinToNil($amount,$detail, $params)
  1265. {
  1266. $score = getScore($params['score']);
  1267. $home = $score['home'];
  1268. $away = $score['away'];
  1269. $value_and_odd = getValueAndOdd($detail);
  1270. $value = strtolower($value_and_odd['value']);
  1271. $odd = $value_and_odd['odd'];
  1272. $is_win = 0;
  1273. if ($home > 0 && $away == 0 && $value == 'home') {
  1274. $is_win = 1;
  1275. } elseif ($away > 0 && $home == 0 && $value == 'away') {
  1276. $is_win = 1;
  1277. }
  1278. return getResult($is_win, $amount, $odd);
  1279. }
  1280. /**
  1281. * Home Team Clean Sheet(主队零封) 玩法
  1282. * -Yes: 客队一个球都进不了
  1283. * -No: 客队至少打进 1 个球
  1284. * $amount:下注金额
  1285. * $score:主队-客对
  1286. * $detail:下注时的详情
  1287. */
  1288. function HomeTeamCleanSheet($amount,$detail, $params)
  1289. {
  1290. $score = getScore($params['score']);
  1291. $away = $score['away'];
  1292. $value_and_odd = getValueAndOdd($detail);
  1293. $value = strtolower($value_and_odd['value']);
  1294. $odd = $value_and_odd['odd'];
  1295. $is_win = 0;
  1296. if ($away == 0 && $value == 'yes') {
  1297. $is_win = 1;
  1298. } elseif ($away > 0 && $value == 'no') {
  1299. $is_win = 1;
  1300. }
  1301. return getResult($is_win, $amount, $odd);
  1302. }
  1303. /**
  1304. * HT/FT Double(半场+全场双猜) 玩法
  1305. * -Home/Draw: 上半场主队领先,全场被追平。
  1306. * -Home/Away: 上半场主队领先,全场客队领先。
  1307. * -Home/Home: 上半场主队领先,全场主队领先。
  1308. * -Away/Draw: 上半场客队领先,全场被追平。
  1309. * -Away/Home: 上半场客队领先,全场主队领先。
  1310. * -Away/Away: 上半场客队领先,全场客队领先。
  1311. * -Draw/Home: 上半场平局,全场主队领先。
  1312. * -Draw/Away: 上半场平局,全场客队领先。
  1313. * -Draw/Draw: 上半场平局,全场平局。
  1314. * $amount:下注金额
  1315. * $score:主队-客对
  1316. * $detail:下注时的详情
  1317. */
  1318. function HTFTDouble($amount,$detail, $params)
  1319. {
  1320. $score = getScore($params['half_score']);
  1321. $first_home = $score['home'];
  1322. $first_away = $score['away'];
  1323. $score = getScore($params['score']);
  1324. $home = $score['home'];
  1325. $away = $score['away'];
  1326. $value_and_odd = getValueAndOdd($detail);
  1327. $value = strtolower($value_and_odd['value']);
  1328. $odd = $value_and_odd['odd'];
  1329. $is_win = 0;
  1330. if ($first_home > $first_away && $home == $away && $value == 'home/draw') {
  1331. $is_win = 1;
  1332. } elseif ($first_home > $first_away && $home < $away && $value == 'home/away') {
  1333. $is_win = 1;
  1334. } elseif ($first_home > $first_away && $home > $away && $value == 'home/home') {
  1335. $is_win = 1;
  1336. } elseif ($first_home < $first_away && $home == $away && $value == 'away/draw') {
  1337. $is_win = 1;
  1338. } elseif ($first_home < $first_away && $home < $away && $value == 'away/away') {
  1339. $is_win = 1;
  1340. } elseif ($first_home < $first_away && $home > $away && $value == 'away/home') {
  1341. $is_win = 1;
  1342. } elseif ($first_home == $first_away && $home == $away && $value == 'draw/draw') {
  1343. $is_win = 1;
  1344. } elseif ($first_home == $first_away && $home < $away && $value == 'draw/away') {
  1345. $is_win = 1;
  1346. } elseif ($first_home == $first_away && $home > $away && $value == 'draw/home') {
  1347. $is_win = 1;
  1348. }
  1349. return getResult($is_win, $amount, $odd);
  1350. }
  1351. /**
  1352. * Clean Sheet - Home(主队零封) 玩法
  1353. * -Yes: 客队一个球都进不了
  1354. * -No: 客队至少打进 1 个球
  1355. * $amount:下注金额
  1356. * $score:主队-客对
  1357. * $detail:下注时的详情
  1358. */
  1359. function CleanSheetHome($amount,$detail, $params)
  1360. {
  1361. $score = getScore($params['score']);
  1362. $away = $score['away'];
  1363. $value_and_odd = getValueAndOdd($detail);
  1364. $value = strtolower($value_and_odd['value']);
  1365. $odd = $value_and_odd['odd'];
  1366. $is_win = 0;
  1367. if ($away == 0 && $value == 'yes') {
  1368. $is_win = 1;
  1369. } elseif ($away > 0 && $value == 'no') {
  1370. $is_win = 1;
  1371. }
  1372. return getResult($is_win, $amount, $odd);
  1373. }
  1374. /**
  1375. * Clean Sheet - Away(客队零封) 玩法
  1376. * -Yes: 主队一个球都进不了
  1377. * -No: 主队至少打进 1 个球
  1378. * $amount:下注金额
  1379. * $score:主队-客对
  1380. * $detail:下注时的详情
  1381. */
  1382. function CleanSheetAway($amount,$detail, $params)
  1383. {
  1384. $score = getScore($params['score']);
  1385. $home = $score['home'];
  1386. $value_and_odd = getValueAndOdd($detail);
  1387. $value = strtolower($value_and_odd['value']);
  1388. $odd = $value_and_odd['odd'];
  1389. $is_win = 0;
  1390. if ($home == 0 && $value == 'yes') {
  1391. $is_win = 1;
  1392. } elseif ($home > 0 && $value == 'no') {
  1393. $is_win = 1;
  1394. }
  1395. return getResult($is_win, $amount, $odd);
  1396. }
  1397. /**
  1398. * Win to Nil - Home(主队零封获胜) 玩法
  1399. * -Yes: 主队必须赢,客队全场一个球都没进
  1400. * -No: 客队进球了,或比赛打平,或客队赢了
  1401. * $amount:下注金额
  1402. * $score:主队-客对
  1403. * $detail:下注时的详情
  1404. */
  1405. function WinToNilHome($amount,$detail, $params)
  1406. {
  1407. $score = getScore($params['score']);
  1408. $home = $score['home'];
  1409. $away = $score['away'];
  1410. $value_and_odd = getValueAndOdd($detail);
  1411. $value = strtolower($value_and_odd['value']);
  1412. $odd = $value_and_odd['odd'];
  1413. $is_win = 0;
  1414. if ($home > $away && $away == 0 && $value == 'yes') {
  1415. $is_win = 1;
  1416. } elseif (($away > 0 || $away >= $home) && $value == 'no') {
  1417. $is_win = 1;
  1418. }
  1419. return getResult($is_win, $amount, $odd);
  1420. }
  1421. /**
  1422. * Win to Nil - Away(客队零封获胜) 玩法
  1423. * -Yes: 客队必须赢,主队全场进球数为 0
  1424. * -No: 主队进球了,或比赛打平,或主队赢了
  1425. * $amount:下注金额
  1426. * $score:主队-客对
  1427. * $detail:下注时的详情
  1428. */
  1429. function WinToNilAway($amount,$detail, $params)
  1430. {
  1431. $score = getScore($params['score']);
  1432. $home = $score['home'];
  1433. $away = $score['away'];
  1434. $value_and_odd = getValueAndOdd($detail);
  1435. $value = strtolower($value_and_odd['value']);
  1436. $odd = $value_and_odd['odd'];
  1437. $is_win = 0;
  1438. if ($away > $home && $home == 0 && $value == 'yes') {
  1439. $is_win = 1;
  1440. } elseif (($home > 0 || $home >= $away) && $value == 'no') {
  1441. $is_win = 1;
  1442. }
  1443. return getResult($is_win, $amount, $odd);
  1444. }
  1445. /**
  1446. * 获取主客队得分
  1447. */
  1448. function getScore($score) {
  1449. $score = explode('-', $score);
  1450. return [
  1451. 'home' => (int)$score[0],
  1452. 'away' => (int)$score[1],
  1453. ];
  1454. }
  1455. /**
  1456. * 获取下半场主客队得分
  1457. */
  1458. function getHalfScore($score, $half_score) {
  1459. $score = explode('-', $score);
  1460. $half_score = explode('-', $half_score);
  1461. return [
  1462. 'home' => (int)$score[0] - (int)$half_score[0],
  1463. 'away' => (int)$score[1] - (int)$half_score[1],
  1464. ];
  1465. }
  1466. /**
  1467. * 获取比分
  1468. * $type : 1 主队总进球数,2 客队总进球数, 3
  1469. */
  1470. function getValueAndOdd($detail) {
  1471. $odds = $detail['odds'][0];
  1472. $values = $odds['values'][0];
  1473. return [
  1474. 'value' => $values['value'],
  1475. 'odd' => $values['odd'],
  1476. 'handicap' => isset($values['handicap']) ? $values['handicap'] : 0,
  1477. ];
  1478. }
  1479. function getResult($is_win, $amount, $odds) {
  1480. //is_win:是否中奖:0没中奖1中奖2和局3平手半
  1481. $result = [
  1482. 'is_win' => 0, //是否中奖:0没中奖1中奖2和局3平手半
  1483. 'win_amount' => 0, //中奖金额
  1484. 'profit_and_loss' => -$amount, //盈亏金额
  1485. 'settlement_status' => 1, //结算状态:1未结算2已结算3已取消
  1486. ];
  1487. if ($is_win == 1) {
  1488. $result['is_win'] = 1;
  1489. $result['win_amount'] = bcmul($amount, $odds, 2);
  1490. $result['profit_and_loss'] = $result['win_amount'] - $amount;
  1491. }
  1492. if ($is_win == 2) {
  1493. $result['is_win'] = 2;
  1494. $result['win_amount'] = 0;
  1495. $result['profit_and_loss'] = 0;
  1496. }
  1497. $result['settlement_status'] = 2;
  1498. return $result;
  1499. }