Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
customer-service
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
QG
customer-service
Commits
15859417
Commit
15859417
authored
Nov 10, 2020
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
数据库脱敏
parent
bf13b755
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
148 additions
and
2 deletions
+148
-2
ModifyPhoneNo.java
...a/cn/quantgroup/customer/rest/vo/phone/ModifyPhoneNo.java
+78
-0
IUserService.java
...ain/java/cn/quantgroup/customer/service/IUserService.java
+2
-0
UserServiceImpl.java
.../cn/quantgroup/customer/service/impl/UserServiceImpl.java
+36
-1
WorkOrderServiceImpl.java
...uantgroup/customer/service/impl/WorkOrderServiceImpl.java
+2
-1
DesensitizeUtil.java
...ain/java/cn/quantgroup/customer/util/DesensitizeUtil.java
+24
-0
WorkOrderTest.java
src/test/xiaoman/WorkOrderTest.java
+6
-0
No files found.
src/main/java/cn/quantgroup/customer/rest/vo/phone/ModifyPhoneNo.java
0 → 100644
View file @
15859417
package
cn
.
quantgroup
.
customer
.
rest
.
vo
.
phone
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
@Data
public
class
ModifyPhoneNo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
0x93c999d06b6f64d2
L
;
private
Long
id
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Timestamp
createdAt
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Timestamp
updatedAt
;
/**
* user.id
*/
private
Long
userId
;
/**
* 注册人真实姓名
*/
private
String
name
;
/**
* 注册人身份证件号
*/
private
String
idCard
;
/**
* 原手机号码
*/
private
String
prevPhoneNo
;
/**
* 新手机号码
*/
private
String
curPhoneNo
;
/**
* 身份证正面
*/
private
String
idCardFaceUrl
;
/**
* 身份证背面
*/
private
String
idCardRearUrl
;
/**
* 本人手持身份证照片
*/
private
String
idCardHoldUrl
;
/**
* 申请状态 0处理中; 1修改完成; 2不允许修改;
*/
private
Integer
applyStatus
;
/**
* 申请状态补充原因
*/
private
String
applyStatusReason
;
/**
* 处理状态 0待人工处理 1待用户反馈结果 2已反馈
*/
private
Integer
processingStatus
;
}
src/main/java/cn/quantgroup/customer/service/IUserService.java
View file @
15859417
...
...
@@ -9,6 +9,8 @@ import cn.quantgroup.customer.rest.param.user.UserCombinationParam;
import
cn.quantgroup.customer.rest.param.user.UserQueryParam
;
import
cn.quantgroup.customer.rest.vo.JsonResult
;
import
cn.quantgroup.customer.rest.vo.MoResult
;
import
cn.quantgroup.customer.rest.vo.phone.ModifyPhoneNo
;
import
org.springframework.data.domain.Page
;
import
org.springframework.security.core.userdetails.UserDetailsService
;
import
org.springframework.stereotype.Service
;
...
...
src/main/java/cn/quantgroup/customer/service/impl/UserServiceImpl.java
View file @
15859417
...
...
@@ -21,6 +21,7 @@ import cn.quantgroup.customer.rest.param.user.UserCombinationParam;
import
cn.quantgroup.customer.rest.param.user.UserQueryParam
;
import
cn.quantgroup.customer.rest.vo.JsonResult
;
import
cn.quantgroup.customer.rest.vo.MoResult
;
import
cn.quantgroup.customer.rest.vo.phone.ModifyPhoneNo
;
import
cn.quantgroup.customer.service.IIceService
;
import
cn.quantgroup.customer.service.IKaService
;
import
cn.quantgroup.customer.service.IUserService
;
...
...
@@ -31,6 +32,7 @@ import cn.quantgroup.riskcontrol.model.AuthenticationUserDetail;
import
cn.quantgroup.user.retbean.XUser
;
import
cn.quantgroup.user.retbean.XUserDetail
;
import
cn.quantgroup.user.vo.UserSysResult
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.google.common.collect.Maps
;
import
com.google.gson.Gson
;
...
...
@@ -41,6 +43,8 @@ import org.apache.commons.lang3.StringUtils;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.security.core.userdetails.UsernameNotFoundException
;
import
org.springframework.stereotype.Service
;
...
...
@@ -50,6 +54,7 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
static
cn
.
quantgroup
.
customer
.
constant
.
Constant
.
GSON
;
...
...
@@ -101,10 +106,40 @@ public class UserServiceImpl implements IUserService {
Map
param
=
gson
.
fromJson
(
gson
.
toJson
(
modifyPhoneQuery
),
Map
.
class
);
try
{
String
response
=
httpService
.
get
(
url
,
param
);
// log.info("[user][query modify phone list] 请求业务系统返回值,modifyPhoneQuery:{},response={}", modifyPhoneQuery, response);
if
(
StringUtils
.
isEmpty
(
response
))
{
log
.
error
(
"[user][query modify phone list] 请求业务系统返回值为空,modifyPhoneQuery:{}"
,
modifyPhoneQuery
);
return
response
;
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
response
);
JSONObject
data
=
jsonObject
.
getJSONObject
(
"data"
);
if
(
data
==
null
)
{
log
.
error
(
"[user][query modify phone list] 请求业务系统返回值为空,modifyPhoneQuery:{}"
,
modifyPhoneQuery
);
return
response
;
}
String
content
=
data
.
getString
(
"content"
);
if
(
StringUtils
.
isEmpty
(
content
))
{
log
.
error
(
"[user][query modify phone list] 请求业务系统返回值为空,modifyPhoneQuery:{}"
,
modifyPhoneQuery
);
return
response
;
}
TypeReference
<
List
<
ModifyPhoneNo
>>
typeToken
=
new
TypeReference
<
List
<
ModifyPhoneNo
>>()
{
};
List
<
ModifyPhoneNo
>
list
=
JSONTools
.
deserialize
(
content
,
typeToken
);
if
(
list
==
null
)
{
return
response
;
}
list
.
stream
().
peek
(
it
->
{
it
.
setPrevPhoneNo
(
DesensitizeUtil
.
mobileDesensitization
(
it
.
getPrevPhoneNo
()));
it
.
setCurPhoneNo
(
DesensitizeUtil
.
mobileDesensitization
(
it
.
getCurPhoneNo
()));
it
.
setIdCard
(
DesensitizeUtil
.
idcardDesensitization
(
it
.
getIdCard
()));
}).
collect
(
Collectors
.
toList
());
data
.
put
(
"content"
,
list
);
jsonObject
.
put
(
"data"
,
data
);
return
JSONTools
.
serialize
(
jsonObject
);
}
catch
(
Exception
e
)
{
log
.
error
(
"[user][query modify phone list] 网络通讯异常,modifyPhoneQuery:{},ex:{}"
,
modifyPhoneQuery
,
ExceptionUtils
.
getStackTrace
(
e
));
throw
new
BusinessException
(
ErrorCodeEnum
.
NET_ERROR
);
...
...
src/main/java/cn/quantgroup/customer/service/impl/WorkOrderServiceImpl.java
View file @
15859417
...
...
@@ -7,6 +7,7 @@ import cn.quantgroup.customer.repo.WorkOrderRepo;
import
cn.quantgroup.customer.rest.vo.JsonResult
;
import
cn.quantgroup.customer.service.IWorkOrderService
;
import
cn.quantgroup.customer.util.DateUtil
;
import
cn.quantgroup.customer.util.DesensitizeUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -56,7 +57,7 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
WorkOrderVO
workOrderVO
=
new
WorkOrderVO
();
workOrderVO
.
setWorkOrderId
(
it
.
getWorkOrderId
()
!=
null
?
it
.
getWorkOrderId
()+
""
:
null
);
workOrderVO
.
setUserName
(
it
.
getUserName
());
workOrderVO
.
setPhone
(
it
.
getPhone
(
));
workOrderVO
.
setPhone
(
DesensitizeUtil
.
mobileDesensitization
(
it
.
getPhone
()
));
workOrderVO
.
setSubject
(
it
.
getSubject
());
workOrderVO
.
setFrom
(
it
.
getFrom
());
workOrderVO
.
setType1
(
it
.
getType1
());
...
...
src/main/java/cn/quantgroup/customer/util/DesensitizeUtil.java
View file @
15859417
...
...
@@ -82,4 +82,28 @@ public class DesensitizeUtil {
return
right
(
idNo
,
4
);
}
// 手机号码前三后四脱敏
public
static
String
mobileDesensitization
(
String
mobile
)
{
if
(
StringUtils
.
isEmpty
(
mobile
)
||
(
mobile
.
length
()
!=
11
))
{
return
mobile
;
}
return
mobile
.
replaceAll
(
"(\\d{3})\\d{4}(\\d{4})"
,
"$1****$2"
);
}
//身份证前三后四脱敏
public
static
String
idcardDesensitization
(
String
idcard
)
{
if
(
StringUtils
.
isEmpty
(
idcard
)
||
(
idcard
.
length
()
<
8
))
{
return
idcard
;
}
return
idcard
.
replaceAll
(
"(?<=\\w{3})\\w(?=\\w{4})"
,
"*"
);
}
//护照前2后3位脱敏,护照一般为8或9位
public
static
String
idPassportDesensitization
(
String
idPassport
)
{
if
(
StringUtils
.
isEmpty
(
idPassport
)
||
(
idPassport
.
length
()
<
8
))
{
return
idPassport
;
}
return
idPassport
.
substring
(
0
,
2
)
+
new
String
(
new
char
[
idPassport
.
length
()
-
5
]).
replace
(
"\0"
,
"*"
)
+
idPassport
.
substring
(
idPassport
.
length
()
-
3
);
}
}
src/test/xiaoman/WorkOrderTest.java
View file @
15859417
...
...
@@ -5,6 +5,7 @@ import cn.quantgroup.customer.model.workorder.WorkOrderStatus;
import
cn.quantgroup.customer.model.workorder.WorkOrderVO
;
import
cn.quantgroup.customer.rest.vo.JsonResult
;
import
cn.quantgroup.customer.service.IWorkOrderService
;
import
cn.quantgroup.customer.util.DesensitizeUtil
;
import
cn.quantgroup.customer.util.JSONTools
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -38,4 +39,9 @@ public class WorkOrderTest {
System
.
out
.
println
(
JSONTools
.
serialize
(
pageJsonResult
));
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
DesensitizeUtil
.
mobileDesensitization
(
"13597778033"
));
System
.
out
.
println
(
DesensitizeUtil
.
idcardDesensitization
(
"422802199007261711"
));
}
}
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