DiverseYouthNightSchool/application/api/controller/Demo.php

119 lines
3.8 KiB
PHP
Raw Normal View History

2024-11-04 10:49:10 +08:00
<?php
namespace app\api\controller;
2025-01-04 18:09:51 +08:00
use app\admin\model\school\help\Cate;
2024-11-04 10:49:10 +08:00
use app\common\controller\Api;
use app\common\job\test\DemoJob;
2025-01-04 18:09:51 +08:00
use app\common\model\appointment\car\MockOrder;
use bw\UrlLock;
use think\Cache;
2024-11-04 10:49:10 +08:00
/**
* 示例接口
*/
class Demo extends Api
{
//如果$noNeedLogin为空表示所有接口都需要登录才能请求
//如果$noNeedRight为空表示所有接口都需要验证权限才能请求
//如果接口已经设置无需登录,那也就无需鉴权了
//
// 无需登录的接口,*表示全部
2025-01-04 18:09:51 +08:00
protected $noNeedLogin = ['test', 'test1','test2'];
2024-11-04 10:49:10 +08:00
// 无需鉴权的接口,*表示全部
protected $noNeedRight = ['test2'];
/**
* 测试方法
*
* @ApiTitle (测试名称)
* @ApiSummary (测试描述信息)
* @ApiMethod (POST)
* @ApiRoute (/api/demo/test/id/{id}/name/{name})
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="id", type="integer", required=true, description="会员ID")
* @ApiParams (name="name", type="string", required=true, description="用户名")
* @ApiParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据")
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
* @ApiReturn ({
'code':'1',
'msg':'返回成功'
})
*/
public function test()
{
\think\Queue::push(DemoJob::class, ["name"=>"hello world!"], "school");
2024-11-04 10:49:10 +08:00
$this->success('返回成功', $this->request->param());
}
/**
* 无需登录的接口
*
*/
public function test1()
{
2025-01-04 18:09:51 +08:00
try{
$lock = new UrlLock(1,"mock-create-lock-suffix",120,"您的请求过于频繁请您稍后再试请求最大锁定间隔5秒/一次!");
$lock->lock();
//往缓存里取出数字
$num = cache('test');
if(!$num){
$num = 1;
cache('test',$num);
}else{
$num++;
cache('test',$num);
}
//数字加1
//再存入缓存
//再写入test.txt文件末尾记得回车换行
file_put_contents("test.txt",$num."\r\n",FILE_APPEND);
}catch (\Throwable $e){
$lock->free();
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
$this->error($e->getMessage());
}
$lock->free();
2024-11-04 10:49:10 +08:00
$this->success('返回成功', ['action' => 'test1']);
}
/**
* 需要登录的接口
*
*/
public function test2()
{
2025-01-04 18:09:51 +08:00
try{
$lock = new UrlLock(1,"mock-create-lock-suffix",120,"您的请求过于频繁请您稍后再试请求最大锁定间隔5秒/一次!");
$lock->lock();
var_dump(time());
sleep(5);
}catch (\Throwable $e){
$lock->free();
// file_put_contents("test.txt",$e->getMessage().$e->getFile().$e->getLine());//写入文件,一般做正式环境测试
$this->error($e->getMessage());
}
$lock->free();
$this->success('返回成功', ['action' => 'test1']);
2024-11-04 10:49:10 +08:00
}
/**
* 需要登录且需要验证有相应组的权限
*
*/
public function test3()
{
$this->success('返回成功', ['action' => 'test3']);
}
}