123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- <?php
- namespace app\common\logic;
- /**
-
- *
-
- *
- * ----------------------------------------------------------------------------
- *
-
- * 逻辑层模型
- */
- class Connectapi
- {
- public function smsRegister($phone, $captcha, $password, $client, $inviter_id = 0)
- {
- if ($this->check_captcha($phone, $captcha)) {
- if (config('ds_config.sms_register') != 1) {
- return array('state' => 0, 'msg' => '系统没有开启手机注册功能');
- }
- $member_model = model('member');
- $member_name = 'phone_' . random(10);
- $member = $member_model->getMemberInfo(array('member_name' => $member_name)); //检查重名
- if (!empty($member)) {
- return array('state' => 0, 'msg' => '用户名已被注册');
- }
- $member = $member_model->getMemberInfo(array('member_mobile' => $phone)); //检查手机号是否已被注册
- if (!empty($member)) {
- return array('state' => 0, 'msg' => '手机号已被注册');
- }
- $member = array();
- $member['member_name'] = $member_name;
- $member['member_password'] = $password;
- $member['member_mobile'] = $phone;
- $member['member_email'] = '';
- $member['member_mobilebind'] = 1;
- $member['inviter_id'] = $inviter_id;
- $insert_id = $member_model->addMember($member);
- if ($insert_id) {
- $member_model->addMemberAfter($insert_id, $member);
- $member = $member_model->getMemberInfo(array('member_mobile' => $phone));
- $key = $member_model->getBuyerToken($member['member_id'], $member['member_name'], $client);
- return array('state' => 1, 'username' => $member_name, 'token' => $key, 'info' => $member);
- } else {
- return array('state' => 0, 'msg' => '注册失败', $member);
- }
- }
- }
- /**
- * 手机找回密码
- * @param array $order_info
- * @param string $phone 手机号码
- * @param string $password 密码
- * @return array
- */
- public function smsPassword($phone, $captcha, $password, $client)
- {
- if (config('ds_config.sms_password') != 1) {
- return array('state' => 0, 'msg' => '系统没有开启手机找回密码功能');
- }
- $condition = array();
- $condition[] = array('smslog_phone', '=', $phone);
- $condition[] = array('smslog_captcha', '=', $captcha);
- $condition[] = array('smslog_type', '=', 3);
- $smslog_model = model('smslog');
- $sms_log = $smslog_model->getSmsInfo($condition);
- if (empty($sms_log) || ($sms_log['smslog_smstime'] < TIMESTAMP - 1800)) { //半小时内进行验证为有效
- return array('state' => 0, 'msg' => '动态码错误或已过期,重新输入');
- }
- $member_model = model('member');
- $member = $member_model->getMemberInfo(array('member_mobile' => $phone)); //检查手机号是否已被注册
- if (!empty($member)) {
- $new_password = md5($password);
- $member_model->editMember(array('member_id' => $member['member_id']), array('member_password' => $new_password), $member['member_id']);
- $member_model->createSession($member); //自动登录
- if (!$member['member_state']) {
- return array('state' => 0, 'msg' => lang('login_index_account_stop'));
- }
- $key = $member_model->getBuyerToken($member['member_id'], $member['member_name'], $client);
- return array('state' => 1, 'msg' => '密码修改成功', 'token' => $key, 'info' => $member);
- }
- }
- public function getStateInfo()
- {
- $data['sms_register'] = config('ds_config.sms_register') == 1 ? 1 : 0;
- $data['sms_login'] = config('ds_config.sms_login') == 1 ? 1 : 0;
- $data['sms_password'] = config('ds_config.sms_password') == 1 ? 1 : 0;
- return $data;
- }
- /**
- * 手机验证码验证
- */
- protected function check_captcha($phone, $captcha, $type = '1')
- {
- if (strlen($phone) == 11 && strlen($captcha) == 6) {
- $condition = array();
- $condition[] = array('smslog_phone', '=', $phone);
- $condition[] = array('smslog_captcha', '=', $captcha);
- $condition[] = array('smslog_type', '=', $type);
- $smslog_model = model('smslog');
- $sms_log = $smslog_model->getSmsInfo($condition);
- if (empty($sms_log) || ($sms_log['smslog_smstime'] < TIMESTAMP - 1800)) { //半小时内进行验证为有效
- $state = '动态码错误或已过期,重新输入';
- ds_json_encode('10001', $state);
- }
- return true;
- }
- return false;
- }
- /**
- * 微信注册
- * @param type $reg_info
- * @param type $reg_type 自动注册类型 wx qq sina
- * @return type
- */
- public function wx_register($reg_info, $reg_type)
- {
- $reg_info['nickname'] = isset($reg_info['nickname']) ? $reg_info['nickname'] : '';
- $reg_info['nickname'] = removeEmoji($reg_info['nickname']);
- $member = array();
- $member_model = model('member');
- if ($reg_type == 'wx' && !empty($reg_info['member_wxunionid'])) {
- //如果用户存在.
- $exist_member = $member_model->getMemberInfo(array('member_wxunionid' => $reg_info['member_wxunionid']));
- if (!empty($exist_member)) {
- return $exist_member;
- }
- $member['member_wxunionid'] = $reg_info['member_wxunionid'];
- $member['member_wxopenid'] = $reg_info['member_wxopenid'];
- $member['member_wxinfo'] = serialize($reg_info);
- } elseif ($reg_type == 'qq' && !empty($reg_info['member_qqopenid'])) {
- //如果用户存在.
- $exist_member = $member_model->getMemberInfo(array('member_qqopenid' => $reg_info['member_qqopenid']));
- if (!empty($exist_member)) {
- return $exist_member;
- }
- $member['member_qqopenid'] = $reg_info['member_qqopenid'];
- $member['member_qqinfo'] = serialize($reg_info);
- } elseif ($reg_type == 'sina' && !empty($reg_info['member_sinaopenid'])) {
- //如果用户存在.
- $exist_member = $member_model->getMemberInfo(array('member_sinaopenid' => $reg_info['member_sinaopenid']));
- if (!empty($exist_member)) {
- return $exist_member;
- }
- $member['member_sinaopenid'] = $reg_info['member_sinaopenid'];
- $member['member_sinainfo'] = serialize($reg_info);
- } else {
- return;
- }
- $member['member_password'] = rand(100000, 999999);
- $member['member_email'] = '';
- $member['member_birthday'] = TIMESTAMP;
- $member['member_nickname'] = $reg_info['nickname'];
- if (isset($reg_info['inviter_id'])) {
- $member['inviter_id'] = $reg_info['inviter_id'];
- }
- /*
- $rand = rand(100, 899);
- if (empty($reg_info['nickname']))
- $reg_info['nickname'] = 'name_' . $rand;
- if (strlen($reg_info['nickname']) < 3)
- $reg_info['nickname'] = $reg_info['nickname'] . $rand;
- $member_name = $reg_info['nickname'];
- */
- $member_name = $reg_type . '_' . random(10);
- $member_info = $member_model->getMemberInfo(array('member_name' => $member_name));
- if (empty($member_info)) {
- $member['member_name'] = $member_name;
- $insert_id = $member_model->addMember($member);
- $member_info = $member_model->getMemberInfo(array('member_name' => $member_name));
- } else {
- for ($i = 1; $i < 999; $i++) {
- /*
- $rand += $i;
- $member_name = $reg_info['nickname'] . $rand;
- */
- $member_name = $reg_type . '_' . random(10);
- $member_info = $member_model->getMemberInfo(array('member_name' => $member_name));
- if (empty($member_info)) { //查询为空表示当前会员名可用
- $member['member_name'] = $member_name;
- $insert_id = $member_model->addMember($member);
- break;
- }
- }
- }
- if ($insert_id) {
- $member_model->addMemberAfter($insert_id, $member_info);
- if (0 && isset($reg_info['headimgurl'])) { #提高体验暂时不对图片进行处理
- $headimgurl = $reg_info['headimgurl'];
- $avatar = @copy($headimgurl, BASE_UPLOAD_PATH . '/' . ATTACH_AVATAR . "/avatar_$insert_id.jpg");
- if ($avatar) {
- $member_model->editMember(array('member_id' => $insert_id), array('member_avatar' => "avatar_$insert_id.jpg"), $insert_id);
- }
- }
- $member = $member_model->getMemberInfo(array('member_id' => $insert_id));
- return $member;
- }
- }
- }
|