Api.php 7.26 KB
<?php
namespace app\admin\controller;
use think\Db;
use think\facade\Env;
use think\facade\Request;
class Api{
    protected $filepath,$publicpath,$viewSuffix;
    function initialize()
    {
        parent::initialize();
        $viewPath = config('template.view_path');
        $this->viewSuffix = config('template.view_suffix');
		$viewPath = $viewPath ? $viewPath : 'view';
        $this->filepath = Env::get('app_path').strtolower(config('default_module')).'/'.$viewPath.'/';
        $this->publicpath =  'static/android/';
		$this->assign ( 'viewSuffix',$this->viewSuffix );
    }
    //获取最新版本
    public function compareVersion() {
        //2020-05-25 获取flutter版最新版本号
        if(input('get.flag') == 4 && input('get.make')){
            //获取IOS 或者 安卓目前最新版本
            $version = db('android')->where(array('flag'=>input('get.flag'),'make'=>input('get.make')))->order('version desc')->limit(1)->select();
            if(input('get.versionCode') < $version[0]['version']){
                $str = "http://xt03.colorcun.com".$version[0]['file_url'];
                $version[0]['file_url'] = input('get.make') == 4 ? "" : $str;
                $result['ret'] = 200;
                $result['data'] = $version;
                $result['msg'] = 'success';

                return json_encode($result);
            }else{
                
                $result['ret'] = 0;
                $result['data'] = '';
                $result['msg'] = '当前已是最新版本';

                return json_encode($result);
            }
        }
        //2019-05-24 主动更新需要判断当前设备是否为灰度用户
        //识别是否为灰度用户
        $limit = '&sid='.input('get.sid').'&device='.input('get.deviceId').'&version='.input('get.versionCode');
        $res= file_get_contents(ON_LINE.'Android.Device.TestingDeviceExits'.$limit);
        $res_arr = json_decode($res,TRUE);
        if($res_arr['data']){
            //比对版本号
            $version = db('android')->where(array('flag'=>input('get.flag')))->order('version desc')->limit(1)->select();
            //当前版本小于线上版本则返回线上安装包地址。
            if(input('get.versionCode') < $version[0]['version']){

                $str = "http://xt03.colorcun.com".$version[0]['file_url'];
                $version[0]['file_url'] = $str;
                $result['ret'] = 200;
                $result['data'] = $version;
                $result['msg'] = 'success';

                return json_encode($result);
            }else{
                
                $result['ret'] = 0;
                $result['data'] = '';
                $result['msg'] = '当前已是最新版本';

                return json_encode($result);
            }
        }else{

            $version = db('android')->where(array('version'=>input('get.versionCode'),'flag'=>input('get.flag')))->select();

            if($version){
                $str = "http://xt03.colorcun.com".$version['0']['file_url'];
                $version[0]['file_url'] = $str;
                $result['ret'] = 200;
                $result['data'] = $version;
                $result['msg'] = 'success';
                return json_encode($result);
            }else{
                $result['ret'] = 0;
                $result['data'] = '';
                $result['msg'] = '当前已是最新版本';
                return json_encode($result);
            }
            //非灰度用户
            /*$flag = input('get.flag') ? input('get.flag') : 1;
            $list = db('android')->where(array('flag'=>$flag))->select();
            if(isset($list)){
                foreach ($list as $key => $value) {
                    $array[] = $value['version'];
                }
            }
            if(isset($array)){
                $newarray = array();
                foreach ($array as  $value) {
                    $newarray[] = explode('.',$value);
                }
                $max = $newarray[0][0];
                foreach ($newarray as  $v){
                        if($v[0]>$max){
                            $max = $v[0];
                        }
                }
                foreach ($newarray as $k=> $vl){
                    if($vl[0] != $max){
                        unset($newarray[$k]);
                    }
                }
                $max = $newarray[0][1];
                foreach ($newarray as  $v){
                        if($v[1]>$max){
                            $max = $v[1];
                        }
                }
                foreach ($newarray as $k=> $vl){
                    if($vl[1] != $max){
                        unset($newarray[$k]);
                    }
                }
                $max = $newarray[0][2];
                foreach ($newarray as $k=> $v){
                        if($v[2]>$max){
                            $max = $v[2];
                        }
                }
                foreach ($newarray as $k=> $vl){
                    if($vl[2] != $max){
                        unset($newarray[$k]);
                    }
                }

                foreach ($newarray as  $ve) {
                    $ay = implode('.',$ve);
                }
            }
            $version = db('android')->where(array('version'=>$ay,'flag'=>$flag))->select();
            if($version){
                $str = "http://xt03.colorcun.com".$version['0']['file_url'];
                $version[0]['file_url'] = $str;
                $result['ret'] = 200;
                $result['data'] = $version;
                $result['msg'] = 'success';
                return json_encode($result);
            }else{
                $result['ret'] = 0;
                $result['data'] = '';
                $result['msg'] = 'fail';
                return json_encode($result);
            }*/
        }
    }

    //获取最新版本
    public function getpatch() {
        $hash_str = input('get.hash') ? input('get.hash') : '';
        $hash_str = db('patch')->where(array('hash_str'=>$hash_str))->order('id desc')->limit(1)->select();
        //echo db::table('patch')->getLastSql();die;
        if($hash_str){
            $str = "http://xt03.colorcun.com".$hash_str[0]['file_url'];
            $result['ret'] = 200;
            $result['data']['name'] = $hash_str[0]['name'];
            $result['data']['hash_str'] = $hash_str[0]['hash_str'];
            $result['data']['file_url'] = $str;
            $result['msg'] = 'success';
            return json_encode($result);
        }else{
            $result['ret'] = 0;
            $result['data'] = '';
            $result['msg'] = 'fail';
            return json_encode($result);
        }
    }

    //获取灰度更新时间
    public function getdotime() {
        $result = array();
        $dotime = db('dotime')->select();
        foreach ($dotime as $key => $value) {
            $dotime[$key]['dtime'] = date("H:i",$value['dtime']);
        }
        $str = implode(',', array_column($dotime, 'dtime'));
        //echo db::table('dotime')->getLastSql();die;
        if($str){
            $result['ret'] = 200;
            $result['data'] = $str;
            $result['msg'] = 'success';
        }else{
            $result['ret'] = 0;
            $result['data'] = '';
            $result['msg'] = 'fail';
        }
        return json_encode($result);
    }
}