<?php

namespace app\api\controller;

use app\common\controller\Api;
use app\common\library\CalculatedAmount;
use app\common\library\WechatOfficialAccount;
use EasyWeChat\Factory;
use Redis;
use think\Db;

/**
 * @ApiInternal
 * 示例接口
 */
class Demo extends Api {

	//如果$noNeedLogin为空表示所有接口都需要登录才能请求
	//如果$noNeedRight为空表示所有接口都需要验证权限才能请求
	//如果接口已经设置无需登录,那也就无需鉴权了
	//
	// 无需登录的接口,*表示全部
	protected $noNeedLogin = ['*'];
	// 无需鉴权的接口,*表示全部
	protected $noNeedRight = ['*'];

	/**
	 * 测试方法
	 *
	 * @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() {
//		$redis = new Redis ();
//		//实例化Redis
//		$redis->connect( "localhost", 6379 );
//		//连接
//		$redis->auth( '2000206' );
//		$redis->select( 1 );
//		//选库(0~15)
//		$redis->set( 'key', 'value' );
//		//存储数据
//		echo $redis->get( "key" );
		$userInfo = Db::name('user')->where('id',86)->find();

		if ($userInfo['up_user_id']) {
			$res=$this->getParent($userInfo['up_user_id']);
		}
		$this->success('1',$res);
	}

	public function getParent( $pid, $array = [] ) {

		static $level = 1;
		$is_parent = Db::name( 'user' )->field('id,up_user_id')->where( ['id' => $pid] )->find();

		$array[] = $is_parent;
		if ( $is_parent['up_user_id'] ) {
			$level ++;
			return $this->getParent( $is_parent['up_user_id'], $array );
		}
		return $array;
	}

	/**
	 * 无需登录的接口
	 *
	 */
	public function test1() {
		CalculatedAmount::calculation( 5 );

//        $this->success('返回成功', $level);
	}

	/**
	 * 需要登录的接口
	 *
	 */
	public function test2() {
		$this->success( '返回成功', ['action' => 'test2'] );
	}

	/**
	 * 需要登录且需要验证有相应组的权限
	 *
	 */
	public function test3() {
		$this->success( '返回成功', ['action' => 'test3'] );
	}

}