Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
my-yaf-project
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenchuanwen
my-yaf-project
Commits
81c5a8f0
Commit
81c5a8f0
authored
Aug 31, 2018
by
liuyuzhen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
登录注册相关修改
parent
10ee6f3c
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
80 additions
and
15 deletions
+80
-15
MemberService.php
application/models/Business/User/MemberService.php
+67
-9
Member.php
application/models/DAO/Member.php
+3
-0
CodeConfig.php
application/models/Error/CodeConfig.php
+5
-1
wechatAppAuth.php
public/test/thirdplatform/wechatAppAuth.php
+1
-1
login.php
public/test/user/login.php
+1
-1
loginWithWechatInfo.php
public/test/user/loginWithWechatInfo.php
+3
-3
No files found.
application/models/Business/User/MemberService.php
View file @
81c5a8f0
...
@@ -441,7 +441,7 @@ class MemberServiceModel extends \Business\AbstractModel
...
@@ -441,7 +441,7 @@ class MemberServiceModel extends \Business\AbstractModel
}
}
public
function
saveOtherMemberInfo
(
$where
,
$memberId
){
public
function
saveOtherMemberInfo
(
$where
,
$memberId
,
$saveDeviceFlag
=
false
){
//第二步保存扫码会员信息
//第二步保存扫码会员信息
$result
=
$this
->
saveStoreMembers
(
$memberId
);
$result
=
$this
->
saveStoreMembers
(
$memberId
);
if
(
!
$result
){
if
(
!
$result
){
...
@@ -449,9 +449,11 @@ class MemberServiceModel extends \Business\AbstractModel
...
@@ -449,9 +449,11 @@ class MemberServiceModel extends \Business\AbstractModel
}
}
//第三步保存用户设备识别信息
//第三步保存用户设备识别信息
$memberDeviceResult
=
$this
->
saveRegisterDeviceInfo
(
$where
,
$memberId
);
if
(
!
$saveDeviceFlag
){
if
(
!
$memberDeviceResult
){
$memberDeviceResult
=
$this
->
saveRegisterDeviceInfo
(
$where
,
$memberId
);
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
saveMemberDeviceInfoFailed
);
if
(
!
$memberDeviceResult
){
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
saveMemberDeviceInfoFailed
);
}
}
}
...
@@ -497,15 +499,20 @@ class MemberServiceModel extends \Business\AbstractModel
...
@@ -497,15 +499,20 @@ class MemberServiceModel extends \Business\AbstractModel
//开始事务
//开始事务
$db
->
doTransaction
();
$db
->
doTransaction
();
$saveDeviceFlag
=
true
;
$memberId
=
$this
->
checkMemberMappingExist
(
$where
);
//检查登录的用户是否授权从其他第三方登录
if
(
!
$memberId
){
$saveDeviceFlag
=
false
;
$memberId
=
$this
->
saveRegisterMemberInfo
(
$where
);
}
//保存用户信息
//保存用户信息
$memberId
=
$this
->
saveRegisterMemberInfo
(
$where
);
if
(
!
$memberId
){
if
(
!
$memberId
){
$db
->
doRollback
();
$db
->
doRollback
();
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
addMemberInfoFailed
);
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
addMemberInfoFailed
);
}
}
//保存用户其他相关信息
//保存用户其他相关信息
$this
->
saveOtherMemberInfo
(
$where
,
$memberId
);
$this
->
saveOtherMemberInfo
(
$where
,
$memberId
,
$saveDeviceFlag
);
$db
->
doCommit
();
$db
->
doCommit
();
...
@@ -520,6 +527,38 @@ class MemberServiceModel extends \Business\AbstractModel
...
@@ -520,6 +527,38 @@ class MemberServiceModel extends \Business\AbstractModel
}
}
/**
* 注册时检查当前用户是否第三方授权,以及三方授权是否已经存在对应用户
*/
public
function
checkMemberMappingExist
(
$where
){
$authInfo
=
$this
->
memberDb0Redis
->
find
(
\Our\NameConst
::
authInfoPrefix
.
$where
[
'key'
]);
if
(
!
$authInfo
){
return
false
;
}
$memberMappingDao
=
\DAO\MemberMappingModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
$memberMapping
=
$memberMappingDao
->
find
(
array
(
'openid'
=>
$authInfo
[
'openid'
]));
if
(
!
$memberMapping
){
return
false
;
}
$memberDao
=
\DAO\MemberModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
$existMember
=
$memberDao
->
find
(
$memberMapping
[
'member_id'
]);
if
(
!
$existMember
){
$memberMappingDao
->
del
(
array
(
'id'
=>
$memberMapping
[
'id'
]));
return
false
;
}
if
(
$existMember
[
'member_mobile'
]
&&
$existMember
[
'member_mobile_bind'
]){
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
registerMemberInfoFailed
);
}
$member
[
'member_mobile'
]
=
$where
[
'mobile'
];
$member
[
'member_mobile_bind'
]
=
\Our\ApiConst
::
one
;
$member
[
'member_passwd'
]
=
md5
(
$where
[
'password'
]);
$updateMemberResult
=
$memberDao
->
saveInfo
(
$member
,
$memberMapping
[
'member_id'
]);
if
(
!
$updateMemberResult
){
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
authMemberExistMobile
);
}
return
$memberMapping
[
'member_id'
];
}
public
function
cancelBinding
(
$data
,
$memberId
){
public
function
cancelBinding
(
$data
,
$memberId
){
$memberMappingDao
=
\DAO\MemberMappingModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
$memberMappingDao
=
\DAO\MemberMappingModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
$memberMappingDao
->
validCancelMapping
(
$data
,
$memberId
);
$memberMappingDao
->
validCancelMapping
(
$data
,
$memberId
);
...
@@ -653,9 +692,12 @@ class MemberServiceModel extends \Business\AbstractModel
...
@@ -653,9 +692,12 @@ class MemberServiceModel extends \Business\AbstractModel
$memberMappingDao
=
\DAO\MemberMappingModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
$memberMappingDao
=
\DAO\MemberMappingModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
if
(
$where
[
'userType'
]
==
\Our\ApiConst
::
wechatUserType
){
if
(
$where
[
'userType'
]
==
\Our\ApiConst
::
wechatUserType
){
$condition
[
'openid'
]
=
$this
->
getUnionId
(
$where
[
'encryptedData'
],
$where
[
'iv'
],
$where
[
'session_key'
]);
$condition
[
'openid'
]
=
$this
->
getUnionId
(
$where
[
'encryptedData'
],
$where
[
'iv'
],
$where
[
'session_key'
]);
$condition
[
'user_type'
]
=
array
(
'in'
,
array
(
\Our\ApiConst
::
wechatUserType
,
\Our\ApiConst
::
userFromWx
));
}
else
{
}
else
{
$condition
[
'openid'
]
=
$where
[
'openid'
];
$condition
[
'openid'
]
=
$where
[
'openid'
];
}
if
(
$where
[
'userType'
]
==
\Our\ApiConst
::
wechatUserType
||
$where
[
'userType'
]
==
\Our\ApiConst
::
userFromWx
){
$condition
[
'user_type'
]
=
array
(
'in'
,
array
(
\Our\ApiConst
::
wechatUserType
,
\Our\ApiConst
::
userFromWx
));
}
else
{
$condition
[
'user_type'
]
=
$where
[
'userType'
];
$condition
[
'user_type'
]
=
$where
[
'userType'
];
}
}
$memberMappings
=
$memberMappingDao
->
getList
(
$condition
,
'member_id'
);
$memberMappings
=
$memberMappingDao
->
getList
(
$condition
,
'member_id'
);
...
@@ -664,14 +706,30 @@ class MemberServiceModel extends \Business\AbstractModel
...
@@ -664,14 +706,30 @@ class MemberServiceModel extends \Business\AbstractModel
$memberIds
=
array_column
(
$memberMappings
,
'member_id'
);
$memberIds
=
array_column
(
$memberMappings
,
'member_id'
);
$member
=
$memberDao
->
getMemberForLogin
(
$memberIds
);
$member
=
$memberDao
->
getMemberForLogin
(
$memberIds
);
if
(
$where
[
'userType'
]
==
\Our\ApiConst
::
wechatUserType
){
if
(
$where
[
'userType'
]
==
\Our\ApiConst
::
wechatUserType
){
$this
->
checkMemberMappingExist
(
$member
[
'member_id'
],
$condition
[
'openid'
]
,
$where
[
'userType'
]);
$this
->
checkMemberMappingExistLogin
(
$member
[
'member_id'
],
$condition
[
'openid'
]
,
$where
[
'userType'
]);
}
if
(
$where
[
'userType'
]
==
\Our\ApiConst
::
userFromWx
){
//如果当前openid存在对应的小程序码但是对应用户并没有绑定手机号码时 ,也需要绑定手机号码
if
(
$member
[
'member_mobile'
]
&&
$member
[
'member_mobile_bind'
]){
$this
->
checkMemberMappingExistLogin
(
$member
[
'member_id'
],
$condition
[
'openid'
]
,
$where
[
'userType'
]);
}
else
{
return
false
;
}
}
}
return
$member
;
return
$member
;
}
}
return
false
;
return
false
;
}
}
public
function
checkMemberMappingExist
(
$memberId
,
$openid
,
$userType
){
/**
* 小程序登录时检测当前openid(实际上存储的是unionid)是否存在对应的对应的手机账号,存在则直接登录,并且检查是否有对应记录,有直接写入,没有则不写入
* @param $memberId
* @param $openid
* @param $userType
* @return bool
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public
function
checkMemberMappingExistLogin
(
$memberId
,
$openid
,
$userType
){
$memberMappingDao
=
\DAO\MemberMappingModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
$memberMappingDao
=
\DAO\MemberMappingModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
$condition
[
'member_id'
]
=
$memberId
;
$condition
[
'member_id'
]
=
$memberId
;
$condition
[
'openid'
]
=
$openid
;
$condition
[
'openid'
]
=
$openid
;
...
...
application/models/DAO/Member.php
View file @
81c5a8f0
...
@@ -108,6 +108,9 @@ class MemberModel extends \DAO\AbstractModel
...
@@ -108,6 +108,9 @@ class MemberModel extends \DAO\AbstractModel
$memberAvatarUrl
=
$this
->
getMemberAvatarUrl
(
$memberId
,
$member
[
'member_avatar'
]);
$memberAvatarUrl
=
$this
->
getMemberAvatarUrl
(
$memberId
,
$member
[
'member_avatar'
]);
$member
[
'memberAvatarUrl'
]
=
$memberAvatarUrl
;
$member
[
'memberAvatarUrl'
]
=
$memberAvatarUrl
;
}
}
if
(
isset
(
$member
[
'member_passwd'
])
&&
$member
[
'member_passwd'
]){
unset
(
$member
[
'member_passwd'
]);
}
$memberDb0Redis
->
tableHMSet
(
$memberId
,
$member
);
$memberDb0Redis
->
tableHMSet
(
$memberId
,
$member
);
}
}
return
$result
;
return
$result
;
...
...
application/models/Error/CodeConfig.php
View file @
81c5a8f0
...
@@ -94,6 +94,8 @@ class CodeConfigModel {
...
@@ -94,6 +94,8 @@ class CodeConfigModel {
const
writeLogFailed
=
10107
;
const
writeLogFailed
=
10107
;
const
wrongTimeForReadLog
=
10108
;
const
wrongTimeForReadLog
=
10108
;
const
saveUserMappingFailed
=
10109
;
const
saveUserMappingFailed
=
10109
;
const
registerMemberInfoFailed
=
10110
;
const
authMemberExistMobile
=
10111
;
//访问错误
//访问错误
const
illegalAccess
=
200001
;
const
illegalAccess
=
200001
;
...
@@ -754,7 +756,9 @@ class CodeConfigModel {
...
@@ -754,7 +756,9 @@ class CodeConfigModel {
self
::
emptyLog
=>
'日志内容不能为空'
,
self
::
emptyLog
=>
'日志内容不能为空'
,
self
::
writeLogFailed
=>
'日志写入失败'
,
self
::
writeLogFailed
=>
'日志写入失败'
,
self
::
wrongTimeForReadLog
=>
'读日志时写入时间段查询开始时间不能大于结束时间'
,
self
::
wrongTimeForReadLog
=>
'读日志时写入时间段查询开始时间不能大于结束时间'
,
self
::
saveUserMappingFailed
=>
'保存用户关联关系失败'
self
::
saveUserMappingFailed
=>
'保存用户关联关系失败'
,
self
::
registerMemberInfoFailed
=>
'注册更新用户信息失败'
,
self
::
authMemberExistMobile
=>
'该授权用户已经绑定手机号码'
);
);
}
}
...
...
public/test/thirdplatform/wechatAppAuth.php
View file @
81c5a8f0
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
<form
action=
"/thirdplatform/wechatAppAuth"
method=
"post"
>
<form
action=
"/thirdplatform/wechatAppAuth"
method=
"post"
>
key:
<input
name=
"data[key]"
value=
"6a620108735f413ab3e86511ff11ca99"
/><br
/>
key:
<input
name=
"data[key]"
value=
"6a620108735f413ab3e86511ff11ca99"
/><br
/>
用户头像
:
<input
name=
"data[code]"
value=
""
/><br
/>
小程序code
:
<input
name=
"data[code]"
value=
""
/><br
/>
<input
type=
"submit"
value=
"提交"
>
<input
type=
"submit"
value=
"提交"
>
</form>
</form>
</body>
</body>
...
...
public/test/user/login.php
View file @
81c5a8f0
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
<form
action=
"/user/login"
method=
"post"
>
<form
action=
"/user/login"
method=
"post"
>
用户名:
<input
name=
"data[mobile]"
value=
"18305954587"
/><br
/>
用户名:
<input
name=
"data[mobile]"
value=
"18305954587"
/><br
/>
订单id
:
<input
name=
"data[password]"
value=
"123456"
/><br
/>
密码
:
<input
name=
"data[password]"
value=
"123456"
/><br
/>
key:
<input
name=
"data[key]"
value=
"c2e5e7bfce8a727c7fb6f696bcaa23ac"
/><br
/>
key:
<input
name=
"data[key]"
value=
"c2e5e7bfce8a727c7fb6f696bcaa23ac"
/><br
/>
<input
type=
"submit"
value=
"提交"
>
<input
type=
"submit"
value=
"提交"
>
</form>
</form>
...
...
public/test/user/loginWithWechatInfo.php
View file @
81c5a8f0
...
@@ -11,10 +11,10 @@
...
@@ -11,10 +11,10 @@
<form
action=
"/user/loginWithWechatInfo"
method=
"post"
>
<form
action=
"/user/loginWithWechatInfo"
method=
"post"
>
用户头像:
<input
name=
"data[avatar]"
value=
"https://tva3.sinaimg.cn/crop.0.1.1242.1242.180/4711809ejw8f387zus4vpj20yi0ykjwd.jpg"
/><br
/>
用户头像:
<input
name=
"data[avatar]"
value=
"https://tva3.sinaimg.cn/crop.0.1.1242.1242.180/4711809ejw8f387zus4vpj20yi0ykjwd.jpg"
/><br
/>
key:
<input
name=
"data[key]"
value=
"
f622a447ca6a6283e5bd2be7520a51f7
"
/><br
/>
key:
<input
name=
"data[key]"
value=
"
a47c3f7e20cd11d9473e39b36ce512ad
"
/><br
/>
gender:
<input
name=
"data[gender]"
value=
"1"
/><br
/>
gender:
<input
name=
"data[gender]"
value=
"1"
/><br
/>
encryptedData:
<input
name=
"data[encryptedData]"
value=
"
/jkMxPHfC/jsaa28FU58R4YQbntGmg8e259shrdBqEcdCWwyinxA2JWWWx7lH6mVJmRnkRMOGhC5SsL013r9p5hkvS+XRMqzBa0lBV8vuUdAglbMXADO0aoyErAz7OzYQ7BnKljWWstR7uMEbjPdciBxyZuImfZBpmxxXR4FktNBQxmvSdKkM8P5F5T2PIdPJeIhif+ADDLolPocSaSKzWpYgao9bvw4pLioBh2COMWqkAgFLqlnagZg4shce74FdnIqdB3m3+/Tm/XugJaJtddv8fP9oabv04hUyGWi1i1a0lT9aGiH1QfMXL0AU8mEfOR4oEcnprFLrqauKQiSe5BIO4N3C3m0H7ecgBAHQ3xgsV/a3x3rMDYi6GVAg7vQ5iHbE6tZpx54WfyZOFJQ6ei//n7wfPTd3Og6LHAKhNbKYHbrn37heUW2htOaSxjNH3TP4nbyv8bea10Pt/NlKaYpLdPJr3k5/nUqVpZjKtvOMQaLKClXqhRYSb2bptm9UB6brELy1ixxU5n9sYM1uw
=="
/><br
/>
encryptedData:
<input
name=
"data[encryptedData]"
value=
"
kXGXJHHrTjZtBCvDtKLWv/utlY5AUbbvA2wleUx94n6nUiF6mcz9AUgNziDVDXokRq855pwjGtzHwxdwg3Se7Z4bJWzkCJnC1Vk/CBd1kXHz77ct9rRyruCz27VYHMjKPzfqEmVl7MfVg+xyoXYZQoUgz98yTBlREmmIfW5gEfSTKKW73mrVoXJJvszBj3VdwaqSWiSa4whds6OZWNpgUWlFxdntY0q5nBEaKTcxPfpF3QxKlFmD4bw30Q2c41M+wTeD/txDVtqEUJf9U5rSuA0cZSzgHllTEoS4KxXunasT0WhXJ0+Uow6xDkvMvSe2az1qAmVHweKTr5mp7wAGYn5GlrcG6cXRgfctEGQg6k/rJUQMLmiurE5Z0ERLeyWUUKU1ZSlPfYgfJ5L1zLzygIudHTozCjUDHhXh0/DTaCq5ZdTEw9FYL34uZ2TsiPUEGz/VgsD/CTgvw32O9PYBjfESt8aBFk+cKxt7eJZueWyly4H7YhT5k9+TTqiQ4GY/v81BcErat/Gx8Cn/UoQh7g
=="
/><br
/>
iv:
<input
name=
"data[iv]"
value=
"
0fTG64HSN8QP6+yFlzv+9
A=="
/><br
/>
iv:
<input
name=
"data[iv]"
value=
"
yopI5yZHu+2vlaOatNyjI
A=="
/><br
/>
nickname:
<input
name=
"data[nickname]"
value=
"lindongming123"
/><br
/>
nickname:
<input
name=
"data[nickname]"
value=
"lindongming123"
/><br
/>
<input
type=
"submit"
value=
"提交"
>
<input
type=
"submit"
value=
"提交"
>
</form>
</form>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment