colly
2017-07-29 737ea98505a874a833eaa9f7ccbb337c5cd8ec11
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
<?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' => '用户电话'),
            ),
        );
    }
 
    /**
     * 用户注册
     * @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;
    }
 
}