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
28ccf13c
Commit
28ccf13c
authored
Dec 10, 2018
by
xiaoguang.xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: userDetail update 更新userHashMapping
parent
3b2477ef
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
144 additions
and
75 deletions
+144
-75
UserDetailController.java
...p/xyqb/controller/internal/user/UserDetailController.java
+1
-1
KafkaUserEventListener.java
...java/cn/quantgroup/xyqb/event/KafkaUserEventListener.java
+4
-12
MQRegisteredEventListener.java
...a/cn/quantgroup/xyqb/event/MQRegisteredEventListener.java
+15
-13
StatisticsEvent.java
src/main/java/cn/quantgroup/xyqb/event/StatisticsEvent.java
+3
-23
UserDetailHashEventListener.java
...cn/quantgroup/xyqb/event/UserDetailHashEventListener.java
+44
-0
UserDetailStatisticsEventListener.java
...ntgroup/xyqb/event/UserDetailStatisticsEventListener.java
+33
-0
UserDetailUpdateEvent.java
.../java/cn/quantgroup/xyqb/event/UserDetailUpdateEvent.java
+24
-0
UserDetailServiceImpl.java
...ntgroup/xyqb/service/user/impl/UserDetailServiceImpl.java
+20
-26
No files found.
src/main/java/cn/quantgroup/xyqb/controller/internal/user/UserDetailController.java
View file @
28ccf13c
...
...
@@ -49,7 +49,7 @@ public class UserDetailController implements IBaseController {
*/
@RequestMapping
(
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"保存/更新用户实名信息"
)
public
JsonResult
saveUser
d
etail
(
String
idNo
,
public
JsonResult
saveUser
D
etail
(
String
idNo
,
@ChineseName
@RequestParam
String
name
)
{
if
(!
ValidationUtil
.
validateChinese
(
name
))
{
log
.
error
(
"姓名错误,name:{}"
,
name
);
...
...
src/main/java/cn/quantgroup/xyqb/event/KafkaUserEventListener.java
View file @
28ccf13c
package
cn
.
quantgroup
.
xyqb
.
event
;
import
java.util.Objects
;
import
javax.annotation.Resource
;
import
cn.quantgroup.acolyte.buddhistscriptures.ingester.UserIngest
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.stereotype.Component
;
import
cn.quantgroup.acolyte.buddhistscriptures.ingester.UserIngest
;
import
javax.annotation.Resource
;
import
java.util.Objects
;
/**
* 发送到Kafka - 综合统计中心 - 登录
...
...
@@ -22,14 +20,8 @@ public class KafkaUserEventListener implements ApplicationListener<StatisticsEve
@Override
public
void
onApplicationEvent
(
StatisticsEvent
event
)
{
if
(
Objects
.
nonNull
(
event
.
getRegister
())){
userIngest
.
sendRegisterInfo
(
event
.
getRegister
());
}
if
(
Objects
.
nonNull
(
event
.
getLogin
())){
if
(
Objects
.
nonNull
(
event
.
getLogin
()))
{
userIngest
.
sendLoginInfo
(
event
.
getLogin
());
}
if
(
Objects
.
nonNull
(
event
.
getUserRealInfo
())){
userIngest
.
sendUserRealInfo
(
event
.
getUserRealInfo
());
}
}
}
src/main/java/cn/quantgroup/xyqb/event/MQRegisteredEventListener.java
View file @
28ccf13c
package
cn
.
quantgroup
.
xyqb
.
event
;
import
javax.annotation.Resource
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.stereotype.Component
;
import
cn.quantgroup.acolyte.buddhistscriptures.ingester.UserIngest
;
import
cn.quantgroup.acolyte.buddhistscriptures.pojo.Register
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.model.UserRegisterParam
;
import
cn.quantgroup.xyqb.util.MqUtils
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
/**
* 发mq, 目前只有数据可视化分析系统需要这个
...
...
@@ -19,8 +17,10 @@ import cn.quantgroup.xyqb.util.MqUtils;
*/
@Component
public
class
MQRegisteredEventListener
implements
ApplicationListener
<
RegisterEvent
>
{
@Resource
private
ApplicationEventPublisher
applicationEventPublisher
;
private
UserIngest
userIngest
;
@Override
public
void
onApplicationEvent
(
RegisterEvent
event
)
{
...
...
@@ -31,11 +31,13 @@ public class MQRegisteredEventListener implements ApplicationListener<RegisterEv
Long
channelId
=
userRegisterParam
.
getChannelId
();
String
dimension
=
userRegisterParam
.
getDimension
();
User
user
=
userRegisterParam
.
getUser
();
if
(
user
!=
null
)
{
// 发送注册成功统计消息
MqUtils
.
sendRegisterMessage
(
channelId
,
dimension
,
user
);
Register
register
=
new
Register
(
user
.
getUuid
(),
user
.
getId
(),
user
.
getPhoneNo
(),
user
.
getRegisteredFrom
(),
channelId
,
dimension
,
user
.
getCreatedAt
().
getTime
());
applicationEventPublisher
.
publishEvent
(
new
StatisticsEvent
(
this
,
register
));
//拿不到user对象. 就是没注册了
if
(
user
==
null
)
{
return
;
}
// 发送注册成功统计消息
MqUtils
.
sendRegisterMessage
(
channelId
,
dimension
,
user
);
Register
register
=
new
Register
(
user
.
getUuid
(),
user
.
getId
(),
user
.
getPhoneNo
(),
user
.
getRegisteredFrom
(),
channelId
,
dimension
,
user
.
getCreatedAt
().
getTime
());
userIngest
.
sendRegisterInfo
(
register
);
}
}
src/main/java/cn/quantgroup/xyqb/event/StatisticsEvent.java
View file @
28ccf13c
package
cn
.
quantgroup
.
xyqb
.
event
;
import
org.springframework.context.ApplicationEvent
;
import
cn.quantgroup.acolyte.buddhistscriptures.pojo.Login
;
import
lombok.Getter
;
import
lombok.Setter
;
import
cn.quantgroup.acolyte.buddhistscriptures.pojo.Login
;
import
cn.quantgroup.acolyte.buddhistscriptures.pojo.Register
;
import
cn.quantgroup.acolyte.buddhistscriptures.pojo.UserRealInfo
;
import
org.springframework.context.ApplicationEvent
;
/**
* 统计事件
...
...
@@ -22,29 +18,13 @@ public class StatisticsEvent extends ApplicationEvent {
* 登录统计
*/
private
Login
login
;
/**
* 注册统计
*/
private
Register
register
;
/**
* 实名统计
*/
private
UserRealInfo
userRealInfo
;
public
StatisticsEvent
(
Object
source
)
{
super
(
source
);
}
public
StatisticsEvent
(
Object
source
,
Login
login
)
{
super
(
source
);
this
.
login
=
login
;
}
public
StatisticsEvent
(
Object
source
,
Register
register
)
{
super
(
source
);
this
.
register
=
register
;
}
public
StatisticsEvent
(
Object
source
,
UserRealInfo
userRealInfo
)
{
super
(
source
);
this
.
userRealInfo
=
userRealInfo
;
}
}
src/main/java/cn/quantgroup/xyqb/event/UserDetailHashEventListener.java
0 → 100644
View file @
28ccf13c
package
cn
.
quantgroup
.
xyqb
.
event
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
cn.quantgroup.xyqb.entity.UserHashMapping
;
import
cn.quantgroup.xyqb.repository.IUserHashMappingRepository
;
import
cn.quantgroup.xyqb.util.encrypt.MD5Util
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.stereotype.Component
;
/**
* userDetail 更新时, 保存 hashMapping 数据
*/
@Component
public
class
UserDetailHashEventListener
implements
ApplicationListener
<
UserDetailUpdateEvent
>
{
@Autowired
private
IUserHashMappingRepository
userHashMappingRepository
;
@Override
public
void
onApplicationEvent
(
UserDetailUpdateEvent
event
)
{
UserDetail
userDetail
=
event
.
getUserDetail
();
UserHashMapping
userHashMapping
=
userHashMappingRepository
.
findByUserId
(
userDetail
.
getUserId
());
String
idNoMd5
=
userHashMapping
.
getIdNoMd5
();
String
idNo
=
userDetail
.
getIdNo
().
toUpperCase
();
String
idNoMd5New
=
MD5Util
.
build
(
idNo
);
//新旧相同, 直接跳过
if
(
StringUtils
.
equals
(
idNoMd5
,
idNoMd5New
))
{
return
;
}
userHashMapping
.
setIdNoMd5
(
idNoMd5New
);
userHashMappingRepository
.
save
(
userHashMapping
);
}
}
src/main/java/cn/quantgroup/xyqb/event/UserDetailStatisticsEventListener.java
0 → 100644
View file @
28ccf13c
package
cn
.
quantgroup
.
xyqb
.
event
;
import
cn.quantgroup.acolyte.buddhistscriptures.ingester.UserIngest
;
import
cn.quantgroup.acolyte.buddhistscriptures.pojo.UserRealInfo
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
/**
* 用户保存或更新 userDetail 时发送统计信息
*/
@Component
public
class
UserDetailStatisticsEventListener
implements
ApplicationListener
<
UserDetailUpdateEvent
>
{
@Resource
private
UserIngest
userIngest
;
@Override
public
void
onApplicationEvent
(
UserDetailUpdateEvent
event
)
{
UserDetail
userDetail
=
event
.
getUserDetail
();
UserRealInfo
userRealInfo
=
new
UserRealInfo
();
userRealInfo
.
setUserId
(
userDetail
.
getUserId
());
userRealInfo
.
setIdType
(
userDetail
.
getIdType
().
ordinal
());
userRealInfo
.
setName
(
userDetail
.
getName
());
userRealInfo
.
setIdNo
(
userDetail
.
getIdNo
());
userIngest
.
sendUserRealInfo
(
userRealInfo
);
}
}
src/main/java/cn/quantgroup/xyqb/event/UserDetailUpdateEvent.java
0 → 100644
View file @
28ccf13c
package
cn
.
quantgroup
.
xyqb
.
event
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
lombok.Getter
;
import
org.springframework.context.ApplicationEvent
;
@Getter
public
class
UserDetailUpdateEvent
extends
ApplicationEvent
{
/**
* Create a new ApplicationEvent.
*
* @param source the object on which the event initially occurred (never {@code null})
*/
public
UserDetailUpdateEvent
(
Object
source
)
{
super
(
source
);
}
private
UserDetail
userDetail
;
public
UserDetailUpdateEvent
(
Object
source
,
UserDetail
userDetail
)
{
super
(
source
);
this
.
userDetail
=
userDetail
;
}
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserDetailServiceImpl.java
View file @
28ccf13c
package
cn
.
quantgroup
.
xyqb
.
service
.
user
.
impl
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Predicate
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.dao.DataIntegrityViolationException
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
cn.quantgroup.acolyte.buddhistscriptures.pojo.UserRealInfo
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
cn.quantgroup.xyqb.event.
Statistics
Event
;
import
cn.quantgroup.xyqb.event.
UserDetailUpdate
Event
;
import
cn.quantgroup.xyqb.model.Gender
;
import
cn.quantgroup.xyqb.model.IdCardInfo
;
import
cn.quantgroup.xyqb.repository.IUserDetailRepository
;
...
...
@@ -34,6 +12,23 @@ import cn.quantgroup.xyqb.service.auth.IIdCardService;
import
cn.quantgroup.xyqb.service.user.IUserDetailService
;
import
cn.quantgroup.xyqb.service.user.vo.UserDetailVO
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.dao.DataIntegrityViolationException
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Predicate
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* Created by 11 on 2016/12/29.
...
...
@@ -58,10 +53,9 @@ public class UserDetailServiceImpl implements IUserDetailService {
@Override
public
UserDetail
saveUserDetail
(
UserDetail
userDetail
)
throws
DataIntegrityViolationException
{
UserDetail
userDetail1
=
userDetailRepository
.
save
(
userDetail
);
if
(
Objects
.
nonNull
(
userDetail
))
{
if
(
Objects
.
nonNull
(
userDetail
))
{
// 发送实名登记统计消息
UserRealInfo
userRealInfo
=
new
UserRealInfo
(
userDetail
.
getUserId
(),
userDetail
.
getName
(),
userDetail
.
getIdNo
(),
userDetail
.
getIdType
().
ordinal
());
applicationEventPublisher
.
publishEvent
(
new
StatisticsEvent
(
this
,
userRealInfo
));
applicationEventPublisher
.
publishEvent
(
new
UserDetailUpdateEvent
(
this
,
userDetail1
));
}
return
userDetail1
;
}
...
...
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