Commit 70aecae6 authored by clone's avatar clone

微信登录

parent 11904b34
......@@ -62,7 +62,7 @@ class Register extends Basic
"device_id" => "1111",
"code" => 1231,
"wx_union_id" => "1111111111", //false
"referrer_id" => 1, //邀请人id 经纪人or客户
"referrer_id" => 1, //邀请人id 经纪人or客户 也用于判断是否是分享出去的请求
"referrer_source" => 20, //false
);
$checkResult = $this->validate($params, "RegisterValidate.register");
......@@ -74,11 +74,12 @@ class Register extends Basic
return $this->response("101", "验证码错误");
}
$phone = $params["phone"];
$wx_union_id = $params["wx_union_id"];
$referrer_id = $params["referrer_id"];
$referrer_source = $params["referrer_source"];
$wx_union_id = !empty($params["wx_union_id"]) ? $params["wx_union_id"] : null;
$referrer_id = !empty($params["referrer_id"]) ? $params["referrer_id"] : 0;
$referrer_source = !empty($params["referrer_source"]) ? $params["referrer_source"] : 0;
$last_login_ip = ip2long($this->request->ip());
$this->service_->userRegister($phone, $referrer_id, $referrer_source, $wx_union_id);
$this->service_->userRegister($phone, $referrer_id, $referrer_source, $wx_union_id,$last_login_ip);
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@
namespace app\api\service;
use app\model\Users;
use app\model\UWxInfo;
/**
* Created by PhpStorm.
......@@ -15,34 +16,108 @@ class RegisterService
{
private $userModel;
private $wxInfoModel;
public function __construct()
{
$this->userModel = new Users();
$this->userModel = new Users();
$this->wxInfoModel = new UWxInfo();
}
public function userRegister($phone, $referrer_id, $referrer_source, $wx_union_id)
public function userRegister($phone, $referrer_id, $referrer_source, $wx_union_id, $last_login_ip)
{
//todo 1.判断是否有此用户,包涵未激活或者冻结, 2.无此用户则注册,返回AuthToken ,3有则登录返回AuthToken
//判断用户是否注册
$conditions["user_phone"] = $phone;
$fields = "id,user_nick,user_pic,sex,agent_id,referrer_id,referrer_source,user_phone,status";
$user_info = $this->userModel->getUserByWhere($conditions, $fields);
$user_nick = "";
$sex = 0;
$id = 0;
$status = 0;
$agent_id = 0;
$fields = "id,agent_id,referrer_id,referrer_source,user_phone,status";
$user_info = $this->userModel->getUserByWhere($conditions, $fields);
if (count($user_info) > 0) {
switch ($user_info[0]["status"]) {
switch ((int)$user_info[0]["status"]) {
case -1://激活
$status = 0;
break;
case 0: //修改 绑定的微信
case 0: //正常
if ($referrer_id > 0)
return '该账号已注册激活';
break;
case 1:
return '该账号已被冻结';
case 2://删除的账号该状态
$status = 0;
default:
break;
return '改帐号异常';
}
$user_nick = $user_info[0]["user_nick"];
$sex = $user_info[0]["sex"];
$agent_id = $user_info[0]["agent_id"];
} else {
//注册+绑定
$status = 0;
}
// 验证union_id是否已经存在,
if ($wx_union_id) {
$field = "id,wx_union_id,buyer_nick,buyer_img,sex";
$wxInfoArr = $this->wxInfoModel->getWxInfoByOpenId($wx_union_id, $field);
if (count($wxInfoArr) > 0) {
$user_nick = !empty($user_nick) ? $user_nick : $wxInfoArr[0]["buyer_nick"];
$sex = !empty($sex) ? $sex : $wxInfoArr[0]["sex"];
} else {
return '没有找到授权信息';
}
}
//判断邀请关系 if邀请人是用户的话则此客户的盘方修改为邀请人的盘方
if ($referrer_source == 10) { //会员邀请
//查找邀请人的信息
$field_referrer = 'id,agent_id,referrer_id,referrer_source';
$referrerArr = $this->userModel->getUserByWhere([ "id" => $referrer_id ], $field_referrer);
if (count($referrerArr) <= 0) {
return '邀请人不存在';
}
//邀请人是经纪人直接邀请的,之前关系只存在一级,所以客方也是此经纪人
if ($referrerArr[0]['referrer_source'] == 20) {
$agent_id = $referrerArr[0]['agent_id'];
} else {//邀请人是用户邀请的,判断此用户的邀请人和客房是否存在
$upParams["referrer_id"] = $referrer_id;
$upParams["agent_id"] = $referrerArr[0]['agent_id'];
$upReferrerArr = $this->userModel->getUserByWhere($upParams, "id");
if (count($upReferrerArr) <= 0) {
$agent_id = $referrerArr[0]['agent_id'];
}
}
}
//绑定微信
}
private function inviteRelationship($referrer_id, $referrer_source)
{
}
public function userBin($last_login_ip, $is_share)
{
$userParams["update_time"] = date("Y-m-d H:i:s", time());
$userParams["update_time"] = date("Y-m-d H:i:s", time());
$userParams["registration_time"] = date("Y-m-d H:i:s", time());
//分享出去激活的不记录登录时间和ip
if ($is_share == 0) {
$userParams["last_login_ip"] = $last_login_ip;
$userParams["last_login_time"] = date("Y-m-d H:i:s", time());
}
}
}
\ No newline at end of file
......@@ -15,6 +15,7 @@ class RegisterValidate extends Validate
{
protected $rule = [
'wx_union_id' => 'require|length:10,50',
'is_share' => 'require|number',
'code' => 'require|number',
'device_id' => 'require',
'phone' => [ 'regex' => '/^((13[0-9])|(14[0-9])|(15[0-9])|(18[0-9])|(16[0-9])|(17[0-9])|(19[0-9]))\\d{8}$/i' ],
......@@ -27,10 +28,12 @@ class RegisterValidate extends Validate
'device_id.require' => '设备id不能为空',
'code.require' => 'code为必填字段',
'code.number' => 'code只能为数字',
'is_share.require' => 'is_share为必填字段',
'is_share.number' => 'is_share只能为数字',
];
protected $scene = [
'verify' => [ 'phone,device_id' ],
'register' => [ 'phone,device_id,code,wx_union_id' ],
'register' => [ 'phone,device_id,code,wx_union_id,is_share' ],
];
}
\ No newline at end of file
......@@ -64,14 +64,15 @@ class UWxInfo extends Model
/**
* 根据微信open_id获取id
* @param string $open_id
* @param string $field
* @return false|\PDOStatement|string|\think\Collection
*/
public function getWxInfoByOpenId(string $open_id)
public function getWxInfoByOpenId(string $open_id , string $field = "id")
{
$where_["wx_union_id"] = $open_id;
$where_["is_del"] = 0;
return $this
->field("id")
->field($field)
->where($where_)
->select();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment