DiverseYouthNightSchool/application/api/controller/school/Activity.php

316 lines
12 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\controller\school;
use app\common\model\school\classes\ActivityDemo;
use app\common\model\school\classes\ClassesLib;
use app\common\model\school\classes\Teacher as Teachermodel;
/**
* 活动接口
*/
class Activity extends Base
{
protected $noNeedLogin = '*';
protected $noNeedRight = '*';
protected $model = null;
/**
* 初始化操作
* @access protected
*/
protected function _initialize()
{
$this->model = new \app\common\model\school\classes\activity\Activity();
parent::_initialize();
//判断登录用户是否是员工
}
/**
* @ApiTitle( 活动demo数据详情)
* @ApiSummary(活动demo数据详情)
* @ApiMethod(GET)
* @ApiParams(name = "id", type = "int",required=true,description = "活动demo数据id")
* @ApiReturn({
*
*})
*/
public function demo_detail(){
$id = $this->request->get('id/d','');
if(empty($id)){
$this->error(__('缺少必要参数'));
}
try {
$res = (new ActivityDemo)->detail($id);
} catch (\Exception $e){
// Log::log($e->getMessage());
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
}
$this->success('获取成功', ['detail' => $res]);
}
/**
* @ApiTitle( 活动demo数据列表取决于搜索条件)
* @ApiSummary(活动demo数据列表取决于搜索条件)
* @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 = "status", type = "string",required=false,description = "状态:1=报名中,2=已结束")
* @ApiReturn({
*
*})
*/
public function demo_list()
{
$user_id = 0;
$user = $this->auth->getUser();//登录用户
if($user)$user_id = $user['id'];
$params=[];
$page = $this->request->get('page/d', 0); //页数
$limit = $this->request->get('limit/d', 0); //条数
$params['keywords'] = $this->request->get('keywords/s', ''); //搜索关键字
$params['status'] = $this->request->get('status/s', ''); //搜索关键字
// $type = $this->request->get('type/s', ''); //筛选学员和教练单
try{
//当前申请状态
$res = ActivityDemo::allList($page, $limit,$params);
// if($user_id =='670153'){
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
// }
}catch (\Exception $e){
$this->error($e->getMessage());
}
$this->success('查询成功', $res);
}
/**
* @ApiTitle( 通用活动大索索列表)
* @ApiSummary(通用活动大索索列表)
* @ApiRoute(/api/school/activity/activity_list)
* @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 = "sign_start_time", type = "int",required=false,description = "报名开始时间10位秒级时间戳")
* @ApiParams(name = "sign_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 = "is_sign_expire", type = "int",required=false,description = "是否查报名过期1只查过期,2只查不过期,0全查")
* @ApiParams(name = "shop_id", type = "int",required=false,description = "机构店铺id")
* @ApiParams(name = "keyword", type = "string",required=false,description = "关键字搜索")
* @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")
* @ApiReturn({
*
*})
*/
public function activity_list()
{
$user_id = 0;
$user = $this->auth->getUser();//登录用户
if($user)$user_id = $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["shop_id"] = $this->request->get('shop_id/d', ''); //机构店铺id
$params["keyword"] = $this->request->get('keyword/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["is_sign_expire"] = $this->request->get('is_sign_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["sign_start_time"] = $this->request->get('sign_start_time/d', ''); //主讲师用户id
$params["sign_end_time"] = $this->request->get('sign_end_time/d', ''); //机构店铺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 = $this->model::getVaildList($params);
// if($user_id =='670153'){
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
// }
}catch (\Exception $e){
$this->error($e->getMessage());
}
$this->success('查询成功', ["list"=>$res]);
}
/**
* @ApiTitle(课程活动规格)
* @ApiSummary(课程活动规格)
* @ApiRoute(/api/school/activity/spec)
* @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->error(__('缺少必要参数'));
}
try {
//如果是员工端操作
if($user_id && $id && $user){
// //判断是否有操作权限
$classes_lib_ids = (new \app\common\model\school\classes\activity\Activity)->getActivityAuthIds($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->error($e->getMessage(),['errcode'=>$e->getCode()]);
}
$this->success('获取成功', ['spec'=>$res]);
}
/**
* @ApiTitle(活动详情接口)
* @ApiSummary(活动详情接口)
* @ApiRoute(/api/school/activity/detail)
* @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->error(__('缺少必要参数'));
}
try {
$res = $this->model->detail($id,$user_id);
} catch (\Exception $e){
// Log::log($e->getMessage());
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
}
$this->success('获取成功', ['detail' => $res]);
}
/**
* @ApiTitle( 设置活动收藏和取消收藏)
* @ApiSummary(设置活动收藏和取消收藏)
* @ApiRoute(/api/school/activity/collect)
* @ApiMethod(POST)
* @ApiParams(name = "id", type = "int",required=true,description = "活动id")
* @ApiParams(name = "is_collect", type = "int",required=true,description = "收藏操作0取消收藏1收藏")
* @ApiReturn({
*
*})
*/
public function collect(){
$user_id = 0;
$user = $this->auth->getUser();//登录用户
if($user)$user_id = $user['id'];
$id = $this->request->post('id/d', 0); //搜索关键字
$collect = $this->request->post('is_collect/d', 0); //搜索关键字
try{
$res = $this->model->collect($id,$user_id,$collect,'user',$user_id,true);
}catch (\Throwable $e){
$this->error($e->getMessage());
}
$this->success('查询成功', $res);
}
}