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
a0acda43
Commit
a0acda43
authored
May 25, 2018
by
xiaoguang.xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 回复findByPhones 接口. 暂时未增加读写分离.
parent
6b2cd7d7
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
81 additions
and
7 deletions
+81
-7
InnerController.java
...tgroup/xyqb/controller/external/user/InnerController.java
+29
-7
IUserDetailService.java
...a/cn/quantgroup/xyqb/service/user/IUserDetailService.java
+2
-0
IUserService.java
...in/java/cn/quantgroup/xyqb/service/user/IUserService.java
+3
-0
UserDetailServiceImpl.java
...ntgroup/xyqb/service/user/impl/UserDetailServiceImpl.java
+9
-0
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+38
-0
No files found.
src/main/java/cn/quantgroup/xyqb/controller/external/user/InnerController.java
View file @
a0acda43
...
...
@@ -102,7 +102,6 @@ public class InnerController implements IBaseController {
};
@RequestMapping
(
"/user/search/phoneNo"
)
public
JsonResult
findByPhoneNo
(
String
phoneNo
)
{
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
user
==
null
)
{
...
...
@@ -110,7 +109,6 @@ public class InnerController implements IBaseController {
}
UserRet
userRet
=
new
UserRet
(
user
);
return
JsonResult
.
buildSuccessResult
(
""
,
userRet
);
}
...
...
@@ -271,9 +269,9 @@ public class InnerController implements IBaseController {
return
JsonResult
.
buildErrorStateResult
(
"用户手机号不匹配"
,
null
);
}
Timestamp
now
=
new
Timestamp
(
System
.
currentTimeMillis
());
/*
* 如果已存在记录,则更新
*/
/*
* 如果已存在记录,则更新
*/
UserDetail
userDetail
=
userDetailService
.
findByUserId
(
userId
);
if
(
Objects
.
isNull
(
userDetail
))
{
userDetail
=
userDetailService
.
findByPhoneNo
(
phoneNo
);
...
...
@@ -970,17 +968,41 @@ public class InnerController implements IBaseController {
return
JsonResult
.
buildErrorStateResult
(
"传入用户手机号不可为空"
,
null
);
}
private
static
long
MAX_SIZE
=
500L
;
/**
* 手机号批量查询uuid
* todo 代码增加读写分离. 这里需要查从库
*
* @param userPhones
* @return
*/
@RequestMapping
(
"/uuid/findByPhones"
)
public
JsonResult
getUuidsByPhones
(
@RequestParam
(
"userPhones"
)
String
userPhones
)
{
return
JsonResult
.
buildErrorStateResult
(
"主库不提供查询"
,
null
);
if
(
StringUtils
.
isBlank
(
userPhones
))
{
return
JsonResult
.
buildErrorStateResult
(
"传入用户手机号不可为空"
,
null
);
}
List
<
String
>
phones
=
JSONObject
.
parseObject
(
userPhones
,
new
TypeReference
<
List
<
String
>>()
{
});
if
(
org
.
apache
.
commons
.
collections
.
CollectionUtils
.
isNotEmpty
(
phones
))
{
if
(!(
phones
.
size
()
>
MAX_SIZE
))
{
List
<
UserInfo
>
userInfos
=
userService
.
findUserInfosByPhones
(
phones
);
if
(
org
.
apache
.
commons
.
collections
.
CollectionUtils
.
isNotEmpty
(
userInfos
))
{
Map
<
String
,
UserInfo
>
userInfoMap
=
Maps
.
newHashMapWithExpectedSize
(
userInfos
.
size
());
userInfos
.
forEach
(
userInfo
->
{
userInfoMap
.
put
(
userInfo
.
getPhoneNo
(),
userInfo
);
});
return
JsonResult
.
buildSuccessResult
(
null
,
userInfoMap
);
}
else
{
return
JsonResult
.
buildSuccessResult
(
null
,
null
);
}
}
return
JsonResult
.
buildErrorStateResult
(
"uuid单次批量查询不可超过500个手机号"
,
null
);
}
return
JsonResult
.
buildErrorStateResult
(
"uuid批量传入用户手机号不可为空"
,
null
);
}
/**
...
...
src/main/java/cn/quantgroup/xyqb/service/user/IUserDetailService.java
View file @
a0acda43
...
...
@@ -42,4 +42,6 @@ public interface IUserDetailService {
* @return 受影响的行数
*/
int
updateIdCard
(
String
name
,
String
idNo
,
String
phoneNo
);
List
<
UserDetail
>
findByPhones
(
List
<
String
>
phoneNos
);
}
src/main/java/cn/quantgroup/xyqb/service/user/IUserService.java
View file @
a0acda43
package
cn
.
quantgroup
.
xyqb
.
service
.
user
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.model.UserInfo
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -39,4 +40,6 @@ public interface IUserService {
*/
int
forbiddenUser
(
Boolean
enable
,
String
phoneNo
);
List
<
UserInfo
>
findUserInfosByPhones
(
List
<
String
>
phones
);
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserDetailServiceImpl.java
View file @
a0acda43
...
...
@@ -197,4 +197,13 @@ public class UserDetailServiceImpl implements IUserDetailService {
}
return
0
;
}
@Override
public
List
<
UserDetail
>
findByPhones
(
List
<
String
>
phoneNos
)
{
List
<
UserDetail
>
userDetails
=
userDetailRepository
.
findAll
((
root
,
query
,
cb
)
->
{
query
.
where
(
root
.
get
(
"phoneNo"
).
as
(
String
.
class
).
in
(
phoneNos
));
return
query
.
getRestriction
();
});
return
userDetails
;
}
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
a0acda43
...
...
@@ -2,9 +2,13 @@ package cn.quantgroup.xyqb.service.user.impl;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
cn.quantgroup.xyqb.model.UserInfo
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
import
cn.quantgroup.xyqb.service.user.IUserDetailService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
...
...
@@ -16,6 +20,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.CollectionUtils
;
import
java.sql.Timestamp
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -31,6 +36,9 @@ public class UserServiceImpl implements IUserService {
RedisTemplate
<
String
,
String
>
stringRedisTemplate
;
@Autowired
private
IUserRepository
userRepository
;
@Autowired
private
IUserDetailService
userDetailService
;
@Override
@Cacheable
(
value
=
"usercache"
,
key
=
"'xyqbuser' + #phone"
,
unless
=
"#result == null"
,
cacheManager
=
"cacheManager"
)
...
...
@@ -137,4 +145,34 @@ public class UserServiceImpl implements IUserService {
return
userRepository
.
forbiddenUser
(
enable
,
phoneNo
);
}
@Override
public
List
<
UserInfo
>
findUserInfosByPhones
(
List
<
String
>
phones
)
{
List
<
User
>
users
=
findByPhones
(
phones
);
if
(
CollectionUtils
.
isEmpty
(
phones
)){
return
Collections
.
emptyList
();
}
List
<
UserDetail
>
userDetails
=
userDetailService
.
findByPhones
(
phones
);
if
(!
CollectionUtils
.
isEmpty
(
users
))
{
Map
<
Long
,
User
>
userMap
=
Maps
.
newHashMapWithExpectedSize
(
users
.
size
());
users
.
forEach
(
user
->
{
userMap
.
put
(
user
.
getId
(),
user
);
});
if
(!
CollectionUtils
.
isEmpty
(
userDetails
))
{
List
<
UserInfo
>
userInfos
=
Lists
.
newArrayListWithExpectedSize
(
userDetails
.
size
());
userDetails
.
forEach
(
userDetail
->
{
UserInfo
userInfo
=
new
UserInfo
(
userMap
.
get
(
userDetail
.
getUserId
()),
userDetail
);
userInfos
.
add
(
userInfo
);
});
return
userInfos
;
}
}
return
Collections
.
emptyList
();
}
}
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