310 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			310 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
 | 
						|
namespace addons\xilufitness\controller;
 | 
						|
 | 
						|
use addons\xilufitness\services\CoachService;
 | 
						|
use addons\xilufitness\services\CourseService;
 | 
						|
 | 
						|
/**
 | 
						|
 * @ApiSector(教练接口)
 | 
						|
 * @ApiRoute(addons/xilufitness/coach)
 | 
						|
 * @ApiWeigh(1)
 | 
						|
 * @package addons\xilufitness\controller
 | 
						|
 */
 | 
						|
class Coach extends Base
 | 
						|
{
 | 
						|
   protected $noNeedLogin = ['index','detail','getList'];
 | 
						|
    /**
 | 
						|
     * @ApiTitle('教练列表')
 | 
						|
     * @ApiSummary('获取教练列表')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/index')
 | 
						|
     * @ApiMethod('GET')
 | 
						|
     * @ApiParams(name='lat',type='string',required=true,description="纬度")
 | 
						|
     * @ApiParams(name='lng',type='string',required=true,description="经度")
 | 
						|
     * @ApiParams(name='province_id',type='string',required=false,description='省id')
 | 
						|
     * @ApiParams(name='city_id',type='string',required=false,description='市id')
 | 
						|
     * @ApiParams(name='area_id',type='string',required=false,description='区域id')
 | 
						|
     * @ApiParams(name='cate_pid',type='string',required=false,description='顶级课程分类id')
 | 
						|
     * @ApiParams(name='cate_id',type='string',required=false,description='子级课程分类id')
 | 
						|
     * @ApiParams(name='keywords',type='string',required=false,description='关键词')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function index(){
 | 
						|
        $lat = $this->request->param('lat/s',$this->lat);
 | 
						|
        $lng = $this->request->param('lng/s',$this->lng);
 | 
						|
        $province_id = $this->request->param('province_id/s',0,'xilufitness_get_id_value');
 | 
						|
        $city_id = $this->request->param('city_id/s',0,'xilufitness_get_id_value');
 | 
						|
        $area_id = $this->request->param('area_id/s',0,'xilufitness_get_id_value');
 | 
						|
        $cate_pid = $this->request->param('cate_pid/s',0,'xilufitness_get_id_value');
 | 
						|
        $cate_id = $this->request->param('cate_id/s',0,'xilufitness_get_id_value');
 | 
						|
        $keywords = $this->request->param('keywords/s','');
 | 
						|
        $result = CoachService::getInstance()->getCoachList($lat,$lng,$cate_pid,$cate_id,$keywords,$city_id,$province_id,$area_id);
 | 
						|
        $this->success('',$result);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('获取教练详情')
 | 
						|
     * @ApiSummary('获取教练详情')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/detail')
 | 
						|
     * @ApiMethod('GET')
 | 
						|
     * @ApiParams(name='id',type='string',required=true,description="教练id")
 | 
						|
     * @ApiParams(name='shop_id',type='string',required=true,description="门店id")
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function detail(){
 | 
						|
        $id = $this->request->param('id',0,'xilufitness_get_id_value');
 | 
						|
        $shop_id = $this->request->param('shop_id',0,'xilufitness_get_id_value');
 | 
						|
        $result = CoachService::getInstance()->getDetail($id,$shop_id);
 | 
						|
        $this->success('',$result);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('获取教练/课程/活动/列表')
 | 
						|
     * @ApiSummary('获取教练/课程/活动/列表')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/getList')
 | 
						|
     * @ApiMethod('GET')
 | 
						|
     * @ApiParams(name='id',type='string',required=true,description="教练id")
 | 
						|
     * @ApiParams(name='shop_id',type='string',required=true,description="门店id")
 | 
						|
     * @ApiParams(name='is_type',type='integer',required=true,description="类型 1 团课 2 私教 3 活动")
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function getList(){
 | 
						|
        $id = $this->request->param('id',0,'xilufitness_get_id_value');
 | 
						|
        $shop_id = $this->request->param('shop_id',0,'xilufitness_get_id_value');
 | 
						|
        $is_type = $this->request->param('is_type/d',0);
 | 
						|
        $result = CoachService::getInstance()->getList($id,$shop_id,$is_type);
 | 
						|
        $this->success('',$result);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('获取教练个人数据信息')
 | 
						|
     * @ApiSummary('获取教练个人数据信息')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/getCoachInfo')
 | 
						|
     * @ApiMethod('GET')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function getCoachInfo(){
 | 
						|
       $result = CoachService::getInstance()->getCoachInfo();
 | 
						|
       $this->success('',$result);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('提交报备信息')
 | 
						|
     * @ApiSummary('提交报备信息')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/addReport')
 | 
						|
     * @ApiMethod('post')
 | 
						|
     * @ApiParams(name='start_at',type='string',require = true, description = '开始时间')
 | 
						|
     * @ApiParams(name='end_at',type='string',require = true, description = '结束时间')
 | 
						|
     * @ApiParams(name='description',type='string',require = true, description = '请假事由')
 | 
						|
     * @ApiParams(name='id',type='string',require = true, description = '教练id')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function addReport(){
 | 
						|
        $start_at = $this->request->param('start_at');
 | 
						|
        $end_at = $this->request->param('end_at');
 | 
						|
        $description = $this->request->param('description');
 | 
						|
        $id = $this->request->param('id',0,'xilufitness_get_id_value');
 | 
						|
        $result = CoachService::getInstance()->addReport($id,$start_at,$end_at,$description);
 | 
						|
        if($result['code'] == 1){
 | 
						|
            $this->success('请求成功');
 | 
						|
        }
 | 
						|
        $this->error($result['msg'] ?? '提交失败');
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('报备信息列表')
 | 
						|
     * @ApiSummary('报备信息列表')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/getReports')
 | 
						|
     * @ApiMethod('post')
 | 
						|
     * @ApiParams(name='page',type='integer',require = true, description = '分页码')
 | 
						|
     * @ApiParams(name='id',type='string',require = true, description = '教练id')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function getReports(){
 | 
						|
        $id = $this->request->param('id',0,'xilufitness_get_id_value');
 | 
						|
        $result = CoachService::getInstance()->getReportList($id);
 | 
						|
        $this->success('',$result);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('收入明细列表')
 | 
						|
     * @ApiSummary('收入明细列表')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/getCashList')
 | 
						|
     * @ApiMethod('post')
 | 
						|
     * @ApiParams(name='page',type='integer',require = true, description = '分页码')
 | 
						|
     * @ApiParams(name='id',type='string',require = true, description = '教练id')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function getCashList(){
 | 
						|
        $id = $this->request->param('id',0,'xilufitness_get_id_value');
 | 
						|
        $result = CoachService::getInstance()->getCashList($id);
 | 
						|
        $this->success('',$result);
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * @ApiTitle('教练提现')
 | 
						|
     * @ApiSummary('教练提现')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/addWithdraw')
 | 
						|
     * @ApiMethod('post')
 | 
						|
     * @ApiParams(name='withdraw_price',type='Floater',require = true, description = '提现金额')
 | 
						|
     * @ApiParams(name='id',type='string',require = true, description = '教练id')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function addWithdraw(){
 | 
						|
        $id = $this->request->param('id',0,'xilufitness_get_id_value');
 | 
						|
        $price = $this->request->param('withdraw_price');
 | 
						|
        $result = CoachService::getInstance()->addWithdraw($id,$price);
 | 
						|
        if($result['code'] == 1){
 | 
						|
            $this->success('提交成功');
 | 
						|
        } else {
 | 
						|
            $this->error($result['msg'] ?? '提交失败');
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('教练排课列表')
 | 
						|
     * @ApiSummary('教练排课列表')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/getScheduling')
 | 
						|
     * @ApiMethod('get')
 | 
						|
     * @ApiParams(name='course_type',type='integer',require = true, description = '课程类型')
 | 
						|
     * @ApiParams(name='day_date',type='string',require = true, description = '日期')
 | 
						|
     * @ApiParams(name='page',type='integer',require = true, description = '分页码')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function getScheduling(){
 | 
						|
        $course_type = $this->request->param('course_type/d',1);
 | 
						|
        $day_date = $this->request->param('day_date','');
 | 
						|
        $day_date = !empty($day_date) && !is_numeric($day_date) ? strtotime($day_date) : strtotime(date('Y-m-d',time()));
 | 
						|
        $result = CoachService::getInstance()->getScheduling($course_type,$day_date);
 | 
						|
        $timeList = CourseService::getInstance()->getClassTime();
 | 
						|
        $result = array_merge($result,['timeList' => $timeList['list'], 'day_date' => date('Y-m-d',time())]);
 | 
						|
        $this->success('',$result);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('教练排课详情')
 | 
						|
     * @ApiSummary('教练排课详情')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/getSchedulingDetail')
 | 
						|
     * @ApiMethod('get')
 | 
						|
     * @ApiParams(name='is_type',type='integer',require = true, description = '类型')
 | 
						|
     * @ApiParams(name='id',type='string',require = true, description = '排课id')
 | 
						|
     * @ApiParams(name='work_camp_id',type='string',require = true, description = '活动排课id')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function getSchedulingDetail(){
 | 
						|
        $id = $this->request->param('id',0,'xilufitness_get_id_value');
 | 
						|
        $work_camp_id = $this->request->param('work_camp_id',0,'xilufitness_get_id_value');
 | 
						|
        $is_type = $this->request->param('is_type/d',1);
 | 
						|
        $result = CoachService::getInstance()->getSchedulingDetail($id,$work_camp_id,$is_type);
 | 
						|
        $userListResult = CourseService::getInstance()->getSignList(($is_type == 3 ? $work_camp_id : $id),$is_type);
 | 
						|
        $result = array_merge($result,['userList' => $userListResult['list'], 'user_count' => $userListResult['user_count']]);
 | 
						|
        $this->success('',$result);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @ApiTitle('学员排行')
 | 
						|
     * @ApiSummary('教练排课详情')
 | 
						|
     * @ApiRoute('addons/xilufitness/coach/getStudentRanking')
 | 
						|
     * @ApiMethod('get')
 | 
						|
     * @ApiParams(name='page',type='integer',require = true, description = '分页')
 | 
						|
     * @ApiParams(name='coach_id',type='string',require = true, description = '教练id')
 | 
						|
     * @ApiHeaders(name = "brand-key", type = 'string',require = true, description = '应用key')
 | 
						|
     * @ApiReturnParams(name='code', type='integer',required=true, sample="0")
 | 
						|
     * @ApiReturnParams(name='msg', type='string',required=true, sample="获取成功")
 | 
						|
     * @ApiReturnParams(name='data', type='bject',required=true, description= "扩展数据")
 | 
						|
     * @ApiReturn({
 | 
						|
        'code' => 1,
 | 
						|
        'msg' => '获取成功',
 | 
						|
        'data' => {}
 | 
						|
     *})
 | 
						|
     */
 | 
						|
    public function getStudentRanking(){
 | 
						|
        $coach_id = $this->request->param('coach_id',0,'xilufitness_get_id_value');
 | 
						|
        $result = CoachService::getInstance()->getStudentRanking($coach_id);
 | 
						|
        $this->success('',$result);
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
} |