CommonController.php
4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?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;
}
}