Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
head_group
xyqb-user2
Commits
330c5613
Commit
330c5613
authored
Nov 15, 2021
by
gaoguangjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
小程序登录修改
parent
80a545ab
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
43 additions
and
19 deletions
+43
-19
UserController.java
...n/quantgroup/xyqb/controller/external/UserController.java
+2
-2
WeChatController.java
...quantgroup/xyqb/controller/external/WeChatController.java
+2
-2
AppController.java
...antgroup/xyqb/controller/internal/user/AppController.java
+13
-4
AppletController.java
...xyqb/controller/middleoffice/applet/AppletController.java
+3
-3
ILoginModule.java
...roup/xyqb/controller/middleoffice/login/ILoginModule.java
+1
-1
LoginModule.java
...group/xyqb/controller/middleoffice/login/LoginModule.java
+2
-1
LoginProperties.java
src/main/java/cn/quantgroup/xyqb/model/LoginProperties.java
+2
-0
IAppletService.java
...roup/xyqb/service/middleoffice/applet/IAppletService.java
+1
-1
AppletServiceImpl.java
...b/service/middleoffice/applet/impl/AppletServiceImpl.java
+11
-3
SessionServiceImpl.java
...ntgroup/xyqb/service/session/impl/SessionServiceImpl.java
+5
-1
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+1
-1
No files found.
src/main/java/cn/quantgroup/xyqb/controller/external/UserController.java
View file @
330c5613
...
...
@@ -531,7 +531,7 @@ public class UserController implements IBaseController {
}
else
if
(!
wechatRelateUserIfNecessary
(
user
,
request
))
{
return
JsonResult
.
buildErrorStateResult
(
"登录时微信关联失败"
,
null
);
}
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
1
,
channelId
,
createdFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
());
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
1
,
channelId
,
createdFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
()
,
null
);
AuthBean
authBean
=
sessionService
.
createSession
(
user
,
loginProperties
);
if
(
authBean
!=
null
){
authBean
.
setRegister
(
false
);
...
...
@@ -596,7 +596,7 @@ public class UserController implements IBaseController {
}
else
if
(!
wechatRelateUserIfNecessary
(
user
,
request
))
{
return
JsonResult
.
buildErrorStateResult
(
"登录时微信关联失败"
,
null
);
}
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
createdFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
());
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
createdFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
()
,
null
);
//尝试解锁
lockIpv4Service
.
unLockPhone
(
user
.
getPhoneNo
());
//更新session
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/WeChatController.java
View file @
330c5613
...
...
@@ -334,7 +334,7 @@ public class WeChatController implements IBaseController {
private
String
createUserSession
(
User
user
,
Merchant
merchant
,
String
redirect
,
String
domain
,
Long
registerFrom
)
{
log
.
info
(
"[WeChatController][createUserSession]微信授权及跳转:user:{},merchant:{},redirect:{},domain:{},registerFrom:{}"
,
user
,
merchant
,
redirect
,
domain
,
registerFrom
);
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
Constants
.
Channel
.
WECHAT
,
registerFrom
,
String
.
valueOf
(
Constants
.
Channel
.
WECHAT
),
merchant
.
getId
(),
merchant
.
getName
());
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
Constants
.
Channel
.
WECHAT
,
registerFrom
,
String
.
valueOf
(
Constants
.
Channel
.
WECHAT
),
merchant
.
getId
(),
merchant
.
getName
()
,
null
);
if
(
StringUtils
.
isEmpty
(
redirect
)
||
Constants
.
REDIRECT
.
equals
(
redirect
))
{
log
.
info
(
"微信登录:redirect为null,走正常流程."
);
if
(
Constants
.
MERCHANT_BAITIAO
.
equals
(
merchant
.
getName
()))
{
...
...
@@ -362,7 +362,7 @@ public class WeChatController implements IBaseController {
}
private
String
loginInWechatWithSessionCreated
(
User
user
,
Merchant
merchant
,
String
target
,
Long
channelId
,
String
domain
,
Long
registerFrom
)
{
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
String
.
valueOf
(
Constants
.
Channel
.
WECHAT
),
merchant
.
getId
(),
merchant
.
getName
());
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
String
.
valueOf
(
Constants
.
Channel
.
WECHAT
),
merchant
.
getId
(),
merchant
.
getName
()
,
null
);
AuthBean
authBean
=
sessionService
.
createSession
(
user
,
loginProperties
);
log
.
info
(
"[WeChatController][loginInWechatWithSessionCreated]微信授权及跳转:user:{},merchant:{},target:{},channelId:{},domain:{},registerFrom:{}"
,
user
,
merchant
,
target
,
channelId
,
domain
,
registerFrom
);
return
domain
+
"/landing?token="
+
authBean
.
getToken
()
+
"®isterFrom="
+
registerFrom
+
"&channelId="
+
channelId
+
"&key="
+
merchant
.
getName
()
+
"&target="
+
target
;
...
...
src/main/java/cn/quantgroup/xyqb/controller/internal/user/AppController.java
View file @
330c5613
...
...
@@ -15,6 +15,8 @@ import cn.quantgroup.xyqb.security.AuthorizationPoint;
import
cn.quantgroup.xyqb.service.merchant.IMerchantService
;
import
cn.quantgroup.xyqb.service.register.IUserRegisterService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.user.IOauthClientDetailsService
;
import
cn.quantgroup.xyqb.service.user.IOauthLoginInfoService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.IpUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
...
...
@@ -51,6 +53,8 @@ public class AppController implements IBaseController {
@Autowired
private
IUserService
userService
;
@Autowired
private
IOauthLoginInfoService
oauthLoginInfoService
;
@Autowired
private
IMerchantService
merchantService
;
@Autowired
private
IUserRegisterService
userRegisterService
;
...
...
@@ -92,7 +96,7 @@ public class AppController implements IBaseController {
if
(
merchant
==
null
)
{
result
=
JsonResult
.
buildErrorStateResult
(
"无效的商户"
,
null
);
}
else
{
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
());
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
()
,
null
);
AuthBean
bean
=
sessionService
.
createSession
(
user
,
loginProperties
);
LoginInfo
.
LoginContext
context
=
new
LoginInfo
.
LoginContext
();
context
.
setChannelId
(
channelId
);
...
...
@@ -161,7 +165,7 @@ public class AppController implements IBaseController {
if
(
merchant
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"无效的商户"
,
null
);
}
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
());
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
()
,
null
);
AuthBean
bean
=
sessionService
.
createSession
(
user
,
loginProperties
);
log
.
info
(
"第三方用户登录成功 [AppController] login --> loginFrom:{}, phoneNo:{},appChannel:{}"
,
registerFrom
,
phoneNo
,
appChannel
);
return
JsonResult
.
buildSuccessResult
(
"登录成功"
,
bean
);
...
...
@@ -221,7 +225,7 @@ public class AppController implements IBaseController {
if
(
merchant
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"无效的商户"
,
null
);
}
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
());
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
()
,
null
);
AuthBean
bean
=
sessionService
.
createSession
(
user
,
loginProperties
);
LoginInfo
loginInfo
=
new
LoginInfo
();
loginInfo
.
setUser
(
new
UserRet
(
user
));
...
...
@@ -297,6 +301,7 @@ public class AppController implements IBaseController {
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
registerFrom
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
channelId
,
@RequestParam
(
required
=
false
,
defaultValue
=
""
)
String
appChannel
,
@RequestParam
(
required
=
false
,
defaultValue
=
"defualt"
)
String
tenantId
,
HttpServletRequest
request
)
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
...
@@ -309,7 +314,11 @@ public class AppController implements IBaseController {
if
(!
user
.
getEnable
())
{
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
}
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
null
,
""
);
//校验租户ID tenantId
if
(!
tenantId
.
equals
(
"1"
))
{
oauthLoginInfoService
.
addLoginInfo
(
user
,
tenantId
);
}
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
4
,
channelId
,
registerFrom
,
appChannel
,
null
,
""
,
tenantId
);
AuthBean
bean
=
sessionService
.
createSession
(
user
,
loginProperties
);
log
.
info
(
"第三方用户登录成功 [AppController] login2 --> loginFrom:{}, phoneNo:{},appChannel:{}"
,
registerFrom
,
phoneNo
,
appChannel
);
return
JsonResult
.
buildSuccessResult
(
"登录成功"
,
bean
);
...
...
src/main/java/cn/quantgroup/xyqb/controller/middleoffice/applet/AppletController.java
View file @
330c5613
...
...
@@ -57,7 +57,7 @@ public class AppletController {
Long
userId
=
iAppletService
.
relevance
(
appletParamEntry
);
LoginVo
loginVo
=
loginModule
.
loginByUserId
(
appletParamEntry
.
getChannelId
(),
appletParamEntry
.
getUtmSource
(),
userId
);
appletParamEntry
.
getUtmSource
(),
userId
,
null
);
return
JsonResult
.
buildSuccessResultGeneric
(
loginVo
);
...
...
@@ -68,12 +68,12 @@ public class AppletController {
*/
@Validated
@PostMapping
(
"/login"
)
public
JsonResult
login
(
@RequestParam
String
appName
,
@RequestParam
String
openId
,
String
utmSource
)
{
public
JsonResult
login
(
@RequestParam
String
appName
,
@RequestParam
String
openId
,
@RequestParam
(
required
=
false
,
defaultValue
=
"defualt"
)
String
tenantId
,
String
utmSource
)
{
if
(!
containsAppName
(
appName
))
{
throw
new
DataException
(
"appName不合法"
);
}
LoginVo
login
=
iAppletService
.
login
(
appName
,
openId
,
utmSource
);
LoginVo
login
=
iAppletService
.
login
(
appName
,
openId
,
tenantId
,
utmSource
);
return
JsonResult
.
buildSuccessResultGeneric
(
login
);
}
...
...
src/main/java/cn/quantgroup/xyqb/controller/middleoffice/login/ILoginModule.java
View file @
330c5613
...
...
@@ -11,5 +11,5 @@ public interface ILoginModule {
Boolean
modifyPwd
(
VerifyTypeEnum
type
,
String
phoneNo
,
String
password
,
String
verify
);
LoginVo
loginByUserId
(
Long
channelId
,
String
appChannel
,
Long
userId
);
LoginVo
loginByUserId
(
Long
channelId
,
String
appChannel
,
Long
userId
,
String
tenantId
);
}
src/main/java/cn/quantgroup/xyqb/controller/middleoffice/login/LoginModule.java
View file @
330c5613
...
...
@@ -83,7 +83,7 @@ public class LoginModule implements ILoginModule {
}
@Override
public
LoginVo
loginByUserId
(
Long
channelId
,
String
appChannel
,
Long
userId
)
{
public
LoginVo
loginByUserId
(
Long
channelId
,
String
appChannel
,
Long
userId
,
String
tenantId
)
{
User
user
=
userService
.
findById
(
userId
);
if
(
null
==
user
){
throw
new
DataException
(
"未找到此用户"
);
...
...
@@ -92,6 +92,7 @@ public class LoginModule implements ILoginModule {
.
createdFrom
(
user
.
getRegisteredFrom
())
.
appChannel
(
appChannel
==
null
?
""
:
appChannel
)
.
channelId
(
channelId
)
.
tenantId
(
tenantId
)
.
build
();
AuthBean
session
=
sessionService
.
createSession
(
user
,
loginProperties
);
return
LoginVo
.
builder
()
...
...
src/main/java/cn/quantgroup/xyqb/model/LoginProperties.java
View file @
330c5613
...
...
@@ -35,4 +35,6 @@ public class LoginProperties {
private
String
appChannel
=
""
;
private
Long
merchantId
=
1L
;
private
String
merchantName
=
""
;
//租户ID
private
String
tenantId
=
"defualt"
;
}
src/main/java/cn/quantgroup/xyqb/service/middleoffice/applet/IAppletService.java
View file @
330c5613
...
...
@@ -12,5 +12,5 @@ import cn.quantgroup.xyqb.entity.middleoffice.AppletParamEntry;
*/
public
interface
IAppletService
{
Long
relevance
(
AppletParamEntry
appletParamEntry
);
LoginVo
login
(
String
appName
,
String
openId
,
String
utmSource
);
LoginVo
login
(
String
appName
,
String
openId
,
String
tenantId
,
String
utmSource
);
}
src/main/java/cn/quantgroup/xyqb/service/middleoffice/applet/impl/AppletServiceImpl.java
View file @
330c5613
...
...
@@ -9,11 +9,13 @@ import cn.quantgroup.xyqb.exception.AppletException;
import
cn.quantgroup.xyqb.repository.IWeChatUserRepository
;
import
cn.quantgroup.xyqb.service.middleoffice.applet.IAppletService
;
import
cn.quantgroup.xyqb.service.register.IUserRegisterService
;
import
cn.quantgroup.xyqb.service.user.IOauthLoginInfoService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
/**
* @author :dongjianhua
...
...
@@ -34,6 +36,9 @@ public class AppletServiceImpl implements IAppletService {
private
final
IUserService
userService
;
private
ILoginModule
loginModule
;
@Autowired
private
IOauthLoginInfoService
iOauthLoginInfoService
;
@Autowired
public
AppletServiceImpl
(
IWeChatUserRepository
iWeChatUserRepository
,
IUserRegisterService
iUserRegisterService
,
...
...
@@ -80,7 +85,7 @@ public class AppletServiceImpl implements IAppletService {
}
@Override
public
LoginVo
login
(
String
appName
,
String
openId
,
String
utmSource
)
{
public
LoginVo
login
(
String
appName
,
String
openId
,
String
tenantId
,
String
utmSource
)
{
WechatUserInfo
wechatUserInfo
=
iWeChatUserRepository
.
findByOpenIdAndAppName
(
openId
,
appName
);
if
(
null
==
wechatUserInfo
)
{
log
.
warn
(
"未找到此用户,appName:{} ,openId:{}"
,
appName
,
openId
);
...
...
@@ -96,9 +101,12 @@ public class AppletServiceImpl implements IAppletService {
log
.
warn
(
"未找到此用户,appName:{} ,openId:{}"
,
appName
,
openId
);
throw
new
AppletException
(
"未找到此用户"
,
"0401"
);
}
//校验租户ID tenantId
if
(!
"defualt"
.
equals
(
tenantId
))
{
iOauthLoginInfoService
.
addLoginInfo
(
user
,
tenantId
);
}
LoginVo
loginVo
=
loginModule
.
loginByUserId
(
user
.
getRegisteredFrom
(),
utmSource
==
null
?
""
:
utmSource
,
user
.
getId
());
utmSource
==
null
?
""
:
utmSource
,
user
.
getId
(),
tenantId
);
return
loginVo
;
}
...
...
src/main/java/cn/quantgroup/xyqb/service/session/impl/SessionServiceImpl.java
View file @
330c5613
...
...
@@ -103,7 +103,11 @@ public class SessionServiceImpl implements ISessionService {
* @return redisKey. 用来标识这个渠道的用户 Session 是否存在
*/
private
String
generateLoginPropertiesKey
(
Long
userId
,
LoginProperties
properties
)
{
if
(
properties
.
getTenantId
()
==
null
||
"defualt"
.
equals
(
properties
.
getTenantId
()))
{
return
Constants
.
Session
.
USER_SESSION_ID_CACHE
+
":"
+
userId
+
":"
+
properties
.
getMerchantName
()
+
":"
+
properties
.
getCreatedFrom
();
}
else
{
return
Constants
.
Session
.
USER_SESSION_ID_CACHE
+
":"
+
userId
+
":"
+
properties
.
getMerchantName
()
+
":"
+
properties
.
getCreatedFrom
()
+
":"
+
properties
.
getTenantId
();
}
}
private
String
findSessionValueBySessionId
(
String
sessionId
)
{
...
...
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
330c5613
...
...
@@ -390,7 +390,7 @@ public class UserServiceImpl implements IUserService, IBaseController {
}
catch
(
Exception
e
)
{
log
.
info
(
"神策埋点出现问题"
,
e
);
}
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
3
,
channelId
,
createdFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
());
LoginProperties
loginProperties
=
new
LoginProperties
(
""
,
3
,
channelId
,
createdFrom
,
appChannel
,
merchant
.
getId
(),
merchant
.
getName
()
,
null
);
AuthBean
session
=
sessionService
.
createSession
(
user
,
loginProperties
);
session
.
setRegister
(
register
);
lockIpv4Service
.
unLockPhone
(
phoneNo
);
...
...
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