CommonController.php 5.5 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{
//            $someGet[''];
            $url = explode('/',$_SERVER['PATH_INFO']);
            $count_url = count($url);
            $fun = $url[$count_url-1];
            if($fun == 'join' || $fun == 'login' || $fun == 'upload_one' || $fun == 'index' || $url[1] == 'Article' ){
                $connect = 1;
            }else{
                $connect = 2;
            }
        }
        if($connect == 2){
            $where_firstMember['token'] = $this->request->param('token');
            $firstMember = Db::name('Member')->where($where_firstMember)->field('id,update_time,status')->find();
            if($firstMember){
                if($firstMember['status'] == 9){
                    $this->apiResponse('0','您已被拉黑,请联系管理员');
                }else{
                    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('-1','暂未注册');
            }
        }

    }

    /**
     *  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);
        $mes = $sendResult->Message;
        if($mes != 'OK'){
            $this->apiResponse('0',$mes);
        }
        $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','注册失败');
        }else{
            $this->apiResponse('1','获取成功');
        }
    }


//    用户登录
    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;
    }

//    费用单位处理
    public  function getStr($numb){
        $split = str_split($numb);
        $count = count($split);
        $middle_str = '';
        if($count > 5){
            foreach ($split as $spk=>$spv){
                if($spk < ($count-4)){
                    $middle_str .= $spv;
                }
            }
            $resStr = $middle_str.'-万元';
        }else{
            $resStr = $numb.'-元';
        }
        return $resStr;
    }

}