<?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' ){ $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; } }