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
33b077e2
Commit
33b077e2
authored
Dec 25, 2019
by
杨锐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
searchUserDetailList 优化。
parent
68967cf0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
35 deletions
+37
-35
UserDetailServiceImpl.java
...ntgroup/xyqb/service/user/impl/UserDetailServiceImpl.java
+37
-35
No files found.
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserDetailServiceImpl.java
View file @
33b077e2
...
@@ -83,6 +83,41 @@ public class UserDetailServiceImpl implements IUserDetailService {
...
@@ -83,6 +83,41 @@ public class UserDetailServiceImpl implements IUserDetailService {
@Override
@Override
public
List
<
UserDetailVO
>
searchUserDetailList
(
String
name
,
String
phoneNo
,
String
idNo
)
{
public
List
<
UserDetailVO
>
searchUserDetailList
(
String
name
,
String
phoneNo
,
String
idNo
)
{
return
jdbcTemplate
.
query
(
buildSearchUserDetailListSql
(
name
,
phoneNo
,
idNo
),
(
resultSet
,
i
)
->
{
UserDetailVO
userDetailVO
=
new
UserDetailVO
();
userDetailVO
.
setId
(
resultSet
.
getLong
(
"id"
));
userDetailVO
.
setUserId
(
resultSet
.
getLong
(
"user_id"
));
userDetailVO
.
setPhoneNo
(
resultSet
.
getString
(
"phone_no"
));
userDetailVO
.
setName
(
resultSet
.
getString
(
"name"
));
userDetailVO
.
setIdNo
(
resultSet
.
getString
(
"id_no"
));
userDetailVO
.
setIdType
(
IdType
.
values
()[
resultSet
.
getInt
(
"id_type"
)]);
userDetailVO
.
setIsAuthenticated
(
resultSet
.
getInt
(
"is_authenticated"
)
==
1
);
userDetailVO
.
setGender
(
Gender
.
values
()[
resultSet
.
getInt
(
"gender"
)]);
userDetailVO
.
setEmail
(
resultSet
.
getString
(
"email"
));
userDetailVO
.
setQq
(
resultSet
.
getString
(
"qq"
));
userDetailVO
.
setEnable
(
resultSet
.
getObject
(
"enable"
)
==
null
?
null
:
resultSet
.
getBoolean
(
"enable"
));
userDetailVO
.
setCreatedAt
(
resultSet
.
getTimestamp
(
"created_at"
).
getTime
());
userDetailVO
.
setUpdatedAt
(
resultSet
.
getTimestamp
(
"updated_at"
).
getTime
());
return
userDetailVO
;
});
// TODO: 2019/12/24 by rui branch feature_optimize_20191223 上线验证后,即删除该注释块
// List<UserDetail> details = userDetailRepository.findAll(getSpecification(name, phoneNo, idNo));
// Map<Long, User> userMap = Maps.newHashMap();
// if (!CollectionUtils.isEmpty(details)) {
// List<Long> userIds = details.stream().map(UserDetail::getUserId).collect(Collectors.toList());
// List<User> users = userRepository.findAll((root, query, cb) -> {
// query.where(root.get("id").in(userIds));
// return query.getRestriction();
// });
// userMap = users.stream().collect(Collectors.toMap(User::getId, o -> o));
// }
// Map<Long, User> finalUserMap = userMap;
// List<UserDetailVO> userDetailVOS = details.stream().map(o -> fromUserDetailAndUserMap(o, finalUserMap)).collect(Collectors.toList());
// return userDetailVOS;
}
private
String
buildSearchUserDetailListSql
(
String
name
,
String
phoneNo
,
String
idNo
)
{
/* 优化两次sql查询耗时问题,示例name=王斌*/
/* 优化两次sql查询耗时问题,示例name=王斌*/
// TODO: 2019/12/24 by rui 暂未找到jpa data同时满足join,动态传参方式。若日后发现,应优化该段代码。
// TODO: 2019/12/24 by rui 暂未找到jpa data同时满足join,动态传参方式。若日后发现,应优化该段代码。
/* 高层模块已校验至少必须满足一个条件不为空 */
/* 高层模块已校验至少必须满足一个条件不为空 */
...
@@ -103,41 +138,8 @@ public class UserDetailServiceImpl implements IUserDetailService {
...
@@ -103,41 +138,8 @@ public class UserDetailServiceImpl implements IUserDetailService {
if
(
sql
.
endsWith
(
"and"
))
{
if
(
sql
.
endsWith
(
"and"
))
{
sql
=
sql
.
substring
(
0
,
sql
.
length
()
-
3
);
sql
=
sql
.
substring
(
0
,
sql
.
length
()
-
3
);
}
}
return
jdbcTemplate
.
query
(
sql
,
new
RowMapper
<
UserDetailVO
>()
{
sql
=
sql
+
" limit 500"
;
@Override
return
sql
;
public
UserDetailVO
mapRow
(
ResultSet
resultSet
,
int
i
)
throws
SQLException
{
UserDetailVO
userDetailVO
=
new
UserDetailVO
();
userDetailVO
.
setId
(
resultSet
.
getLong
(
"id"
));
userDetailVO
.
setUserId
(
resultSet
.
getLong
(
"user_id"
));
userDetailVO
.
setPhoneNo
(
resultSet
.
getString
(
"phone_no"
));
userDetailVO
.
setName
(
resultSet
.
getString
(
"name"
));
userDetailVO
.
setIdNo
(
resultSet
.
getString
(
"id_no"
));
userDetailVO
.
setIdType
(
IdType
.
values
()[
resultSet
.
getInt
(
"id_type"
)]);
userDetailVO
.
setIsAuthenticated
(
resultSet
.
getInt
(
"is_authenticated"
)
==
1
);
userDetailVO
.
setGender
(
Gender
.
values
()[
resultSet
.
getInt
(
"gender"
)]);
userDetailVO
.
setEmail
(
resultSet
.
getString
(
"email"
));
userDetailVO
.
setQq
(
resultSet
.
getString
(
"qq"
));
userDetailVO
.
setEnable
(
resultSet
.
getObject
(
"enable"
)
==
null
?
null
:
resultSet
.
getBoolean
(
"enable"
));
userDetailVO
.
setCreatedAt
(
resultSet
.
getTimestamp
(
"created_at"
).
getTime
());
userDetailVO
.
setUpdatedAt
(
resultSet
.
getTimestamp
(
"updated_at"
).
getTime
());
return
userDetailVO
;
}
});
// TODO: 2019/12/24 by rui branch feature_optimize_20191223 上线验证后,即删除该注释块
// List<UserDetail> details = userDetailRepository.findAll(getSpecification(name, phoneNo, idNo));
// Map<Long, User> userMap = Maps.newHashMap();
// if (!CollectionUtils.isEmpty(details)) {
// List<Long> userIds = details.stream().map(UserDetail::getUserId).collect(Collectors.toList());
// List<User> users = userRepository.findAll((root, query, cb) -> {
// query.where(root.get("id").in(userIds));
// return query.getRestriction();
// });
// userMap = users.stream().collect(Collectors.toMap(User::getId, o -> o));
// }
// Map<Long, User> finalUserMap = userMap;
// List<UserDetailVO> userDetailVOS = details.stream().map(o -> fromUserDetailAndUserMap(o, finalUserMap)).collect(Collectors.toList());
// return userDetailVOS;
}
}
@Override
@Override
...
...
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