BqRule.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  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. class BqRule
  10. {
  11. /**
  12. * 让球公共函数
  13. * @param mixed $model 注单表数据
  14. * @param mixed $difference 分差
  15. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  16. */
  17. public function concedeCommon($model, $difference){
  18. // 让球个数
  19. $condition = intval($model -> condition);
  20. // 差值
  21. $resultScore = $difference + $condition;
  22. if ($resultScore > 0) {
  23. $result = 1;
  24. } elseif ($resultScore < 0) {
  25. $result = -1;
  26. } else {
  27. $result = 2;
  28. }
  29. return $result;
  30. }
  31. /**
  32. * 大小公共函数
  33. * @param mixed $model 注单表数据
  34. * @param mixed $allGoal 总分
  35. * @param mixed $size 大小 1:大 -1:小
  36. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  37. */
  38. public function sizeCommon($model, $allGoal, $size){
  39. // 总球条件
  40. $condition = intval($model -> condition);
  41. // 差值
  42. if ($size == 1) {
  43. $resultScore = $allGoal - $condition;
  44. } else {
  45. $resultScore = $condition - $allGoal;
  46. }
  47. if ($resultScore > 0) {
  48. $result = 1;
  49. } elseif ($resultScore < 0) {
  50. $result = -1;
  51. } else {
  52. $result = 2;
  53. }
  54. return $result;
  55. }
  56. /**
  57. * 全场|主队|让球
  58. * @param mixed $model 注单表数据
  59. * @param mixed $resultModel 结果表数据
  60. * @param mixed $resultRecords 结果记录表数据
  61. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  62. */
  63. public function lq_concede_home($model, $resultModel, $resultRecords){
  64. // 主队得分
  65. $homeScore = intval($resultModel -> home_score);
  66. // 客队得分
  67. $guestScore = intval($resultModel -> guest_score);
  68. // 分差 - 主 :客
  69. $difference = $homeScore - $guestScore;
  70. return $this -> concedeCommon($model, $difference);
  71. }
  72. /**
  73. * 全场|客队|让球
  74. * @param mixed $model 注单表数据
  75. * @param mixed $resultModel 结果表数据
  76. * @param mixed $resultRecords 结果记录表数据
  77. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  78. */
  79. public function lq_concede_guest($model, $resultModel, $resultRecords){
  80. // 主队得分
  81. $homeScore = intval($resultModel -> home_score);
  82. // 客队得分
  83. $guestScore = intval($resultModel -> guest_score);
  84. // 分差 - 客 :主
  85. $difference = $guestScore - $homeScore;
  86. return $this -> concedeCommon($model, $difference);
  87. }
  88. /**
  89. * 上半场|主队|让球
  90. * @param mixed $model 注单表数据
  91. * @param mixed $resultModel 结果表数据
  92. * @param mixed $resultRecords 结果记录表数据
  93. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  94. */
  95. public function lq_half_concede_home($model, $resultModel, $resultRecords){
  96. $newResultRecords = array_reverse($resultRecords);
  97. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  98. // 主队得分
  99. $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
  100. // 客队得分
  101. $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
  102. // 分差 - 主 :客
  103. $difference = $homeScore - $guestScore;
  104. return $this -> concedeCommon($model, $difference);
  105. }
  106. /**
  107. * 上半场|客队|让球
  108. * @param mixed $model 注单表数据
  109. * @param mixed $resultModel 结果表数据
  110. * @param mixed $resultRecords 结果记录表数据
  111. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  112. */
  113. public function lq_half_concede_guest($model, $resultModel, $resultRecords){
  114. $newResultRecords = array_reverse($resultRecords);
  115. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  116. // 主队得分
  117. $homeScore = intval($newResultRecords[$upResultKey] -> home_score);
  118. // 客队得分
  119. $guestScore = intval($newResultRecords[$upResultKey] -> guest_score);
  120. // 分差 - 客 :主
  121. $difference = $guestScore - $homeScore;
  122. return $this -> concedeCommon($model, $difference);
  123. }
  124. /**
  125. * 第一节|主队|让球
  126. * @param mixed $model 注单表数据
  127. * @param mixed $resultModel 结果表数据
  128. * @param mixed $resultRecords 结果记录表数据
  129. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  130. */
  131. public function lq_one_concede_home($model, $resultModel, $resultRecords){
  132. $newResultRecords = array_reverse($resultRecords);
  133. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  134. // 主队得分
  135. $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
  136. // 客队得分
  137. $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
  138. // 分差 - 主 :客
  139. $difference = $homeScore - $guestScore;
  140. return $this -> concedeCommon($model, $difference);
  141. }
  142. /**
  143. * 第一节|客队|让球
  144. * @param mixed $model 注单表数据
  145. * @param mixed $resultModel 结果表数据
  146. * @param mixed $resultRecords 结果记录表数据
  147. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  148. */
  149. public function lq_one_concede_guest($model, $resultModel, $resultRecords){
  150. $newResultRecords = array_reverse($resultRecords);
  151. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  152. // 主队得分
  153. $homeScore = intval($newResultRecords[$oneResultKey] -> home_score);
  154. // 客队得分
  155. $guestScore = intval($newResultRecords[$oneResultKey] -> guest_score);
  156. // 分差 - 客 :主
  157. $difference = $guestScore - $homeScore;
  158. return $this -> concedeCommon($model, $difference);
  159. }
  160. /**
  161. * 第二节|主队|让球
  162. * @param mixed $model 注单表数据
  163. * @param mixed $resultModel 结果表数据
  164. * @param mixed $resultRecords 结果记录表数据
  165. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  166. */
  167. public function lq_two_concede_home($model, $resultModel, $resultRecords){
  168. $newResultRecords = array_reverse($resultRecords);
  169. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  170. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  171. // 主队得分
  172. $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
  173. // 客队得分
  174. $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  175. // 分差 - 主 :客
  176. $difference = $homeScore - $guestScore;
  177. return $this -> concedeCommon($model, $difference);
  178. }
  179. /**
  180. * 第二节|客队|让球
  181. * @param mixed $model 注单表数据
  182. * @param mixed $resultModel 结果表数据
  183. * @param mixed $resultRecords 结果记录表数据
  184. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  185. */
  186. public function lq_two_concede_guest($model, $resultModel, $resultRecords){
  187. $newResultRecords = array_reverse($resultRecords);
  188. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  189. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  190. // 主队得分
  191. $homeScore = intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> home_score);
  192. // 客队得分
  193. $guestScore = intval($newResultRecords[$twoResultKey] -> guest_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  194. // 分差 - 客 :主
  195. $difference = $guestScore - $homeScore;
  196. return $this -> concedeCommon($model, $difference);
  197. }
  198. /**
  199. * 第三节|主队|让球
  200. * @param mixed $model 注单表数据
  201. * @param mixed $resultModel 结果表数据
  202. * @param mixed $resultRecords 结果记录表数据
  203. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  204. */
  205. public function lq_three_concede_home($model, $resultModel, $resultRecords){
  206. $newResultRecords = array_reverse($resultRecords);
  207. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  208. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  209. // 主队得分
  210. $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
  211. // 客队得分
  212. $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  213. // 分差 - 主 :客
  214. $difference = $homeScore - $guestScore;
  215. return $this -> concedeCommon($model, $difference);
  216. }
  217. /**
  218. * 第三节|客队|让球
  219. * @param mixed $model 注单表数据
  220. * @param mixed $resultModel 结果表数据
  221. * @param mixed $resultRecords 结果记录表数据
  222. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  223. */
  224. public function lq_three_concede_guest($model, $resultModel, $resultRecords){
  225. $newResultRecords = array_reverse($resultRecords);
  226. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  227. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  228. // 主队得分
  229. $homeScore = intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> home_score);
  230. // 客队得分
  231. $guestScore = intval($newResultRecords[$threeResultKey] -> guest_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  232. // 分差 - 客 :主
  233. $difference = $guestScore - $homeScore;
  234. return $this -> concedeCommon($model, $difference);
  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 lq_four_concede_home($model, $resultModel, $resultRecords){
  244. $newResultRecords = array_reverse($resultRecords);
  245. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  246. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  247. // 主队得分
  248. $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
  249. // 客队得分
  250. $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  251. // 分差 - 主 :客
  252. $difference = $homeScore - $guestScore;
  253. return $this -> concedeCommon($model, $difference);
  254. }
  255. /**
  256. * 第四节|客队|让球
  257. * @param mixed $model 注单表数据
  258. * @param mixed $resultModel 结果表数据
  259. * @param mixed $resultRecords 结果记录表数据
  260. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  261. */
  262. public function lq_four_concede_guest($model, $resultModel, $resultRecords){
  263. $newResultRecords = array_reverse($resultRecords);
  264. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  265. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  266. // 主队得分
  267. $homeScore = intval($newResultRecords[$fourResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> home_score);
  268. // 客队得分
  269. $guestScore = intval($newResultRecords[$fourResultKey] -> guest_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  270. // 分差 - 客 :主
  271. $difference = $guestScore - $homeScore;
  272. return $this -> concedeCommon($model, $difference);
  273. }
  274. /**
  275. * 总进球|全场|大
  276. * @param mixed $model 注单表数据
  277. * @param mixed $resultModel 结果表数据
  278. * @param mixed $resultRecords 结果记录表数据
  279. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  280. */
  281. public function lq_total_sizes_big($model, $resultModel, $resultRecords){
  282. // 总进球数
  283. $allGoal = intval($resultModel -> home_score) + intval($resultModel -> guest_score);
  284. return $this -> sizeCommon($model, $allGoal, 1);
  285. }
  286. /**
  287. * 总进球|全场|小
  288. * @param mixed $model 注单表数据
  289. * @param mixed $resultModel 结果表数据
  290. * @param mixed $resultRecords 结果记录表数据
  291. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  292. */
  293. public function lq_total_sizes_small($model, $resultModel, $resultRecords){
  294. // 总进球数
  295. $allGoal = intval($resultModel -> home_score) + intval($resultModel -> guest_score);
  296. return $this -> sizeCommon($model, $allGoal, -1);
  297. }
  298. /**
  299. * 总进球|上半场|大
  300. * @param mixed $model 注单表数据
  301. * @param mixed $resultModel 结果表数据
  302. * @param mixed $resultRecords 结果记录表数据
  303. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  304. */
  305. public function lq_half_total_sizes_big($model, $resultModel, $resultRecords){
  306. $newResultRecords = array_reverse($resultRecords);
  307. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  308. // 总进球数
  309. $allGoal = intval($newResultRecords[$upResultKey] -> home_score) + intval($newResultRecords[$upResultKey] -> guest_score);
  310. return $this -> sizeCommon($model, $allGoal, 1);
  311. }
  312. /**
  313. * 总进球|上半场|小
  314. * @param mixed $model 注单表数据
  315. * @param mixed $resultModel 结果表数据
  316. * @param mixed $resultRecords 结果记录表数据
  317. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  318. */
  319. public function lq_half_total_sizes_small($model, $resultModel, $resultRecords){
  320. $newResultRecords = array_reverse($resultRecords);
  321. $upResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  322. // 总进球数
  323. $allGoal = intval($newResultRecords[$upResultKey] -> home_score) + intval($newResultRecords[$upResultKey] -> guest_score);
  324. return $this -> sizeCommon($model, $allGoal, -1);
  325. }
  326. /**
  327. * 总进球|第一节|大
  328. * @param mixed $model 注单表数据
  329. * @param mixed $resultModel 结果表数据
  330. * @param mixed $resultRecords 结果记录表数据
  331. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  332. */
  333. public function lq_one_total_sizes_big($model, $resultModel, $resultRecords){
  334. $newResultRecords = array_reverse($resultRecords);
  335. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  336. // 总进球数
  337. $allGoal = intval($newResultRecords[$oneResultKey] -> home_score) + intval($newResultRecords[$oneResultKey] -> guest_score);
  338. return $this -> sizeCommon($model, $allGoal, 1);
  339. }
  340. /**
  341. * 总进球|第一节|小
  342. * @param mixed $model 注单表数据
  343. * @param mixed $resultModel 结果表数据
  344. * @param mixed $resultRecords 结果记录表数据
  345. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  346. */
  347. public function lq_one_total_sizes_small($model, $resultModel, $resultRecords){
  348. $newResultRecords = array_reverse($resultRecords);
  349. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  350. // 总进球数
  351. $allGoal = intval($newResultRecords[$oneResultKey] -> home_score) + intval($newResultRecords[$oneResultKey] -> guest_score);
  352. return $this -> sizeCommon($model, $allGoal, -1);
  353. }
  354. /**
  355. * 总进球|第二节|大
  356. * @param mixed $model 注单表数据
  357. * @param mixed $resultModel 结果表数据
  358. * @param mixed $resultRecords 结果记录表数据
  359. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  360. */
  361. public function lq_two_total_sizes_big($model, $resultModel, $resultRecords){
  362. $newResultRecords = array_reverse($resultRecords);
  363. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  364. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  365. // 总进球数
  366. $allGoal = intval($newResultRecords[$twoResultKey] -> home_score) + intval($newResultRecords[$twoResultKey] -> guest_score)
  367. - intval($newResultRecords[$oneResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  368. return $this -> sizeCommon($model, $allGoal, 1);
  369. }
  370. /**
  371. * 总进球|第二节|小
  372. * @param mixed $model 注单表数据
  373. * @param mixed $resultModel 结果表数据
  374. * @param mixed $resultRecords 结果记录表数据
  375. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  376. */
  377. public function lq_two_total_sizes_small($model, $resultModel, $resultRecords){
  378. $newResultRecords = array_reverse($resultRecords);
  379. $oneResultKey = array_search('第一节', array_column($newResultRecords, 'match_process'));
  380. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  381. // 总进球数
  382. $allGoal = intval($newResultRecords[$twoResultKey] -> home_score) + intval($newResultRecords[$twoResultKey] -> guest_score)
  383. - intval($newResultRecords[$oneResultKey] -> home_score) - intval($newResultRecords[$oneResultKey] -> guest_score);
  384. return $this -> sizeCommon($model, $allGoal, -1);
  385. }
  386. /**
  387. * 总进球|第三节|大
  388. * @param mixed $model 注单表数据
  389. * @param mixed $resultModel 结果表数据
  390. * @param mixed $resultRecords 结果记录表数据
  391. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  392. */
  393. public function lq_three_total_sizes_big($model, $resultModel, $resultRecords){
  394. $newResultRecords = array_reverse($resultRecords);
  395. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  396. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  397. // 总进球数
  398. $allGoal = intval($newResultRecords[$threeResultKey] -> home_score) + intval($newResultRecords[$threeResultKey] -> guest_score)
  399. - intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  400. return $this -> sizeCommon($model, $allGoal, 1);
  401. }
  402. /**
  403. * 总进球|第三节|小
  404. * @param mixed $model 注单表数据
  405. * @param mixed $resultModel 结果表数据
  406. * @param mixed $resultRecords 结果记录表数据
  407. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  408. */
  409. public function lq_three_total_sizes_small($model, $resultModel, $resultRecords){
  410. $newResultRecords = array_reverse($resultRecords);
  411. $twoResultKey = array_search('第二节', array_column($newResultRecords, 'match_process'));
  412. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  413. // 总进球数
  414. $allGoal = intval($newResultRecords[$threeResultKey] -> home_score) + intval($newResultRecords[$threeResultKey] -> guest_score)
  415. - intval($newResultRecords[$twoResultKey] -> home_score) - intval($newResultRecords[$twoResultKey] -> guest_score);
  416. return $this -> sizeCommon($model, $allGoal, -1);
  417. }
  418. /**
  419. * 总进球|第四节|大
  420. * @param mixed $model 注单表数据
  421. * @param mixed $resultModel 结果表数据
  422. * @param mixed $resultRecords 结果记录表数据
  423. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  424. */
  425. public function lq_four_total_sizes_big($model, $resultModel, $resultRecords){
  426. $newResultRecords = array_reverse($resultRecords);
  427. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  428. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  429. // 总进球数
  430. $allGoal = intval($newResultRecords[$fourResultKey] -> home_score) + intval($newResultRecords[$fourResultKey] -> guest_score)
  431. - intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  432. return $this -> sizeCommon($model, $allGoal, 1);
  433. }
  434. /**
  435. * 总进球|第四节|小
  436. * @param mixed $model 注单表数据
  437. * @param mixed $resultModel 结果表数据
  438. * @param mixed $resultRecords 结果记录表数据
  439. * @return string 1:赢 -1:输 2:平 3:赢半平半 4:输半平半
  440. */
  441. public function lq_four_total_sizes_small($model, $resultModel, $resultRecords){
  442. $newResultRecords = array_reverse($resultRecords);
  443. $threeResultKey = array_search('第三节', array_column($newResultRecords, 'match_process'));
  444. $fourResultKey = array_search('第四节', array_column($newResultRecords, 'match_process'));
  445. // 总进球数
  446. $allGoal = intval($newResultRecords[$fourResultKey] -> home_score) + intval($newResultRecords[$fourResultKey] -> guest_score)
  447. - intval($newResultRecords[$threeResultKey] -> home_score) - intval($newResultRecords[$threeResultKey] -> guest_score);
  448. return $this -> sizeCommon($model, $allGoal, -1);
  449. }
  450. }