123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wuzhenke
- * Date: 2018/11/16
- * Time: 15:13
- */
- namespace App\Repositories;
- use App\Models\Setmeal;
- use Prettus\Repository\Criteria\RequestCriteria;
- use Prettus\Repository\Eloquent\BaseRepository;
- class SetmealRepository extends BaseRepository
- {
- public function model()
- {
- return Setmeal::class;
- }
- public function boot()
- {
- $this->pushCriteria(app(RequestCriteria::class));
- }
- public function getSetmealList()
- {
- $where=[];
- if (isMobile()){ //移动段不显示不允许申请的
- $where['apply']=1;
- }
- $where['display']=1;
- return $this->model->where($where)->orderBy('show_order', 'desc')->get();
- }
- public function getOneSetmeal($id)
- {
- return $this->model->where(['id'=>$id])->first();
- }
- /**
- * 计算某一增值服务类型的最大折扣
- */
- public function getMaxDiscount($cat)
- {
- switch ($cat) {
- case 'download_resume':
- case 'sms':
- case 'stick':
- case 'emergency':
- case 'auto_refresh_jobs':
- case 'tpl':
- $field = 'discount_'.$cat;
- break;
- default:
- $field = 'discount_download_resume';
- break;
- }
- $return = $this->model->select($field)->where($field, '>', 0)->min($field);
- return $this->formatDiscount($return);
- }
- /**
- * 获取某一套餐array下的某一服务类型的折扣
- */
- public function getIncrementDiscountByArray($cat, $setmeal)
- {
- switch ($cat) {
- case 'download_resume':
- case 'sms':
- case 'stick':
- case 'emergency':
- case 'auto_refresh_jobs':
- case 'tpl':
- $field = 'discount_'.$cat;
- break;
- default:
- $field = 'discount_download_resume';
- break;
- }
- $return = $setmeal[$field];
- return $this->formatDiscount($return);
- }
- /**
- * 获取某一套餐的所有增值服务项目中的最低折扣
- */
- public function getDiscountForSetmealOne($setmeal)
- {
- if (is_object($setmeal)) {
- (array)$setmeal;
- }
- $arr[0] = $setmeal['discount_download_resume'];
- $arr[1] = $setmeal['discount_sms'];
- $arr[2] = $setmeal['discount_stick'];
- $arr[3] = $setmeal['discount_emergency'];
- $arr[4] = $setmeal['discount_tpl'];
- $arr[5] = $setmeal['discount_auto_refresh_jobs'];
- unset($arr[array_search(0, $arr)]);
- $pos = array_search(min($arr), $arr);
- $return = $arr[$pos];
- return $this->formatDiscount($return);
- }
- protected function formatDiscount($value)
- {
- $value_arr = explode(".", $value);
- if (count($value_arr) > 1) {
- if ($value_arr[1]==0) {
- return $value_arr[0];
- } else {
- return $value;
- }
- } else {
- return $value_arr[0];
- }
- }
- }
|