model = new ClassesLibModel; parent::_initialize(); // //判断登录用户是否是员工 // $this->setUrlLock(); // 判断员工权限 $this->check_worker_auth(); } /** * * @ApiTitle( 课程跳转链接) * @ApiSummary(课程跳转链接) * @ApiMethod(GET) * @ApiParams(name = "id", type = "int",required=true,description = "课程id") * @ApiReturn({ * *}) */ public function url($ids = ''){ $param = $this->request->param(); if($this->request->isPost()){ try{ if(isset($param['ids']))$ids = $param['id']; //设置模拟资格 $url = \app\common\model\school\classes\ClassesLib::getPath($ids); }catch (\Exception $e){ $this->apierror($e->getMessage()); } $this->apisuccess($url); } } /** * * @ApiTitle( 课程微信小程序码) * @ApiSummary(课程微信小程序码) * @ApiMethod(GET) * @ApiParams(name = "id", type = "int",required=true,description = "课程id") * @ApiReturn({ * *}) */ public function miniqrcode($ids = ''){ $param = $this->request->param(); try{ if(isset($param['ids']))$ids = $param['id']; //设置模拟资格 $url = \app\common\model\school\classes\ClassesLib::getMiniQrcodeLink($ids); }catch (\Exception $e){ $this->apierror($e->getMessage()); } return $url["response"]; } /** * @ApiTitle(员工课程添加) * @ApiSummary(员工课程添加) * @ApiMethod(POST) * @ApiParams(name = "classes_num", type = "int",required=true,description = "核销次数") * @ApiParams(name = "status", type = "string",required=true,description = "上架状态:1=上架,2=下架,3=平台下架") * @ApiParams(name = "teacher_id", type = "int",required=true,description = "老师id") * @ApiParams(name = "classes_type", type = "string",required=true,description = "课程类型") * @ApiParams(name = "classes_cate_ids", type = "string",required=true,description = "课程标签ids 多值逗号拼接") * @ApiParams(name = "classes_label_ids", type = "string",required=true,description = "课程热门标签") * @ApiParams(name = "self_label_tag", type = "string",required=true,description = "机构热门标签:多值逗号拼接") * @ApiParams(name = "title", type = "string",required=true,description = "课程标题") * @ApiParams(name = "headimage", type = "string",required=true,description = "课程头图") * @ApiParams(name = "images", type = "string",required=true,description = "课程轮播图多值逗号拼接") * @ApiParams(name = "type", type = "string",required=true,description = "地点类型:out=户外,in=室内") * @ApiParams(name = "spec", type = "string",required=true,description = "课时多规格:[{'id':665,'classes_lib_id':570,'name':'xxxxx','limit_num':100,'status':'1','weigh':665,'time':'2024\/12\/12 19:00 - 2024\/12\/12 20:00'}] ") * @ApiParams(name = "address_type", type = "string",required=true,description = "地址类型:1=按机构,2=独立位置") * @ApiParams(name = "province", type = "string",required=false,description = "省编号") * @ApiParams(name = "city", type = "string",required=false,description = "市编号") * @ApiParams(name = "district", type = "string",required=false,description = "县区编号") * @ApiParams(name = "address", type = "string",required=false,description = "地图定位地址") * @ApiParams(name = "address_detail", type = "string",required=false,description = "手录详细地址") * @ApiParams(name = "longitude", type = "string",required=false,description = "经度") * @ApiParams(name = "latitude", type = "string",required=false,description = "纬度") * @ApiParams(name = "content", type = "string",required=false,description = "课程详情") * @ApiParams(name = "notice", type = "string",required=false,description = "课程须知") * @ApiParams(name = "price", type = "string",required=false,description = "课程价格 0为免费") * @ApiParams(name = "selfhot", type = "string",required=false,description = "机构热门:0=否,1=是") * @ApiReturn({ * *}) */ public function add(){ $user_id = 0; $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['id']; $params = []; $params["status"] = $this->request->post('status/s', 0); //上架状态:1=上架,2=下架,3=平台下架 $params["teacher_id"] = $this->request->post('teacher_id/d', 0); //老师id $params["classes_type"] = $this->request->post('classes_type/s', ''); //老师id $params["classes_cate_ids"] = $this->request->post('classes_cate_ids/s', ''); //课程标签 $params["classes_label_ids"] = $this->request->post('classes_label_ids/s', ''); //课程热门标签 $params["self_label_tag"] = $this->request->post('self_label_tag/s', ''); //老师id $params["title"] = $this->request->post('title/s', ''); //老师id $params["headimage"] = $this->request->post('headimage/s', ''); //老师id $params["images"] = $this->request->post('images/s', ''); //老师id $params["type"] = $this->request->post('type/s', ''); //老师id $params["spec"] = $this->request->post('spec/s', ''); //老师id $params["classes_num"] = $this->request->post('classes_num/d', 0); //核销次数 // $params["address_type"] = $this->request->post('address_type/s', ''); //老师id $params["province"] = $this->request->post('province/d', 0); //老师id $params["city"] = $this->request->post('city/d', 0); //老师id $params["district"] = $this->request->post('district/d', 0); //老师id $params["address"] = $this->request->post('address/s', ''); //老师id $params["address_detail"] = $this->request->post('address_detail/s', ''); //老师id $params["longitude"] = $this->request->post('longitude/s', 0); //老师id $params["latitude"] = $this->request->post('latitude/s', 0); //老师id $params["content"] = $this->request->post('content/s', ''); //老师id $params["notice"] = $this->request->post('notice/s', ''); //老师id $params["price"] = $this->request->post('price/f', 0); //老师id $params["selfhot"] = $this->request->post('selfhot/s', ''); //老师id //classes_type try{ $res = $this->model->createClassesByOper($params,true,'shop',$user_id,true); }catch (\Throwable $e){ $this->apierror($e->getMessage()); } $this->apisuccess('添加成功', $res); } /** * @ApiTitle(员工课程编辑) * @ApiSummary(员工课程编辑) * @ApiMethod(POST) * @ApiParams(name = "id", type = "string",required=true,description = "课程id") * @ApiParams(name = "status", type = "string",required=true,description = "上架状态:1=上架,2=下架,3=平台下架") * @ApiParams(name = "teacher_id", type = "int",required=true,description = "老师id") * @ApiParams(name = "classes_type", type = "string",required=true,description = "课程类型") * @ApiParams(name = "classes_cate_ids", type = "string",required=true,description = "课程标签ids 多值逗号拼接") * @ApiParams(name = "classes_label_ids", type = "string",required=true,description = "课程热门标签") * @ApiParams(name = "self_label_tag", type = "string",required=true,description = "机构热门标签:多值逗号拼接") * @ApiParams(name = "title", type = "string",required=true,description = "课程标题") * @ApiParams(name = "headimage", type = "string",required=true,description = "课程头图") * @ApiParams(name = "images", type = "string",required=true,description = "课程轮播图多值逗号拼接") * @ApiParams(name = "type", type = "string",required=true,description = "地点类型:out=户外,in=室内") * @ApiParams(name = "spec", type = "string",required=true,description = "课时多规格:[{'id':665,'classes_lib_id':570,'name':'xxxxx','limit_num':100,'status':'1','weigh':665,'time':'2024\/12\/12 19:00 - 2024\/12\/12 20:00'}] ") * @ApiParams(name = "address_type", type = "string",required=true,description = "地址类型:1=按机构,2=独立位置") * @ApiParams(name = "province", type = "string",required=false,description = "省编号") * @ApiParams(name = "city", type = "string",required=false,description = "市编号") * @ApiParams(name = "district", type = "string",required=false,description = "县区编号") * @ApiParams(name = "address", type = "string",required=false,description = "地图定位地址") * @ApiParams(name = "address_detail", type = "string",required=false,description = "手录详细地址") * @ApiParams(name = "longitude", type = "string",required=false,description = "经度") * @ApiParams(name = "latitude", type = "string",required=false,description = "纬度") * @ApiParams(name = "content", type = "string",required=false,description = "课程详情") * @ApiParams(name = "notice", type = "string",required=false,description = "课程须知") * @ApiParams(name = "price", type = "string",required=false,description = "课程价格 0为免费") * @ApiParams(name = "selfhot", type = "string",required=false,description = "机构热门:0=否,1=是") * @ApiReturn({ * *}) */ public function edit(){ $user_id = 0; $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['id']; $params = []; $id = $this->request->post('id/d', 0); $params["status"] = $this->request->post('status/s', ''); //上架状态:1=上架,2=下架,3=平台下架 $params["teacher_id"] = $this->request->post('teacher_id/d', 0); //老师id $params["classes_type"] = $this->request->post('classes_type/s', ''); //老师id $params["classes_cate_ids"] = $this->request->post('classes_cate_ids/s', ''); //课程标签 $params["classes_label_ids"] = $this->request->post('classes_label_ids/s', ''); //课程热门标签 $params["self_label_tag"] = $this->request->post('self_label_tag/s', ''); //老师id $params["title"] = $this->request->post('title/s', ''); //老师id $params["headimage"] = $this->request->post('headimage/s', ''); //老师id $params["images"] = $this->request->post('images/s', ''); //老师id $params["type"] = $this->request->post('type/s', ''); //老师id $params["spec"] = $this->request->post('spec/s', ''); //老师id $params["address_type"] = $this->request->post('address_type/s', ''); //老师id $params["province"] = $this->request->post('province/d', 0); //老师id $params["city"] = $this->request->post('city/d', 0); //老师id $params["district"] = $this->request->post('district/d', 0); //老师id $params["address"] = $this->request->post('address/s', ''); //老师id $params["address_detail"] = $this->request->post('address_detail/s', ''); //老师id $params["longitude"] = $this->request->post('longitude/s', 0); //老师id $params["latitude"] = $this->request->post('latitude/s', 0); //老师id $params["content"] = $this->request->post('content/s', ''); //老师id $params["notice"] = $this->request->post('notice/s', ''); //老师id $params["price"] = $this->request->post('price/f', 0); //老师id $params["selfhot"] = $this->request->post('selfhot/s', ''); //老师id //classes_type try{ $res = $this->model->updateClassesByOper($params,$id,true,'shop',$user_id,true); }catch (\Throwable $e){ $this->apierror($e->getMessage()); } $this->apisuccess('编辑成功', $res); } /** * @ApiTitle(员工课程批量删除) * @ApiSummary(员工课程批量删除) * @ApiMethod(POST) * @ApiParams(name = "ids", type = "string",required=true,description = "需要删除的一组课程id,多值逗号拼接") * @ApiReturn({ * *}) */ public function del(){ $user_id = 0; $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['id']; $ids = $this->request->post('ids/s', ''); try{ $res = $this->model->deleteClassesByOper($ids,true,'shop',$user_id,true); }catch (\Throwable $e){ $this->apierror($e->getMessage()); } $this->apisuccess("成功删除{$res}条数据",["delete_number"=>$res]); } /** * @ApiTitle(课程更改状态) * @ApiSummary(课程更改状态) * @ApiMethod(POST) * @ApiParams(name = "id", type = "string",required=true,description = "需要更改状态的课程id") * @ApiParams(name = "status", type = "string",required=true,description = "需要更改状态:1=上架,2=下架") * @ApiReturn({ * *}) */ public function update_status(){ $user_id = 0; $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['id']; $id = $this->request->post('id/s', ''); $status = $this->request->post('status/s', ''); try{ $res = $this->model->updateStatusByOper($status,$id,true,'shop',$user_id,true); }catch (\Throwable $e){ $this->apierror($e->getMessage()); } $this->apisuccess("状态更改成功",["self"=>$res]); } /** * @ApiTitle(课程详情接口) * @ApiSummary(课程详情接口) * @ApiMethod(GET) * @ApiParams(name = "id", type = "int",required=true,description = "课程id") * @ApiReturn({ * *}) */ public function detail(){ $id = $this->request->get('id/d',''); $user_id = 0; $user = $this->auth->getUser();//登录用户 // if($user)$user_id = $user['id']; if(empty($id)){ $this->apierror(__('缺少必要参数')); } try { $res = $this->model->detail($id,$user_id); } catch (\Exception $e){ // Log::log($e->getMessage()); $this->apierror($e->getMessage(),['errcode'=>$e->getCode()]); } $this->apisuccess('获取成功', ['detail' => $res]); } /** * @ApiTitle(课程参与者和报名者) * @ApiSummary(课程参与者和报名者) * @ApiMethod(GET) * @ApiParams(name = "id", type = "int",required=true,description = "课程id") * @ApiParams(name = "have_real", type = "int",required=true,description = "是否只查真實的 1是 0否") * @ApiReturn({ unpaid_user_data 参与中 paid_user_data 已报名 }) */ public function people(){ $id = $this->request->get('id/d',''); $have_real = $this->request->get('have_real/d',''); $user_id = 0; $user = $this->auth->getUser();//登录用户 // if($user)$user_id = $user['id']; if(empty($id)){ $this->apierror(__('缺少必要参数')); } try { $res = $this->model->virtualParticipants($id,$user_id,$have_real); } catch (\Exception $e){ // Log::log($e->getMessage()); $this->apierror($e->getMessage(),['errcode'=>$e->getCode()]); } $this->apisuccess('获取成功', $res); } /** * @ApiTitle(课程课时规格) * @ApiSummary(课程课时规格) * @ApiMethod(GET) * @ApiParams(name = "id", type = "int",required=true,description = "课程id") * @ApiParams(name = "user_id", type = "int",required=true,description = "需要查询是否下单的用户id") * @ApiReturn({ spec 课时规格 }) */ public function spec(){ $user_id = $this->request->get('user_id/d',0); $id = $this->request->get('id/d',''); $user = $this->auth->getUser();//登录用户 if(empty($id)){ $this->apierror(__('缺少必要参数')); } try { //如果是员工端操作 if($user_id && $id && $user){ //判断是否有操作权限 $classes_lib_ids = (new \app\common\model\school\classes\ClassesLib)->getClassesAuthIds($user['user_id']); //判断当前订单课程是否在此课程授权范围内 if(!in_array($id,$classes_lib_ids)) throw new \Exception("该课程不在您的授权范围内,无法查看!"); } if($user && !$user_id)$user_id = $user['id']; $res = $this->model->spec($id,$user_id); } catch (\Exception $e){ // Log::log($e->getMessage()); $this->apierror($e->getMessage(),['errcode'=>$e->getCode()]); } $this->apisuccess('获取成功', ['spec'=>$res]); } /** * @ApiTitle( 课程分类列表) * @ApiSummary(课程分类列表) * @ApiMethod(GET) * @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字") * @ApiParams(name = "page", type = "string",required=true,description = "页数") * @ApiParams(name = "limit", type = "string",required=true,description = "条数") * @ApiParams(name = "hot", type = "string",required=false,description = "状态搜索条件:-1=全部分类,0=非热门分类,1=热门分类") * @ApiReturn({ * *}) */ public function cate_list() { $user_id = 0; $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['id']; $page = $this->request->get('page/d', 0); //页数 $limit = $this->request->get('limit/d', 0); //条数 $keywords = $this->request->get('keywords/s', ''); //搜索关键字 $hot = $this->request->get('hot/s', '-1'); //搜索关键字 // $type = $this->request->get('type/s', ''); //筛选学员和教练单 try{ //当前申请状态 $res = Cate::showList($page, $limit,$keywords,$hot); // if($user_id =='670153'){ // file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql()); // } }catch (\Exception $e){ $this->error($e->getMessage()); } $this->success('查询成功', $res); } /** * @ApiTitle( 课程类型列表) * @ApiSummary(课程类型列表) * @ApiMethod(GET) * @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字") * @ApiParams(name = "page", type = "string",required=true,description = "页数") * @ApiParams(name = "limit", type = "string",required=true,description = "条数") * @ApiReturn({ * *}) */ public function type_list() { $user_id = 0; $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['id']; $page = $this->request->get('page/d', 0); //页数 $limit = $this->request->get('limit/d', 0); //条数 $keywords = $this->request->get('keywords/s', ''); //搜索关键字 // $type = $this->request->get('type/s', ''); //筛选学员和教练单 try{ //当前申请状态 $res = Type::showList($page, $limit,$keywords); // if($user_id =='670153'){ // file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql()); // } }catch (\Exception $e){ $this->apierror($e->getMessage()); } $this->apisuccess('查询成功', $res); } /** * @ApiTitle( 课程标签列表) * @ApiSummary(课程标签列表) * @ApiMethod(GET) * @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字") * @ApiParams(name = "page", type = "string",required=true,description = "页数") * @ApiParams(name = "limit", type = "string",required=true,description = "条数") * @ApiReturn({ * *}) */ public function label_list() { $user_id = 0; $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['id']; $page = $this->request->get('page/d', 0); //页数 $limit = $this->request->get('limit/d', 0); //条数 $keywords = $this->request->get('keywords/s', ''); //搜索关键字 // $type = $this->request->get('type/s', ''); //筛选学员和教练单 try{ //当前申请状态 $res = Label::showList($page, $limit,$keywords); // if($user_id =='670153'){ // file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql()); // } }catch (\Exception $e){ $this->apierror($e->getMessage()); } $this->apisuccess('查询成功', $res); } /** * @ApiTitle( 通用课程大索索列表) * @ApiSummary(通用课程大索索列表) * @ApiMethod(GET) * @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字") * @ApiParams(name = "page", type = "string",required=true,description = "页数") * @ApiParams(name = "limit", type = "string",required=true,description = "条数") * @ApiParams(name = "start_time", type = "int",required=false,description = "开始时间10位秒级时间戳") * @ApiParams(name = "end_time", type = "int",required=false,description = "结束时间10位秒级时间戳") * @ApiParams(name = "has_shop", type = "int",required=false,description = "是否查机构") * @ApiParams(name = "is_expire", type = "int",required=false,description = "是否查过期:1只查过期,2只查不过期,0全查") * @ApiParams(name = "user_id", type = "int",required=false,description = "主讲师用户id") * @ApiParams(name = "shop_id", type = "int",required=false,description = "机构店铺id") * @ApiParams(name = "teacher_id", type = "int",required=false,description = "老师id") * @ApiParams(name = "classes_cate_ids", type = "string",required=false,description = "平台课程分类ids") * @ApiParams(name = "classes_label_ids", type = "string",required=false,description = "平台课程热门标签ids") * @ApiParams(name = "self_label_tag", type = "string",required=false,description = "机构特色标签") * @ApiParams(name = "classes_type", type = "string",required=false,description = "平台课程类型") * @ApiParams(name = "keyword", type = "string",required=false,description = "关键字搜索") * @ApiParams(name = "type", type = "string",required=false,description = "地点类型:out=户外,in=室内") * @ApiParams(name = "address_type", type = "string",required=false,description = "地址类型:1=按机构,2=独立位置") * @ApiParams(name = "province", type = "string",required=false,description = "省编号") * @ApiParams(name = "city", type = "string",required=false,description = "市编号") * @ApiParams(name = "district", type = "string",required=false,description = "县区编号") * @ApiParams(name = "status", type = "string",required=false,description = "不传则默认查上架的 状态: 1=上架,2=下架,3=平台下架") * @ApiParams(name = "recommend", type = "string",required=false,description = "平台推荐:0=否,1=是") * @ApiParams(name = "hot", type = "string",required=false,description = "平台热门:0=否,1=是") * @ApiParams(name = "new", type = "string",required=false,description = "平台最新:0=否,1=是") * @ApiParams(name = "selfhot", type = "string",required=false,description = "机构热门:0=否,1=是") * @ApiParams(name = "feel", type = "string",required=false,description = "是否免费:0=否,1=是") * @ApiParams(name = "collect", type = "int",required=false,description = "是否专查我的收藏(需登录):1=是") * @ApiParams(name = "order", type = "string",required=false,description = " normal=综合排序推薦優先,distance=距离优先,hot=熱門优先,new=平台最新优先,selfhot=机构热门优先,sale=銷量优先,views=浏览量优先,collect=收藏量优先") * @ApiParams(name = "nearby", type = "string",required=false,description = "限制最大搜索距离(米)") * @ApiParams(name = "latitude", type = "string",required=false,description = "latitude") * @ApiParams(name = "longitude", type = "string",required=false,description = "longitude") * @ApiParams(name = "auth_status", type = "string",required=false,description = "审核状态:-1=不计入条件 ,0=待审核,1=审核通过,2=审核失败") * @ApiReturn({ * *}) */ public function classes_list() { $user_id = 0; $user = $this->auth->getUser();//登录用户 if($user)$user_id = $user['user_id']; $params =[]; $params["my_user_id"] = $user_id; $params["collect"] = $this->request->get('collect/d', 0); //页数 $params["page"] = $this->request->get('page/d', 1); //页数 $params["limit"] = $this->request->get('limit/d', 10); //条数 $params["keywords"] = $this->request->get('keywords/s', ''); //搜索关键字 $params["user_id"] = $this->request->get('user_id/d', ''); //主讲师用户id $params["shop_id"] = $this->request->get('shop_id/d', ''); //机构店铺id $params["teacher_id"] = $this->request->get('teacher_id/d', ''); //机构店铺id $params["classes_cate_ids"] = $this->request->get('classes_cate_ids/s', ''); //机构店铺id $params["classes_label_ids"] = $this->request->get('classes_label_ids/s', ''); //机构店铺id $params["self_label_tag"] = $this->request->get('self_label_tag/s', ''); //机构店铺id $params["keyword"] = $this->request->get('keyword/s', ''); //机构店铺id $params["type"] = $this->request->get('type/s', ''); //机构店铺id $params["address_type"] = $this->request->get('address_type/s', ''); //机构店铺id $params["province"] = $this->request->get('province/s', ''); //机构店铺id $params["classes_type"] = $this->request->get('classes_type/s', ''); //机构店铺id $params["city"] = $this->request->get('city/s', ''); //机构店铺id $params["district"] = $this->request->get('district/s', ''); //机构店铺id $params["status"] = $this->request->get('status/s', '-2'); //机构店铺id $params["recommend"] = $this->request->get('recommend/s', ''); //机构店铺id $params["hot"] = $this->request->get('hot/s', ''); //机构店铺id $params["new"] = $this->request->get('new/s', ''); //机构店铺id $params["selfhot"] = $this->request->get('selfhot/s', ''); //机构店铺id $params["feel"] = $this->request->get('feel/s', ''); //机构店铺id $params["is_expire"] = $this->request->get('is_expire/d', 0); //机构店铺id $params["order"] = $this->request->get('order/s', ''); //机构店铺id $params["nearby"] = $this->request->get('nearby/s', ''); //机构店铺id $params["has_shop"] = $this->request->get('has_shop/d', ''); //主讲师用户id $params["latitude"] = $this->request->get('latitude/s', ''); //机构店铺id $params["longitude"] = $this->request->get('longitude/s', ''); //机构店铺id $params["start_time"] = $this->request->get('start_time/d', ''); //主讲师用户id $params["end_time"] = $this->request->get('end_time/d', ''); //机构店铺id $params["auth_status"] = $this->request->get('auth_status/d', '-2'); //机构店铺id // $type = $this->request->get('type/s', ''); //筛选学员和教练单 try{ //当前申请状态 $res = \app\common\model\school\classes\ClassesLib::getVaildList($params); // if($user_id =='670153'){ // file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql()); // } }catch (\Exception $e){ $this->apierror($e->getMessage()); } $this->apisuccess('查询成功', ["list"=>$res]); } }