CommonController.php 4.3 KB
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 老猫 <thinkcmf@126.com>
// +----------------------------------------------------------------------
namespace api\portal\controller;

use cmf\controller\HomeBaseController;
use think\Db;
use think\Request;
use think\Loader;
use SmsDemo;
use api\portal\model\CodeModel;

class CommonController extends HomeBaseController
{
//    connect   1 登录注册 ,2其他
    public function _initialize()
    {
        if($this->request->param('connect')){
            $connect = $this->request->param('connect');
        }else{
            $connect = 2;
        }
        if($connect == 2){
            $where_firstMember['token'] = $this->request->param('token');
            $firstMember = Db::name('Member')->where($where_firstMember)->field('id,update_time')->find();
            if($firstMember){
                if(($firstMember['update_time']+604800) < time() ){
                    $firstStr = rand(1000,9999).time().rand(100,999);
                    $firstData['token'] = $this->md5($firstStr);
                    $firstData['update_time'] = time();
                    $firstData['status'] = 1;
                    $firstLogin = Db::name('Member')->where($where_firstMember)->update($firstData);
                    if($firstLogin){
                        $this->apiResponse('0','请重新登录');
                    }else{
                        $this->apiResponse('0','token重置失败');
                    }
                }
            }else{
                $this->apiResponse('0','暂未注册');
            }
        }

    }
    /**
     *  API返回信息格式函数 ;0失败,1成功,-1需要登录
     * @param string $code
     * @param string $message
     * @param array $data
     */
    public function apiResponse($code = '0', $message = '',$data = array(),$nums =0){
        header('Access-Control-Allow-Origin: *');
        header('Content-Type:application/json; charset=utf-8');
        $result = array(
            'code'=>$code,
            'message'=>$message,
            'data'=>$data,
            'nums'=>''.$nums
        );
        die(json_encode($result,JSON_UNESCAPED_UNICODE));
    }

//    加密
     public function md5($number){
        $final = sha1(md5($number));
        return $final;
     }

//  短信验证码
    public function sendLogin($tel,$code,$modelVal){
        require_once VENDOR_PATH."aliyun-dysms-php-sdk/api_demo/SmsDemo.php";
        set_time_limit(0);
        header('Content-Type: text/plain; charset=utf-8');
        $response = SmsDemo::sendSms($tel,$code,$modelVal);
        return $response;
    }
//    发送验证码
//      $tel 手机号
//      $code 短信模板
//      $type 类型
    public function SmsResult($tel,$code,$type){
//        $tel = $request->param('tel');
//        $code = 'SMS_137416617';
        $modelVal = rand(1000,9999);
        $sendResult = $this->sendLogin($tel,$code,$modelVal);
        $add_code['tel'] = $tel;
        $add_code['code'] = $modelVal;
        $add_code['type'] = $type;
        $model_code  = new CodeModel();
        $save_code = $model_code->save($add_code);
        if(!$save_code){
            $this->apiResponse('0','验证码获取失败');
        }
        if(($sendResult->Code) != 'OK'){
            $this->apiResponse('0','注册失败');
        }
    }


//    用户登录
    public function isLogin(){
        if($_SESSION['user_id']){
            $where_firstLogin['id'] = $_SESSION['user_id'];
            $firstMember = Db::name('Member')->where($where_firstLogin)->find();
            if($firstMember['update_time'] >= (time()+604800) ){
                $this->apiResponse('0','请先登录');
            }
        }else{
            $this->apiResponse('0','请先登录');
        }
    }

//    生成订单随机数
    public function getmath(){
        $return = rand(1000,9999).time().rand(1000,9999);
        return $return;
    }

}