Prediction.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Models;
  3. class Prediction extends BaseModel
  4. {
  5. protected $table = 'prediction';
  6. protected $fillable = ['issue_no', 'size', 'odd_or_even', 'is_valid', 'winning_numbers'];
  7. const SIZE_BIG = 1;//预测大小:大
  8. const SIZE_SMALL = 0;//预测大小:小
  9. const ODD = 0;//预测单双:单
  10. const EVEN = 1;//预测单双:双
  11. const VALID_CORRECT = 1;//预测结果:正确
  12. const VALID_ERROR = 0;//预测结果:错误
  13. //预测
  14. static function prediction($issueNo): Prediction
  15. {
  16. $size = mt_rand(Prediction::SIZE_SMALL, Prediction::SIZE_BIG);
  17. $oddOrEven = mt_rand(Prediction::ODD, Prediction::EVEN);
  18. return static::create([
  19. 'issue_no' => $issueNo,
  20. 'size' => $size,
  21. 'odd_or_even' => $oddOrEven
  22. ]);
  23. }
  24. //预测结果
  25. static function result($issueNo, $size, $oddOrEven, $winningNumbers): void
  26. {
  27. $data = static::where('issue_no', $issueNo)->first();
  28. if (!$data) $data = static::prediction($issueNo);
  29. $size = $size == '大' ? Prediction::SIZE_BIG : Prediction::SIZE_SMALL;
  30. $oddOrEven = $oddOrEven == '双' ? Prediction::EVEN : Prediction::ODD;
  31. $data->is_valid = Prediction::VALID_ERROR;
  32. if ($data->size == $size || $data->odd_or_even == $oddOrEven) {
  33. $data->is_valid = Prediction::VALID_CORRECT;
  34. }
  35. $data->winning_numbers = $winningNumbers;
  36. $data->save();
  37. }
  38. function getWinningNumbersAttribute($value)
  39. {
  40. if (!empty($value)) {
  41. $value = explode(',', $value);
  42. $value = array_map('intval', $value);
  43. $value[] = array_sum($value);
  44. return $value;
  45. }
  46. return [];
  47. }
  48. }