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