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');
- }
- }
|