colly_wyx
2018-04-28 d50ec1d43fd3b57305425d38ecc7c84f201e74cf
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<?php
/**
 * 用户信息类
 */
 
class Api_User extends PhalApi_Api {
 
    public function getRules() {
        return array(
            'register' => array(
                'phone' => array('name' => 'phone', 'type' => 'string', 'require' => true, 'desc' => '用户电话'),
                'password' => array('name' => 'password', 'type' => 'string', 'require' => true, 'desc' => '密码'),
                'code' => array('name' => 'code', 'type' => 'string', 'require' => true, 'desc' => '注册验证码'),
            ),
            'login' => array(
                'phone' => array('name' => 'phone', 'type' => 'string', 'require' => true, 'desc' => '用户电话'),
                'password' => array('name' => 'password', 'type' => 'string', 'require' => true, 'desc' => '密码'),
            ),
            'getUserInfo' => array(
                'phone' => array('name' => 'phone', 'type' => 'string', 'require' => true, 'desc' => '用户电话'),
            ),
            'resetPwd' => array(
                'phone' => array('name' => 'phone', 'type' => 'string', 'require' => true, 'desc' => '用户电话'),
                'password' => array('name' => 'password', 'type' => 'string', 'require' => true, 'desc' => '密码'),
                'code' => array('name' => 'code', 'type' => 'string', 'require' => true, 'desc' => '重置密码验证码'),
            ),
            'updateUserInfo' => array(
                'user_id' => array('name' => 'user_id', 'type' => 'string', 'require' => true, 'desc' => '用户id'),
                'field' => array('name' => 'field', 'type' => 'string', 'require' => true, 'desc' => '更新字段'),
                'value' => array('name' => 'value', 'type' => 'string', 'require' => true, 'desc' => '数值'),
            )
        );
    }
 
    /**
     * 用户注册
     * @desc 用于用户注册
     * @return bool code 操作码,0表示注册成功, 1表示注册
     * @return string msg 返回提示
     */
    public function register(){
        $rs = array('code' => 0, 'msg' => '');
        $user_service = new Domain_User();
        if($user_service->checkPhone($this->phone)){
            $sms_service = new Domain_SmsCode();
            $result = $sms_service->checkSmsCode($this->phone, $this->code, 'register');
            if($result == 0){
                $data['phone'] = $this->phone;
                $data['encrypt'] = Common_Util::random(8);
                $data['password'] = md5(md5($this->password).$data['encrypt']);
                $data['nickname'] = $this->phone;
                $data['refresh_frequency'] = 5;
                $data['is_open_upload'] = 1;
                $data['video'] = 1;
                $data['create_time'] = date('Y-m-d H:i:s');
                $data['edit_time'] = $data['create_time'];
                $data['is_lock'] = 0;
                $data['role'] = '596f23ab9e74bb85388b4567';
                if($user_service->register($data)){        
                    $rs['msg'] = '用户注册成功';
                }
                else{
                    $rs['code'] = 1;
                    $rs['msg'] = '注册失败'; 
                }
            }
            elseif($result == 1){
                $rs['code'] = 1;
                $rs['msg'] = '手机验证码已失效或已经使用过了,请重新获取验证码';
            }
            elseif($result == 2){
                $rs['code'] = 1;
                $rs['msg'] = '手机验证码错误';
            }
            else{
                $rs['code'] = 1;
                $rs['msg'] = '验证码不存在,请重新获取验证码';
            }
        }
        else{
            $rs['code'] = 1;
            $rs['msg'] = '注册手机已存在'; 
        }
        return $rs;
    }
 
