LqRule.php 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/4/25
  6. * Time: 14:09
  7. */
  8. namespace App\Lib\Settlement\Adapter;
  9. use Illuminate\Support\Facades\DB;
  10. class LqRule
  11. {
  12. /**
  13. * 让球公共函数
  14. * @param mixed $model 注单表数据
  15. * @param mixed $difference 分差
  16. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  17. */
  18. public function concedeCommon($model, $difference){
  19. // 让球个数
  20. $condition = intval($model -> condition);
  21. // 差值
  22. $resultScore = $difference + $condition;
  23. if ($resultScore > 0) {
  24. $result = 1;
  25. } elseif ($resultScore < 0) {
  26. $result = -1;
  27. } else {
  28. $result = 2;
  29. }
  30. return $result;
  31. }
  32. /**
  33. * 大小公共函数
  34. * @param mixed $model 注单表数据
  35. * @param mixed $allGoal 总分
  36. * @param mixed $size 大小 1:大 -1:小
  37. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  38. */
  39. public function sizeCommon($model, $allGoal, $size){
  40. // 总球条件
  41. $condition = intval($model -> condition);
  42. // 差值
  43. if ($size == 1) {
  44. $resultScore = $allGoal - $condition;
  45. } else {
  46. $resultScore = $condition - $allGoal;
  47. }
  48. if ($resultScore > 0) {
  49. $result = 1;
  50. } elseif ($resultScore < 0) {
  51. $result = -1;
  52. } else {
  53. $result = 2;
  54. }
  55. return $result;
  56. }
  57. /**
  58. * 全场|主队|让球
  59. * @param mixed $model 注单表数据
  60. * @param mixed $resultModel 结果表数据
  61. * @param mixed $resultRecords 结果记录表数据
  62. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  63. */
  64. public function concede_home($model, $resultModel, $resultRecords){
  65. // 主队得分
  66. $homeScore = intval($resultModel -> home_score);
  67. // 客队得分
  68. $guestScore = intval($resultModel -> guest_score);
  69. // 分差 - 主 :客
  70. $difference = $homeScore - $guestScore;
  71. $data['result'] = $this -> concedeCommon($model, $difference);
  72. $data['matchResult'] = "$homeScore-$guestScore(全场)";
  73. return $data;
  74. }
  75. /**
  76. * 全场|客队|让球
  77. * @param mixed $model 注单表数据
  78. * @param mixed $resultModel 结果表数据
  79. * @param mixed $resultRecords 结果记录表数据
  80. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  81. */
  82. public function concede_guest($model, $resultModel, $resultRecords){
  83. // 主队得分
  84. $homeScore = intval($resultModel -> home_score);
  85. // 客队得分
  86. $guestScore = intval($resultModel -> guest_score);
  87. // 分差 - 客 :主
  88. $difference = $guestScore - $homeScore;
  89. $data['result'] = $this -> concedeCommon($model, $difference);
  90. $data['matchResult'] = "$homeScore-$guestScore(全场)";
  91. return $data;
  92. }
  93. /**
  94. * 上半场|主队|让球
  95. * @param mixed $model 注单表数据
  96. * @param mixed $resultModel 结果表数据
  97. * @param mixed $resultRecords 结果记录表数据
  98. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  99. */
  100. public function half_concede_home($model, $resultModel, $resultRecords){
  101. $newResultRecords = array_reverse($resultRecords);
  102. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  103. // 主队得分
  104. $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
  105. // 客队得分
  106. $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
  107. // 分差 - 主 :客
  108. $difference = $homeScore - $guestScore;
  109. $data['result'] = $this -> concedeCommon($model, $difference);
  110. $data['matchResult'] = "$homeScore-$guestScore(上半场)";
  111. return $data;
  112. }
  113. /**
  114. * 上半场|客队|让球
  115. * @param mixed $model 注单表数据
  116. * @param mixed $resultModel 结果表数据
  117. * @param mixed $resultRecords 结果记录表数据
  118. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  119. */
  120. public function half_concede_guest($model, $resultModel, $resultRecords){
  121. $newResultRecords = array_reverse($resultRecords);
  122. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  123. // 主队得分
  124. $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
  125. // 客队得分
  126. $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
  127. // 分差 - 客 :主
  128. $difference = $guestScore - $homeScore;
  129. $data['result'] = $this -> concedeCommon($model, $difference);
  130. $data['matchResult'] = "$homeScore-$guestScore(上半场)";
  131. return $data;
  132. }
  133. /**
  134. * 第一节|主队|让球
  135. * @param mixed $model 注单表数据
  136. * @param mixed $resultModel 结果表数据
  137. * @param mixed $resultRecords 结果记录表数据
  138. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  139. */
  140. public function one_concede_home($model, $resultModel, $resultRecords){
  141. $newResultRecords = array_reverse($resultRecords);
  142. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  143. // 主队得分
  144. $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
  145. // 客队得分
  146. $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
  147. // 分差 - 主 :客
  148. $difference = $homeScore - $guestScore;
  149. $data['result'] = $this -> concedeCommon($model, $difference);
  150. $data['matchResult'] = "$homeScore-$guestScore(第一节)";
  151. return $data;
  152. }
  153. /**
  154. * 第一节|客队|让球
  155. * @param mixed $model 注单表数据
  156. * @param mixed $resultModel 结果表数据
  157. * @param mixed $resultRecords 结果记录表数据
  158. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  159. */
  160. public function one_concede_guest($model, $resultModel, $resultRecords){
  161. $newResultRecords = array_reverse($resultRecords);
  162. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  163. // 主队得分
  164. $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
  165. // 客队得分
  166. $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
  167. // 分差 - 客 :主
  168. $difference = $guestScore - $homeScore;
  169. $data['result'] = $this -> concedeCommon($model, $difference);
  170. $data['matchResult'] = "$homeScore-$guestScore(第一节)";
  171. return $data;
  172. }
  173. /**
  174. * 第二节|主队|让球
  175. * @param mixed $model 注单表数据
  176. * @param mixed $resultModel 结果表数据
  177. * @param mixed $resultRecords 结果记录表数据
  178. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  179. */
  180. public function two_concede_home($model, $resultModel, $resultRecords){
  181. $newResultRecords = array_reverse($resultRecords);
  182. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  183. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  184. // 主队得分
  185. $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
  186. // 客队得分
  187. $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  188. // 分差 - 主 :客
  189. $difference = $homeScore - $guestScore;
  190. $data['result'] = $this -> concedeCommon($model, $difference);
  191. $data['matchResult'] = "$homeScore-$guestScore(第二节)";
  192. return $data;
  193. }
  194. /**
  195. * 第二节|客队|让球
  196. * @param mixed $model 注单表数据
  197. * @param mixed $resultModel 结果表数据
  198. * @param mixed $resultRecords 结果记录表数据
  199. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  200. */
  201. public function two_concede_guest($model, $resultModel, $resultRecords){
  202. $newResultRecords = array_reverse($resultRecords);
  203. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  204. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  205. // 主队得分
  206. $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
  207. // 客队得分
  208. $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  209. // 分差 - 客 :主
  210. $difference = $guestScore - $homeScore;
  211. $data['result'] = $this -> concedeCommon($model, $difference);
  212. $data['matchResult'] = "$homeScore-$guestScore(第二节)";
  213. return $data;
  214. }
  215. /**
  216. * 第三节|主队|让球
  217. * @param mixed $model 注单表数据
  218. * @param mixed $resultModel 结果表数据
  219. * @param mixed $resultRecords 结果记录表数据
  220. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  221. */
  222. public function three_concede_home($model, $resultModel, $resultRecords){
  223. $newResultRecords = array_reverse($resultRecords);
  224. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  225. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  226. // 主队得分
  227. $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
  228. // 客队得分
  229. $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  230. // 分差 - 主 :客
  231. $difference = $homeScore - $guestScore;
  232. $data['result'] = $this -> concedeCommon($model, $difference);
  233. $data['matchResult'] = "$homeScore-$guestScore(第三节)";
  234. return $data;
  235. }
  236. /**
  237. * 第三节|客队|让球
  238. * @param mixed $model 注单表数据
  239. * @param mixed $resultModel 结果表数据
  240. * @param mixed $resultRecords 结果记录表数据
  241. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  242. */
  243. public function three_concede_guest($model, $resultModel, $resultRecords){
  244. $newResultRecords = array_reverse($resultRecords);
  245. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  246. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  247. // 主队得分
  248. $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
  249. // 客队得分
  250. $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  251. // 分差 - 客 :主
  252. $difference = $guestScore - $homeScore;
  253. $data['result'] = $this -> concedeCommon($model, $difference);
  254. $data['matchResult'] = "$homeScore-$guestScore(第三节)";
  255. return $data;
  256. }
  257. /**
  258. * 第四节|主队|让球
  259. * @param mixed $model 注单表数据
  260. * @param mixed $resultModel 结果表数据
  261. * @param mixed $resultRecords 结果记录表数据
  262. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  263. */
  264. public function four_concede_home($model, $resultModel, $resultRecords){
  265. $newResultRecords = array_reverse($resultRecords);
  266. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  267. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  268. // 主队得分
  269. $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
  270. // 客队得分
  271. $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  272. // 分差 - 主 :客
  273. $difference = $homeScore - $guestScore;
  274. $data['result'] = $this -> concedeCommon($model, $difference);
  275. $data['matchResult'] = "$homeScore-$guestScore(第四节)";
  276. return $data;
  277. }
  278. /**
  279. * 第四节|客队|让球
  280. * @param mixed $model 注单表数据
  281. * @param mixed $resultModel 结果表数据
  282. * @param mixed $resultRecords 结果记录表数据
  283. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  284. */
  285. public function four_concede_guest($model, $resultModel, $resultRecords){
  286. $newResultRecords = array_reverse($resultRecords);
  287. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  288. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  289. // 主队得分
  290. $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
  291. // 客队得分
  292. $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  293. // 分差 - 客 :主
  294. $difference = $guestScore - $homeScore;
  295. $data['result'] = $this -> concedeCommon($model, $difference);
  296. $data['matchResult'] = "$homeScore-$guestScore(第四节)";
  297. return $data;
  298. }
  299. /**
  300. * 全场总分大
  301. * @param mixed $model 注单表数据
  302. * @param mixed $resultModel 结果表数据
  303. * @param mixed $resultRecords 结果记录表数据
  304. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  305. */
  306. public function total_number_big($model, $resultModel, $resultRecords){
  307. // 主队得分
  308. $homeScore = intval($resultModel -> home_score);
  309. // 客队得分
  310. $guestScore = intval($resultModel -> guest_score);
  311. // 总进球数
  312. $allGoal = $homeScore + $guestScore;
  313. $data['result'] = $this -> sizeCommon($model, $allGoal, 1);
  314. $data['matchResult'] = "$homeScore-$guestScore(全场)";
  315. return $data;
  316. }
  317. /**
  318. * 全场总分小
  319. * @param mixed $model 注单表数据
  320. * @param mixed $resultModel 结果表数据
  321. * @param mixed $resultRecords 结果记录表数据
  322. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  323. */
  324. public function total_number_small($model, $resultModel, $resultRecords){
  325. // 主队得分
  326. $homeScore = intval($resultModel -> home_score);
  327. // 客队得分
  328. $guestScore = intval($resultModel -> guest_score);
  329. // 总进球数
  330. $allGoal = $homeScore + $guestScore;
  331. $data['result'] = $this -> sizeCommon($model, $allGoal, -1);
  332. $data['matchResult'] = "$homeScore-$guestScore(全场)";
  333. return $data;
  334. }
  335. /**
  336. * 上半场总分大
  337. * @param mixed $model 注单表数据
  338. * @param mixed $resultModel 结果表数据
  339. * @param mixed $resultRecords 结果记录表数据
  340. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  341. */
  342. public function half_total_sizes_big($model, $resultModel, $resultRecords){
  343. $newResultRecords = array_reverse($resultRecords);
  344. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  345. // 主队得分
  346. $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
  347. // 客队得分
  348. $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
  349. // 总进球数
  350. $allGoal = $homeScore + $guestScore;
  351. $data['result'] = $this -> sizeCommon($model, $allGoal, 1);
  352. $data['matchResult'] = "$homeScore-$guestScore(上半场)";
  353. return $data;
  354. }
  355. /**
  356. * 上半场总分小
  357. * @param mixed $model 注单表数据
  358. * @param mixed $resultModel 结果表数据
  359. * @param mixed $resultRecords 结果记录表数据
  360. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  361. */
  362. public function half_total_sizes_small($model, $resultModel, $resultRecords){
  363. $newResultRecords = array_reverse($resultRecords);
  364. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  365. // 主队得分
  366. $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
  367. // 客队得分
  368. $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
  369. // 总进球数
  370. $allGoal = $homeScore + $guestScore;
  371. $data['result'] = $this -> sizeCommon($model, $allGoal, -1);
  372. $data['matchResult'] = "$homeScore-$guestScore(上半场)";
  373. return $data;
  374. }
  375. /**
  376. * 第一节总分大
  377. * @param mixed $model 注单表数据
  378. * @param mixed $resultModel 结果表数据
  379. * @param mixed $resultRecords 结果记录表数据
  380. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  381. */
  382. public function one_total_sizes_big($model, $resultModel, $resultRecords){
  383. $newResultRecords = array_reverse($resultRecords);
  384. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  385. // 主队得分
  386. $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
  387. // 客队得分
  388. $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
  389. // 总进球数
  390. $allGoal = $homeScore + $guestScore;
  391. $data['result'] = $this -> sizeCommon($model, $allGoal, 1);
  392. $data['matchResult'] = "$homeScore-$guestScore(第一节)";
  393. return $data;
  394. }
  395. /**
  396. * 第一节总分小
  397. * @param mixed $model 注单表数据
  398. * @param mixed $resultModel 结果表数据
  399. * @param mixed $resultRecords 结果记录表数据
  400. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  401. */
  402. public function one_total_sizes_small($model, $resultModel, $resultRecords){
  403. $newResultRecords = array_reverse($resultRecords);
  404. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  405. // 主队得分
  406. $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
  407. // 客队得分
  408. $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
  409. // 总进球数
  410. $allGoal = $homeScore + $guestScore;
  411. $data['result'] = $this -> sizeCommon($model, $allGoal, -1);
  412. $data['matchResult'] = "$homeScore-$guestScore(第一节)";
  413. return $data;
  414. }
  415. /**
  416. * 第二节总分大
  417. * @param mixed $model 注单表数据
  418. * @param mixed $resultModel 结果表数据
  419. * @param mixed $resultRecords 结果记录表数据
  420. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  421. */
  422. public function two_total_sizes_big($model, $resultModel, $resultRecords){
  423. $newResultRecords = array_reverse($resultRecords);
  424. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  425. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  426. // 主队得分
  427. $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
  428. // 客队得分
  429. $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  430. // 总进球数
  431. $allGoal = $homeScore + $guestScore;
  432. $data['result'] = $this -> sizeCommon($model, $allGoal, 1);
  433. $data['matchResult'] = "$homeScore-$guestScore(第二节)";
  434. return $data;
  435. }
  436. /**
  437. * 第二节总分小
  438. * @param mixed $model 注单表数据
  439. * @param mixed $resultModel 结果表数据
  440. * @param mixed $resultRecords 结果记录表数据
  441. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  442. */
  443. public function two_total_sizes_small($model, $resultModel, $resultRecords){
  444. $newResultRecords = array_reverse($resultRecords);
  445. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  446. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  447. // 主队得分
  448. $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
  449. // 客队得分
  450. $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  451. // 总进球数
  452. $allGoal = $homeScore + $guestScore;
  453. $data['result'] = $this -> sizeCommon($model, $allGoal, -1);
  454. $data['matchResult'] = "$homeScore-$guestScore(第二节)";
  455. return $data;
  456. }
  457. /**
  458. * 第三节总分大
  459. * @param mixed $model 注单表数据
  460. * @param mixed $resultModel 结果表数据
  461. * @param mixed $resultRecords 结果记录表数据
  462. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  463. */
  464. public function three_total_sizes_big($model, $resultModel, $resultRecords){
  465. $newResultRecords = array_reverse($resultRecords);
  466. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  467. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  468. // 主队得分
  469. $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
  470. // 客队得分
  471. $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  472. // 总进球数
  473. $allGoal = $homeScore + $guestScore;
  474. $data['result'] = $this -> sizeCommon($model, $allGoal, 1);
  475. $data['matchResult'] = "$homeScore-$guestScore(第三节)";
  476. return $data;
  477. }
  478. /**
  479. * 第三节总分小
  480. * @param mixed $model 注单表数据
  481. * @param mixed $resultModel 结果表数据
  482. * @param mixed $resultRecords 结果记录表数据
  483. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  484. */
  485. public function three_total_sizes_small($model, $resultModel, $resultRecords){
  486. $newResultRecords = array_reverse($resultRecords);
  487. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  488. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  489. // 主队得分
  490. $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
  491. // 客队得分
  492. $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  493. // 总进球数
  494. $allGoal = $homeScore + $guestScore;
  495. $data['result'] = $this -> sizeCommon($model, $allGoal, -1);
  496. $data['matchResult'] = "$homeScore-$guestScore(第三节)";
  497. return $data;
  498. }
  499. /**
  500. * 第四节总分大
  501. * @param mixed $model 注单表数据
  502. * @param mixed $resultModel 结果表数据
  503. * @param mixed $resultRecords 结果记录表数据
  504. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  505. */
  506. public function four_total_sizes_big($model, $resultModel, $resultRecords){
  507. $newResultRecords = array_reverse($resultRecords);
  508. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  509. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  510. // 主队得分
  511. $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
  512. // 客队得分
  513. $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  514. // 总进球数
  515. $allGoal = $homeScore + $guestScore;
  516. $data['result'] = $this -> sizeCommon($model, $allGoal, 1);
  517. $data['matchResult'] = "$homeScore-$guestScore(第四节)";
  518. return $data;
  519. }
  520. /**
  521. * 第四节总分小
  522. * @param mixed $model 注单表数据
  523. * @param mixed $resultModel 结果表数据
  524. * @param mixed $resultRecords 结果记录表数据
  525. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  526. */
  527. public function four_total_sizes_small($model, $resultModel, $resultRecords){
  528. $newResultRecords = array_reverse($resultRecords);
  529. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  530. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  531. // 主队得分
  532. $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
  533. // 客队得分
  534. $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  535. // 总进球数
  536. $allGoal = $homeScore + $guestScore;
  537. $data['result'] = $this -> sizeCommon($model, $allGoal, -1);
  538. $data['matchResult'] = "$homeScore-$guestScore(第四节)";
  539. return $data;
  540. }
  541. /**
  542. * 篮球 独赢规则
  543. */
  544. public function lq_capot($bet_match,$result_match,$result_match_r){
  545. if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
  546. // 篮球 独赢
  547. if($bet_match->p_code != 'lq_capot') return false;
  548. //获取主客队全场得分
  549. $home_score = $result_match->home_score;
  550. $guest_score = $result_match->guest_score;
  551. //返回结果
  552. $data = [
  553. 'result'=>1,
  554. 'matchResult'=>"$home_score-$guest_score(全场得分)"
  555. ];
  556. //主队
  557. if($bet_match->odds_code == 'lq_capot_home'){
  558. if($home_score > $guest_score)
  559. {
  560. return $data;
  561. }
  562. $data['result'] = -1;
  563. return $data;
  564. }
  565. //客队
  566. if($bet_match->odds_code == 'lq_capot_guest'){
  567. if($home_score < $guest_score)
  568. {
  569. return $data;
  570. }
  571. $data['result'] = -1;
  572. return $data;
  573. }
  574. //上半场
  575. if(strstr($bet_match->odds_code,"half")){
  576. //获取上半场最终数据
  577. $last_stage_data = $this->getStageData($result_match_r,'上半场');
  578. //获取主客队上半场得分
  579. $home_score = $last_stage_data->home_score;
  580. $guest_score = $last_stage_data->guest_score;
  581. //返回结果
  582. $data = [
  583. 'result'=>1,
  584. 'matchResult'=>"$home_score-$guest_score(上半场得分)"
  585. ];
  586. //主队 上半场
  587. if($bet_match->odds_code == 'lq_half_capot_home'){
  588. if($home_score > $guest_score)
  589. {
  590. return $data;
  591. }
  592. $data['result'] = -1;
  593. return $data;
  594. }
  595. //客队 上半场
  596. if($bet_match->odds_code == 'lq_half_capot_guest'){
  597. if($home_score < $guest_score)
  598. {
  599. return $data;
  600. }
  601. $data['result'] = -1;
  602. return $data;
  603. }
  604. }
  605. //第一节
  606. if(strstr($bet_match->odds_code,"one")){
  607. //获取第一节最终数据
  608. $last_stage_data = $this->getStageData($result_match_r,'第一节');
  609. //获取主客队第一节得分
  610. $home_score = $last_stage_data->home_score;
  611. $guest_score = $last_stage_data->guest_score;
  612. //返回结果
  613. $data = [
  614. 'result'=>1,
  615. 'matchResult'=>"$home_score-$guest_score(第一节得分)"
  616. ];
  617. //主队 第一节
  618. if($bet_match->odds_code == 'lq_one_capot_home'){
  619. if($home_score > $guest_score)
  620. {
  621. return $data;
  622. }
  623. $data['result'] = -1;
  624. return $data;
  625. }
  626. //客队 第一节
  627. if($bet_match->odds_code == 'lq_one_capot_guest'){
  628. if($home_score < $guest_score)
  629. {
  630. return $data;
  631. }
  632. $data['result'] = -1;
  633. return $data;
  634. }
  635. }
  636. //第二节
  637. if(strstr($bet_match->odds_code,"two")){
  638. //获取第二节最终数据
  639. $last_stage_data = $this->getStageData($result_match_r,'第二节');
  640. //获取主客队第二节得分
  641. $home_score = $last_stage_data->home_score;
  642. $guest_score = $last_stage_data->guest_score;
  643. //返回结果
  644. $data = [
  645. 'result'=>1,
  646. 'matchResult'=>"$home_score-$guest_score(第二节得分)"
  647. ];
  648. //主队 第二节
  649. if($bet_match->odds_code == 'lq_two_capot_home'){
  650. if($home_score > $guest_score)
  651. {
  652. return $data;
  653. }
  654. $data['result'] = -1;
  655. return $data;
  656. }
  657. //客队 第二节
  658. if($bet_match->odds_code == 'lq_two_capot_guest'){
  659. if($home_score < $guest_score)
  660. {
  661. return $data;
  662. }
  663. $data['result'] = -1;
  664. return $data;
  665. }
  666. }
  667. //第三节
  668. if(strstr($bet_match->odds_code,"three")){
  669. //获取第三节最终数据
  670. $last_stage_data = $this->getStageData($result_match_r,'第三节');
  671. //获取主客队第三节得分
  672. $home_score = $last_stage_data->home_score;
  673. $guest_score = $last_stage_data->guest_score;
  674. //返回结果
  675. $data = [
  676. 'result'=>1,
  677. 'matchResult'=>"$home_score-$guest_score(第三节得分)"
  678. ];
  679. //主队 第三节
  680. if($bet_match->odds_code == 'lq_three_capot_home'){
  681. if($home_score > $guest_score)
  682. {
  683. return $data;
  684. }
  685. $data['result'] = -1;
  686. return $data;
  687. }
  688. //客队 第三节
  689. if($bet_match->odds_code == 'lq_three_capot_guest'){
  690. if($home_score < $guest_score)
  691. {
  692. return $data;
  693. }
  694. $data['result'] = -1;
  695. return $data;
  696. }
  697. }
  698. //第四节
  699. if(strstr($bet_match->odds_code,"four")){
  700. //获取第四节最终数据
  701. $last_stage_data = $this->getStageData($result_match_r,'第四节');
  702. //获取主客队第四节得分
  703. $home_score = $last_stage_data->home_score;
  704. $guest_score = $last_stage_data->guest_score;
  705. //返回结果
  706. $data = [
  707. 'result'=>1,
  708. 'matchResult'=>"$home_score-$guest_score(第四节得分)"
  709. ];
  710. //主队 第四节
  711. if($bet_match->odds_code == 'lq_four_capot_home'){
  712. if($home_score > $guest_score)
  713. {
  714. return $data;
  715. }
  716. $data['result'] = -1;
  717. return $data;
  718. }
  719. //客队 第四节
  720. if($bet_match->odds_code == 'lq_four_capot_guest'){
  721. if($home_score < $guest_score)
  722. {
  723. return $data;
  724. }
  725. $data['result'] = -1;
  726. return $data;
  727. }
  728. }
  729. return false;
  730. }
  731. /**
  732. * 篮球 球队得分大小
  733. */
  734. public function lq_team_score($bet_match,$result_match,$result_match_r){
  735. if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
  736. // 篮球 球队得分大小
  737. if($bet_match->p_code != 'lq_team_score') return false;
  738. //获取主客队全场得分
  739. $home_score = $result_match->home_score;
  740. $guest_score = $result_match->guest_score;
  741. //返回结果
  742. $data = [
  743. 'result'=>1,
  744. 'matchResult'=>""
  745. ];
  746. //界定 分数 条件
  747. $condition = $bet_match->condition;
  748. //赔率代码
  749. $odds_code = $bet_match->odds_code;
  750. //全场 主队 得分大
  751. if($odds_code == 'lq_score_home_big'){
  752. $data['matchResult'] = "$home_score(全场主队得分)";
  753. if($home_score > $condition)
  754. {
  755. return $data;
  756. }
  757. $data['result'] = -1;
  758. return $data;
  759. }
  760. //全场 主队 得分小
  761. if($odds_code == 'lq_score_home_small'){
  762. $data['matchResult'] = "$home_score(全场主队得分)";
  763. if($home_score < $condition)
  764. {
  765. return $data;
  766. }
  767. $data['result'] = -1;
  768. return $data;
  769. }
  770. //全场 客队 得分大
  771. if($odds_code == 'lq_score_guest_big'){
  772. $data['matchResult'] = "$guest_score(全场客队得分)";
  773. if($guest_score > $condition)
  774. {
  775. return $data;
  776. }
  777. $data['result'] = -1;
  778. return $data;
  779. }
  780. //全场 客队 得分小
  781. if($odds_code == 'lq_score_guest_small'){
  782. $data['matchResult'] = "$guest_score(全场客队得分)";
  783. if($guest_score < $condition)
  784. {
  785. return $data;
  786. }
  787. $data['result'] = -1;
  788. return $data;
  789. }
  790. //上半场
  791. if(strstr($odds_code,"half")){
  792. //获取上半场最终数据
  793. $last_stage_data = $this->getStageData($result_match_r,'上半场');
  794. //获取主客队上半场得分
  795. $home_score = $last_stage_data->home_score;
  796. $guest_score = $last_stage_data->guest_score;
  797. //上半场主队得分大
  798. if($odds_code == 'lq_half_score_home_big'){
  799. $data['matchResult'] = "$home_score(上半场主队得分)";
  800. if($home_score > $condition)
  801. {
  802. return $data;
  803. }
  804. $data['result'] = -1;
  805. return $data;
  806. }
  807. //上半场主队得分小
  808. if($odds_code == 'lq_half_score_home_small'){
  809. $data['matchResult'] = "$home_score(上半场主队得分)";
  810. if($home_score < $condition)
  811. {
  812. return $data;
  813. }
  814. $data['result'] = -1;
  815. return $data;
  816. }
  817. //上半场客队得分大
  818. if($odds_code == 'lq_half_score_guest_big'){
  819. $data['matchResult'] = "$guest_score(上半场客队得分)";
  820. if($guest_score > $condition)
  821. {
  822. return $data;
  823. }
  824. $data['result'] = -1;
  825. return $data;
  826. }
  827. //上半场客队得分小
  828. if($odds_code == 'lq_half_score_guest_small'){
  829. $data['matchResult'] = "$guest_score(上半场客队得分)";
  830. if($guest_score < $condition)
  831. {
  832. return $data;
  833. }
  834. $data['result'] = -1;
  835. return $data;
  836. }
  837. }
  838. //第一节
  839. if(strstr($odds_code,"one")){
  840. //获取第一节最终数据
  841. $last_stage_data = $this->getStageData($result_match_r,'第一节');
  842. //获取主客队第一节得分
  843. $home_score = $last_stage_data->home_score;
  844. $guest_score = $last_stage_data->guest_score;
  845. //第一节主队得分大
  846. if($odds_code == 'lq_one_score_home_big'){
  847. $data['matchResult'] = "$home_score(第一节主队得分)";
  848. if($home_score > $condition)
  849. {
  850. return $data;
  851. }
  852. $data['result'] = -1;
  853. return $data;
  854. }
  855. //第一节主队得分小
  856. if($odds_code == 'lq_one_score_home_small'){
  857. $data['matchResult'] = "$home_score(第一节主队得分)";
  858. if($home_score < $condition)
  859. {
  860. return $data;
  861. }
  862. $data['result'] = -1;
  863. return $data;
  864. }
  865. //第一节客队得分大
  866. if($odds_code == 'lq_one_score_guest_big'){
  867. $data['matchResult'] = "$guest_score(第一节客队得分)";
  868. if($guest_score > $condition)
  869. {
  870. return $data;
  871. }
  872. $data['result'] = -1;
  873. return $data;
  874. }
  875. //第一节客队得分小
  876. if($odds_code == 'lq_one_score_guest_small'){
  877. $data['matchResult'] = "$guest_score(第一节客队得分)";
  878. if($guest_score < $condition)
  879. {
  880. return $data;
  881. }
  882. $data['result'] = -1;
  883. return $data;
  884. }
  885. }
  886. //第二节
  887. if(strstr($odds_code,"two")){
  888. //获取第二节最终数据
  889. $last_stage_data = $this->getStageData($result_match_r,'第二节');
  890. //获取主客队第二节得分
  891. $home_score = $last_stage_data->home_score;
  892. $guest_score = $last_stage_data->guest_score;
  893. //第二节主队得分大
  894. if($odds_code == 'lq_two_score_home_big'){
  895. $data['matchResult'] = "$home_score(第二节主队得分)";
  896. if($home_score > $condition)
  897. {
  898. return $data;
  899. }
  900. $data['result'] = -1;
  901. return $data;
  902. }
  903. //第二节主队得分小
  904. if($odds_code == 'lq_two_score_home_small'){
  905. $data['matchResult'] = "$home_score(第二节主队得分)";
  906. if($home_score < $condition)
  907. {
  908. return $data;
  909. }
  910. $data['result'] = -1;
  911. return $data;
  912. }
  913. //第二节客队得分大
  914. if($odds_code == 'lq_two_score_guest_big'){
  915. $data['matchResult'] = "$guest_score(第二节客队得分)";
  916. if($guest_score > $condition)
  917. {
  918. return $data;
  919. }
  920. $data['result'] = -1;
  921. return $data;
  922. }
  923. //第二节客队得分小
  924. if($odds_code == 'lq_two_score_guest_small'){
  925. $data['matchResult'] = "$guest_score(第二节客队得分)";
  926. if($guest_score < $condition)
  927. {
  928. return $data;
  929. }
  930. $data['result'] = -1;
  931. return $data;
  932. }
  933. }
  934. //第三节
  935. if(strstr($odds_code,"three")){
  936. //获取第三节最终数据
  937. $last_stage_data = $this->getStageData($result_match_r,'第三节');
  938. //获取主客队第三节得分
  939. $home_score = $last_stage_data->home_score;
  940. $guest_score = $last_stage_data->guest_score;
  941. //第三节主队得分大
  942. if($odds_code == 'lq_three_score_home_big'){
  943. $data['matchResult'] = "$home_score(第三节主队得分)";
  944. if($home_score > $condition)
  945. {
  946. return $data;
  947. }
  948. $data['result'] = -1;
  949. return $data;
  950. }
  951. //第三节主队得分小
  952. if($odds_code == 'lq_three_score_home_small'){
  953. $data['matchResult'] = "$home_score(第三节主队得分)";
  954. if($home_score < $condition)
  955. {
  956. return $data;
  957. }
  958. $data['result'] = -1;
  959. return $data;
  960. }
  961. //第三节客队得分大
  962. if($odds_code == 'lq_three_score_guest_big'){
  963. $data['matchResult'] = "$guest_score(第三节客队得分)";
  964. if($guest_score > $condition)
  965. {
  966. return $data;
  967. }
  968. $data['result'] = -1;
  969. return $data;
  970. }
  971. //第三节客队得分小
  972. if($odds_code == 'lq_three_score_guest_small'){
  973. $data['matchResult'] = "$guest_score(第三节客队得分)";
  974. if($guest_score < $condition)
  975. {
  976. return $data;
  977. }
  978. $data['result'] = -1;
  979. return $data;
  980. }
  981. }
  982. //第四节
  983. if(strstr($odds_code,"four")){
  984. //获取第四节最终数据
  985. $last_stage_data = $this->getStageData($result_match_r,'第四节');
  986. //获取主客队第四节得分
  987. $home_score = $last_stage_data->home_score;
  988. $guest_score = $last_stage_data->guest_score;
  989. //第四节主队得分大
  990. if($odds_code == 'lq_four_score_home_big'){
  991. $data['matchResult'] = "$home_score(第四节主队得分)";
  992. if($home_score > $condition)
  993. {
  994. return $data;
  995. }
  996. $data['result'] = -1;
  997. return $data;
  998. }
  999. //第四节主队得分小
  1000. if($odds_code == 'lq_four_score_home_small'){
  1001. $data['matchResult'] = "$home_score(第四节主队得分)";
  1002. if($home_score < $condition)
  1003. {
  1004. return $data;
  1005. }
  1006. $data['result'] = -1;
  1007. return $data;
  1008. }
  1009. //第四节客队得分大
  1010. if($odds_code == 'lq_four_score_guest_big'){
  1011. $data['matchResult'] = "$guest_score(第四节客队得分)";
  1012. if($guest_score > $condition)
  1013. {
  1014. return $data;
  1015. }
  1016. $data['result'] = -1;
  1017. return $data;
  1018. }
  1019. //第四节客队得分小
  1020. if($odds_code == 'lq_four_score_guest_small'){
  1021. $data['matchResult'] = "$guest_score(第四节客队得分)";
  1022. if($guest_score < $condition)
  1023. {
  1024. return $data;
  1025. }
  1026. $data['result'] = -1;
  1027. return $data;
  1028. }
  1029. }
  1030. return false;
  1031. }
  1032. /**
  1033. * @param $result_match_r 赛事结果记录
  1034. * @param $stage 查询阶段 上半场/第一节...
  1035. * @return mixed 返回各阶段最新一条结果数据
  1036. */
  1037. public function getStageData($result_match_r=[],$stage){
  1038. if(empty($result_match_r)) return false;
  1039. $half_data = [];
  1040. foreach ($result_match_r as $k=>$v){
  1041. //取出上半场数据
  1042. if($v->match_process == $stage){
  1043. $half_data[] = $v;
  1044. }
  1045. }
  1046. //根据id倒序排列
  1047. $half_data_sorc = array_column($half_data,'id');
  1048. array_multisort($half_data_sorc,SORT_DESC,$half_data);
  1049. //获取id最大的一条数据
  1050. foreach ($half_data as $k=>$v){
  1051. if($v->id == $half_data_sorc[0]){
  1052. $last_half_data = $v;
  1053. }
  1054. }
  1055. return $last_half_data;
  1056. }
  1057. //结果单/双 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球
  1058. public function lq_two_sides($model,$resultModel,$resultRecords){
  1059. $resulttod = intval($resultModel->home_score) + intval($resultModel->guest_score) + intval($resultModel->guest_rate) + intval($resultModel->home_rate);
  1060. if($resulttod%2==0){
  1061. $text = '双';
  1062. }else{
  1063. $text = '单';
  1064. }
  1065. if($text = $model->condition){
  1066. $data = [
  1067. 'result'=>1,
  1068. 'matchResult'=>"$resulttod(全场)",
  1069. ];
  1070. }else{
  1071. $data = [
  1072. 'result'=>-1,
  1073. 'matchResult'=>"$resulttod(全场)",
  1074. ];
  1075. }
  1076. return $data;
  1077. }
  1078. //最后进球球队 last_score 最后进球球队 model:money_buy_match resultModel:st_lq_result
  1079. public function lq_last_number($model,$resultModel,$resultRecords){
  1080. if($resultModel->last_score == $model->condition){
  1081. $data = [
  1082. 'result'=>1,
  1083. 'matchResult'=>"$resultModel->last_score(全场)",
  1084. ];
  1085. }else{
  1086. $data = [
  1087. 'result'=>-1,
  1088. 'matchResult'=>"$resultModel->last_score(全场)",
  1089. ];
  1090. }
  1091. return $data;
  1092. }
  1093. }