Guide_ruleRepository.php 4.29 KB
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/2/5
 * Time: 17:01
 */

namespace App\Repositories\Backend\Guide_rule;


use App\Events\Backend\Explain_info\Explain_infoCreated;
use App\Modules\Models\Explain_info\Explain_info;
use App\Modules\Models\GuideRule\GuideRule;
use App\Modules\Repositories\Guide_rule\BaseGuide_ruleRepository;
use App\Exceptions\GeneralException;
use Illuminate\Support\Facades\DB;
use YueCode\Cos\QCloudCos;

class Guide_ruleRepository    extends BaseGuide_ruleRepository
{
    public function getForDataTable()
    {
        return $this->query()->get();
    }


    public  function create($input)
    {



        $key =array_keys($input['data']);
        $res=in_array('guide_img',$key);
        if($res){
            $backet="guide_img";
        } else{
            throw new GeneralException(trans('exceptions.backend.explain_info.backet_error'));
            die();
        }
        $data=$this->imgup($backet);

        $info = $input['data'];
        $info['guide_img'] =$data['path'];
        $guide_rule = $this->createUserStub($info);
        DB::transaction(function () use ($guide_rule, $info) {
            if ($guide_rule->save()) {

                //event(new Explain_infoCreated($guide_rule));

                return true;
            }

            throw new GeneralException(trans('exceptions.backend.guide_rule.create_error1'));
        });

    }

    protected function createUserStub($info)
    {
        $guide_rule = self::MODEL;
        $guide_rule = new $guide_rule;
        $guide_rule->spot_id = $info['spot_id'];
        $guide_rule->description = $info['description'];
        $guide_rule->guide_fee = $info['guide_fee'];
        $guide_rule->level = $info['level'];
        $guide_rule->guide_img = $info['guide_img'];
        $guide_rule->title = $info['title'];
        return $guide_rule;
    }


//    public function add_img()
//    {
//
//
//        $allow_file_type =['jpg','png','gif','jpeg'];
//        if(!$_FILES||!$_FILES['guide_img']){
//            throw new GeneralException(trans('exceptions.backend.explain_info.upload_error'));  //请选上传文件
//        }
//        $file_name = $_FILES['guide_img']['name'];
//        $tmp_file_extend =  explode('.',$file_name);
//        if(!in_array(strtolower(end($tmp_file_extend)),$allow_file_type)) {
//            throw new GeneralException(trans('exceptions.backend.explain_info.type_error'));     // '请选择指定上传的图片类型'
//        }
//
//        if($_FILES['guide_img']['size']>1502480)
//        {
//            throw new GeneralException(trans('exceptions.backend.explain_info.size_error'));// '请选择指定上传的大小'
//        }
//        //上传cdn
//        $num =md5(uniqid());
//        $path ="/img/".$num.".png";
//        $dd=QCloudCos::upload('dev',$_FILES['guide_img']['tmp_name'],$path);
//        if($dd){
//            $info =json_decode($dd,true);
//            $info['path'] =$path;
//            $info['size'] =$_FILES['guide_img']['size'];
//            return $info ;
//        } else{
//            return  false;
//        }
//
//    }


    public function getinfo()
    {
        return   $this->query()->select('guide_rule.id','guide_rule.spot_id','guide_rule.guide_fee','guide_rule.description','guide_rule.level','guide_rule.guide_img','spot.spotname')->leftjoin('spot','guide_rule.spot_id','=','spot.id')->get();
    }


    public function change(GuideRule $guide_rule,$input)
    {


        $key =array_keys($input);
        $res=in_array('guide_img',$key);
        if($res){
            $backet="guide_img";
        } else{
            throw new GeneralException(trans('exceptions.backend.explain_info.backet_error'));
            die();
        }

        $data=$this->imgup($backet);
        $input['guide_img'] =$data['path'];
        $guide_rule->guide_fee = $input['guide_fee'];
        $guide_rule->description = $input['description'];
        $guide_rule->level = $input['level'];
        $guide_rule->guide_img = $input['guide_img'];


        DB::transaction(function () use ($guide_rule, $input) {

            if ($guide_rule->update($input)) {

//                   event(new Explain_infoCreated($explain_info));

                return true;
            }

            throw new GeneralException(trans('exceptions.backend.guide_rule.update_error'));
        });
    }
}