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
100b82df
Commit
100b82df
authored
Jan 05, 2023
by
王亮
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add records of disable user.
parent
bc21a908
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
217 additions
and
4 deletions
+217
-4
InnerController.java
...tgroup/xyqb/controller/internal/user/InnerController.java
+30
-4
UserController.java
...oup/xyqb/controller/middleoffice/user/UserController.java
+2
-0
UserDisableRecord.java
...ain/java/cn/quantgroup/xyqb/entity/UserDisableRecord.java
+26
-0
UserDisableRecordEvent.java
...java/cn/quantgroup/xyqb/event/UserDisableRecordEvent.java
+21
-0
UserDisableRecordListener.java
...a/cn/quantgroup/xyqb/event/UserDisableRecordListener.java
+18
-0
TokenInterceptor.java
...main/java/cn/quantgroup/xyqb/filter/TokenInterceptor.java
+66
-0
LoginUserContext.java
src/main/java/cn/quantgroup/xyqb/model/LoginUserContext.java
+13
-0
OauthResult.java
src/main/java/cn/quantgroup/xyqb/model/OauthResult.java
+18
-0
StmsRemoteService.java
...ain/java/cn/quantgroup/xyqb/remote/StmsRemoteService.java
+12
-0
IUserDisableRecordRepository.java
...ntgroup/xyqb/repository/IUserDisableRecordRepository.java
+11
-0
No files found.
src/main/java/cn/quantgroup/xyqb/controller/internal/user/InnerController.java
View file @
100b82df
...
...
@@ -8,11 +8,13 @@ import cn.quantgroup.xyqb.controller.IBaseController;
import
cn.quantgroup.xyqb.controller.internal.user.resp.UserFullResp
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.event.DisableActiveEvent
;
import
cn.quantgroup.xyqb.event.UserDisableRecordEvent
;
import
cn.quantgroup.xyqb.event.UserExtInfoSaveEvent
;
import
cn.quantgroup.xyqb.exception.UserNotExistException
;
import
cn.quantgroup.xyqb.model.Gender
;
import
cn.quantgroup.xyqb.model.IdType
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.repository.IUserDisableRecordRepository
;
import
cn.quantgroup.xyqb.service.api.IUserApiService
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.merchant.IMerchantService
;
...
...
@@ -90,14 +92,14 @@ public class InnerController implements IBaseController {
@Autowired
private
ISmsService
smsService
;
@Autowired
private
LoginUserContext
loginUserContext
;
@Autowired
private
IUserRegisterService
userRegisterService
;
@Resource
private
ApplicationEventPublisher
applicationEventPublisher
;
@Resource
private
CleanDataService
cleanDataService
;
@Autowired
private
ITenantService
tenantService
;
...
...
@@ -106,7 +108,8 @@ public class InnerController implements IBaseController {
@Autowired
private
IUserDeregisterService
userDeregisterService
;
@Autowired
private
IUserDisableRecordRepository
iUserDisableRecordRepository
;
private
static
final
String
RESET_PWD_TOKEN
=
"ecf75c1f-2ccb-4661-8e4b-2874c0f45a2b"
;
private
static
final
String
MODIFY_CONTACT_TOKEN
=
"@qwsdedad131323213w!"
;
...
...
@@ -1367,6 +1370,12 @@ public class InnerController implements IBaseController {
@RequestMapping
(
path
=
"/user/active"
,
method
=
RequestMethod
.
POST
)
public
JsonResult
activeUser
(
Long
userId
)
{
boolean
flushed
=
flushUserStatus
(
userId
,
true
);
UserDisableRecord
userDisableRecord
=
new
UserDisableRecord
();
userDisableRecord
.
setUserId
(
userId
);
userDisableRecord
.
setCreatedBy
(
loginUserContext
.
getUserName
());
userDisableRecord
.
setUpdatedBy
(
loginUserContext
.
getUserName
());
userDisableRecord
.
setOperation_type
((
short
)
1
);
applicationEventPublisher
.
publishEvent
(
new
UserDisableRecordEvent
(
this
,
userDisableRecord
));
log
.
info
(
"激活/启用 用户,userId:[{}],result:[{}]"
,
userId
,
flushed
);
return
JsonResult
.
buildSuccessResult
(
"用户已激活."
,
flushed
);
}
...
...
@@ -1379,12 +1388,29 @@ public class InnerController implements IBaseController {
* @return
*/
@RequestMapping
(
path
=
"/user/disable"
,
method
=
RequestMethod
.
POST
)
public
JsonResult
forbiddenUser
(
Long
userId
)
{
public
JsonResult
forbiddenUser
(
Long
userId
,
String
reason
)
{
boolean
flushed
=
flushUserStatus
(
userId
,
false
);
UserDisableRecord
userDisableRecord
=
new
UserDisableRecord
();
userDisableRecord
.
setUserId
(
userId
);
userDisableRecord
.
setCreatedBy
(
loginUserContext
.
getUserName
());
userDisableRecord
.
setUpdatedBy
(
loginUserContext
.
getUserName
());
userDisableRecord
.
setReason
(
reason
);
userDisableRecord
.
setOperation_type
((
short
)
0
);
applicationEventPublisher
.
publishEvent
(
new
UserDisableRecordEvent
(
this
,
userDisableRecord
));
log
.
info
(
"注销/禁用 用户,userId:[{}],result:[{}]"
,
userId
,
flushed
);
return
JsonResult
.
buildSuccessResult
(
"用户已禁用."
,
flushed
);
}
/**
* 根据用户id获取操作用户冻结记录列表
* @param userId 用户id
* @return List<UserDisableRecord>
*/
@RequestMapping
(
path
=
"/user/records/{userId}"
,
method
=
RequestMethod
.
POST
)
public
JsonResult
disableRecordList
(
@PathVariable
(
"userId"
)
Long
userId
){
return
JsonResult
.
buildSuccessResultGeneric
(
iUserDisableRecordRepository
.
findByUserId
(
userId
));
}
/**
* 重置用户实名信息接口
* -- 供内部系统免密调用
...
...
src/main/java/cn/quantgroup/xyqb/controller/middleoffice/user/UserController.java
View file @
100b82df
...
...
@@ -10,6 +10,7 @@ import java.util.List;
import
java.util.Map
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.hibernate.validator.constraints.Length
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
...
...
src/main/java/cn/quantgroup/xyqb/entity/UserDisableRecord.java
0 → 100644
View file @
100b82df
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
java.io.Serializable
;
import
javax.persistence.Column
;
import
javax.persistence.Table
;
import
lombok.Data
;
@Data
@Table
(
name
=
"user_disable_record"
)
public
class
UserDisableRecord
extends
BaseEntity
implements
Serializable
{
@Column
(
name
=
"user_id"
)
private
Long
userId
;
@Column
(
name
=
"operation_type"
)
private
short
operation_type
;
@Column
(
name
=
"reason"
)
private
String
reason
;
@Column
(
name
=
"created_by"
)
private
String
createdBy
;
@Column
(
name
=
"updated_at"
)
private
String
updatedBy
;
}
src/main/java/cn/quantgroup/xyqb/event/UserDisableRecordEvent.java
0 → 100644
View file @
100b82df
package
cn
.
quantgroup
.
xyqb
.
event
;
import
cn.quantgroup.xyqb.entity.UserDisableRecord
;
import
lombok.Getter
;
import
org.springframework.context.ApplicationEvent
;
@Getter
public
class
UserDisableRecordEvent
extends
ApplicationEvent
{
private
UserDisableRecord
userDisableRecord
;
public
UserDisableRecordEvent
(
Object
source
)
{
super
(
source
);
}
public
UserDisableRecordEvent
(
Object
source
,
UserDisableRecord
userDisableRecord
)
{
super
(
source
);
userDisableRecord
=
userDisableRecord
;
}
}
\ No newline at end of file
src/main/java/cn/quantgroup/xyqb/event/UserDisableRecordListener.java
0 → 100644
View file @
100b82df
package
cn
.
quantgroup
.
xyqb
.
event
;
import
cn.quantgroup.xyqb.repository.IUserDisableRecordRepository
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
@Component
@Async
public
class
UserDisableRecordListener
implements
ApplicationListener
<
UserDisableRecordEvent
>
{
@Autowired
private
IUserDisableRecordRepository
iUserDisableRecordRepository
;
@Override
public
void
onApplicationEvent
(
UserDisableRecordEvent
userDisableRecordEvent
)
{
iUserDisableRecordRepository
.
save
(
userDisableRecordEvent
.
getUserDisableRecord
());
}
}
\ No newline at end of file
src/main/java/cn/quantgroup/xyqb/filter/TokenInterceptor.java
0 → 100644
View file @
100b82df
package
cn
.
quantgroup
.
xyqb
.
filter
;
import
cn.hutool.extra.spring.SpringUtil
;
import
cn.quantgroup.xyqb.model.LoginUserContext
;
import
cn.quantgroup.xyqb.model.OauthResult
;
import
cn.quantgroup.xyqb.remote.StmsRemoteService
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Objects
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
@Slf4j
public
class
TokenInterceptor
implements
HandlerInterceptor
{
private
final
LoginUserContext
loginUserContext
;
private
final
StmsRemoteService
stmsRemoteService
;
private
final
List
<
String
>
includes
=
new
ArrayList
<>();
public
TokenInterceptor
()
{
this
.
loginUserContext
=
SpringUtil
.
getBean
(
LoginUserContext
.
class
);
this
.
stmsRemoteService
=
SpringUtil
.
getBean
(
StmsRemoteService
.
class
);
includes
.
add
(
"/innerapi/user/disable"
);
includes
.
add
(
"/innerapi/user/active"
);
}
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
if
(
includes
.
contains
(
request
.
getRequestURI
()))
{
String
accessToken
=
request
.
getHeader
(
"Access-Token"
);
//原有的拦截器判断逻辑
if
(
StringUtils
.
isNotEmpty
(
accessToken
))
{
OauthResult
oauthResult
=
stmsRemoteService
.
checkToken
(
accessToken
);
if
(
oauthResult
==
null
||
!
Objects
.
equals
(
2000
,
oauthResult
.
getCode
()))
{
return
false
;
}
else
{
LinkedHashMap
onlineUser
=
(
LinkedHashMap
)
oauthResult
.
getData
();
loginUserContext
.
setUserId
(
onlineUser
.
get
(
"id"
).
toString
());
loginUserContext
.
setUserName
(
String
.
valueOf
(
onlineUser
.
get
(
"account"
)));
}
}
}
return
true
;
}
@Override
public
void
postHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
ModelAndView
modelAndView
)
throws
Exception
{
}
@Override
public
void
afterCompletion
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
throws
Exception
{
}
}
\ No newline at end of file
src/main/java/cn/quantgroup/xyqb/model/LoginUserContext.java
0 → 100644
View file @
100b82df
package
cn
.
quantgroup
.
xyqb
.
model
;
import
lombok.Data
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.context.annotation.RequestScope
;
@RequestScope
@Component
@Data
public
class
LoginUserContext
{
private
String
userId
;
private
String
userName
;
}
src/main/java/cn/quantgroup/xyqb/model/OauthResult.java
0 → 100644
View file @
100b82df
package
cn
.
quantgroup
.
xyqb
.
model
;
import
lombok.Data
;
@Data
public
class
OauthResult
implements
java
.
io
.
Serializable
{
private
Integer
code
;
/** 业务异常相应码,前端需要依据这个做相应处理 **/
private
Integer
businessCode
;
/** 消息 **/
private
String
msg
;
/** 详细消息 **/
private
String
detail
;
/** 数据 **/
private
Object
data
;
}
src/main/java/cn/quantgroup/xyqb/remote/StmsRemoteService.java
0 → 100644
View file @
100b82df
package
cn
.
quantgroup
.
xyqb
.
remote
;
import
cn.quantgroup.xyqb.model.OauthResult
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestHeader
;
@FeignClient
(
name
=
"kuaidi100"
,
url
=
"http://www.kuaidi100.com/"
)
public
interface
StmsRemoteService
{
@PostMapping
(
"/v2/oauth/currentuserinfo"
)
OauthResult
checkToken
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
);
}
src/main/java/cn/quantgroup/xyqb/repository/IUserDisableRecordRepository.java
0 → 100644
View file @
100b82df
package
cn
.
quantgroup
.
xyqb
.
repository
;
import
cn.quantgroup.xyqb.entity.UserDisableRecord
;
import
java.util.List
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
public
interface
IUserDisableRecordRepository
extends
JpaRepository
<
UserDisableRecord
,
Long
>,
JpaSpecificationExecutor
<
UserDisableRecord
>
{
List
<
UserDisableRecord
>
findByUserId
(
Long
userId
);
}
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