| 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];        }    }}
 |