ZqRule.php 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/4/25
  6. * Time: 14:10
  7. */
  8. namespace App\Lib\Settlement\Adapter;
  9. use Illuminate\Support\Facades\DB;
  10. class ZqRule
  11. {
  12. use RulePlus;
  13. /**
  14. * 全场|主队|让球
  15. * @param mixed $model 注单表数据
  16. * @param mixed $resultModel 结果表数据
  17. * @param mixed $resultRecords 结果记录表数据
  18. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  19. */
  20. public function concede_home($model, $resultModel, $resultRecords)
  21. {
  22. return $this->concedeFull($model, $resultModel, $resultRecords, 1);
  23. }
  24. /**
  25. * 全场|客队|让球
  26. * @param mixed $model 注单表数据
  27. * @param mixed $resultModel 结果表数据
  28. * @param mixed $resultRecords 结果记录表数据
  29. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  30. */
  31. public function concede_guest($model, $resultModel, $resultRecords)
  32. {
  33. return $this->concedeFull($model, $resultModel, $resultRecords, 2);
  34. }
  35. /**
  36. * 全场|[主、客]|让球
  37. * @param mixed $model 注单表数据
  38. * @param mixed $resultModel 结果表数据
  39. * @param mixed $resultRecords 结果记录表数据
  40. * @param mixed $type 1:代表主队让球 2:代表客队让球
  41. * @param mixed $size 1:大 -1:小(如果是让球大小玩法才传入该字段)
  42. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  43. */
  44. public function concedeFull($model, $resultModel, $resultRecords, $type, $size = '')
  45. {
  46. $resultModel = $resultModel['0'];
  47. // 主队得分
  48. $homeScore = intval($resultModel->home_score);
  49. // 客队得分
  50. $guestScore = intval($resultModel->guest_score);
  51. $difference = 0;
  52. // 分差 - 主 :客
  53. if ($type == 1) {
  54. $difference = $homeScore - $guestScore;
  55. } else {
  56. // 分差 - 客 :主
  57. $difference = $guestScore - $homeScore;
  58. }
  59. // 让球个数
  60. $condition = explode("/", $model->condition);
  61. $resultArr = [];
  62. // 循环对比让球后输赢
  63. foreach ($condition as $value) {
  64. $absValue = abs($value);
  65. if (substr($model->condition, 0, 1) == '-') {
  66. $resultScore = $difference - $absValue;
  67. } else {
  68. $resultScore = $difference + $absValue;
  69. }
  70. if ($resultScore > 0) {
  71. $resultArr[] = 1;
  72. } elseif ($resultScore < 0) {
  73. $resultArr[] = -1;
  74. } else {
  75. $resultArr[] = 2;
  76. }
  77. }
  78. // 去重
  79. $resultUniqueArr = array_unique($resultArr);
  80. // 循环对比让球后输赢
  81. $count = count($resultUniqueArr);
  82. if ($size == -1) {
  83. if ($count == 1) {
  84. if ($resultUniqueArr[0] == 1) {
  85. $data['result'] = -1;
  86. } elseif ($resultUniqueArr[0] == 2) {
  87. $data['result'] = 2;
  88. } else {
  89. $data['result'] = 1;
  90. }
  91. } elseif (in_array(1, $resultUniqueArr)) {
  92. $data['result'] = 4;
  93. } else {
  94. $data['result'] = 3;
  95. }
  96. } else {
  97. if ($count == 1) {
  98. $data['result'] = $resultUniqueArr[0];
  99. } elseif (in_array(1, $resultUniqueArr)) {
  100. $data['result'] = 3;
  101. } else {
  102. $data['result'] = 4;
  103. }
  104. }
  105. $data['matchResult'] = "$homeScore-$guestScore(全场)";
  106. return $data;
  107. }
  108. /**
  109. * 上半场|主队|让球
  110. * @param mixed $model 注单表数据
  111. * @param mixed $resultModel 结果表数据
  112. * @param mixed $resultRecords 结果记录表数据
  113. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  114. */
  115. public function half_concede_home($model, $resultModel, $resultRecords)
  116. {
  117. return $this->concedeHalf($model, $resultModel, $resultRecords, 1, 1);
  118. }
  119. /**
  120. * 上半场|客队|让球
  121. * @param mixed $model 注单表数据
  122. * @param mixed $resultModel 结果表数据
  123. * @param mixed $resultRecords 结果记录表数据
  124. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  125. */
  126. public function half_concede_guest($model, $resultModel, $resultRecords)
  127. {
  128. return $this->concedeHalf($model, $resultModel, $resultRecords, 2, 1);
  129. }
  130. /**
  131. * 半场|[主、客]|让球
  132. * @param mixed $model 注单表数据
  133. * @param mixed $resultModel 结果表数据
  134. * @param mixed $resultRecords 结果记录表数据
  135. * @param mixed $whoType 1:代表主队让球 2:代表客队让球
  136. * @param mixed $halfType 1:上半场 2:下半场
  137. * @param mixed $size 1:大 -1:小(如果是让球大小玩法才传入该字段)
  138. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  139. */
  140. public function concedeHalf($model, $resultModel, $resultRecords, $whoType, $halfType)
  141. {
  142. $resultModel = $resultModel['0'];
  143. $returnDatas = ['result' => -1, 'matchResult' => ''];
  144. if ($halfType == 1) {
  145. $scoreArr = ['home' => $resultModel->u_home_score, 'guest' => $resultModel->u_guest_score];
  146. $returnDatas['matchResult'] = $scoreArr['home'] . '-' . $scoreArr['guest'] . "(上半场)";
  147. } else {
  148. $scoreArr = ['home' => $resultModel->home_score - $resultModel->u_home_score, 'guest' => $resultModel->guest_score - $resultModel->u_guest_score];
  149. $returnDatas['matchResult'] = $scoreArr['home'] . '-' . $scoreArr['guest'] . "(下半场)";
  150. }
  151. $hasFH = in_array(substr($model->condition, 0, 1), ['+', '-']);
  152. if ($hasFH) {
  153. $condArr = explode("/", substr($model->condition, 1));
  154. $FH = substr($model->condition, 0, 1);
  155. } else {
  156. $condArr = explode("/", $model->condition);
  157. $FH = '+';
  158. }
  159. $smin = $smax = 0;
  160. if (count($condArr) == 1) {
  161. if ($whoType == 1) {
  162. $smin = $scoreArr['home'] - $scoreArr['guest'] + (($FH == "+") ? -1 : 1) * $condArr[0];
  163. } else {
  164. $smin = $scoreArr['guest'] - $scoreArr['home'] + (($FH == "+") ? -1 : 1) * $condArr[0];
  165. }
  166. if ($smin > 0) {
  167. $returnDatas['result'] = 1;
  168. } elseif ($smin == 0) {
  169. $returnDatas['result'] = 2;
  170. } else {
  171. $returnDatas['result'] = -1;
  172. }
  173. return $returnDatas;
  174. }
  175. if ($whoType == 1) {
  176. $smin = $scoreArr['home'] - $scoreArr['guest'] + (($FH == "+") ? -1 : 1) * $condArr[0];
  177. $smax = $scoreArr['home'] - $scoreArr['guest'] + (($FH == "+") ? -1 : 1) * $condArr[1];
  178. } else {
  179. $smin = $scoreArr['guest'] - $scoreArr['home'] + (($FH == "+") ? -1 : 1) * $condArr[0];
  180. $smax = $scoreArr['guest'] - $scoreArr['home'] + (($FH == "+") ? -1 : 1) * $condArr[1];
  181. }
  182. ($smin > $smax) ? $this->exchage($smin, $smax) : '';
  183. if ($smin > 0) {
  184. $returnDatas['result'] = 1;
  185. } elseif ($smin == 0) {
  186. if ($smax > 0) {
  187. $returnDatas['result'] = 3;
  188. } else {
  189. $returnDatas['result'] = 4;
  190. }
  191. } else {
  192. if ($smax == 0) {
  193. $returnDatas['result'] = 4;
  194. }
  195. }
  196. return $returnDatas;
  197. }
  198. private function exchage(&$num1, &$num2)
  199. {
  200. $tmp = $num2;
  201. $num2 = $num1;
  202. $num1 = $tmp;
  203. }
  204. /**
  205. * 进球|全场|大
  206. * @param mixed $model 注单表数据
  207. * @param mixed $resultModel 结果表数据
  208. * @param mixed $resultMgoal_size_smallodel 结果表数据
  209. * @param mixed $resultRecords 结果记录表数据
  210. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  211. */
  212. public function goal_size_home($model, $resultModel, $resultRecords)
  213. {
  214. return $this->sizeFull($model, $resultModel, $resultRecords, 0, 1);
  215. }
  216. /**
  217. * 进球|全场|小
  218. * @param mixed $model 注单表数据
  219. * @param mixed $resultModel 结果表数据
  220. * @param mixed $resultRecords 结果记录表数据
  221. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  222. */
  223. public function goal_size_guest($model, $resultModel, $resultRecords)
  224. {
  225. return $this->sizeFull($model, $resultModel, $resultRecords, 0, -1);
  226. }
  227. /**
  228. * 总进球全场|[主、客、全]|大小
  229. * @param mixed $model 注单表数据
  230. * @param mixed $resultModel 结果表数据
  231. * @param mixed $resultRecords 结果记录表数据
  232. * @param mixed $type 1:主队 2:客队 0:全部进球 (目前只传 0)
  233. * @param mixed $size 1:大 -1:小
  234. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  235. */
  236. public function sizeFull($model, $resultModels, $resultRecords, $type, $size)
  237. {
  238. $resultModel = $resultModels['0'];
  239. // 总进球数
  240. $allGoal = intval($resultModel->home_score) + intval($resultModel->guest_score);
  241. // 主队进球数
  242. $homeGoal = intval($resultModel->home_score);
  243. // 客队进球数
  244. $guestGoal = intval($resultModel->guest_score);
  245. // 条件
  246. $condition = explode("/", $model->condition);
  247. $resultArr = [];
  248. // 循环对比输赢
  249. foreach ($condition as $value) {
  250. $absValue = abs($value);
  251. if ($type == 1) {
  252. $resultScore = $homeGoal - $absValue;
  253. } elseif ($type == 2) {
  254. $resultScore = $guestGoal - $absValue;
  255. } else {
  256. $resultScore = $allGoal - $absValue;
  257. }
  258. if ($resultScore > 0) {
  259. $resultArr[] = 1;
  260. } elseif ($resultScore < 0) {
  261. $resultArr[] = -1;
  262. } else {
  263. $resultArr[] = 0;
  264. }
  265. }
  266. // 去重
  267. $resultUniqueArr = array_unique($resultArr);
  268. // 循环对比让球后输赢
  269. $count = count($resultUniqueArr);
  270. if ($count == 1) {
  271. // 如果猜中
  272. if ($resultUniqueArr[0] == $size) {
  273. $data['result'] = 1;
  274. } elseif ($resultUniqueArr[0] == 0) {
  275. // 如果平
  276. $data['result'] = 2;
  277. } else {
  278. // 如果猜错
  279. $data['result'] = -1;
  280. }
  281. } elseif (in_array($size, $resultUniqueArr)) {
  282. $data['result'] = 3;
  283. } else {
  284. $data['result'] = 4;
  285. }
  286. $data['matchResult'] = "$homeGoal-$guestGoal(全场)";
  287. return $data;
  288. }
  289. //全场|进球|大
  290. public function goal_size_big($model, $resultModels, $resultRecords)
  291. {
  292. $resultModel = $resultModels['0'];
  293. $word = $resultModel->all_goal . "(全场)";
  294. $returnDatas = $this->zq_inball_bigsmall($resultModel->all_goal, $model->condition, 2, $word);
  295. return $returnDatas;
  296. }
  297. //全场|进球|小
  298. public function goal_size_small($model, $resultModels, $resultRecords)
  299. {
  300. $resultModel = $resultModels['0'];
  301. $word = $resultModel->all_goal . "(全场)";
  302. $returnDatas = $this->zq_inball_bigsmall($resultModel->all_goal, $model->condition, 1, $word);
  303. return $returnDatas;
  304. }
  305. /**
  306. * 进球|上半场|大
  307. * @param mixed $model 注单表数据
  308. * @param mixed $resultModel 结果表数据
  309. * @param mixed $resultRecords 结果记录表数据
  310. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  311. */
  312. public function half_goal_size_big($model, $resultModels, $resultRecords)
  313. {
  314. $resultModel = $resultModels['0'];
  315. $score = intval($resultModel->u_home_score) + intval($resultModel->u_guest_score);
  316. return $this->zq_inball_bigsmall($score, $model->condition, 2, $score . '(上半场)');
  317. }
  318. /**
  319. * 进球|上半场|小
  320. * @param mixed $model 注单表数据
  321. * @param mixed $resultModel 结果表数据
  322. * @param mixed $resultRecords 结果记录表数据
  323. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  324. */
  325. public function half_goal_size_small($model, $resultModels, $resultRecords)
  326. {
  327. $resultModel = $resultModels['0'];
  328. $score = intval($resultModel->u_home_score) + intval($resultModel->u_guest_score);
  329. return $this->zq_inball_bigsmall($score, $model->condition, 1, $score . '(上半场)');
  330. }
  331. /**
  332. * 全场|主队|独赢
  333. * @param mixed $model 注单表数据
  334. * @param mixed $resultModel 结果表数据
  335. * @param mixed $resultRecords 结果记录表数据
  336. * @return string 1:赢 -1:输
  337. */
  338. public function capot_home($model, $resultModels, $resultRecords)
  339. {
  340. $resultModel = $resultModels['0'];
  341. $home = intval($resultModel->home_score);
  342. $guest = intval($resultModel->guest_score);
  343. $word = $home . '-' . $guest . '(全场)';
  344. $ret = $this->zq_duying($home, $model->condition, $word);
  345. return $ret;
  346. }
  347. /**
  348. * 全场|客队|独赢
  349. * @param mixed $model 注单表数据
  350. * @param mixed $resultModel 结果表数据
  351. * @param mixed $resultRecords 结果记录表数据
  352. * @return string 1:赢 -1:输
  353. */
  354. public function capot_guest($model, $resultModels, $resultRecords)
  355. {
  356. $resultModel = $resultModels['0'];
  357. $home = intval($resultModel->home_score);
  358. $guest = intval($resultModel->guest_score);
  359. $word = $home . '-' . $guest . '(全场)';
  360. $ret = $this->zq_duying($guest, $model->condition, $word);
  361. return $ret;
  362. }
  363. /**
  364. * 全场|主客平|独赢
  365. * @param mixed $model 注单表数据
  366. * @param mixed $resultModel 结果表数据
  367. * @param mixed $resultRecords 结果记录表数据
  368. * @return string 1:赢 -1:输
  369. */
  370. public function capot_dogfall($model, $resultModels, $resultRecords)
  371. {
  372. $resultModel = $resultModels['0'];
  373. $home = intval($resultModel->home_score);
  374. $guest = intval($resultModel->guest_score);
  375. $word = $home . '-' . $guest . '(全场)';
  376. if ($home == $guest) {
  377. $return['result'] = 1;
  378. } else {
  379. $return['result'] = -1;
  380. }
  381. $return['matchResult'] = $word;
  382. return $return;
  383. }
  384. /**
  385. * 上半场|主队|独赢
  386. * @param mixed $model 注单表数据
  387. * @param mixed $resultModel 结果表数据
  388. * @param mixed $resultRecords 结果记录表数据
  389. * @return string 1:赢 -1:输
  390. */
  391. public function half_capot_home($model, $resultModels, $resultRecords)
  392. {
  393. $resultModel = $resultModels['0'];
  394. $word = $resultModel->u_home_score . '-' . $resultModel->u_guest_score . '(上半场)';
  395. return $this->zq_duying($resultModel->u_home_score, $model->condition, $word);
  396. }
  397. /**
  398. * 上半场|客队|独赢
  399. * @param mixed $model 注单表数据
  400. * @param mixed $resultModel 结果表数据
  401. * @param mixed $resultRecords 结果记录表数据
  402. * @return string 1:赢 -1:输
  403. */
  404. public function half_capot_guest($model, $resultModels, $resultRecords)
  405. {
  406. $resultModel = $resultModels['0'];
  407. $word = $resultModel->u_home_score . '-' . $resultModel->u_guest_score . '(上半场)';
  408. return $this->zq_duying($resultModel->u_guest_score, $model->condition, $word);
  409. }
  410. /**
  411. * 上半场|主客平|独赢
  412. * @param mixed $model 注单表数据
  413. * @param mixed $resultModel 结果表数据
  414. * @param mixed $resultRecords 结果记录表数据
  415. * @return string 1:赢 -1:输
  416. */
  417. public function half_capot_dogfall($model, $resultModels, $resultRecords)
  418. {
  419. $resultModel = $resultModels['0'];
  420. $word = $resultModel->u_home_score . '-' . $resultModel->u_guest_score . '(上半场)';
  421. if ($resultModel->u_home_score == $resultModel->u_guest_score) {
  422. $result = 1;
  423. } else {
  424. $result = -1;
  425. }
  426. return ['result' => $result, 'matchResult' => $word];
  427. }
  428. // first_last_ball最先/最后进球 开始-----------------------
  429. //主队|最先进球
  430. public function first_ball_home($model, $resultModel, $resultRecords)
  431. {
  432. $resultModel = $resultModel['0'];
  433. if (trim($resultModel->first_score) == trim($resultModel->home_team)) {
  434. return ['result' => 1, 'matchResult' => ''];
  435. } else {
  436. return ['result' => -1, 'matchResult' => ''];
  437. }
  438. }
  439. //客队|最先进球
  440. public function first_ball_guest($model, $resultModel, $resultRecords)
  441. {
  442. $resultModel = $resultModel['0'];
  443. if (trim($resultModel->first_score) == trim($resultModel->guest_team)) {
  444. return ['result' => 1, 'matchResult' => ''];
  445. } else {
  446. return ['result' => -1, 'matchResult' => ''];
  447. }
  448. }
  449. //主队|最后进球
  450. public function last_ball_home($model, $resultModel, $resultRecords)
  451. {
  452. $resultModel = $resultModel['0'];
  453. if (trim($resultModel->last_score) == trim($resultModel->home_team)) {
  454. return ['result' => 1, 'matchResult' => ''];
  455. } else {
  456. return ['result' => -1, 'matchResult' => ''];
  457. }
  458. }
  459. //客队|最后进球
  460. public function last_ball_guest($model, $resultModel, $resultRecords)
  461. {
  462. $pos = count($resultModel) - 1;
  463. $resultModel = $resultModel[$pos];
  464. if (trim($resultModel->last_score) == trim($resultModel->guest_team)) {
  465. return ['result' => 1, 'matchResult' => ''];
  466. } else {
  467. return ['result' => -1, 'matchResult' => ''];
  468. }
  469. }
  470. //没有进球
  471. public function not_ball($model, $resultModel, $resultRecords)
  472. {
  473. $pos = count($resultModel) - 1;
  474. $resultModel = $resultModel[$pos];
  475. if ($resultModel->all_goal <= 0) {
  476. return ['result' => 1, 'matchResult' => ''];
  477. } else {
  478. return ['result' => -1, 'matchResult' => ''];
  479. }
  480. }
  481. ////////// first_last_ball最先/最后进球 结束-----------------------
  482. /**
  483. * 足球波胆 规则
  484. * @param $bet_match 投注赛事数据
  485. * @param $result_match 最终结果
  486. * @param $result_match_r 结果记录
  487. */
  488. public function bodan($bet_match, $result_match, $result_match_r)
  489. {
  490. // $bet_match = DB::table('money_buy_match')->where(['match_id'=> 3219925,'p_code'=>'bodan'])->first();
  491. // $result_match = DB::table('st_zq_result')->where('match_id', 3224833)->limit(10)->get();
  492. // select * from st_zq_result where id=1317823 order by id desc limit 10 ;
  493. // $result_match_r = DB::table('st_zq_result_record')->where('match_id', 3150765)->get()->toArray();
  494. //获取父/子级赔率代码
  495. $p_code = $bet_match->p_code;
  496. $odds_code = $bet_match->odds_code;
  497. //获取主客队投注比分
  498. $bet_score = explode('-', $bet_match->condition);
  499. $bet_home_score = (int)$bet_score[0];
  500. $bet_guest_score = (int)$bet_score[1];
  501. if ($p_code != 'bodan') return false;
  502. //获取赛事最终结果数据
  503. $result_match = $this->getHalfData($result_match);
  504. if (strstr($odds_code, "half")) {//上半场
  505. //获取主客队上半场得分
  506. $home_score = $result_match->u_home_score;
  507. $guest_score = $result_match->u_guest_score;
  508. //返回结果
  509. $data = [
  510. 'result' => 1,
  511. 'matchResult' => "$home_score-$guest_score(上半场)"
  512. ];
  513. if (strstr($bet_match->condition, "其他")) {
  514. if (($home_score > 3) || ($guest_score > 3)) {
  515. return $data;
  516. }
  517. }
  518. //判断结果
  519. if ($bet_home_score == $home_score and $bet_guest_score == $guest_score) {
  520. return $data;
  521. }
  522. $data['result'] = -1;
  523. return $data;
  524. } else {//全场
  525. //获取主客队全场得分
  526. $home_score = $result_match->home_score;
  527. $guest_score = $result_match->guest_score;
  528. //返回结果
  529. $data = [
  530. 'result' => 1,
  531. 'matchResult' => "$home_score-$guest_score(全场)"
  532. ];
  533. if (strstr($bet_match->condition, "其他")) {
  534. if (($home_score > 4) || ($guest_score > 4)) {
  535. return $data;
  536. }
  537. }
  538. //判断结果
  539. if ($bet_home_score == $home_score and $bet_guest_score == $guest_score) {
  540. return $data;
  541. }
  542. $data['result'] = -1;
  543. return $data;
  544. }
  545. }
  546. //结果单/双 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球 u_home_score 上半场主队进球 u_guest_score 上半场-客队进球数 two_sides_single 全场单 two_sides_double 全场双 half_two_sides_single 上半场单 half_two_sides_double 上半场双
  547. public function two_sides($model, $resultModels, $resultRecords)
  548. {
  549. $resultModel = $resultModels['0'];
  550. $resulttod = intval($resultModel->home_score) + intval($resultModel->guest_score);//全场
  551. if ($resulttod % 2 == 0) {
  552. $text = '双';
  553. } else {
  554. $text = '单';
  555. }
  556. if ($model->odds_code == "two_sides_single" || $model->odds_code == 'two_sides_double') {
  557. if ($text == $model->condition) {
  558. $dsresult = 1;
  559. } else {
  560. $dsresult = -1;
  561. }
  562. return ['result' => $dsresult, 'matchResult' => "$resulttod(全场)"];
  563. } elseif ($model->odds_code == 'half_two_sides_single' || $model->odds_code == 'half_two_sides_double') {
  564. $hafs = intval($resultModel->u_home_score) + intval($resultModel->u_guest_score);
  565. $text = ($hafs % 2 == 0) ? '双' : '单';
  566. $dsresult = ($text == $model->condition) ? 1 : -1;
  567. return ['result' => $dsresult, 'matchResult' => "$hafs(全场)"];
  568. } else {
  569. $data = [
  570. 'result' => 100,
  571. 'matchResult' => "参数不存在",
  572. ];
  573. return $data;
  574. }
  575. }
  576. //结果总数 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球 u_home_score 上半场-主队进球数 u_guest_score 上半场-客队进球数
  577. public function total_goal($model, $resultModels, $resultRecords)
  578. {
  579. $resultModel = $resultModels['0'];
  580. //全场总进球数
  581. $resulttod = intval($resultModel->home_score) + intval($resultModel->guest_score);
  582. //上半场总进球数
  583. $firsthalftod = intval($resultModel->u_home_score) + intval($resultModel->u_guest_score);
  584. $results = 0;
  585. $resultb = 0;
  586. if ($model->odds_code == "total_goal_four") {
  587. if (4 <= $resulttod and $resulttod <= 6) {
  588. $results = 1;
  589. } else {
  590. $results = -1;
  591. }
  592. }
  593. if ($model->odds_code == "total_goal_zero") {
  594. if (0 <= $resulttod and $resulttod <= 1) {
  595. $results = 1;
  596. } else {
  597. $results = -1;
  598. }
  599. }
  600. if ($model->odds_code == "total_goal_two") {
  601. if (2 <= $resulttod and $resulttod <= 3) {
  602. $results = 1;
  603. } else {
  604. $results = -1;
  605. }
  606. }
  607. if ($model->odds_code == "total_goal_seven") {
  608. if (7 <= $resulttod) {
  609. $results = 1;
  610. } else {
  611. $results = -1;
  612. }
  613. }
  614. if ($model->odds_code == "half_total_goal_zero") {
  615. if ($firsthalftod == 0) {
  616. $resultb = 1;
  617. } else {
  618. $resultb = -1;
  619. }
  620. }
  621. if ($model->odds_code == "half_total_goal_one") {
  622. if ($firsthalftod == 1) {
  623. $resultb = 1;
  624. } else {
  625. $resultb = -1;
  626. }
  627. }
  628. if ($model->odds_code == "half_total_goal_two") {
  629. if ($firsthalftod == 2) {
  630. $resultb = 1;
  631. } else {
  632. $resultb = -1;
  633. }
  634. }
  635. if ($model->odds_code == "half_total_goal_three") {
  636. if ($firsthalftod == 3) {
  637. $resultb = 1;
  638. } else {
  639. $resultb = -1;
  640. }
  641. }
  642. if ($results == 1) {
  643. $data = [
  644. 'result' => 1,
  645. 'matchResult' => "$resulttod(全场)",
  646. ];
  647. }
  648. if ($results == -1) {
  649. $data = [
  650. 'result' => -1,
  651. 'matchResult' => "$resulttod(全场)",
  652. ];
  653. }
  654. if ($resultb == 1) {
  655. $data = [
  656. 'result' => 1,
  657. 'matchResult' => "$resulttod(半场)",
  658. ];
  659. }
  660. if ($resultb == -1) {
  661. $data = [
  662. 'result' => -1,
  663. 'matchResult' => "$resulttod(半场)",
  664. ];
  665. }
  666. return $data;
  667. }
  668. //球队进球数:大/小
  669. //condition 0.5 或 0.5/1 这种
  670. public function tema_ball($model, $resultModels, $result_match_r = [])
  671. {
  672. $resultModel = $resultModels['0'];
  673. $odds_code = trim($model->odds_code);
  674. $score_home = intval($resultModel->home_score);
  675. $score_guest = intval($resultModel->guest_score);
  676. $score_home_uhalf = intval($resultModel->u_home_score);
  677. $score_guest_uhalf = intval($resultModel->u_guest_score);
  678. switch ($odds_code) {
  679. case 'home_tema_ball_big':
  680. $returnDatas['matchResult'] = $score_home . '(全场)';
  681. $returnDatas = $this->zq_inball_bigsmall($score_home, $model->condition, 2, $returnDatas['matchResult']);
  682. break;
  683. case 'home_tema_ball_small':
  684. $returnDatas['matchResult'] = $score_home . '(全场)';
  685. $returnDatas = $this->zq_inball_bigsmall($score_home, $model->condition, 1, $returnDatas['matchResult']);
  686. break;
  687. case 'guest_tema_ball_big':
  688. $returnDatas['matchResult'] = $score_guest . '(全场)';
  689. $returnDatas = $this->zq_inball_bigsmall($score_guest, $model->condition, 2, $returnDatas['matchResult']);
  690. break;
  691. case 'guest_tema_ball_small':
  692. $returnDatas['matchResult'] = $score_guest . '(全场)';
  693. $returnDatas = $this->zq_inball_bigsmall($score_guest, $model->condition, 1, $returnDatas['matchResult']);
  694. break;
  695. case 'half_home_tema_ball_big':
  696. $returnDatas['matchResult'] = $score_home_uhalf . '(上全场)';
  697. $returnDatas = $this->zq_inball_bigsmall($score_home_uhalf, $model->condition, 2, $returnDatas['matchResult']);
  698. break;
  699. case 'half_home_tema_ball_small':
  700. $returnDatas['matchResult'] = $score_home_uhalf . '(上全场)';
  701. $returnDatas = $this->zq_inball_bigsmall($score_home_uhalf, $model->condition, 1, $returnDatas['matchResult']);
  702. break;
  703. case 'half_guest_tema_ball_big':
  704. $returnDatas['matchResult'] = $score_guest_uhalf . '(上半场)';
  705. $returnDatas = $this->zq_inball_bigsmall($score_guest_uhalf, $model->condition, 2, $returnDatas['matchResult']);
  706. break;
  707. case 'half_guest_tema_ball_small':
  708. $returnDatas['matchResult'] = $score_guest_uhalf . '(上半场)';
  709. $returnDatas = $this->zq_inball_bigsmall($score_guest_uhalf, $model->condition, 1, $returnDatas['matchResult']);
  710. break;
  711. }
  712. return $returnDatas;
  713. }
  714. /**
  715. * 半场/全场 投注规则
  716. */
  717. public function half_full($bet_match, $result_match, $result_match_r)
  718. {
  719. // $bet_match = DB::table('money_buy_match')->where('match_id', 3210851)->first();
  720. // $result_match = DB::table('st_zq_result')->where('match_id', 3210851)->first();
  721. // $result_match_r = DB::table('st_zq_result_record')->where('match_id', 3210851)->get()->toArray();
  722. if (empty($bet_match) || empty($result_match)) return false;
  723. //获取父/子级赔率代码
  724. $p_code = $bet_match->p_code;
  725. $odds_code = $bet_match->odds_code;
  726. //获取最终赛事数据
  727. $result_match = $this->getHalfData($result_match);
  728. //获取主客队上半场得分
  729. $half_home_score = $result_match->u_home_score;
  730. $half_guest_score = $result_match->u_guest_score;
  731. //获取主客队全场得分
  732. $full_home_score = $result_match->home_score;
  733. $full_guest_score = $result_match->guest_score;
  734. //半场/全场盘口
  735. if ($p_code != 'half_full') return false;
  736. //返回结果
  737. $data = [
  738. 'result' => 1,
  739. 'matchResult' => "$half_home_score-$half_guest_score(上半场);$full_home_score-$full_guest_score(全场)"
  740. ];
  741. switch ($odds_code) {
  742. case 'half_full_home_home':// 主-主
  743. if ($half_home_score > $half_guest_score and $full_home_score > $full_guest_score) return $data;
  744. break;
  745. case 'half_full_home_dogfall':// 主-和
  746. if ($half_home_score > $half_guest_score and $full_home_score == $full_guest_score) return $data;
  747. break;
  748. case 'half_full_home_guest':// 主-客
  749. if ($half_home_score > $half_guest_score and $full_home_score < $full_guest_score) return $data;
  750. break;
  751. case 'half_full_dogfall_home':// 和-主
  752. if ($half_home_score == $half_guest_score and $full_home_score > $full_guest_score) return $data;
  753. break;
  754. case 'half_full_dogfall_dogfall':// 和-和
  755. if ($half_home_score == $half_guest_score and $full_home_score == $full_guest_score) return $data;
  756. break;
  757. case 'half_full_dogfall_guest':// 和-客
  758. if ($half_home_score == $half_guest_score and $full_home_score < $full_guest_score) return $data;
  759. break;
  760. case 'half_full_guest_home':// 客-主
  761. if ($half_home_score < $half_guest_score and $full_home_score > $full_guest_score) return $data;
  762. break;
  763. case 'half_full_guest_dogfall':// 客-和
  764. if ($half_home_score < $half_guest_score and $full_home_score == $full_guest_score) return $data;
  765. break;
  766. case 'half_full_guest_guest':// 客-客
  767. if ($half_home_score < $half_guest_score and $full_home_score < $full_guest_score) return $data;
  768. break;
  769. default:
  770. return false;
  771. }
  772. $data['result'] = -1;
  773. return $data;
  774. }
  775. /**
  776. * @param $result_match_r 赛事结果记录
  777. * @return mixed 返回最新一条上半场结果数据
  778. */
  779. public function getHalfData($result_match_r = [])
  780. {
  781. return $result_match_r['0'];
  782. if (empty($result_match_r)) return false;
  783. if (is_array($result_match_r)) {
  784. foreach ($result_match_r as $k => $v) {
  785. return $v;
  786. }
  787. }
  788. }
  789. /**bo
  790. * 冠军盘口投注
  791. * $bet_match 投注赛事数据
  792. * $result_match 联赛结果 数据 根据玩法代码查询一条
  793. * $result_match_r 无用参数
  794. */
  795. public function gj($bet_match, $result_match, $result_match_r)
  796. {
  797. // $bet_match = DB::table('money_buy_match')->where('match_id', 127317)->first();
  798. // $bet_match->odds_code = '巴西小组赛积分成绩';
  799. // $result_match = DB::table('st_zq_league_result')->where(['lg_id'=>27317,'game_name'=>$bet_match->odds_code])->first();
  800. //获取 赛事最终数据
  801. $result_match = $this->getHalfData($result_match);
  802. if (empty($bet_match) || empty($result_match)) return false;
  803. if ($bet_match->p_code != 'gj') return false;//冠军玩法
  804. if ($bet_match->odds_code == $result_match->game_name) {
  805. $condition = $bet_match->condition;
  806. //进球数判断
  807. if (strpos($bet_match->odds_code, '进球数') !== false) {
  808. //返回结果
  809. $data = [
  810. 'result' => 1,
  811. 'matchResult' => "$result_match->result(球队进球数)"
  812. ];
  813. //获取数值
  814. $bet = $this->findNum($condition);
  815. //以上/以下判断
  816. if (strpos($condition, '上') !== false) {
  817. if ($bet < $result_match->result) {
  818. return $data;
  819. }
  820. $data['result'] = -1;
  821. return $data;
  822. }
  823. if (strpos($condition, '下') !== false) {
  824. if ($bet > $result_match->result) {
  825. return $data;
  826. }
  827. $data['result'] = -1;
  828. return $data;
  829. }
  830. //大/小判断
  831. if (strpos($condition, '大') !== false) {
  832. if ($bet < $result_match->result) {
  833. return $data;
  834. }
  835. $data['result'] = -1;
  836. return $data;
  837. }
  838. if (strpos($condition, '小') !== false) {
  839. if ($bet > $result_match->result) {
  840. return $data;
  841. }
  842. $data['result'] = -1;
  843. return $data;
  844. }
  845. }
  846. //积分成绩判断
  847. if (strpos($bet_match->odds_code, '积分') !== false) {
  848. //返回结果
  849. $data = [
  850. 'result' => 1,
  851. 'matchResult' => "$result_match->result(球队积分)"
  852. ];
  853. $condition = $bet_match->condition;
  854. //获取数值
  855. $bet = $this->findNum($condition);
  856. if ($bet == $result_match->result) {
  857. return $data;
  858. }
  859. $data['result'] = -1;
  860. return $data;
  861. }
  862. //如果条件中没有数字,则获取球队/球员结果
  863. if ((preg_match('/\d+/', $condition)) == 0) {
  864. //返回结果
  865. $data = [
  866. 'result' => 1,
  867. 'matchResult' => "$result_match->result(晋级球队)"
  868. ];
  869. $result = $this->teamJudge($condition, $result_match->result);
  870. if ($result) {
  871. return $data;
  872. }
  873. $data['result'] = -1;
  874. return $data;
  875. };
  876. return false;
  877. }
  878. return false;
  879. }
  880. /**
  881. * 冠军盘口 球队/球员结果判断
  882. */
  883. public function teamJudge($condition, $result)
  884. {
  885. //返回结果数组中是否包含该球队
  886. $result = in_array($condition, json_decode($result, true));
  887. return $result;
  888. }
  889. /**
  890. * @param string $str
  891. * @return string
  892. * 处理字符串中的数字
  893. */
  894. public function findNum($str = '')
  895. {
  896. $str = trim($str);
  897. if (empty($str)) {
  898. return '';
  899. }
  900. $result = '';
  901. for ($i = 0; $i < strlen($str); $i++) {
  902. if (is_numeric($str[$i]) || $str[$i] == '.') {
  903. $result .= $str[$i];
  904. }
  905. }
  906. //如果有小数点,返回浮点数
  907. if (strpos($result, '.')) return floatval($result);
  908. //返回整数
  909. return (int)$result;
  910. }
  911. /**
  912. * 角球相关--------->开始
  913. */
  914. public function corner_ball($model, $resultModels, $result_match_r)
  915. {
  916. $odds_code = $model->odds_code;
  917. $isHalf = strpos(strtolower($odds_code), 'half');
  918. if ($isHalf) {
  919. return $this->corner_ball_half($model, $resultModels, $result_match_r);
  920. } else {
  921. return $this->corner_ball_all($model, $resultModels, $result_match_r);
  922. }
  923. }
  924. public function corner_ball_all($model, $resultModels, $result_match_r)
  925. {
  926. $resultModel = $resultModels['0'];
  927. if ($resultModel->corner_ball == '') {
  928. $game_ret = json_decode(json_encode(['home' => 0, 'guest' => 0, 'home_half' => 0, 'guest_half' => 0]));
  929. } else {
  930. $game_ret = json_decode($resultModel->corner_ball);
  931. }
  932. $word = $game_ret->home . '-' . $game_ret->guest . "(全场)";
  933. $returnDatas = ['result' => -1, 'matchResult' => $word];
  934. $odds_code = $model->odds_code;
  935. switch ($odds_code) {
  936. case "corner_concede_home":
  937. $returnDatas = $this->zq_letball($game_ret->home - $game_ret->guest, $model->condition, $word);
  938. break;
  939. case "corner_concede_guest":
  940. $returnDatas = $this->zq_letball($game_ret->guest - $game_ret->home, $model->condition, $word);
  941. break;
  942. case "corner_goal_size_home":
  943. $returnDatas = $this->zq_inball_bigsmall($game_ret->home - $game_ret->guest, $model->condition, 2, $word);
  944. break;
  945. case "corner_goal_size_guest":
  946. $returnDatas = $this->zq_inball_bigsmall($game_ret->guest - $game_ret->home, $model->condition, 1, $word);
  947. break;
  948. case "corner_capot_home":
  949. $returnDatas = $this->zq_duying($game_ret->home, $model->condition, $word);
  950. break;
  951. case "corner_capot_guest":
  952. $returnDatas = $this->zq_duying($game_ret->home, $model->condition, $word);
  953. break;
  954. case "corner_capot_dogfall":
  955. $returnDatas['result'] = ($game_ret->home == $game_ret->guest) ? 1 : -1;
  956. break;
  957. case "corner_two_sides_single":
  958. $returnDatas = $this->zq_doublesing($game_ret->home + $game_ret->guest, $model->condition, $word);
  959. break;
  960. case "corner_two_sides_double":
  961. $returnDatas = $this->zq_doublesing($game_ret->home + $game_ret->guest, $model->condition, $word);
  962. break;
  963. default:
  964. $returnDatas = ['result' => 2, 'matchResult' => '(玩法无规则异常)-' . $odds_code];
  965. }
  966. return $returnDatas;
  967. }
  968. public function corner_ball_half($model, $resultModels, $result_match_r)
  969. {
  970. $resultModel = $resultModels['0'];
  971. if ($resultModel->corner_ball == '') {
  972. $game_ret = json_decode(json_encode(['home' => 0, 'guest' => 0, 'home_half' => 0, 'guest_half' => 0]));
  973. } else {
  974. $game_ret = json_decode($resultModel->corner_ball);
  975. }
  976. $word = $game_ret->home_half . '-' . $game_ret->guest_half . "(上半场)";
  977. $returnDatas = ['result' => -1, 'matchResult' => $word];
  978. $odds_code = $model->odds_code;
  979. switch ($odds_code) {
  980. case "corner_half_concede_home":
  981. $returnDatas = $this->zq_letball($game_ret->home_half - $game_ret->guest_half, $model->condition, $word);
  982. break;
  983. case "corner_half_concede_guest":
  984. $returnDatas = $this->zq_letball($game_ret->guest_half - $game_ret->home_half, $model->condition, $word);
  985. break;
  986. case "corner_half_goal_size_home":
  987. $returnDatas = $this->zq_inball_bigsmall($game_ret->home_half - $game_ret->guest_half, $model->condition, 2, $word);
  988. break;
  989. case "corner_half_goal_size_guest":
  990. $returnDatas = $this->zq_inball_bigsmall($game_ret->guest_half - $game_ret->home_half, $model->condition, 1, $word);
  991. break;
  992. case "corner_half_capot_home":
  993. $returnDatas = $this->zq_duying($game_ret->home_half, $model->condition, $word);
  994. break;
  995. case "corner_half_capot_guest":
  996. $returnDatas = $this->zq_duying($game_ret->hom_halfe, $model->condition, $word);
  997. break;
  998. case "corner_half_capot_dogfall":
  999. $returnDatas['result'] = ($game_ret->home_half == $game_ret->guest_half) ? 1 : -1;
  1000. break;
  1001. case "corner_half_two_sides_single":
  1002. $returnDatas = $this->zq_doublesing($game_ret->home_half + $game_ret->guest_half, $model->condition, $word);
  1003. break;
  1004. case "corner_half_two_sides_double":
  1005. $returnDatas = $this->zq_doublesing($game_ret->home_half + $game_ret->guest_half, $model->condition, $word);
  1006. break;
  1007. default:
  1008. $returnDatas = ['result' => 2, 'matchResult' => '(玩法无规则异常)-' . $odds_code];
  1009. }
  1010. return $returnDatas;
  1011. }
  1012. /**
  1013. * 角球相关--------->结束
  1014. */
  1015. /**
  1016. * 发球相关 开始
  1017. */
  1018. public function penalty_card($model, $resultModels, $result_match_r)
  1019. {
  1020. $odde_code = $model->odde_code;
  1021. $isHalf = strpos(strtolower($odde_code), 'half');
  1022. if ($isHalf) {
  1023. return $this->penalty_card_half($model, $resultModels, $result_match_r);
  1024. } else {
  1025. return $this->penalty_card_all($model, $resultModels, $result_match_r);
  1026. }
  1027. }
  1028. public function penalty_card_half($model, $resultModels, $result_match_r)
  1029. {
  1030. $resultModel = $resultModels['0'];
  1031. if ($resultModel->conner_ball == '') {
  1032. $game_ret = json_decode(json_encode(['home' => 0, 'guest' => 0, 'home_half' => 0, 'guest_half' => 0]));
  1033. } else {
  1034. $game_ret = json_decode($resultModel->penalty_card);
  1035. }
  1036. $word = $game_ret->home_half . '-' . $game_ret->guest_half . "(上半场)";
  1037. $returnDatas = ['result' => -1, 'matchResult' => $word];
  1038. $odds_code = $model->odds_code;
  1039. switch ($odds_code) {
  1040. case "penalty_half_concede_home":
  1041. $returnDatas = $this->zq_letball($game_ret->home_half - $game_ret->guest_half, $model->condition, $word);
  1042. break;
  1043. case "penalty_half_concede_guest":
  1044. $returnDatas = $this->zq_letball($game_ret->guest_half - $game_ret->home_half, $model->condition, $word);
  1045. break;
  1046. case "penalty_half_goal_size_home":
  1047. $returnDatas = $this->zq_inball_bigsmall($game_ret->home_half - $game_ret->guest_half, $model->condition, 2, $word);
  1048. break;
  1049. case "penalty_half_goal_size_guest":
  1050. $returnDatas = $this->zq_inball_bigsmall($game_ret->guest_half - $game_ret->home_half, $model->condition, 1, $word);
  1051. break;
  1052. case "penalty_half_capot_home":
  1053. $returnDatas = $this->zq_duying($game_ret->home_half, $model->condition, $word);
  1054. break;
  1055. case "penalty_half_capot_guest":
  1056. $returnDatas = $this->zq_duying($game_ret->hom_halfe, $model->condition, $word);
  1057. break;
  1058. case "penalty_half_capot_dogfall":
  1059. $returnDatas['result'] = ($game_ret->home_half == $game_ret->guest_half) ? 1 : -1;
  1060. break;
  1061. case "penalty_half_two_sides_single":
  1062. $returnDatas = $this->zq_doublesing($game_ret->home_half + $game_ret->guest_half, $model->condition, $word);
  1063. break;
  1064. case "penalty_half_two_sides_double":
  1065. $returnDatas = $this->zq_doublesing($game_ret->home_half + $game_ret->guest_half, $model->condition, $word);
  1066. break;
  1067. default:
  1068. $returnDatas = ['result' => 2, 'matchResult' => '(玩法无规则异常)-' . $odds_code];
  1069. }
  1070. return $returnDatas;
  1071. }
  1072. public function penalty_card_all($model, $resultModels, $result_match_r)
  1073. {
  1074. $resultModel = $resultModels['0'];
  1075. if ($resultModel->conner_ball == '') {
  1076. $game_ret = json_decode(json_encode(['home' => 0, 'guest' => 0, 'home_half' => 0, 'guest_half' => 0]));
  1077. } else {
  1078. $game_ret = json_decode($resultModel->penalty_card);
  1079. }
  1080. $word = $game_ret->home . '-' . $game_ret->guest . "(全场)";
  1081. $returnDatas = ['result' => -1, 'matchResult' => $word];
  1082. $odds_code = $model->odds_code;
  1083. switch ($odds_code) {
  1084. case "penalty_concede_home":
  1085. $returnDatas = $this->zq_letball($game_ret->home - $game_ret->guest, $model->condition, $word);
  1086. break;
  1087. case "penalty_concede_guest":
  1088. $returnDatas = $this->zq_letball($game_ret->guest - $game_ret->home, $model->condition, $word);
  1089. break;
  1090. case "penalty_goal_size_home":
  1091. $returnDatas = $this->zq_inball_bigsmall($game_ret->home - $game_ret->guest, $model->condition, 2, $word);
  1092. break;
  1093. case "penalty_goal_size_guest":
  1094. $returnDatas = $this->zq_inball_bigsmall($game_ret->guest - $game_ret->home, $model->condition, 1, $word);
  1095. break;
  1096. case "penalty_capot_home":
  1097. $returnDatas = $this->zq_duying($game_ret->home, $model->condition, $word);
  1098. break;
  1099. case "penalty_capot_guest":
  1100. $returnDatas = $this->zq_duying($game_ret->home, $model->condition, $word);
  1101. break;
  1102. case "penalty_capot_dogfall":
  1103. $returnDatas['result'] = ($game_ret->home == $game_ret->guest) ? 1 : -1;
  1104. break;
  1105. case "penalty_two_sides_single":
  1106. $returnDatas = $this->zq_doublesing($game_ret->home + $game_ret->guest, $model->condition, $word);
  1107. break;
  1108. case "penalty_two_sides_double":
  1109. $returnDatas = $this->zq_doublesing($game_ret->home + $game_ret->guest, $model->condition, $word);
  1110. break;
  1111. default:
  1112. $returnDatas = ['result' => 2, 'matchResult' => '(玩法无规则异常)-' . $odds_code];
  1113. }
  1114. return $returnDatas;
  1115. }
  1116. /**
  1117. * 发球相关 结束
  1118. */
  1119. }