Pārlūkot izejas kodu

课程接口调整

lizhen_gitee 1 gadu atpakaļ
vecāks
revīzija
7dd2aab979

+ 26 - 4
application/api/controller/Lesson.php

@@ -24,6 +24,16 @@ class Lesson extends Api
         $this->success(1,$list);
         $this->success(1,$list);
     }
     }
 
 
+    //售课分类列表
+    public function lesson_cate(){
+        $list = Db::name('lesson_cate')->order('id asc')->select();
+        $list = $this->list_lang($list,['name']);
+
+        $this->success(1,$list);
+    }
+
+    //日历列表
+
     //教练列表
     //教练列表
     public function coach_list(){
     public function coach_list(){
         $list = Db::name('coach')->field('id,nickname')->where('status',1)->order('nickname asc')->select();
         $list = Db::name('coach')->field('id,nickname')->where('status',1)->order('nickname asc')->select();
@@ -33,16 +43,16 @@ class Lesson extends Api
     //课时首页
     //课时首页
     public function slot_list(){
     public function slot_list(){
 
 
-        $date = input('date',date('Y-m-d'),'strtotime');
-        $lesson_id = input('lesson_id',0);
+        $date = strtotime(input('date',date('Y-m-d')));
+        $cate_id = input('cate_id',0);
         $coach_id = input('coach_id',0);
         $coach_id = input('coach_id',0);
 
 
         $where = [
         $where = [
             'slot.starttime' => ['BETWEEN',[$date,$date+86399]],
             'slot.starttime' => ['BETWEEN',[$date,$date+86399]],
             'slot.status' => 0
             'slot.status' => 0
         ];
         ];
-        if($lesson_id){
-            $where['slot.lesson_id'] = $lesson_id;
+        if($cate_id){
+            $where['lesson.lessoncate_id'] = $cate_id;
         }
         }
 
 
         //课时
         //课时
@@ -76,9 +86,17 @@ class Lesson extends Api
             $pay_number = Db::name('lesson_order')->where('slot_id',$slot['id'])->where('order_status',10)->sum('usernumber');
             $pay_number = Db::name('lesson_order')->where('slot_id',$slot['id'])->where('order_status',10)->sum('usernumber');
             $slot['num_remain'] = $slot['num_max'] - $pay_number;
             $slot['num_remain'] = $slot['num_max'] - $pay_number;
 
 
+            //预约按钮,1能预约,0不能
+            $slot['button_status'] = $slot['status'] == 0 ? 1 : 0;
+
+            if($slot['num_remain'] <= 0){
+                $slot['button_status'] = 0;//没有空位了,强制改
+            }
+
             //右上角备注
             //右上角备注
             if(time() >= $slot['starttime']){
             if(time() >= $slot['starttime']){
                 $slot['num_remark'] = __('报名已截止');
                 $slot['num_remark'] = __('报名已截止');
+                $slot['button_status'] = 0;//报名截止了,强制改
             }else{
             }else{
                 $slot['num_remark'] = __('剩N个名额',['number'=>$slot['num_remain']]);
                 $slot['num_remark'] = __('剩N个名额',['number'=>$slot['num_remain']]);
             }
             }
@@ -87,6 +105,10 @@ class Lesson extends Api
         $this->success(1,$list);
         $this->success(1,$list);
     }
     }
 
 
+    public function test(){
+        echo __('剩N个名额',['number'=>8]);
+    }
+
     //课时详情
     //课时详情
     public function slot_info(){
     public function slot_info(){
         $slot_id = input('slot_id',0);
         $slot_id = input('slot_id',0);

+ 83 - 0
application/api/controller/Upload.php

@@ -0,0 +1,83 @@
+<?php
+
+namespace app\api\controller;
+
+use app\common\controller\Api;
+use think\Db;
+
+/**
+ * oss上传接口
+ */
+class Upload extends Api
+{
+    protected $noNeedLogin = ['gmt_iso8601','signedUrl','callBack'];
+    protected $noNeedRight = ['*'];
+
+    public function gmt_iso8601($time) {
+        $expiration = date(DATE_ISO8601,$time);
+        $pos = strpos($expiration, '+');
+        $expiration = substr($expiration, 0, $pos);
+        return $expiration."Z";
+    }
+
+    /**
+     * 获取签名
+     * @return array
+     */
+    public function signedUrl(){
+        $config = config("oss");
+        $id= $config["secretId"];  // 请填写您的AccessKeyId。
+        $key= $config["secretKey"]; // 请填写您的AccessKeySecret。
+        // $host的格式为 bucketname.endpoint,请替换为您的真实信息。(在阿里云中可配置)
+        $host =  $config["bucket"].".".$config["endPoint"];
+        // $callbackUrl为上传回调服务器的URL,请将下面的IP和Port配置为您自己的真实URL信息。下面有callBack方法
+        $callbackUrl = config('notify_cdnurl').'/api/upload/callBack';
+        $dir = 'images/';          // 用户上传文件时指定的前缀。
+        $dir = 'uploads/'.date('Ymd').'/';          // 用户上传文件时指定的前缀。
+
+        $callback_param = array('callbackUrl'=>$callbackUrl,
+            'callbackBody'=>'filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}',
+            'callbackBodyType'=>"application/x-www-form-urlencoded");
+        $callback_string = json_encode($callback_param);
+
+        $base64_callback_body = base64_encode($callback_string);
+        $now = time();
+        $expire = 3000;  //设置该policy超时时间是10s. 即这个policy过了这个有效时间,将不能访问。
+        $end = $now + $expire;
+        $expiration = $this->gmt_iso8601($end);
+
+        //最大文件大小.用户可以自己设置
+        $condition = array(0=>'content-length-range', 1=>0, 2=>1048576000);
+        $conditions[] = $condition;
+
+        // 表示用户上传的数据,必须是以$dir开始,不然上传会失败,这一步不是必须项,只是为了安全起见,防止用户通过policy上传到别人的目录。
+        $start = array(0=>'starts-with', 1=>'$key', 2=>$dir);
+        $conditions[] = $start;
+        $arr = array('expiration'=>$expiration,'conditions'=>$conditions);
+        $policy = json_encode($arr);
+        $base64_policy = base64_encode($policy);
+        $string_to_sign = $base64_policy;
+        $signature = base64_encode(hash_hmac('sha1', $string_to_sign, $key, true));
+
+        $response = [];
+        $response['accessid'] = $id;
+//        $response['host'] = $host;
+        $response['policy'] = $base64_policy;
+        $response['signature'] = $signature;
+//        $response['expire'] = $end;
+//        $response['callback'] = $base64_callback_body;
+//        $response['dir'] = $dir;  // 这个参数是设置用户上传文件时指定的前缀。
+        $response['bucket'] = $config["url"];
+        $response['fileurl'] = 'uploads/'.date('Ymd').'/';
+
+
+        $this->success("获取成功!",$response);
+    }
+
+    //回调函数
+    public function callBack(){
+        header("Content-Type: application/json");
+        $data = array("Status"=>"Ok",'data'=>$_POST);
+        echo json_encode($data);
+    }
+}

+ 22 - 1
application/config.php

@@ -302,7 +302,7 @@ return [
         'api_url'               => 'https://api.fastadmin.net',
         'api_url'               => 'https://api.fastadmin.net',
     ],
     ],
 
 
-    //我的
+    //我的=======================================================================
 
 
     'redis'                  => [
     'redis'                  => [
         // 主机
         // 主机
@@ -339,6 +339,27 @@ return [
         'signname' => 'Elin Dance Studio',
         'signname' => 'Elin Dance Studio',
     ],
     ],
 
 
+    // 阿里云国际oss,正式
+    'oss'                  => [
+        // 链接
+        'url'         => 'https://elindancestudio.oss-ap-southeast-1.aliyuncs.com',
+        // 固定密钥
+        'secretId'     => 'LTAI5tFsEa3eJ9ZGcQkVYALu',
+        // 固定密钥
+        'secretKey'      => 'MzQfaZ2OafzoEVTBJze3glMqqjaZjA',
+        // 存储桶
+        'bucket'      => 'elindancestudio',
+        // bucket 所在园区
+        'region'      => 'oss-ap-southeast-1',
+        // EndPoint
+        'endPoint'           => 'oss-ap-southeast-1.aliyuncs.com',
+        // 密钥有效期
+        'durationSeconds'      => 1800,
+        // 允许的路径前缀,可以根据自己网站的用户登录态判断允许上传的具体路径,例子: a.jpg 或者 a/* 或者 * (使用通配符*存在重大安全风险, 请谨慎评估使用)
+        'allowPrefix'      => '*',
+
+    ],
+
 
 
 
 
 ];
 ];