SetmealRepository.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wuzhenke
  5. * Date: 2018/11/16
  6. * Time: 15:13
  7. */
  8. namespace App\Repositories;
  9. use App\Models\Setmeal;
  10. use Prettus\Repository\Criteria\RequestCriteria;
  11. use Prettus\Repository\Eloquent\BaseRepository;
  12. class SetmealRepository extends BaseRepository
  13. {
  14. public function model()
  15. {
  16. return Setmeal::class;
  17. }
  18. public function boot()
  19. {
  20. $this->pushCriteria(app(RequestCriteria::class));
  21. }
  22. public function getSetmealList()
  23. {
  24. $where=[];
  25. if (isMobile()){ //移动段不显示不允许申请的
  26. $where['apply']=1;
  27. }
  28. $where['display']=1;
  29. return $this->model->where($where)->orderBy('show_order', 'desc')->get();
  30. }
  31. public function getOneSetmeal($id)
  32. {
  33. return $this->model->where(['id'=>$id])->first();
  34. }
  35. /**
  36. * 计算某一增值服务类型的最大折扣
  37. */
  38. public function getMaxDiscount($cat)
  39. {
  40. switch ($cat) {
  41. case 'download_resume':
  42. case 'sms':
  43. case 'stick':
  44. case 'emergency':
  45. case 'auto_refresh_jobs':
  46. case 'tpl':
  47. $field = 'discount_'.$cat;
  48. break;
  49. default:
  50. $field = 'discount_download_resume';
  51. break;
  52. }
  53. $return = $this->model->select($field)->where($field, '>', 0)->min($field);
  54. return $this->formatDiscount($return);
  55. }
  56. /**
  57. * 获取某一套餐array下的某一服务类型的折扣
  58. */
  59. public function getIncrementDiscountByArray($cat, $setmeal)
  60. {
  61. switch ($cat) {
  62. case 'download_resume':
  63. case 'sms':
  64. case 'stick':
  65. case 'emergency':
  66. case 'auto_refresh_jobs':
  67. case 'tpl':
  68. $field = 'discount_'.$cat;
  69. break;
  70. default:
  71. $field = 'discount_download_resume';
  72. break;
  73. }
  74. $return = $setmeal[$field];
  75. return $this->formatDiscount($return);
  76. }
  77. /**
  78. * 获取某一套餐的所有增值服务项目中的最低折扣
  79. */
  80. public function getDiscountForSetmealOne($setmeal)
  81. {
  82. if (is_object($setmeal)) {
  83. (array)$setmeal;
  84. }
  85. $arr[0] = $setmeal['discount_download_resume'];
  86. $arr[1] = $setmeal['discount_sms'];
  87. $arr[2] = $setmeal['discount_stick'];
  88. $arr[3] = $setmeal['discount_emergency'];
  89. $arr[4] = $setmeal['discount_tpl'];
  90. $arr[5] = $setmeal['discount_auto_refresh_jobs'];
  91. unset($arr[array_search(0, $arr)]);
  92. $pos = array_search(min($arr), $arr);
  93. $return = $arr[$pos];
  94. return $this->formatDiscount($return);
  95. }
  96. protected function formatDiscount($value)
  97. {
  98. $value_arr = explode(".", $value);
  99. if (count($value_arr) > 1) {
  100. if ($value_arr[1]==0) {
  101. return $value_arr[0];
  102. } else {
  103. return $value;
  104. }
  105. } else {
  106. return $value_arr[0];
  107. }
  108. }
  109. }