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
89a3e0af
Commit
89a3e0af
authored
Jul 12, 2023
by
王亮
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
finished test login(wechat&&phone)
parent
70e1c5c5
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
27 additions
and
17 deletions
+27
-17
update-20230630.sql
doc/sql/update-20230630.sql
+10
-11
UserTagLoginEventListener.java
...a/cn/quantgroup/xyqb/event/UserTagLoginEventListener.java
+1
-1
BizExceptionEnum.java
...n/java/cn/quantgroup/xyqb/exception/BizExceptionEnum.java
+1
-0
IUserTagRepository.java
...ava/cn/quantgroup/xyqb/repository/IUserTagRepository.java
+1
-1
LoginContext.java
...main/java/cn/quantgroup/xyqb/service/v2/LoginContext.java
+9
-4
WechatMiniPhoneLoginStrategy.java
...ntgroup/xyqb/service/v2/WechatMiniPhoneLoginStrategy.java
+5
-0
No files found.
doc/sql/update-20230630.sql
View file @
89a3e0af
...
...
@@ -35,15 +35,15 @@ ADD COLUMN `app_id` VARCHAR(32) NULL COMMENT '微信应用id' AFTER `registered_
---微信配置表
CREATE
TABLE
`xyqb_user`
.
`wechat_config`
(
`id`
BIGINT
(
20
)
NOT
NULL
AUTO_INCREMENT
,
`app_id`
VARCHAR
(
32
)
NOT
NULL
COMMENT
'微信app_id
\n
'
,
`secret`
VARCHAR
(
64
)
NOT
NULL
COMMENT
'微信appsecret'
,
`state`
TINYINT
(
3
)
NOT
NULL
COMMENT
'状态'
,
`tenant_id`
INT
NOT
NULL
COMMENT
'租户id'
,
`created_at`
TIMESTAMP
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
TIMESTAMP
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`id`
));
--
CREATE TABLE `xyqb_user`.`wechat_config` (
--
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
--
`app_id` VARCHAR(32) NOT NULL COMMENT '微信app_id\n',
--
`secret` VARCHAR(64) NOT NULL COMMENT '微信appsecret',
--
`state` TINYINT(3) NOT NULL COMMENT '状态',
--
`tenant_id` INT NOT NULL COMMENT '租户id',
--
`created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
--
`updated_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
--
PRIMARY KEY (`id`));
--用户标记表(用来标记同一租户下用户归属)
CREATE
TABLE
`xyqb_user`
.
`user_tag`
(
...
...
@@ -53,8 +53,7 @@ CREATE TABLE `xyqb_user`.`user_tag` (
`tenant_id`
INT
NOT
NULL
COMMENT
'租户id'
,
`created_at`
TIMESTAMP
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
TIMESTAMP
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
UNIQUE
`udx_user_id`
(
`user_id`
ASC
),
INDEX
`idx_user_phone`
(
`registered_from`
ASC
),
UNIQUE
INDEX
`udx_user_id`
(
`user_id`
ASC
,
`registered_from`
ASC
,
`tenant_id`
ASC
);
PRIMARY
KEY
(
`id`
));
...
...
src/main/java/cn/quantgroup/xyqb/event/UserTagLoginEventListener.java
View file @
89a3e0af
...
...
@@ -27,7 +27,7 @@ public class UserTagLoginEventListener implements ApplicationListener<UserLoginE
public
void
onApplicationEvent
(
UserLoginEvent
userLoginEvent
)
{
if
(
userLoginEvent
.
getUserTag
()
!=
null
)
{
UserTag
userTag
=
userLoginEvent
.
getUserTag
();
UserTag
preTag
=
userTagRepository
.
findByUserIdAndTenantId
(
userTag
.
getUserId
(),
userTag
.
getTenantId
());
UserTag
preTag
=
userTagRepository
.
findByUserIdAndTenantId
AndRegisteredFrom
(
userTag
.
getUserId
(),
userTag
.
getTenantId
(),
userTag
.
getRegisteredFrom
());
if
(
preTag
==
null
)
{
preTag
=
userTag
;
...
...
src/main/java/cn/quantgroup/xyqb/exception/BizExceptionEnum.java
View file @
89a3e0af
...
...
@@ -24,6 +24,7 @@ public enum BizExceptionEnum {
UN_EXIT_STMS_TOKEN
(
"1013"
,
"stms的token不存在"
),
UN_VALID_STMS_TOKEN
(
"1014"
,
"无效的stms的token"
),
UN_PERMISSION_STMS
(
"1015"
,
"没有内部接口访问权限"
),
EXPIRE_WECHAT_TOKEN
(
"1016"
,
"微信接口token过期,请执行定时任务"
),
...
...
src/main/java/cn/quantgroup/xyqb/repository/IUserTagRepository.java
View file @
89a3e0af
...
...
@@ -5,7 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
public
interface
IUserTagRepository
extends
JpaRepository
<
UserTag
,
Long
>,
JpaSpecificationExecutor
<
UserTag
>
{
UserTag
findByUserIdAndTenantId
(
Long
userId
,
Integer
tenantId
);
UserTag
findByUserIdAndTenantId
AndRegisteredFrom
(
Long
userId
,
Integer
tenantId
,
Long
registeredFrom
);
void
deleteByUserIdAndTenantId
(
Long
userId
,
Integer
tenantId
);
}
src/main/java/cn/quantgroup/xyqb/service/v2/LoginContext.java
View file @
89a3e0af
...
...
@@ -45,8 +45,8 @@ public class LoginContext {
}
public
LoginBean
login
(
LoginReq
loginReq
)
{
if
(
loginReq
.
getType
()!=
null
&&
loginReq
.
getType
()==
9000
)
{
throw
new
BizException
(
BizExceptionEnum
.
ERROR_INTERNAL_LOGIN
);
if
(
loginReq
.
getType
()
!=
null
&&
loginReq
.
getType
()
==
9000
)
{
throw
new
BizException
(
BizExceptionEnum
.
ERROR_INTERNAL_LOGIN
);
}
return
this
.
interLogin
(
loginReq
);
}
...
...
@@ -54,10 +54,11 @@ public class LoginContext {
/**
* 内部统一登录
*
* @param loginReq LoginReq
* @return LoginBean
*/
public
LoginBean
interLogin
(
LoginReq
loginReq
){
public
LoginBean
interLogin
(
LoginReq
loginReq
)
{
//第一步、校验参数
LoginStrategy
loginStrategy
=
interloginStrategyMap
.
get
(
loginReq
.
getType
());
...
...
@@ -70,8 +71,12 @@ public class LoginContext {
//第三步、发送登录成功消息
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSession
();
Long
registeredFrom
=
sessionStruct
.
getRegisteredFrom
();
if
(
sessionStruct
.
getValues
()
!=
null
&&
sessionStruct
.
getValues
().
getLoginProperties
()
!=
null
)
{
registeredFrom
=
sessionStruct
.
getValues
().
getLoginProperties
().
getCreatedFrom
();
}
UserTag
userTag
=
UserTag
.
builder
().
userId
(
loginBean
.
getUserId
()).
registeredFrom
(
sessionStruct
.
getRegisteredFrom
()
).
tenantId
(
sessionStruct
.
getTenantId
()).
build
();
UserTag
userTag
=
UserTag
.
builder
().
userId
(
loginBean
.
getUserId
()).
registeredFrom
(
registeredFrom
).
tenantId
(
sessionStruct
.
getTenantId
()).
build
();
String
geetestId
=
null
;
if
(
StringUtils
.
isNotEmpty
(
sessionStruct
.
getGeetestId
()))
{
geetestId
=
sessionStruct
.
getGeetestId
();
...
...
src/main/java/cn/quantgroup/xyqb/service/v2/WechatMiniPhoneLoginStrategy.java
View file @
89a3e0af
...
...
@@ -19,6 +19,7 @@ import cn.quantgroup.xyqb.repository.IWeChatUserRepository;
import
cn.quantgroup.xyqb.service.register.IUserRegisterService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.session.XyqbSessionContextHolder
;
import
cn.quantgroup.xyqb.util.StringUtils
;
import
com.google.gson.Gson
;
import
com.google.gson.reflect.TypeToken
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -102,6 +103,9 @@ public class WechatMiniPhoneLoginStrategy implements LoginStrategy {
User
user
;
phoneParam
.
put
(
"code"
,
loginParam
.
getPhoneCode
());
String
accessToken
=
redisTemplate
.
opsForValue
().
get
(
Constants
.
WECHAT_ACCESS_TOKEN_REDIS
+
loginParam
.
getAppId
());
if
(
StringUtils
.
isEmpty
(
accessToken
)){
throw
new
BizException
(
BizExceptionEnum
.
EXPIRE_WECHAT_TOKEN
);
}
WechatPhoneBean
wechatPhoneBean
=
wechatRemoteService
.
getUserPhoneNumber
(
accessToken
,
phoneParam
);
...
...
@@ -124,6 +128,7 @@ public class WechatMiniPhoneLoginStrategy implements LoginStrategy {
wechatUserInfo
.
setUnionId
(
unionId
);
wechatUserInfo
.
setAppId
(
loginParam
.
getAppId
());
wechatUserInfo
.
setTenantId
(
sessionStruct
.
getTenantId
());
wechatUserInfo
.
setRegisteredFrom
(
sessionStruct
.
getRegisteredFrom
());
wechatUserInfo
.
setPhoneNo
(
user
.
getPhoneNo
());
wechatUserInfo
.
setUserId
(
user
.
getId
());
wechatUserInfo
.
setSessionKey
(
sessionKey
);
...
...
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