CoachIndexController.php 4.9 KB
<?php

namespace api\home\controller;

use api\home\model\ToolsModel;
use api\home\service\ToolsService;
use cmf\controller\RestBaseController;
use think\Db;

/**
 * @title 教练端-瑜伽房
 */
class CoachIndexController extends RestBaseController
{

    /**
     * @title 教练资格
     * @description 教练资格判断接口
     * @author Pan Haowen
     * @url /home/coach_index/coach
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     */
    public function coach(){
        $userId = $this->getUserId();
        $re=Db::name('coach')->where('user_id',$userId)->find();
        if (!$re){
            $this->success('未认证',['status'=>0]);
        }elseif ($re['status']==0){
            $this->success('认证中',['status'=>1]);
        }elseif ($re['status']==1){
            $this->success('已认证',['status'=>2]);
        }elseif ($re['status']==2){
            $this->success('认证失败请重新认证',['status'=>3]);
        }
    }

    /**
     * @title 教练报名课程
     * @description 教练报名课程接口
     * @author Pan Haowen
     * @url /home/coach_index/ClassApply
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:class_id type:int require:1  desc:课程id
     */
    public function ClassApply(){
        $userId = $this->getUserId();
        $param=$this->request->param();
        $coach=Db::name('coach')->where(['user_id'=>$userId,'status'=>1])->find();
        $class=Db::name('class')->where('id',$param['class_id'])->find();
        if (!$coach){
            $this->error(['code'=>'40001','msg'=>'未认证']);
        }
        if (!in_array($class['type'],explode(',',$coach['type']))){
            $this->error(['code'=>'40002','msg'=>'授课类型不符']);
        }
        $re1=Db::name('coach_class_apply')->where(['coach_id'=>$coach['id'],'class_id'=>$class['id'],'status'=>1])->find();
        if ($re1){
            $this->error('您的申请已通过');
        }
        $re2=Db::name('coach_class_apply')->where(['coach_id'=>$coach['id'],'class_id'=>$class['id'],'status'=>0])->find();
        if ($re2){
            $this->error('您的申请正在审核中');
        }
        Db::name('coach_class_apply')->insert(['coach_id'=>$coach['id'],'class_id'=>$class['id'],'status'=>0,'create_time'=>time()]);
        $this->success('申请成功');
    }

    /**
     * @title 教练授课订单
     * @description 教练授课订单接口
     * @author Pan Haowen
     * @url /home/coach_index/plan
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:time type:int require:1  desc:时间搜索条件
     */
    public function plan(){
        $userId = $this->getUserId();
        $coach=Db::name('coach')->where('user_id',$userId)->find();
        $param = $this->request->param();
        $where=[];
        if (!empty($param['time'])) {
            $where['c.start_time'] = [['>= time', $param['time']], ['<= time', strtotime('+1 month', $param['time'])]];
        } else {
            $where['c.start_time'] = [['>= time', strtotime('+1 month', strtotime(date('Y-m', time())))], ['<= time', strtotime('+2 month', strtotime(date('Y-m', time())))]];
        }
        $data=Db::name('coach_class_apply')
            ->alias('cca')
            ->join('class c','cca.class_id=c.id')
            ->join('product p','c.product_id=p.id')
            ->join('room r','c.room_id=r.id')
            ->where(['c.delete_time'=>null,'c.status'=>1,'cca.coach_id'=>$coach['id']])
            ->where($where)
            ->field('p.name as pname,c.*,cca.status,r.name as rname,cca.coach_id')
            ->select()
            ->each(function ($item) {
                if ($item['type']==1) {
                    $item['avatar']=Db::name('user_class_apply')
                        ->alias('ucc')
                        ->join('user u','ucc.user_id=u.id')
                        ->where(['ucc.class_id' => $item['id'], 'ucc.status' => 1])
                        ->field('u.avatar,u.user_nickname')
                        ->select();
                }elseif ($item['type']==2){
                    $item['avatar'] = Db::name('coach_class_apply')
                        ->alias('cca')
                        ->join('coach c', 'cca.coach_id=c.id')
                        ->where(['cca.status' => 1, 'cca.class_id' => $item['id']])
                        ->field('c.id,c.avatar,c.name,c.mobile')
                        ->find();
                    $item['avatar']['avatar'] = cmf_get_image_preview_url($item['avatar']['avatar']);
                }
                $count=Db::name('coach_class')->where(['class_id'=>$item['id'],'status'=>0,'coach_id'=>$item['coach_id']])->count();
                $item['money']=$item['coach_price']*$count;
                return $item;
            });
        $new_arr=array();
        foreach($data as $k=>$v ){
            $new_arr[$v['rname']][] = $v;
        }
        $this->success("获取数据成功", $new_arr);
    }


}