assign('breadcrumb1','课程管理'); $this->assign('breadcrumb2','课程列表'); } /** * 首页列表 * * */ public function index(Model $Model,CourseType $CourseType,CourseService $CourseService){ // 接受参数 $name = request('name',''); $status = request('status'); $serviceId = request('service_id',0); $typeId = request('type_id',0); $startTime = request('start_time',''); $endTime = request('end_time',''); // 查询条件 $map = []; // 编码ID if( $name ) $map[] = ['name','LIKE','%'.$name.'%']; if( $typeId ) $map[] = ['type_id','=',$typeId]; if( $serviceId ) $map[] = ['service_id','=',$serviceId]; if( $startTime ) $map[] = ['insert_time','>=',strtotime($startTime)]; if( $endTime ) $map[] = ['insert_time','<=',strtotime($endTime)]; if( !is_null($status) ) $map[] = ['status','=',$status]; // 查询数据 $list = $Model->query()->where($map)->orderByDesc('id')->paginate(request('limit',config('page_num',10)))->appends(request()->all()); // 循环处理数据 foreach ($list as $key => $value) { // 类型名称 $value['service_name'] = $CourseService->getOne($value['service_id'],'name'); // 类型名称 $value['type_name'] = $CourseType->getOne($value['type_id'],'name'); // 重组 $list[$key] = $value; } // 获取类型列表 $typeList = $CourseType->getList(); $serviceList = $CourseService->getList(); // 分配数据 $this->assign('empty', '~~暂无数据'); $this->assign('serviceList',$serviceList); $this->assign('typeList',$typeList); $this->assign('list', $list); // 加载模板 return $this->fetch(); } /** * 添加 * * */ public function add( Request $request, Model $Model,CourseType $CourseType,CourseService $CourseService){ if( request()->isMethod('post') ){ // 验证参数 $request->scene('add')->validate(); // 组合数据 $data['thumb'] = request('thumb',''); $data['video_src'] = request('video_src',''); $data['name'] = request('name',''); $data['content'] = request('content',''); $data['start_time'] = request('start_time',''); $data['end_time'] = request('end_time',''); $data['type_id'] = request('type_id',0); $data['start_time'] = $data['start_time'] ? strtotime($data['start_time']) : 0; $data['end_time'] = $data['end_time'] ? strtotime($data['end_time']) : 0; $data['status'] = 1; // 写入 $id = $Model->add($data); // 提示新增失败 if( !$id ) return json_send(['code'=>'error','msg'=>'新增失败']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,1,[],$data); // 告知结果 return json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']); } // 获取类型列表 $typeList = $CourseType->getList(); $serviceList = $CourseService->getList(); // 分配数据 $this->assign('crumbs','新增'); $this->assign('typeList',$typeList); $this->assign('serviceList',$serviceList); // 加载模板 return $this->fetch(); } /** * 编辑 * * */ public function edit( Request $request, Model $Model,CourseType $CourseType,CourseService $CourseService){ // 接收参数 $id = request('id',0); // 查询数据 $oldData = $Model->where(['id'=>$id])->first(); $oldData = $oldData ? $oldData->toArray() : []; // 修改 if(request()->isMethod('post')){ // 验证参数 $request->scene('edit')->validate(); // 组合数据 $data['thumb'] = request('thumb',''); $data['video_src'] = request('video_src',''); $data['name'] = request('name',''); $data['content'] = request('content',''); $data['start_time'] = request('start_time',''); $data['end_time'] = request('end_time',''); $data['type_id'] = request('type_id',0); $data['start_time'] = $data['start_time'] ? strtotime($data['start_time']) : 0; $data['end_time'] = $data['end_time'] ? strtotime($data['end_time']) : 0; // 写入 $result = $Model->edit($id,$data); // 提示新增失败 if( !$result ) return json_send(['code'=>'error','msg'=>'修改失败']); // 删除结果 unset($oldData['content']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,$data); // 告知结果 return json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']); } // 如果是没有数据 if( !$oldData ) return $this->error('查无数据'); // 获取类型列表 $typeList = $CourseType->getList(); $serviceList = $CourseService->getList(); // 分配数据 $this->assign('serviceList',$serviceList); $this->assign('typeList',$typeList); $this->assign('oldData',$oldData); $this->assign('crumbs','修改'); // 加载模板 return $this->fetch(); } /** * 状态 * * */ public function set_status( Request $request, Model $Model){ // 验证参数 $request->scene('set_status')->validate(); // 接收参数 $id = request('id',0); $status = request('status',0); // 查询数据 $result = $Model->edit($id,['status'=>$status]); // 提示新增失败 if( !$result ) return json_send(['code'=>'error','msg'=>'设置失败']); // 告知结果 return json_send(['code'=>'success','msg'=>'设置成功','path'=>'']); } /** * 获取上传视频签名URL * * */ public function get_sign_url() { // 获取签名URL $signUrl = Oss::signUrl('kailin-mp', 'uploads/video/'.admin('uid').'/'.date('Ymd').'/'.uniqid().'.mp4',['Content-Type'=>'']); // 如果签名失败 if( !$signUrl ) return json_send(['code'=>'error','msg'=>'生成签名失败']); // 签名异常 if( isset($signUrl['error']) ) return json_send(['code'=>'error','msg'=>$signUrl['error']]); // 下发 return json_send(['code'=>'success','msg'=>'获取成功','data'=>['sign_url'=>$signUrl,'video_src'=>str_ireplace('?'.parse_url($signUrl,PHP_URL_QUERY),'',$signUrl)]]); } }