<?php
class appAction extends baseAction
{
	/**
	 * @method    获取app版本记录
	 * @http get
	 * @param   where str  [可选] 条件
	 * @param   fields arr  [可选] 字段
	 * @param   oneRow  bool [可选] 是否单条
	 * @return    [type]        [description]
	 * @author lu
	 * @copyright 2018-12-07
	 */
	function getAppVersion()
	{
		$where=!empty($_POST['where'])?$_POST['where']:'';
		$oneRow=!empty($_POST['oneRow'])?$_POST['oneRow']:false;
		$fields=!empty($_POST['fields'])?$_POST['fields']:['*'];
		$MainBase=new MainBase();
		$res=$MainBase->get('app_version',$fields,$where,$oneRow);
		LibFc::ReturnJson($res['status'], $res['data']);
	}
	/**
	 * @method    添加版本记录
	 * @http post
	 * @param   ver_from str [必填] PJL|PJDZS
	 * @param   ver_version str  [必填] 版本号
	 * @param   ver_version_int  int [必填] 版本号数值型 201805021050
	 * @param   ver_update  int [必填] 是否强制更新 默认0
	 * @param   ver_status int [可选] 是否正常发布 默认1 正常发布 
	 * @param   ver_info str [可选] 升级说明
	 * ....
	 * 
	 * @author lu
	 * @copyright 2018-12-07
	 */
	function addAppVersion()
	{
		$fieldArr=['ver_from','ver_version','ver_version_int'];
		$dataArr=$_POST;
		foreach ($fieldArr as $v) 
		{
			if(empty($dataArr[$v]))
			{
				LibFc::ReturnJson(false, '参数'.$v.'不能为空');
			}

		}
		$dataArr['ver_version_code']=isset($dataArr['ver_version_code'])? $dataArr['ver_version_code']:'';
		$dataArr['ver_update']= !empty($dataArr['ver_update'])? 1: 0;
		$dataArr['var_browser']= !empty($dataArr['var_browser'])? 1: 0;
		$dataArr['ver_istest']= !empty($dataArr['ver_istest'])? 1: 0;
		$dataArr['ver_huawei']= !empty($dataArr['ver_huawei'])? 1: 0;
		$dataArr['ver_xiaomi']= !empty($dataArr['ver_xiaomi'])? 1: 0;
		$dataArr['ver_oppo']= !empty($dataArr['ver_oppo'])? 1: 0;
		$dataArr['ver_vivo']= !empty($dataArr['ver_vivo'])? 1: 0;
		$dataArr['ver_meizu']= !empty($dataArr['ver_meizu'])? 1: 0;
		$dataArr['ver_samsung']= !empty($dataArr['ver_samsung'])? 1: 0;
		$dataArr['ver_lenovo']= !empty($dataArr['ver_lenovo'])? 1: 0;
		$dataArr['ver_360']= !empty($dataArr['ver_360'])? 1: 0;
		$dataArr['ver_status']=isset($dataArr['ver_status'])? (int)$dataArr['ver_status']:1;
		// $dataArr['ver_url'] = $dataArr['ver_from'] == 'PJLAND' ? 'http://yiparts.com/apk/paojieling-'.$dataArr['ver_version'].'.apk': '';
		$dataArr['ver_url'] = !empty($dataArr['ver_url']) ? $dataArr['ver_url'] : 'http://yiparts.com/apk/paojieling-'.$dataArr['ver_version'].'.apk';
		$dataArr['ver_atime']=time();
		$dataArr['ver_etime']=time();
		$MainBase=new MainBase();
		$res=$MainBase->add('app_version',$dataArr);
		LibFc::ReturnJson($res['status'], $res['data']);
	}
	/**
	 * @method    更新版本信息
	 * @http post
	 * @param   ver_id int  [必填] 版本记录ID
	 * @param   ver_version str  [可选] 版本号
	 * @param   ver_version_int  int [可选] 版本号数值型 201805021050
	 * @param   ver_update  int [可选] 是否强制更新 默认0
	 * @param   ver_status int [可选] 是否正常发布 默认1 正常发布 
	 * @param   ver_info str [可选] 升级说明
	 * .....
	 * 
	 * @author lu
	 * @copyright 2018-12-07
	 */
	function setAppVersion()
	{
		$dataArr=$_POST;
		if(empty($dataArr['ver_id']))
		{
			LibFc::ReturnJson(false, '版本记录ID不能为空');
		}
		$verId=$dataArr['ver_id'];
		unset($dataArr['ver_id']);
		$MainBase=new MainBase();
		$dataArr['ver_etime']=time();
		$dataArr['ver_version_code']=isset($dataArr['ver_version_code'])? $dataArr['ver_version_code']:'';
		$dataArr['ver_update']= !empty($dataArr['ver_update'])? 1: 0;
		$dataArr['var_browser']= !empty($dataArr['var_browser'])? 1: 0;
		$dataArr['ver_istest']= !empty($dataArr['ver_istest'])? 1: 0;
		$dataArr['ver_huawei']= !empty($dataArr['ver_huawei'])? 1: 0;
		$dataArr['ver_xiaomi']= !empty($dataArr['ver_xiaomi'])? 1: 0;
		$dataArr['ver_oppo']= !empty($dataArr['ver_oppo'])? 1: 0;
		$dataArr['ver_vivo']= !empty($dataArr['ver_vivo'])? 1: 0;
		$dataArr['ver_meizu']= !empty($dataArr['ver_meizu'])? 1: 0;
		$dataArr['ver_samsung']= !empty($dataArr['ver_samsung'])? 1: 0;
		$dataArr['ver_lenovo']= !empty($dataArr['ver_lenovo'])? 1: 0;
		$dataArr['ver_360']= !empty($dataArr['ver_360'])? 1: 0;
		$dataArr['ver_status']=isset($dataArr['ver_status'])?$dataArr['ver_status']:1;
		$res=$MainBase->set('app_version',$dataArr,sprintf(' and ver_id=%d',$verId));
		LibFc::ReturnJson($res['status'], $res['data']);
	}
	/**
	 * @method    删除APP版本
	 * @param   verId int  [必填] 版本ID
	 * @return    [type]        [description]
	 * @author lu
	 * @copyright 2018-12-07
	 */
	function delAppVersion()
	{
		$res=['status'=>false,'data'=>'删除失败'];
		if(!empty($_POST['verId'])&&LibFc::Int($_POST['verId']))
		{
			$MainBase=new MainBase();
			$res=$MainBase->del('app_version',sprintf(' and ver_id=%d',$_POST['verId']));
		}
		LibFc::ReturnJson($res['status'], $res['data']);
	}
	/**
	 * @method    获取最新版本信息
	 * @http  get
	 * @param  from			   string [必填] 'PJLAND', 'PJLIOS', 'PJL', 'PJLH5', 'PJLSOFT'
	 * @param  version		   string [选填] 当前版本号   1.0.1
	 * @param  uid		   string [选填] 用户ID
	 * @author    soul
	 * @copyright 2018/9/29
	 * @return    
		{"status":true,"data":{"url":"https:\/\/www.paojd.cn\/apk\/paojieling.apk","time":1543629846,"version":"1.0.1","update": 0|1  1强制更新,"browser": 0|1  1强制浏览器下载,"ewm":"https:\/\/www.paojd.cn\/static\/images\/pjl\/pjlewm.png","info":""},"encry":0}
		{"status":false,"data":"错误代码","code":"code_error"}
	 */
	public function getUpdate()
	{
		$MainBase=new MainBase();
		$where= ' and ver_status=1 and ver_istest=0';
		$where.= sprintf(" and ver_from='%s'",$_GET['from']);
		//$where.= isset($_GET['client']) && $_GET['client'] == 'uniapp' ? " and ver_isorg = 0": " and ver_isorg = 1";
		if(!empty($_GET['version']))
		{
			//查询比较大于当前版本号的是否有强制更新
			$where.=sprintf(" and ver_version_int>=ifnull((select ver_version_int from app_version where 1=1 %s),0)", $where.sprintf(" and ver_version='%s'",$_GET['version']));
			$where.=' order by ver_version_int desc';
			$res=$MainBase->get('app_version',['*'],$where);
			if(!empty($res['data']))
			{
				//排除传递的版本号再比较是否需要强制更新
				$update=[];
				foreach ($res['data'] as $v) 
				{
					if($v['ver_version']!=$_GET['version'])
					{
						$update[]=$v['ver_update'];
					}
				}
				$res['data']=current($res['data']);
				if(!empty($update))
				{
					$update=max($update);
					$res['data']['ver_update']=$update;
				}
			}
		}
		else
		{
			$where.=' order by ver_version_int desc limit 1';
			$res=$MainBase->get('app_version',['*'],$where,true);
		}

		//测试员
		if(!empty($_GET['uid']))
		{
			$PjlBase = new PjlBase();
			$ures = $PjlBase->get('pl_user', ['pu_uid'], sprintf(" and pu_uid=%d and pu_is_tester=1", $_GET['uid']), true);
			if(!empty($ures['data']))
			{
				$testres = $MainBase->get('app_version', ['*'], sprintf(" and ver_from='%s'  and ver_status=1 and ver_istest=1  order by ver_version_int desc", $_GET['from']),true);
				//测试版本号一定要比现在的版本号大
				if(!empty($testres['data']) && $testres['data']['ver_version_int'] > $res['data']['ver_version_int'])
				{
					$res = $testres;
				}
			}
		}
		$version=[];
		if(!empty($res['data']))
		{
			$version = [
				'url'=>$res['data']['ver_url'],
				'time'=>$res['data']['ver_etime'],
				'version'=>$res['data']['ver_version'],
				'version_code'=>$res['data']['ver_version_code'],
				'update'=>$res['data']['ver_update'],
				'browser'=>$res['data']['var_browser'],
				'ewm'=>'http://yiparts.com/static/images/pjl/pjlewm.png',
				'info'=>$res['data']['ver_info'],
				'ver_huawei'=>$res['data']['ver_huawei'],
				'ver_xiaomi'=>$res['data']['ver_xiaomi'],
				'ver_oppo'=>$res['data']['ver_oppo'],
				'ver_vivo'=>$res['data']['ver_vivo'],
				'ver_meizu'=>$res['data']['ver_meizu'],
				'ver_samsung'=>$res['data']['ver_samsung'],
				'ver_lenovo'=>$res['data']['ver_lenovo'],
				'ver_360'=>$res['data']['ver_360']
			];
		}
		LibFc::ReturnJson(true, $version);
	}
}