RandDiscount.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace app\utils;
  3. use app\models\Option;
  4. class RandDiscount
  5. {
  6. // 获取随机立减配置
  7. public static function getOption($store_id, $total_price)
  8. {
  9. $option = Option::get('rand_discount_option', $store_id, 'saas', json_encode([
  10. 'is_open' => false,
  11. 'start' => 0,
  12. 'end' => 0.01,
  13. ]))['value'];
  14. $option = \json_decode($option);
  15. if ($option->start >= $total_price) {
  16. return [
  17. 'is_open' => false,
  18. 'rand' => 0,
  19. ];
  20. }
  21. $end = $option->end;
  22. if ($end >= $total_price) {
  23. $end = $total_price - 0.01;
  24. }
  25. $rand = static::randomFloat($option->start, $end);
  26. return [
  27. 'is_open' => $option->is_open,
  28. 'rand' => $rand,
  29. ];
  30. }
  31. public static function randomFloat($min = 0, $max = 0.01)
  32. {
  33. $num = $min + \mt_rand() / \mt_getrandmax() * ($max - $min);
  34. return \sprintf("%.2f", $num);
  35. }
  36. }