| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 | <?php/** * Created by PhpStorm. * User: Administrator * Date: 2019/8/14 * Time: 10:43 */namespace App\Http\Controllers\Web\Train;use App\Exceptions\ResponseException;use App\Models\Article;use App\Models\Category;use App\Models\Train\TrainCourseUser;use App\Repositories\AdRepository;use App\Repositories\ArticleRepository;use App\Repositories\Train\TrainCourseRepository;use App\Repositories\Train\TrainCourseUserRepository;use App\Repositories\Train\TrainTeacherRepository;use App\Services\Train\CourseService;use App\Validators\Rules\MobileRule;use Illuminate\Http\Request;use Illuminate\Support\Facades\Validator;use Laravel\Horizon\LuaScripts;class TrainController{    private $courseRepository;    private $trainCourseUserRepository;    private $courseService;    private $teacherRepository;    private $adRepository;    private $articleRepository;    public function __construct(ArticleRepository $articleRepository,AdRepository $adRepository,TrainTeacherRepository $teacherRepository,CourseService $courseService,TrainCourseUserRepository $trainCourseUserRepository,TrainCourseRepository $courseRepository)    {        $this->courseRepository=$courseRepository;        $this->trainCourseUserRepository=$trainCourseUserRepository;        $this->courseService=$courseService;        $this->teacherRepository=$teacherRepository;        $this->adRepository=$adRepository;        $this->articleRepository=$articleRepository;    }    //个人会员中心所有培训    public function list(){        $courses=$this->courseRepository->courses();        $user=auth('web-member')->user();        return view('app.train.person.course',['courses'=>$courses,"user"=>$user]);    }    //我的报名    public function joined(){        $user=auth('web-member')->user();        $courses=$this->trainCourseUserRepository->JoinedCourses($user->id);        return view('app.train.person.course_joined',['courses'=>$courses]);    }    public function joinedEdit($id,$action){        $user=auth('web-member')->user();        $res = TrainCourseUser::where(['member_id'=>$user->id])->get()->toArray();        $array_id = array_column($res,'course_id');        if(!in_array($id,$array_id)){            throw new ResponseException('报名信息不存在');        }        $join_info=$this->trainCourseUserRepository->findJoin($id,$user->id);        if ($join_info->audit==1 && $action=="edit"){            return back()->with(['msg'=>"不可以修改审核通过的报名信息!"]);        }        return view('app.train.person.course_joined_edit',['join_info'=>$join_info->join_info,'result'=>$join_info]);    }    public function joinedEditAction($id,Request $request){        $user=auth('web-member')->user();        $request_data=$request->input();        $rule = [            'realname'            => 'required',            'phone'=>['required',new MobileRule()],            'id_card'=>['required',"regex:/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/"],            'education_cn' => 'required',            'residence_cn' => 'required',        ];        $msg = [            'realname.required'=>'姓名不能为空',            'education_cn.required'=>'学历不能为空',            'residence_cn.required'=>'现居住地址不能为空',            'id_card.required'=>'证件号不能为空',            'id_card.regex'=>'证件号格式错误',            'phone.required'=>'手机号不能为空',            'phone.unique'=>'手机号已经存在',        ];        $validator = Validator::make($request_data, $rule, $msg);        if ($validator->fails()) {            $error = $validator->errors()->first();             return back()->withErrors($error);        }        $en_data=serialize($request_data);        $data["join_realname"]=$request_data['realname'];        $data["join_phone"]=$request_data['phone'];        $data["join_id_card"]=$request_data['id_card'];        $data["join_residence_cn"]=$request_data['residence_cn'];        $data["join_education_cn"]=$request_data['education_cn'];        $data["join_info"]=$en_data;        $isOk=$this->trainCourseUserRepository->updateJoinInfo($id,$user->id,$data);        if (!empty($isOk)){            return redirect(route("person.train.joined"))->with(['msg'=>"修改成功"]);        }else{            return back()->with(['msg'=>"修改失败"]);        }    }    public function index()    {        $fengCaiAb=$this->adRepository->getAb("train_fengcai");        $artisans=$this->articleRepository->getArticle(['type_id'=>Article::PeiXunZC],request('limit',4));        $data=$this->courseService->courseIndex();        $data['ab']=$fengCaiAb;        $data['artisans']=$artisans;        return view('app.train.index',$data);    }    public function about()    {        $courses=$this->courseRepository->Recommend(6);        return view('app.train.about',['courses'=>$courses]);    }    public function policy()    {        $artisans=$this->articleRepository->getArticle(['type_id'=>Article::PeiXunZC],request('limit',4));        return view('app.train.policy',['artisans'=>$artisans]);    }    public function policyShow($id)    {        $this->articleRepository->Click($id);        $artisan=$this->articleRepository->firstWhere(['id'=>$id]);        $beforeAndNext=$this->articleRepository->beforeAndNext($id,$artisan->type_id);        return view('app.train.policy_show',["artisan"=>$artisan,'bf'=>$beforeAndNext]);    }    public function course()    {        return view('app.train.course');    }    public function courseAction(){        //审核通过,课程没结束的        $key=['audit'=>1,["open_end_time",'>',date("Y-m-d h:i:s")]];        empty(request('key')) ?   : $key[]=['name', 'like', '%'.request('key').'%'];        empty(request('time')) ?  : $key[]=['open_time', '<', request('time')." 23:59:59"];        !empty(\request('is_expenses')) ? : $key[]=['is_expenses',0];        $order_key="created_at";        if (\request('type')=="hot"){            $order_key="apply_members_count";        }        $courses=$this->courseRepository->coursesSearch($order_key,$key);        return AjaxSuccess($courses);    }    //课程详情    public function courseShow()    {        $id=request('id');        $courseInfo=$this->courseRepository->CourseInfo($id);        //推荐课程        $Recommend=$this->courseRepository->Recommend(4);        //其他课程        $Others=$this->courseRepository->OtherCourses(6);        $this->courseService->courseShowClick($id);        return view('app.train.course_show',['courseInfo'=>$courseInfo,"Recommend"=>$Recommend,"others"=>$Others]);    }    //报名    public function courseJoin($id){        $user=auth('web-member')->user();        $this->courseService->Join($user,$id);    }    public function teacher()    {        return view('app.train.teacher');    }}
 |