LqRule.php 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803
  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 lq_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. return $this -> concedeCommon($model, $difference);
  72. }
  73. /**
  74. * 全场|客队|让球
  75. * @param mixed $model 注单表数据
  76. * @param mixed $resultModel 结果表数据
  77. * @param mixed $resultRecords 结果记录表数据
  78. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  79. */
  80. public function lq_concede_guest($model, $resultModel, $resultRecords){
  81. // 主队得分
  82. $homeScore = intval($resultModel -> home_score);
  83. // 客队得分
  84. $guestScore = intval($resultModel -> guest_score);
  85. // 分差 - 客 :主
  86. $difference = $guestScore - $homeScore;
  87. return $this -> concedeCommon($model, $difference);
  88. }
  89. /**
  90. * 上半场|主队|让球
  91. * @param mixed $model 注单表数据
  92. * @param mixed $resultModel 结果表数据
  93. * @param mixed $resultRecords 结果记录表数据
  94. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  95. */
  96. public function lq_half_concede_home($model, $resultModel, $resultRecords){
  97. $newResultRecords = array_reverse($resultRecords);
  98. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  99. // 主队得分
  100. $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
  101. // 客队得分
  102. $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
  103. // 分差 - 主 :客
  104. $difference = $homeScore - $guestScore;
  105. return $this -> concedeCommon($model, $difference);
  106. }
  107. /**
  108. * 上半场|客队|让球
  109. * @param mixed $model 注单表数据
  110. * @param mixed $resultModel 结果表数据
  111. * @param mixed $resultRecords 结果记录表数据
  112. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  113. */
  114. public function lq_half_concede_guest($model, $resultModel, $resultRecords){
  115. $newResultRecords = array_reverse($resultRecords);
  116. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  117. // 主队得分
  118. $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
  119. // 客队得分
  120. $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
  121. // 分差 - 客 :主
  122. $difference = $guestScore - $homeScore;
  123. return $this -> concedeCommon($model, $difference);
  124. }
  125. /**
  126. * 第一节|主队|让球
  127. * @param mixed $model 注单表数据
  128. * @param mixed $resultModel 结果表数据
  129. * @param mixed $resultRecords 结果记录表数据
  130. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  131. */
  132. public function lq_one_concede_home($model, $resultModel, $resultRecords){
  133. $newResultRecords = array_reverse($resultRecords);
  134. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  135. // 主队得分
  136. $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
  137. // 客队得分
  138. $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
  139. // 分差 - 主 :客
  140. $difference = $homeScore - $guestScore;
  141. return $this -> concedeCommon($model, $difference);
  142. }
  143. /**
  144. * 第一节|客队|让球
  145. * @param mixed $model 注单表数据
  146. * @param mixed $resultModel 结果表数据
  147. * @param mixed $resultRecords 结果记录表数据
  148. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  149. */
  150. public function lq_one_concede_guest($model, $resultModel, $resultRecords){
  151. $newResultRecords = array_reverse($resultRecords);
  152. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  153. // 主队得分
  154. $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
  155. // 客队得分
  156. $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
  157. // 分差 - 客 :主
  158. $difference = $guestScore - $homeScore;
  159. return $this -> concedeCommon($model, $difference);
  160. }
  161. /**
  162. * 第二节|主队|让球
  163. * @param mixed $model 注单表数据
  164. * @param mixed $resultModel 结果表数据
  165. * @param mixed $resultRecords 结果记录表数据
  166. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  167. */
  168. public function lq_two_concede_home($model, $resultModel, $resultRecords){
  169. $newResultRecords = array_reverse($resultRecords);
  170. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  171. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  172. // 主队得分
  173. $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
  174. // 客队得分
  175. $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  176. // 分差 - 主 :客
  177. $difference = $homeScore - $guestScore;
  178. return $this -> concedeCommon($model, $difference);
  179. }
  180. /**
  181. * 第二节|客队|让球
  182. * @param mixed $model 注单表数据
  183. * @param mixed $resultModel 结果表数据
  184. * @param mixed $resultRecords 结果记录表数据
  185. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  186. */
  187. public function lq_two_concede_guest($model, $resultModel, $resultRecords){
  188. $newResultRecords = array_reverse($resultRecords);
  189. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  190. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  191. // 主队得分
  192. $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
  193. // 客队得分
  194. $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  195. // 分差 - 客 :主
  196. $difference = $guestScore - $homeScore;
  197. return $this -> concedeCommon($model, $difference);
  198. }
  199. /**
  200. * 第三节|主队|让球
  201. * @param mixed $model 注单表数据
  202. * @param mixed $resultModel 结果表数据
  203. * @param mixed $resultRecords 结果记录表数据
  204. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  205. */
  206. public function lq_three_concede_home($model, $resultModel, $resultRecords){
  207. $newResultRecords = array_reverse($resultRecords);
  208. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  209. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  210. // 主队得分
  211. $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
  212. // 客队得分
  213. $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  214. // 分差 - 主 :客
  215. $difference = $homeScore - $guestScore;
  216. return $this -> concedeCommon($model, $difference);
  217. }
  218. /**
  219. * 第三节|客队|让球
  220. * @param mixed $model 注单表数据
  221. * @param mixed $resultModel 结果表数据
  222. * @param mixed $resultRecords 结果记录表数据
  223. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  224. */
  225. public function lq_three_concede_guest($model, $resultModel, $resultRecords){
  226. $newResultRecords = array_reverse($resultRecords);
  227. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  228. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  229. // 主队得分
  230. $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
  231. // 客队得分
  232. $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  233. // 分差 - 客 :主
  234. $difference = $guestScore - $homeScore;
  235. return $this -> concedeCommon($model, $difference);
  236. }
  237. /**
  238. * 第四节|主队|让球
  239. * @param mixed $model 注单表数据
  240. * @param mixed $resultModel 结果表数据
  241. * @param mixed $resultRecords 结果记录表数据
  242. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  243. */
  244. public function lq_four_concede_home($model, $resultModel, $resultRecords){
  245. $newResultRecords = array_reverse($resultRecords);
  246. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  247. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  248. // 主队得分
  249. $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
  250. // 客队得分
  251. $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  252. // 分差 - 主 :客
  253. $difference = $homeScore - $guestScore;
  254. return $this -> concedeCommon($model, $difference);
  255. }
  256. /**
  257. * 第四节|客队|让球
  258. * @param mixed $model 注单表数据
  259. * @param mixed $resultModel 结果表数据
  260. * @param mixed $resultRecords 结果记录表数据
  261. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  262. */
  263. public function lq_four_concede_guest($model, $resultModel, $resultRecords){
  264. $newResultRecords = array_reverse($resultRecords);
  265. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  266. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  267. // 主队得分
  268. $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
  269. // 客队得分
  270. $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  271. // 分差 - 客 :主
  272. $difference = $guestScore - $homeScore;
  273. return $this -> concedeCommon($model, $difference);
  274. }
  275. /**
  276. * 总进球|全场|大
  277. * @param mixed $model 注单表数据
  278. * @param mixed $resultModel 结果表数据
  279. * @param mixed $resultRecords 结果记录表数据
  280. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  281. */
  282. public function lq_total_sizes_big($model, $resultModel, $resultRecords){
  283. // 总进球数
  284. $allGoal = intval($resultModel -> home_score) + intval($resultModel -> guest_score);
  285. return $this -> sizeCommon($model, $allGoal, 1);
  286. }
  287. /**
  288. * 总进球|全场|小
  289. * @param mixed $model 注单表数据
  290. * @param mixed $resultModel 结果表数据
  291. * @param mixed $resultRecords 结果记录表数据
  292. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  293. */
  294. public function lq_total_sizes_small($model, $resultModel, $resultRecords){
  295. // 总进球数
  296. $allGoal = intval($resultModel -> home_score) + intval($resultModel -> guest_score);
  297. return $this -> sizeCommon($model, $allGoal, -1);
  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 lq_half_total_sizes_big($model, $resultModel, $resultRecords){
  307. $newResultRecords = array_reverse($resultRecords);
  308. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  309. // 总进球数
  310. $allGoal = intval($newResultRecords[$upResultKey] -> home_score) + intval($newResultRecords[$upResultKey] -> guest_score);
  311. return $this -> sizeCommon($model, $allGoal, 1);
  312. }
  313. /**
  314. * 总进球|上半场|小
  315. * @param mixed $model 注单表数据
  316. * @param mixed $resultModel 结果表数据
  317. * @param mixed $resultRecords 结果记录表数据
  318. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  319. */
  320. public function lq_half_total_sizes_small($model, $resultModel, $resultRecords){
  321. $newResultRecords = array_reverse($resultRecords);
  322. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  323. // 总进球数
  324. $allGoal = intval($newResultRecords[$upResultKey] -> home_score) + intval($newResultRecords[$upResultKey] -> guest_score);
  325. return $this -> sizeCommon($model, $allGoal, -1);
  326. }
  327. /**
  328. * 总进球|第一节|大
  329. * @param mixed $model 注单表数据
  330. * @param mixed $resultModel 结果表数据
  331. * @param mixed $resultRecords 结果记录表数据
  332. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  333. */
  334. public function lq_one_total_sizes_big($model, $resultModel, $resultRecords){
  335. $newResultRecords = array_reverse($resultRecords);
  336. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  337. // 总进球数
  338. $allGoal = intval($newResultRecords[$oneResultKey] -> home_score) + intval($newResultRecords[$oneResultKey] -> guest_score);
  339. return $this -> sizeCommon($model, $allGoal, 1);
  340. }
  341. /**
  342. * 总进球|第一节|小
  343. * @param mixed $model 注单表数据
  344. * @param mixed $resultModel 结果表数据
  345. * @param mixed $resultRecords 结果记录表数据
  346. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  347. */
  348. public function lq_one_total_sizes_small($model, $resultModel, $resultRecords){
  349. $newResultRecords = array_reverse($resultRecords);
  350. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  351. // 总进球数
  352. $allGoal = intval($newResultRecords[$oneResultKey] -> home_score) + intval($newResultRecords[$oneResultKey] -> guest_score);
  353. return $this -> sizeCommon($model, $allGoal, -1);
  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 lq_two_total_sizes_big($model, $resultModel, $resultRecords){
  363. $newResultRecords = array_reverse($resultRecords);
  364. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  365. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  366. // 总进球数
  367. $allGoal = intval($newResultRecords[$twoResultKey] -> home_score) + intval($newResultRecords[$twoResultKey] -> guest_score)
  368. - intval($newResultRecords[$oneResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  369. return $this -> sizeCommon($model, $allGoal, 1);
  370. }
  371. /**
  372. * 总进球|第二节|小
  373. * @param mixed $model 注单表数据
  374. * @param mixed $resultModel 结果表数据
  375. * @param mixed $resultRecords 结果记录表数据
  376. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  377. */
  378. public function lq_two_total_sizes_small($model, $resultModel, $resultRecords){
  379. $newResultRecords = array_reverse($resultRecords);
  380. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  381. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  382. // 总进球数
  383. $allGoal = intval($newResultRecords[$twoResultKey] -> home_score) + intval($newResultRecords[$twoResultKey] -> guest_score)
  384. - intval($newResultRecords[$oneResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  385. return $this -> sizeCommon($model, $allGoal, -1);
  386. }
  387. /**
  388. * 总进球|第三节|大
  389. * @param mixed $model 注单表数据
  390. * @param mixed $resultModel 结果表数据
  391. * @param mixed $resultRecords 结果记录表数据
  392. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  393. */
  394. public function lq_three_total_sizes_big($model, $resultModel, $resultRecords){
  395. $newResultRecords = array_reverse($resultRecords);
  396. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  397. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  398. // 总进球数
  399. $allGoal = intval($newResultRecords[$threeResultKey] -> home_score) + intval($newResultRecords[$threeResultKey] -> guest_score)
  400. - intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  401. return $this -> sizeCommon($model, $allGoal, 1);
  402. }
  403. /**
  404. * 总进球|第三节|小
  405. * @param mixed $model 注单表数据
  406. * @param mixed $resultModel 结果表数据
  407. * @param mixed $resultRecords 结果记录表数据
  408. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  409. */
  410. public function lq_three_total_sizes_small($model, $resultModel, $resultRecords){
  411. $newResultRecords = array_reverse($resultRecords);
  412. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  413. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  414. // 总进球数
  415. $allGoal = intval($newResultRecords[$threeResultKey] -> home_score) + intval($newResultRecords[$threeResultKey] -> guest_score)
  416. - intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  417. return $this -> sizeCommon($model, $allGoal, -1);
  418. }
  419. /**
  420. * 总进球|第四节|大
  421. * @param mixed $model 注单表数据
  422. * @param mixed $resultModel 结果表数据
  423. * @param mixed $resultRecords 结果记录表数据
  424. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  425. */
  426. public function lq_four_total_sizes_big($model, $resultModel, $resultRecords){
  427. $newResultRecords = array_reverse($resultRecords);
  428. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  429. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  430. // 总进球数
  431. $allGoal = intval($newResultRecords[$fourResultKey] -> home_score) + intval($newResultRecords[$fourResultKey] -> guest_score)
  432. - intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  433. return $this -> sizeCommon($model, $allGoal, 1);
  434. }
  435. /**
  436. * 总进球|第四节|小
  437. * @param mixed $model 注单表数据
  438. * @param mixed $resultModel 结果表数据
  439. * @param mixed $resultRecords 结果记录表数据
  440. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  441. */
  442. public function lq_four_total_sizes_small($model, $resultModel, $resultRecords){
  443. $newResultRecords = array_reverse($resultRecords);
  444. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  445. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  446. // 总进球数
  447. $allGoal = intval($newResultRecords[$fourResultKey] -> home_score) + intval($newResultRecords[$fourResultKey] -> guest_score)
  448. - intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  449. return $this -> sizeCommon($model, $allGoal, -1);
  450. }
  451. /**
  452. * 篮球 独赢规则
  453. */
  454. public function lq_capot($bet_match,$result_match,$result_match_r){
  455. if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
  456. // 篮球 独赢
  457. if($bet_match->p_code != 'lq_capot') return false;
  458. //获取主客队全场得分
  459. $home_score = $result_match->home_score;
  460. $guest_score = $result_match->guest_score;
  461. //主队
  462. if($bet_match->odds_code == 'lq_capot_home'){
  463. if($home_score > $guest_score) return 1;
  464. }
  465. //客队
  466. if($bet_match->odds_code == 'lq_capot_guest'){
  467. if($home_score < $guest_score) return 1;
  468. }
  469. //上半场
  470. if(strstr($bet_match->odds_code,"half")){
  471. //获取上半场最终数据
  472. $last_stage_data = $this->getStageData($result_match_r,'上半场');
  473. //获取主客队上半场得分
  474. $home_score = $last_stage_data->home_score;
  475. $guest_score = $last_stage_data->guest_score;
  476. //主队 上半场
  477. if($bet_match->odds_code == 'lq_half_capot_home'){
  478. if($home_score > $guest_score) return 1;
  479. }
  480. //客队 上半场
  481. if($bet_match->odds_code == 'lq_half_capot_guest'){
  482. if($home_score < $guest_score) return 1;
  483. }
  484. }
  485. //第一节
  486. if(strstr($bet_match->odds_code,"one")){
  487. //获取第一节最终数据
  488. $last_stage_data = $this->getStageData($result_match_r,'第一节');
  489. //获取主客队第一节得分
  490. $home_score = $last_stage_data->home_score;
  491. $guest_score = $last_stage_data->guest_score;
  492. //主队 第一节
  493. if($bet_match->odds_code == 'lq_one_capot_home'){
  494. if($home_score > $guest_score) return 1;
  495. }
  496. //客队 第一节
  497. if($bet_match->odds_code == 'lq_one_capot_guest'){
  498. if($home_score < $guest_score) return 1;
  499. }
  500. }
  501. //第二节
  502. if(strstr($bet_match->odds_code,"two")){
  503. //获取第二节最终数据
  504. $last_stage_data = $this->getStageData($result_match_r,'第二节');
  505. //获取主客队第二节得分
  506. $home_score = $last_stage_data->home_score;
  507. $guest_score = $last_stage_data->guest_score;
  508. //主队 第二节
  509. if($bet_match->odds_code == 'lq_two_capot_home'){
  510. if($home_score > $guest_score) return 1;
  511. }
  512. //客队 第二节
  513. if($bet_match->odds_code == 'lq_two_capot_guest'){
  514. if($home_score < $guest_score) return 1;
  515. }
  516. }
  517. //第三节
  518. if(strstr($bet_match->odds_code,"three")){
  519. //获取第三节最终数据
  520. $last_stage_data = $this->getStageData($result_match_r,'第三节');
  521. //获取主客队第三节得分
  522. $home_score = $last_stage_data->home_score;
  523. $guest_score = $last_stage_data->guest_score;
  524. //主队 第三节
  525. if($bet_match->odds_code == 'lq_three_capot_home'){
  526. if($home_score > $guest_score) return 1;
  527. }
  528. //客队 第三节
  529. if($bet_match->odds_code == 'lq_three_capot_guest'){
  530. if($home_score < $guest_score) return 1;
  531. }
  532. }
  533. //第四节
  534. if(strstr($bet_match->odds_code,"four")){
  535. //获取第四节最终数据
  536. $last_stage_data = $this->getStageData($result_match_r,'第四节');
  537. //获取主客队第四节得分
  538. $home_score = $last_stage_data->home_score;
  539. $guest_score = $last_stage_data->guest_score;
  540. //主队 第四节
  541. if($bet_match->odds_code == 'lq_four_capot_home'){
  542. if($home_score > $guest_score) return 1;
  543. }
  544. //客队 第四节
  545. if($bet_match->odds_code == 'lq_four_capot_guest'){
  546. if($home_score < $guest_score) return 1;
  547. }
  548. }
  549. return -1;
  550. }
  551. /**
  552. * 篮球 球队得分大小
  553. */
  554. public function lq_team_score($bet_match,$result_match,$result_match_r){
  555. if(empty($bet_match) || empty($result_match) || empty($result_match_r)) return false;
  556. // 篮球 球队得分大小
  557. if($bet_match->p_code != 'lq_team_score') return false;
  558. //获取主客队全场得分
  559. $home_score = $result_match->home_score;
  560. $guest_score = $result_match->guest_score;
  561. //界定 分数 条件
  562. $condition = $bet_match->condition;
  563. //赔率代码
  564. $odds_code = $bet_match->odds_code;
  565. //全场 主队 得分大
  566. if($odds_code == 'lq_score_home_big'){
  567. if($home_score > $condition) return 1;
  568. }
  569. //全场 主队 得分小
  570. if($odds_code == 'lq_score_home_small'){
  571. if($home_score < $condition) return 1;
  572. }
  573. //全场 客队 得分大
  574. if($odds_code == 'lq_score_guest_big'){
  575. if($guest_score > $condition) return 1;
  576. }
  577. //全场 主队 得分小
  578. if($odds_code == 'lq_score_guest_small'){
  579. if($guest_score < $condition) return 1;
  580. }
  581. //上半场
  582. if(strstr($odds_code,"half")){
  583. //获取上半场最终数据
  584. $last_stage_data = $this->getStageData($result_match_r,'上半场');
  585. //获取主客队上半场得分
  586. $home_score = $last_stage_data->home_score;
  587. $guest_score = $last_stage_data->guest_score;
  588. //上半场主队得分大
  589. if($odds_code == 'lq_half_score_home_big'){
  590. if($home_score > $condition) return 1;
  591. }
  592. //上半场主队得分小
  593. if($odds_code == 'lq_half_score_home_small'){
  594. if($home_score < $condition) return 1;
  595. }
  596. //上半场客队得分大
  597. if($odds_code == 'lq_half_score_guest_big'){
  598. if($guest_score > $condition) return 1;
  599. }
  600. //上半场客队得分小
  601. if($odds_code == 'lq_half_score_guest_small'){
  602. if($guest_score < $condition) return 1;
  603. }
  604. }
  605. //第一节
  606. if(strstr($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. if($odds_code == 'lq_one_score_home_big'){
  614. if($home_score > $condition) return 1;
  615. }
  616. //第一节主队得分小
  617. if($odds_code == 'lq_one_score_home_small'){
  618. if($home_score < $condition) return 1;
  619. }
  620. //第一节客队得分大
  621. if($odds_code == 'lq_one_score_guest_big'){
  622. if($guest_score > $condition) return 1;
  623. }
  624. //第一节客队得分小
  625. if($odds_code == 'lq_one_score_guest_small'){
  626. if($guest_score < $condition) return 1;
  627. }
  628. }
  629. //第二节
  630. if(strstr($odds_code,"two")){
  631. //获取第二节最终数据
  632. $last_stage_data = $this->getStageData($result_match_r,'第二节');
  633. //获取主客队第二节得分
  634. $home_score = $last_stage_data->home_score;
  635. $guest_score = $last_stage_data->guest_score;
  636. //第二节主队得分大
  637. if($odds_code == 'lq_two_score_home_big'){
  638. if($home_score > $condition) return 1;
  639. }
  640. //第二节主队得分小
  641. if($odds_code == 'lq_two_score_home_small'){
  642. if($home_score < $condition) return 1;
  643. }
  644. //第二节客队得分大
  645. if($odds_code == 'lq_two_score_guest_big'){
  646. if($guest_score > $condition) return 1;
  647. }
  648. //第二节客队得分小
  649. if($odds_code == 'lq_two_score_guest_small'){
  650. if($guest_score < $condition) return 1;
  651. }
  652. }
  653. //第三节
  654. if(strstr($odds_code,"three")){
  655. //获取第三节最终数据
  656. $last_stage_data = $this->getStageData($result_match_r,'第三节');
  657. //获取主客队第三节得分
  658. $home_score = $last_stage_data->home_score;
  659. $guest_score = $last_stage_data->guest_score;
  660. //第三节主队得分大
  661. if($odds_code == 'lq_three_score_home_big'){
  662. if($home_score > $condition) return 1;
  663. }
  664. //第三节主队得分小
  665. if($odds_code == 'lq_three_score_home_small'){
  666. if($home_score < $condition) return 1;
  667. }
  668. //第三节客队得分大
  669. if($odds_code == 'lq_three_score_guest_big'){
  670. if($guest_score > $condition) return 1;
  671. }
  672. //第三节客队得分小
  673. if($odds_code == 'lq_three_score_guest_small'){
  674. if($guest_score < $condition) return 1;
  675. }
  676. }
  677. //第四节
  678. if(strstr($odds_code,"four")){
  679. //获取第四节最终数据
  680. $last_stage_data = $this->getStageData($result_match_r,'第四节');
  681. //获取主客队第四节得分
  682. $home_score = $last_stage_data->home_score;
  683. $guest_score = $last_stage_data->guest_score;
  684. //第四节主队得分大
  685. if($odds_code == 'lq_four_score_home_big'){
  686. if($home_score > $condition) return 1;
  687. }
  688. //第四节主队得分小
  689. if($odds_code == 'lq_four_score_home_small'){
  690. if($home_score < $condition) return 1;
  691. }
  692. //第四节客队得分大
  693. if($odds_code == 'lq_four_score_guest_big'){
  694. if($guest_score > $condition) return 1;
  695. }
  696. //第四节客队得分小
  697. if($odds_code == 'lq_four_score_guest_small'){
  698. if($guest_score < $condition) return 1;
  699. }
  700. }
  701. return -1;
  702. }
  703. /**
  704. * @param $result_match_r 赛事结果记录
  705. * @param $stage 查询阶段 上半场/第一节...
  706. * @return mixed 返回各阶段最新一条结果数据
  707. */
  708. public function getStageData($result_match_r=[],$stage){
  709. if(empty($result_match_r)) return false;
  710. $half_data = [];
  711. foreach ($result_match_r as $k=>$v){
  712. //取出上半场数据
  713. if($v->match_process == $stage){
  714. $half_data[] = $v;
  715. }
  716. }
  717. //根据id倒序排列
  718. $half_data_sorc = array_column($half_data,'id');
  719. array_multisort($half_data_sorc,SORT_DESC,$half_data);
  720. //获取id最大的一条数据
  721. foreach ($half_data as $k=>$v){
  722. if($v->id == $half_data_sorc[0]){
  723. $last_half_data = $v;
  724. }
  725. }
  726. return $last_half_data;
  727. }
  728. //结果单/双 home_score 主队进球数 guest_score 客队进球数 home_rate 主队让球 guest_rate 客队让球
  729. public function lq_two_sides($model,$resultModel,$resultRecords){
  730. $resulttod = intval($resultModel->home_score) + intval($resultModel->guest_score) + intval($resultModel->guest_rate) + intval($resultModel->home_rate);
  731. if($resulttod%2==0){
  732. $data = '双';
  733. }else{
  734. $data = '单';
  735. }
  736. if($data = $model->condition){
  737. return 1;
  738. }else{
  739. return -1;
  740. }
  741. }
  742. //最后进球球队 last_score 最后进球球队 model:money_buy_match resultModel:st_lq_result
  743. public function lq_last_number($model,$resultModel,$resultRecords){
  744. if($resultModel->last_score == $model->condition){
  745. return 1;
  746. }else{
  747. return -1;
  748. }
  749. }
  750. }