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
32f74a41
Commit
32f74a41
authored
May 04, 2017
by
minminyan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
http支持批量查询userId的手机号,返回id+phone的map
当请求数据量过大时一次只拿1000条,休息1ms,确保服务不挂
parent
46092b41
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
173 additions
and
120 deletions
+173
-120
InnerController.java
...tgroup/xyqb/controller/external/user/InnerController.java
+13
-0
IUserRepository.java
...n/java/cn/quantgroup/xyqb/repository/IUserRepository.java
+7
-3
IUserService.java
...in/java/cn/quantgroup/xyqb/service/user/IUserService.java
+15
-11
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+138
-106
No files found.
src/main/java/cn/quantgroup/xyqb/controller/external/user/InnerController.java
View file @
32f74a41
...
@@ -21,6 +21,7 @@ import java.sql.Timestamp;
...
@@ -21,6 +21,7 @@ import java.sql.Timestamp;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* Created by Miraculous on 2016/12/19.
* Created by Miraculous on 2016/12/19.
...
@@ -69,6 +70,18 @@ public class InnerController {
...
@@ -69,6 +70,18 @@ public class InnerController {
return
JsonResult
.
buildSuccessResult
(
""
,
userRet
);
return
JsonResult
.
buildSuccessResult
(
""
,
userRet
);
}
}
@RequestMapping
(
"/user/getPhoneByUserIds"
)
public
JsonResult
findByIds
(
@RequestParam
(
value
=
"userIds"
)
String
userIdsString
)
{
LOGGER
.
info
(
"批量查询用户的手机号列表, userIdsString:"
+
userIdsString
);
if
(
StringUtils
.
isEmpty
(
userIdsString
))
{
return
JsonResult
.
buildErrorStateResult
(
null
,
null
);
}
List
<
Long
>
userIds
=
JSONObject
.
parseObject
(
userIdsString
,
new
TypeReference
<
List
<
Long
>>()
{
});
Map
<
Long
,
String
>
userIdAndPhoneMap
=
userService
.
findPhoneByIdsInDb
(
userIds
);
return
JsonResult
.
buildSuccessResult
(
""
,
userIdAndPhoneMap
);
}
@RequestMapping
(
"/user/save"
)
@RequestMapping
(
"/user/save"
)
public
JsonResult
saveUser
(
public
JsonResult
saveUser
(
String
phoneNo
,
Long
registeredFrom
,
Long
createdAt
,
Long
updatedAt
,
String
phoneNo
,
Long
registeredFrom
,
Long
createdAt
,
Long
updatedAt
,
...
...
src/main/java/cn/quantgroup/xyqb/repository/IUserRepository.java
View file @
32f74a41
...
@@ -3,6 +3,8 @@ package cn.quantgroup.xyqb.repository;
...
@@ -3,6 +3,8 @@ package cn.quantgroup.xyqb.repository;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
java.util.List
;
/**
/**
* Created by Miraculous on 15/7/4.
* Created by Miraculous on 15/7/4.
*/
*/
...
@@ -12,5 +14,7 @@ public interface IUserRepository extends JpaRepository<User, Long> {
...
@@ -12,5 +14,7 @@ public interface IUserRepository extends JpaRepository<User, Long> {
User
findByUuid
(
String
uuid
);
User
findByUuid
(
String
uuid
);
List
<
User
>
findByIdIn
(
List
<
Long
>
ids
);
User
findById
(
Long
id
);
User
findById
(
Long
id
);
}
}
src/main/java/cn/quantgroup/xyqb/service/user/IUserService.java
View file @
32f74a41
package
cn
.
quantgroup
.
xyqb
.
service
.
user
;
package
cn
.
quantgroup
.
xyqb
.
service
.
user
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* Created by Miraculous on 15/7/5.
* Created by Miraculous on 15/7/5.
...
@@ -24,6 +26,8 @@ public interface IUserService {
...
@@ -24,6 +26,8 @@ public interface IUserService {
User
findByUuidInDb
(
String
uuid
);
User
findByUuidInDb
(
String
uuid
);
Map
<
Long
,
String
>
findPhoneByIdsInDb
(
List
<
Long
>
userIds
);
User
saveUser
(
User
user
);
User
saveUser
(
User
user
);
User
findById
(
Long
userId
);
User
findById
(
Long
userId
);
...
...
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
32f74a41
...
@@ -7,21 +7,27 @@ import cn.quantgroup.xyqb.service.sms.ISmsService;
...
@@ -7,21 +7,27 @@ import cn.quantgroup.xyqb.service.sms.ISmsService;
import
cn.quantgroup.xyqb.service.user.ILkbUserService
;
import
cn.quantgroup.xyqb.service.user.ILkbUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.transaction.Transactional
;
import
javax.transaction.Transactional
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
/**
/**
* Created by Miraculous on 15/7/5.
* Created by Miraculous on 15/7/5.
*/
*/
@Service
@Service
@Slf4j
public
class
UserServiceImpl
implements
IUserService
{
public
class
UserServiceImpl
implements
IUserService
{
@Autowired
@Autowired
...
@@ -41,6 +47,31 @@ public class UserServiceImpl implements IUserService {
...
@@ -41,6 +47,31 @@ public class UserServiceImpl implements IUserService {
return
userRepository
.
findByPhoneNo
(
phone
);
return
userRepository
.
findByPhoneNo
(
phone
);
}
}
@Override
public
Map
<
Long
,
String
>
findPhoneByIdsInDb
(
List
<
Long
>
userIds
)
{
if
(
CollectionUtils
.
isEmpty
(
userIds
))
{
return
Maps
.
newHashMap
();
}
Map
<
Long
,
String
>
userIdAndPhoneMap
=
Maps
.
newHashMap
();
int
pageSize
=
1000
;
int
idSize
=
userIds
.
size
();
for
(
int
i
=
0
;
i
<
idSize
;
i
+=
pageSize
)
{
List
<
Long
>
subList
=
userIds
.
subList
(
i
,
Math
.
min
(
idSize
,
i
+
pageSize
));
List
<
User
>
users
=
userRepository
.
findByIdIn
(
subList
);
users
.
stream
().
forEach
(
user
->
{
userIdAndPhoneMap
.
put
(
user
.
getId
(),
user
.
getPhoneNo
());
});
if
(
i
+
pageSize
<
idSize
)
{
try
{
Thread
.
sleep
(
1
);
}
catch
(
InterruptedException
e
)
{
log
.
error
(
"线程sleep失败"
,
e
);
}
}
}
return
userIdAndPhoneMap
;
}
@Override
@Override
public
User
findByUuidInDb
(
String
uuid
)
{
public
User
findByUuidInDb
(
String
uuid
)
{
return
userRepository
.
findByUuid
(
uuid
);
return
userRepository
.
findByUuid
(
uuid
);
...
@@ -101,7 +132,7 @@ public class UserServiceImpl implements IUserService {
...
@@ -101,7 +132,7 @@ public class UserServiceImpl implements IUserService {
user
.
setUuid
(
uuid
);
user
.
setUuid
(
uuid
);
user
.
setPassword
(
PasswordUtil
.
MD5
(
password
.
toLowerCase
()
+
Constants
.
PASSWORD_SALT
));
user
.
setPassword
(
PasswordUtil
.
MD5
(
password
.
toLowerCase
()
+
Constants
.
PASSWORD_SALT
));
//解决线上白条registerFrom为1的问题
//解决线上白条registerFrom为1的问题
if
(
channelId
==
222L
)
{
if
(
channelId
==
222L
)
{
user
.
setRegisteredFrom
(
channelId
);
user
.
setRegisteredFrom
(
channelId
);
}
else
{
}
else
{
user
.
setRegisteredFrom
(
registerFrom
);
user
.
setRegisteredFrom
(
registerFrom
);
...
@@ -120,10 +151,11 @@ public class UserServiceImpl implements IUserService {
...
@@ -120,10 +151,11 @@ public class UserServiceImpl implements IUserService {
/**
/**
* 修改用户密码
* 修改用户密码
* @date 2017-02-15 修改用户修改密码时,更新updatedAt时间
*
* @param phoneNo
* @param phoneNo
* @param password
* @param password
* @return
* @return
* @date 2017-02-15 修改用户修改密码时,更新updatedAt时间
*/
*/
@Override
@Override
@CacheEvict
(
value
=
"usercache"
,
key
=
"'xyqbuser' + #phone"
,
cacheManager
=
"cacheManager"
)
@CacheEvict
(
value
=
"usercache"
,
key
=
"'xyqbuser' + #phone"
,
cacheManager
=
"cacheManager"
)
...
...
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