125 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						||
 | 
						||
namespace app\api\controller;
 | 
						||
 | 
						||
use addons\epay\library\Service;
 | 
						||
use app\admin\model\school\help\Cate;
 | 
						||
use app\common\controller\Api;
 | 
						||
use app\common\job\test\DemoJob;
 | 
						||
use app\common\model\appointment\car\MockOrder;
 | 
						||
use bw\UrlLock;
 | 
						||
use think\Cache;
 | 
						||
 | 
						||
/**
 | 
						||
 * 示例接口
 | 
						||
 */
 | 
						||
class Demo extends Api
 | 
						||
{
 | 
						||
 | 
						||
    //如果$noNeedLogin为空表示所有接口都需要登录才能请求
 | 
						||
    //如果$noNeedRight为空表示所有接口都需要验证权限才能请求
 | 
						||
    //如果接口已经设置无需登录,那也就无需鉴权了
 | 
						||
    //
 | 
						||
    // 无需登录的接口,*表示全部
 | 
						||
    protected $noNeedLogin = ['test', 'test1','test2'];
 | 
						||
    // 无需鉴权的接口,*表示全部
 | 
						||
    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");
 | 
						||
        $this->success('返回成功', $this->request->param());
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 无需登录的接口
 | 
						||
     *
 | 
						||
     */
 | 
						||
    public function test1()
 | 
						||
    {
 | 
						||
 | 
						||
        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);
 | 
						||
 | 
						||
            // 实例对应的接口对象
 | 
						||
            $scheme = new \WeMini\Total(Service::wechatConfig());
 | 
						||
            $res=  $scheme->create($q_params);
 | 
						||
 | 
						||
 | 
						||
        }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']);
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 需要登录的接口
 | 
						||
     *
 | 
						||
     */
 | 
						||
    public function test2()
 | 
						||
    {
 | 
						||
        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']);
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 需要登录且需要验证有相应组的权限
 | 
						||
     *
 | 
						||
     */
 | 
						||
    public function test3()
 | 
						||
    {
 | 
						||
        $this->success('返回成功', ['action' => 'test3']);
 | 
						||
    }
 | 
						||
 | 
						||
}
 |