    /**
     * 用户登录
     * @desc 用于用户登录验证
     * @return bool code 操作码,0表示登录成功, 1表示登录失败
     * @return string msg 返回提示
     */
    public function login(){
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
        $user_service = new Domain_User();
        if(!$user_service->checkPhone($this->phone) && $user_service->checkUserStatus($this->phone)){
            if($user_service->login($this->phone, $this->password)){
                $rs['msg'] = '登录验证成功';
                $rs['info'] = $user_service->getUserInfoByPhone($this->phone);
            }
            else{
                $rs['code'] = 1;
                $rs['msg'] = '用户手机错误或者密码错误'; 
            }
        }
        else{
            $rs['code'] = 1;
            $rs['msg'] = '用户手机不存在或已被禁用';
        }
        return $rs;
    }
 
    /**
     * 获取用户信息
     * @desc 获取单个用户记录
     * @return bool code 操作码,0表示成功, 1表示失败
     * @return string msg 返回提示
     * @return object info 用户信息对象
     * @return string info._id 用户id
     * @return string info.phone 手机号码
     * @return string info.encypt 随机码
     * @return string info.password 密码
     * @return string info.nickname 用户昵称
     * @return string info.refresh_frequency 刷新频率
     * @return string info.is_open_upload 是否开启上传
     * @return string info.is_lock 是否被锁定,0表示未锁定,1表示锁定
     */
    public function getUserInfo(){
        $rs = array('code' => 0, 'msg' => '', 'info' => array());
        $user_service = new Domain_User();
        $user = $user_service->getUserInfoByPhone($this->phone);
 
        if ($user) {
            $rs['code'] = 0;
            $rs['msg'] = '用户信息获取成功';
            $rs['info'] = $user;
        }
        else{
            $rs['code'] = 1;
            $rs['msg'] = '用户信息不存在';
        }
 
        return $rs;
    }
 
    /**
     * 重置密码
     * @desc 重置密码
     * @return bool code 操作码,0表示成功, 1表示失败
     * @return string msg 返回提示
     */
    public function resetPwd(){
        $rs = array('code' => 0, 'msg' => ''); 
        $sms_service = new Domain_SmsCode();
        $result = $sms_service->checkSmsCode($this->phone, $this->code, 'resetPwd');
        if($result == 0){
            $user_service = new Domain_User();
            $result = $user_service->resetPwd($this->phone, $this->password);
            if($result == 0){
                $rs['msg'] = '密码重置成功';
            }
            elseif($result == 1){
                $rs['code'] = 1;
                $rs['msg'] = '用户不存在或已禁用';
            }
            else{
                $rs['code'] = 1;
                $rs['msg'] = '密码重置失败';
            }
        } 
        elseif($result == 1){
            $rs['code'] = 1;
            $rs['msg'] = '手机验证码已失效或已经使用过了,请重新获取验证码';
        }
        elseif($result == 2){
            $rs['code'] = 1;
            $rs['msg'] = '手机验证码错误';
        }
        else{
            $rs['code'] = 1;
            $rs['msg'] = '验证码不存在,请重新获取验证码';
        }
        return $rs;
    }
 
    /**
     * 用户信息更新
     * @desc 用户信息更新
     * @return string user_id 用户id
     * @return string field 字段名称,目前仅支持修改['refresh_frequency', 'video', 'is_open_upload']
     * @return string value 数值
     */
    public function updateUserInfo(){
        $rs = array('code' => 0, 'msg' => ''); 
        $promit_field = array('refresh_frequency', 'video', 'is_open_upload');
        if(in_array($this->field, $promit_field)){
            $user_service = new Domain_User();
            $data[$this->field] = $this->value;
            $data['_id'] = $this->user_id;
            $result = $user_service->updateUserInfo($data);
            if($result == 0){
                $rs['msg'] = '用户信息更新成功';
            }
            elseif($result == 1){
                $rs['code'] = 1;
                $rs['msg'] = '用户信息更新失败';
            }
            elseif($result == 2){
                $rs['code'] = 1;
                $rs['msg'] = '用户信息不能存在或已被锁定';
            }
            else{
                $rs['code'] = 1;
                $rs['msg'] = '用户id不可为空';
            }
        }
        else{
            $rs['code'] = 1;
            $rs['msg'] = '非法的更新字段';
        }
        return $rs;
    }
 
}