记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
董敬伟
liquidnet-bus-v1
Commits
b75d2eba
Commit
b75d2eba
authored
Sep 18, 2021
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交chime社交相关
parent
43d2e783
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
182 additions
and
152 deletions
+182
-152
IChimePerformanceService.java
...idnet/service/chime/service/IChimePerformanceService.java
+0
-2
ChimeUserInfoVo.java
...com/liquidnet/service/chime/vo/mongo/ChimeUserInfoVo.java
+4
-0
application-dev.yml
liquidnet-bus-config/liquidnet-config/application-dev.yml
+5
-0
mongo_db_ddl-prod.sql
...e/liquidnet-service-chime-impl/docu/mongo_db_ddl-prod.sql
+3
-6
ChimeUserBiz.java
...in/java/com/liquidnet/service/chime/biz/ChimeUserBiz.java
+31
-0
ChimeUserController.java
...quidnet/service/chime/controller/ChimeUserController.java
+21
-29
ChimePerformanceServiceImpl.java
...rvice/chime/service/impl/ChimePerformanceServiceImpl.java
+20
-90
ChimeUserServiceImpl.java
...dnet/service/chime/service/impl/ChimeUserServiceImpl.java
+24
-20
DataUtils.java
...ain/java/com/liquidnet/service/chime/utils/DataUtils.java
+7
-0
ObjectUtil.java
...in/java/com/liquidnet/service/chime/utils/ObjectUtil.java
+0
-2
TestDataUtils.java
.../java/com/liquidnet/service/chime/test/TestDataUtils.java
+66
-2
bootstrap.yml
...liquidnet-support-eureka/src/main/resources/bootstrap.yml
+1
-1
No files found.
liquidnet-bus-api/liquidnet-service-chime-api/src/main/java/com/liquidnet/service/chime/service/IChimePerformanceService.java
View file @
b75d2eba
...
@@ -14,7 +14,5 @@ import com.liquidnet.service.chime.dto.NewPageResult;
...
@@ -14,7 +14,5 @@ import com.liquidnet.service.chime.dto.NewPageResult;
* @date 2021/9/9 12:03
* @date 2021/9/9 12:03
*/
*/
public
interface
IChimePerformanceService
{
public
interface
IChimePerformanceService
{
// PageInfo<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto);
NewPageResult
<
ChimeUserInfoDto
>
getUserListByCon
(
ChimeUserListQueryReqDto
reqDto
);
NewPageResult
<
ChimeUserInfoDto
>
getUserListByCon
(
ChimeUserListQueryReqDto
reqDto
);
}
}
liquidnet-bus-api/liquidnet-service-chime-api/src/main/java/com/liquidnet/service/chime/vo/mongo/ChimeUserInfoVo.java
View file @
b75d2eba
...
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
...
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
/**
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @version V1.0
...
@@ -36,6 +38,8 @@ public class ChimeUserInfoVo {
...
@@ -36,6 +38,8 @@ public class ChimeUserInfoVo {
private
String
area
;
private
String
area
;
@ApiModelProperty
(
position
=
8
,
value
=
"在场ID"
)
@ApiModelProperty
(
position
=
8
,
value
=
"在场ID"
)
private
String
joinPerformanceId
;
private
String
joinPerformanceId
;
@ApiModelProperty
(
position
=
9
,
value
=
"用户标签"
)
private
List
<
ChimeUserTagsMappingVo
>
userTagsVoList
;
private
static
final
ChimeUserInfoVo
obj
=
new
ChimeUserInfoVo
();
private
static
final
ChimeUserInfoVo
obj
=
new
ChimeUserInfoVo
();
public
static
ChimeUserInfoVo
getNew
()
{
public
static
ChimeUserInfoVo
getNew
()
{
...
...
liquidnet-bus-config/liquidnet-config/application-dev.yml
View file @
b75d2eba
...
@@ -49,6 +49,11 @@ liquidnet:
...
@@ -49,6 +49,11 @@ liquidnet:
port
:
27017
port
:
27017
user
:
admin
user
:
admin
pwd
:
S&y$6d*JwJ
pwd
:
S&y$6d*JwJ
chime
:
host
:
s-2ze04ffc16a54af4-pub.mongodb.rds.aliyuncs.com:3717
port
:
3717
user
:
admin
pwd
:
S&y$6d*JwJ
service
:
service
:
adam
:
adam
:
url-pay
:
url-pay
:
...
...
liquidnet-bus-service/liquidnet-service-chime/liquidnet-service-chime-impl/docu/mongo_db_ddl-prod.sql
View file @
b75d2eba
use
prod_ln_scene
;
use
prod_ln_scene
;
#
创建集合
#
创建集合
db
.
createCollection
(
"ChimeUserInfoVo"
);
db
.
createCollection
(
"ChimeUserInfoVo"
);
db
.
createCollection
(
"ChimeUserTagsMappingVo"
);
#
创建索引
#
创建索引
db
.
ChimeUserInfoVo
.
createIndex
(
{
userId
:
"hashed"
}
);
db
.
ChimeUserInfoVo
.
createIndex
(
{
userId
:
"hashed"
}
);
db
.
ChimeUserInfoVo
.
createIndex
(
{
sex
:
"hashed"
}
);
db
.
ChimeUserInfoVo
.
createIndex
(
{
joinPerformanceId
:
"hashed"
}
);
db
.
ChimeUserInfoVo
.
createIndex
(
{
joinPerformanceId
:
"hashed"
}
);
db
.
ChimeUserTagsMappingVo
.
createIndex
(
{
userId
:
"hashed"
}
);
db
.
ChimeUserTagsMappingVo
.
createIndex
(
{
tagCode
:
"hashed"
}
);
#
创建分片
#
创建分片
sh
.
enableSharding
(
"prod_ln_scene"
);
sh
.
enableSharding
(
"dev_ln_scene"
);
sh
.
shardCollection
(
"prod_ln_scene.ChimeUserInfoVo"
,
{
"userId"
:
"hashed"
}
);
sh
.
shardCollection
(
"dev_ln_scene.ChimeUserInfoVo"
,
{
"userId"
:
"hashed"
}
);
sh
.
shardCollection
(
"prod_ln_scene.ChimeUserTagsMappingVo"
,
{
"userId"
:
"hashed"
}
);
liquidnet-bus-service/liquidnet-service-chime/liquidnet-service-chime-impl/src/main/java/com/liquidnet/service/chime/biz/ChimeUserBiz.java
View file @
b75d2eba
...
@@ -3,9 +3,11 @@ package com.liquidnet.service.chime.biz;
...
@@ -3,9 +3,11 @@ package com.liquidnet.service.chime.biz;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.chime.dto.ChimeJoinUserCountDto
;
import
com.liquidnet.service.chime.dto.ChimeJoinUserCountDto
;
import
com.liquidnet.service.chime.dto.ChimeUserTagDto
;
import
com.liquidnet.service.chime.dto.PerformanceDto
;
import
com.liquidnet.service.chime.dto.PerformanceDto
;
import
com.liquidnet.service.chime.utils.DataUtils
;
import
com.liquidnet.service.chime.utils.DataUtils
;
import
com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo
;
import
com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo
;
...
@@ -60,6 +62,35 @@ public class ChimeUserBiz {
...
@@ -60,6 +62,35 @@ public class ChimeUserBiz {
return
userTagList
;
return
userTagList
;
}
}
/**
* Json转换list
* @param tags
* @return
*/
public
List
<
ChimeUserTagDto
>
buildUserTagDtoList
(
String
userId
,
String
tags
){
List
<
ChimeUserTagsMappingVo
>
userTagVoList
=
new
ArrayList
<>();
List
<
ChimeUserTagDto
>
userTagDtoList
=
new
ArrayList
<>();
if
(
StringUtil
.
isNotEmpty
(
tags
)){
ObjectMapper
mapper
=
new
ObjectMapper
();
try
{
userTagVoList
=
mapper
.
readValue
(
tags
,
new
TypeReference
<
List
<
ChimeUserTagsMappingVo
>>()
{});
}
catch
(
JsonProcessingException
e
)
{
e
.
printStackTrace
();
log
.
error
(
"createChimeUserInfo msg:{}"
,
e
.
getMessage
());
log
.
error
(
"createChimeUserInfo error : "
,
e
);
return
null
;
}
}
//设置用户id
userTagVoList
.
parallelStream
().
forEach
(
vo
->
{
ChimeUserTagDto
userTagDto
=
ChimeUserTagDto
.
getNew
();
vo
.
setUserId
(
userId
);
BeanUtil
.
copy
(
vo
,
userTagDto
);
userTagDtoList
.
add
(
userTagDto
);
});
return
userTagDtoList
;
}
/**
/**
* 演出voList转换为DtoList
* 演出voList转换为DtoList
* @param performanceVoList
* @param performanceVoList
...
...
liquidnet-bus-service/liquidnet-service-chime/liquidnet-service-chime-impl/src/main/java/com/liquidnet/service/chime/controller/ChimeUserController.java
View file @
b75d2eba
package
com
.
liquidnet
.
service
.
chime
.
controller
;
package
com
.
liquidnet
.
service
.
chime
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserRegisterRespDto
;
import
com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto
;
import
com.liquidnet.service.chime.service.IChimeUserService
;
import
com.liquidnet.service.chime.service.IChimeUserService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
...
@@ -16,7 +14,10 @@ import io.swagger.annotations.ApiOperation;
...
@@ -16,7 +14,10 @@ import io.swagger.annotations.ApiOperation;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @author AnJiabin <anjiabin@zhengzai.tv>
...
@@ -46,7 +47,7 @@ public class ChimeUserController {
...
@@ -46,7 +47,7 @@ public class ChimeUserController {
@ApiImplicitParam
(
type
=
"form"
,
required
=
false
,
dataType
=
"String"
,
name
=
"performanceId"
,
value
=
"演出id"
)
@ApiImplicitParam
(
type
=
"form"
,
required
=
false
,
dataType
=
"String"
,
name
=
"performanceId"
,
value
=
"演出id"
)
})
})
@PostMapping
(
value
=
{
"register"
})
@PostMapping
(
value
=
{
"register"
})
public
ResponseDto
<
ChimeUserRegisterRespDto
>
register
(
@RequestParam
@Validated
String
userId
public
ResponseDto
<
String
>
register
(
@RequestParam
@Validated
String
userId
,
@RequestParam
@Validated
String
nickname
,
@RequestParam
@Validated
String
nickname
,
@RequestParam
@Validated
String
sex
,
@RequestParam
@Validated
String
sex
,
@RequestParam
@Validated
String
tags
,
@RequestParam
@Validated
String
tags
...
@@ -63,18 +64,11 @@ public class ChimeUserController {
...
@@ -63,18 +64,11 @@ public class ChimeUserController {
//云在场
//云在场
reqDto
.
setPerformanceId
(
"-1"
);
reqDto
.
setPerformanceId
(
"-1"
);
}
}
//获取等前登陆用户 CurrentUtil.getCurrentUid()
ChimeUserInfoDto
chimeUserInfoDto
=
chimeUserService
.
createChimeUserInfo
(
reqDto
);
JSONObject
jsonObject
=
chimeUserService
.
register
(
reqDto
);
if
(
StringUtil
.
isNull
(
chimeUserInfoDto
)){
if
(
StringUtil
.
isNotNull
(
jsonObject
.
get
(
"error"
))){
return
ResponseDto
.
failure
(
"chime创建社交用户失败!"
);
return
ResponseDto
.
failure
(
jsonObject
.
get
(
"error"
).
toString
());
}
}
ChimeUserRegisterRespDto
respDto
=
ChimeUserRegisterRespDto
.
getNew
();
return
ResponseDto
.
success
(
"创建成功!"
);
respDto
=
JSONObject
.
parseObject
(
jsonObject
.
toJSONString
(),
ChimeUserRegisterRespDto
.
class
);
if
(
respDto
.
getActivated
()){
chimeUserService
.
createChimeUserInfo
(
reqDto
);
}
return
ResponseDto
.
success
(
respDto
);
}
}
@ApiOperationSupport
(
order
=
5
)
@ApiOperationSupport
(
order
=
5
)
...
@@ -97,21 +91,19 @@ public class ChimeUserController {
...
@@ -97,21 +91,19 @@ public class ChimeUserController {
reqDto
.
setSex
(
sex
);
reqDto
.
setSex
(
sex
);
reqDto
.
setTags
(
tags
);
reqDto
.
setTags
(
tags
);
//更新用户信息
//更新用户信息
chimeUserService
.
updateUserInfo
(
reqDto
);
Boolean
rs
=
chimeUserService
.
updateUserInfo
(
reqDto
);
//更新标签
boolean
rs
=
chimeUserService
.
updateUserTags
(
reqDto
);
return
ResponseDto
.
success
(
rs
);
return
ResponseDto
.
success
(
rs
);
}
}
@GetMapping
(
"getUserByUserId"
)
//
@GetMapping("getUserByUserId")
@ApiOperation
(
"查询单个用户信息"
)
//
@ApiOperation("查询单个用户信息")
@ApiImplicitParams
({
//
@ApiImplicitParams({
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"userId"
,
value
=
"用户ID"
,
required
=
true
)
//
@ApiImplicitParam(type = "query", dataType = "String", name = "userId", value = "用户ID", required = true)
})
//
})
public
ResponseDto
<
ChimeUserInfoDto
>
getUserByUserId
(
//
public ResponseDto<ChimeUserInfoDto> getUserByUserId(
@RequestParam
(
defaultValue
=
""
)
String
userId
//
@RequestParam(defaultValue = "") String userId
)
{
//
) {
ChimeUserInfoDto
userInfoDto
=
chimeUserService
.
getUserByUserId
(
userId
);
//
ChimeUserInfoDto userInfoDto = chimeUserService.getUserByUserId(userId);
return
ResponseDto
.
success
(
userInfoDto
);
//
return ResponseDto.success(userInfoDto);
}
//
}
}
}
liquidnet-bus-service/liquidnet-service-chime/liquidnet-service-chime-impl/src/main/java/com/liquidnet/service/chime/service/impl/ChimePerformanceServiceImpl.java
View file @
b75d2eba
...
@@ -4,19 +4,15 @@ import com.liquidnet.commons.lang.util.BeanUtil;
...
@@ -4,19 +4,15 @@ import com.liquidnet.commons.lang.util.BeanUtil;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserTagDto
;
import
com.liquidnet.service.chime.dto.NewPageResult
;
import
com.liquidnet.service.chime.dto.NewPageResult
;
import
com.liquidnet.service.chime.service.IChimePerformanceService
;
import
com.liquidnet.service.chime.service.IChimePerformanceService
;
import
com.liquidnet.service.chime.utils.ObjectUtil
;
import
com.liquidnet.service.chime.utils.ObjectUtil
;
import
com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo
;
import
com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo
;
import
com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.aggregation.*
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -24,7 +20,6 @@ import org.springframework.stereotype.Service;
...
@@ -24,7 +20,6 @@ import org.springframework.stereotype.Service;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @author AnJiabin <anjiabin@zhengzai.tv>
...
@@ -37,10 +32,9 @@ import java.util.stream.Collectors;
...
@@ -37,10 +32,9 @@ import java.util.stream.Collectors;
*/
*/
@Slf4j
@Slf4j
@Service
@Service
public
class
ChimePerformanceServiceImpl
implements
IChimePerformanceService
{
public
class
ChimePerformanceServiceImpl
implements
IChimePerformanceService
{
@Autowired
@Autowired
private
MongoTemplate
mongoTemplate
;
private
MongoTemplate
mongoTemplate
;
/**
/**
* 用户关联查询
* 用户关联查询
* @param reqDto
* @param reqDto
...
@@ -54,119 +48,55 @@ public class ChimePerformanceServiceImpl implements IChimePerformanceService{
...
@@ -54,119 +48,55 @@ public class ChimePerformanceServiceImpl implements IChimePerformanceService{
int
pageSize
=
reqDto
.
getPageSize
();
int
pageSize
=
reqDto
.
getPageSize
();
//初始化分页
//初始化分页
pagedResult
.
setPageSize
(
pageSize
).
setCurrentPage
(
pageNum
+
1
);
pagedResult
.
setPageSize
(
pageSize
).
setCurrentPage
(
pageNum
+
1
);
//获取总数
// 排序 分页
Pageable
pageable
=
PageRequest
.
of
(
pageNum
,
pageSize
,
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"userId"
));
//关联表
LookupOperation
lookupToLots
=
LookupOperation
.
newLookup
().
from
(
"ChimeUserTagsMappingVo"
).
//关联表名 lots
localField
(
"userId"
).
//关联字段
foreignField
(
"userId"
).
//主表关联字段对应的次表字段
as
(
"userTag"
);
//查询结果集合名
//条件
Criteria
criteria
=
Criteria
.
where
(
"joinPerformanceId"
).
is
(
reqDto
.
getPerformanceId
());
Criteria
criteria
=
Criteria
.
where
(
"joinPerformanceId"
).
is
(
reqDto
.
getPerformanceId
());
if
(
StringUtil
.
isNotEmpty
(
reqDto
.
getTags
())){
if
(
StringUtil
.
isNotEmpty
(
reqDto
.
getTags
())){
criteria
=
criteria
.
and
(
"userTag.tagCode"
).
in
(
Arrays
.
asList
(
reqDto
.
getTags
().
split
(
","
)));
criteria
=
criteria
.
and
(
"userTag
sVoList
.tagCode"
).
in
(
Arrays
.
asList
(
reqDto
.
getTags
().
split
(
","
)));
}
}
if
(
StringUtil
.
isNotEmpty
(
reqDto
.
getSex
())){
if
(
StringUtil
.
isNotEmpty
(
reqDto
.
getSex
())){
criteria
=
criteria
.
and
(
"sex"
).
is
(
reqDto
.
getSex
());
criteria
=
criteria
.
and
(
"sex"
).
is
(
reqDto
.
getSex
());
}
}
AggregationOperation
matchToLots
=
Aggregation
.
match
(
criteria
);
Query
query
=
Query
.
query
(
criteria
);
ProjectionOperation
project
=
Aggregation
.
project
(
"mid"
,
"userId"
,
"sex"
,
"avatar"
,
"joinPerformanceId"
);
query
.
fields
().
include
(
"_id"
);
// if (!reqDto.getPerformanceId().isEmpty()) {
// 排序
// criteria.and("title").regex(".*?\\" + reqDto.getTitle());
// }
project
.
andInclude
(
"_id"
);
//
获取
总数
//
查询
总数
long
startTime
=
System
.
currentTimeMillis
();
long
startTime
=
System
.
currentTimeMillis
();
SkipOperation
skipOp
=
Aggregation
.
skip
(
0
);
// int count = (int) mongoTemplate.count(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
LimitOperation
limitOp
=
Aggregation
.
limit
(
1000
);
int
count
=
1000
;
Aggregation
newAggregation
=
Aggregation
.
newAggregation
(
lookupToLots
,
matchToLots
,
project
,
skipOp
,
limitOp
);
List
<
ChimeUserInfoVo
>
tempChimeUserInfoVoList
=
mongoTemplate
.
aggregate
(
newAggregation
,
ChimeUserInfoVo
.
class
.
getSimpleName
(),
ChimeUserInfoVo
.
class
).
getMappedResults
();
long
count
=
tempChimeUserInfoVoList
.
size
();
// long count = 1000;
long
endTime
=
System
.
currentTimeMillis
();
long
endTime
=
System
.
currentTimeMillis
();
log
.
info
(
"获取总数 count:{}条"
,
count
);
log
.
info
(
"查询标签数据 count:{} 耗时:{}ms"
,
count
,
endTime
-
startTime
);
log
.
info
(
"获取总数 耗时:{}ms"
,
endTime
-
startTime
);
// 每页五个
Pageable
pageable
=
PageRequest
.
of
(
pageNum
,
pageSize
);
// get 5 profiles on a page
query
=
Query
.
query
(
criteria
);
query
.
with
(
pageable
);
//查询分页数据
startTime
=
System
.
currentTimeMillis
();
startTime
=
System
.
currentTimeMillis
();
SkipOperation
skipOperation
=
Aggregation
.
skip
(
pageNum
*
pageSize
);
List
<
ChimeUserInfoVo
>
chimeUserInfoVoList
=
mongoTemplate
.
find
(
query
,
ChimeUserInfoVo
.
class
,
ChimeUserInfoVo
.
class
.
getSimpleName
());
LimitOperation
limitOperation
=
Aggregation
.
limit
(
pageSize
);
Aggregation
aggregation
=
Aggregation
.
newAggregation
(
lookupToLots
,
matchToLots
,
project
,
skipOperation
,
limitOperation
);
List
<
ChimeUserInfoVo
>
chimeUserInfoVoList
=
mongoTemplate
.
aggregate
(
aggregation
,
ChimeUserInfoVo
.
class
.
getSimpleName
(),
ChimeUserInfoVo
.
class
).
getMappedResults
();
endTime
=
System
.
currentTimeMillis
();
endTime
=
System
.
currentTimeMillis
();
log
.
info
(
"查询分页数据 耗时:{}ms"
,
endTime
-
startTime
);
log
.
info
(
"查询
标签数据
分页数据 耗时:{}ms"
,
endTime
-
startTime
);
//获取标签
if
(
StringUtil
.
isNull
(
chimeUserInfoVoList
)){
return
pagedResult
;
};
//处理Vo
//处理Vo
List
<
ChimeUserInfoDto
>
dtoList
=
new
ArrayList
<>();
List
<
ChimeUserInfoDto
>
dtoList
=
new
ArrayList
<>();
startTime
=
System
.
currentTimeMillis
();
startTime
=
System
.
currentTimeMillis
();
List
<
String
>
userIdList
=
chimeUserInfoVoList
.
parallelStream
().
map
(
ChimeUserInfoVo:
:
getUserId
).
collect
(
Collectors
.
toList
());
Query
query
=
Query
.
query
(
Criteria
.
where
(
"userId"
).
in
(
userIdList
));
List
<
ChimeUserTagDto
>
tagVoList
=
mongoTemplate
.
find
(
query
,
ChimeUserTagDto
.
class
,
ChimeUserTagsMappingVo
.
class
.
getSimpleName
());
for
(
ChimeUserInfoVo
item
:
chimeUserInfoVoList
)
{
for
(
ChimeUserInfoVo
item
:
chimeUserInfoVoList
)
{
ChimeUserInfoDto
voData
=
ChimeUserInfoDto
.
getNew
();
ChimeUserInfoDto
voData
=
ChimeUserInfoDto
.
getNew
();
BeanUtil
.
copy
(
item
,
voData
);
BeanUtil
.
copy
(
item
,
voData
);
voData
.
setPassWord
(
"123456"
);
voData
.
setPassWord
(
"123456"
);
List
<
ChimeUserTagDto
>
tempUserTag
=
tagVoList
.
parallelStream
().
filter
(
userVo
->
userVo
.
getUserId
().
equalsIgnoreCase
(
voData
.
getUserId
())).
collect
(
Collectors
.
toList
());
voData
.
setUserTags
(
tempUserTag
);
dtoList
.
add
(
voData
);
dtoList
.
add
(
voData
);
}
}
endTime
=
System
.
currentTimeMillis
();
endTime
=
System
.
currentTimeMillis
();
log
.
info
(
"查询标签数据 耗时:{}ms"
,
endTime
-
startTime
);
log
.
info
(
"dto转换vo 耗时:{}ms"
,
endTime
-
startTime
);
pagedResult
.
setList
(
dtoList
).
setTotal
(
count
,
pageSize
);
pagedResult
.
setList
(
dtoList
).
setTotal
(
count
,
pageSize
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
pagedResult
;
return
pagedResult
;
}
}
// @Override
// public PagedResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto) {
// PagedResult<ChimeUserInfoDto> pagedResult = ObjectUtil.getChimeUserInfoDtoPagedResult();
// try {
// int pageNum = reqDto.getPageNum() - 1;
// int pageSize = reqDto.getPageSize();
// //初始化分页
// pagedResult.setPageSize(pageSize).setCurrentPage(pageNum+1);
//
// // 排序 分页
// Pageable pageable = PageRequest.of(pageNum, pageSize, Sort.by(Sort.Direction.DESC, "userId"));
// //条件
// Criteria criteria = Criteria.where("joinPerformanceId").is(reqDto.getPerformanceId());
//// if (!reqDto.getPerformanceId().isEmpty()) {
//// criteria.and("title").regex(".*?\\" + reqDto.getTitle());
//// }
// Query query = Query.query(criteria);
// // 查询总数
// long count = mongoTemplate.count(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
//
// query.with(pageable);
// List<ChimeUserInfoVo> chimeUserInfoVoList = mongoTemplate.find(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
// //处理Vo
// List<ChimeUserInfoDto> dtoList = new ArrayList<>();
// for (ChimeUserInfoVo item : chimeUserInfoVoList) {
// ChimeUserInfoDto voData = ChimeUserInfoDto.getNew();
// BeanUtil.copy(item,voData);
// voData.setUserTags(null);
// dtoList.add(voData);
// }
// pagedResult.setList(dtoList).setTotal(count, pageSize);
// } catch (Exception e) {
// e.printStackTrace();
// }
// return pagedResult;
// }
}
}
liquidnet-bus-service/liquidnet-service-chime/liquidnet-service-chime-impl/src/main/java/com/liquidnet/service/chime/service/impl/ChimeUserServiceImpl.java
View file @
b75d2eba
...
@@ -11,6 +11,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
...
@@ -11,6 +11,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import
com.liquidnet.service.chime.biz.ChimeUserBiz
;
import
com.liquidnet.service.chime.biz.ChimeUserBiz
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserTagDto
;
import
com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto
;
import
com.liquidnet.service.chime.service.IChimeUserService
;
import
com.liquidnet.service.chime.service.IChimeUserService
;
import
com.liquidnet.service.chime.utils.DataUtils
;
import
com.liquidnet.service.chime.utils.DataUtils
;
...
@@ -56,27 +57,28 @@ public class ChimeUserServiceImpl implements IChimeUserService {
...
@@ -56,27 +57,28 @@ public class ChimeUserServiceImpl implements IChimeUserService {
@Override
@Override
public
ChimeUserInfoDto
createChimeUserInfo
(
ChimeUserRegisterReqDto
reqDto
)
{
public
ChimeUserInfoDto
createChimeUserInfo
(
ChimeUserRegisterReqDto
reqDto
)
{
String
rk
=
AdamRedisConst
.
INFO_USER
.
concat
(
reqDto
.
getUserId
());
try
{
AdamUserInfoVo
vo
=
(
AdamUserInfoVo
)
redisUtil
.
get
(
rk
);
String
rk
=
AdamRedisConst
.
INFO_USER
.
concat
(
reqDto
.
getUserId
());
AdamUserInfoVo
vo
=
(
AdamUserInfoVo
)
redisUtil
.
get
(
rk
);
ChimeUserInfoDto
chimeUserInfoDto
=
ChimeUserInfoDto
.
getNew
();
chimeUserInfoDto
.
setUserId
(
reqDto
.
getUserId
());
chimeUserInfoDto
.
setSex
(
reqDto
.
getSex
());
chimeUserInfoDto
.
setUserName
(
vo
.
getUid
());
chimeUserInfoDto
.
setUserMobile
(
vo
.
getMobile
());
chimeUserInfoDto
.
setAvatar
(
vo
.
getAvatar
());
chimeUserInfoDto
.
setJoinPerformanceId
(
reqDto
.
getPerformanceId
());
chimeUserInfoDto
.
setBirthday
(
vo
.
getBirthday
());
chimeUserInfoDto
.
setSignature
(
vo
.
getSignature
());
chimeUserInfoDto
.
setArea
(
vo
.
getArea
());
//插入mongo
dataUtils
.
createChimeUser
(
chimeUserInfoDto
);
//插入userTagMapping
List
<
ChimeUserTagsMappingVo
>
userTagList
=
chimeUserBiz
.
buildUserTagVoList
(
reqDto
.
getUserId
(),
reqDto
.
getTags
());
dataUtils
.
createUserTagMapping
(
userTagList
);
ChimeUserInfoDto
chimeUserInfoDto
=
ChimeUserInfoDto
.
getNew
();
chimeUserInfoDto
.
setUserId
(
reqDto
.
getUserId
());
chimeUserInfoDto
.
setSex
(
reqDto
.
getSex
());
chimeUserInfoDto
.
setUserName
(
vo
.
getUid
());
chimeUserInfoDto
.
setUserMobile
(
vo
.
getMobile
());
chimeUserInfoDto
.
setAvatar
(
vo
.
getAvatar
());
chimeUserInfoDto
.
setJoinPerformanceId
(
reqDto
.
getPerformanceId
());
chimeUserInfoDto
.
setBirthday
(
vo
.
getBirthday
());
chimeUserInfoDto
.
setSignature
(
vo
.
getSignature
());
chimeUserInfoDto
.
setArea
(
vo
.
getArea
());
List
<
ChimeUserTagDto
>
userTagList
=
chimeUserBiz
.
buildUserTagDtoList
(
reqDto
.
getUserId
(),
reqDto
.
getTags
());
chimeUserInfoDto
.
setUserTags
(
userTagList
);
//插入mongo
dataUtils
.
createChimeUser
(
chimeUserInfoDto
);
return
chimeUserInfoDto
;
}
catch
(
Exception
e
)
{
log
.
error
(
"创建社交用户异常 e:{}"
,
e
.
getMessage
());
}
return
null
;
return
null
;
}
}
...
@@ -91,6 +93,8 @@ public class ChimeUserServiceImpl implements IChimeUserService {
...
@@ -91,6 +93,8 @@ public class ChimeUserServiceImpl implements IChimeUserService {
chimeUserInfoVo
.
setUserName
(
vo
.
getUid
());
chimeUserInfoVo
.
setUserName
(
vo
.
getUid
());
chimeUserInfoVo
.
setUserMobile
(
vo
.
getMobile
());
chimeUserInfoVo
.
setUserMobile
(
vo
.
getMobile
());
chimeUserInfoVo
.
setAvatar
(
vo
.
getAvatar
());
chimeUserInfoVo
.
setAvatar
(
vo
.
getAvatar
());
List
<
ChimeUserTagsMappingVo
>
userTagList
=
chimeUserBiz
.
buildUserTagVoList
(
reqDto
.
getUserId
(),
reqDto
.
getTags
());
chimeUserInfoVo
.
setUserTagsVoList
(
userTagList
);
dataUtils
.
updateChimeUser
(
chimeUserInfoVo
);
dataUtils
.
updateChimeUser
(
chimeUserInfoVo
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
...
liquidnet-bus-service/liquidnet-service-chime/liquidnet-service-chime-impl/src/main/java/com/liquidnet/service/chime/utils/DataUtils.java
View file @
b75d2eba
...
@@ -45,6 +45,13 @@ public class DataUtils {
...
@@ -45,6 +45,13 @@ public class DataUtils {
mongoTemplate
.
save
(
chimeUserInfoVo
,
ChimeUserInfoVo
.
class
.
getSimpleName
());
mongoTemplate
.
save
(
chimeUserInfoVo
,
ChimeUserInfoVo
.
class
.
getSimpleName
());
}
}
/**
* 注册社交用户
*/
public
void
createBatchChimeUser
(
List
<
ChimeUserInfoVo
>
chimeUserInfoVoList
){
mongoTemplate
.
insert
(
chimeUserInfoVoList
,
ChimeUserInfoVo
.
class
.
getSimpleName
());
}
/**
/**
* 修改社交用户
* 修改社交用户
* @param chimeUserInfoVo
* @param chimeUserInfoVo
...
...
liquidnet-bus-service/liquidnet-service-chime/liquidnet-service-chime-impl/src/main/java/com/liquidnet/service/chime/utils/ObjectUtil.java
View file @
b75d2eba
package
com
.
liquidnet
.
service
.
chime
.
utils
;
package
com
.
liquidnet
.
service
.
chime
.
utils
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.NewPageResult
;
import
com.liquidnet.service.chime.dto.NewPageResult
;
public
class
ObjectUtil
{
public
class
ObjectUtil
{
private
static
final
NewPageResult
<
ChimeUserInfoDto
>
chimeUserInfoDtoPagedResult
=
new
NewPageResult
<>();
private
static
final
NewPageResult
<
ChimeUserInfoDto
>
chimeUserInfoDtoPagedResult
=
new
NewPageResult
<>();
public
static
NewPageResult
<
ChimeUserInfoDto
>
getChimeUserInfoDtoPagedResult
()
{
public
static
NewPageResult
<
ChimeUserInfoDto
>
getChimeUserInfoDtoPagedResult
()
{
return
chimeUserInfoDtoPagedResult
.
clone
();
return
chimeUserInfoDtoPagedResult
.
clone
();
}
}
...
...
liquidnet-bus-service/liquidnet-service-chime/liquidnet-service-chime-impl/src/test/java/com/liquidnet/service/chime/test/TestDataUtils.java
View file @
b75d2eba
...
@@ -2,12 +2,14 @@ package com.liquidnet.service.chime.test;
...
@@ -2,12 +2,14 @@ package com.liquidnet.service.chime.test;
import
com.liquidnet.common.third.easemob.util.EasemobUtil
;
import
com.liquidnet.common.third.easemob.util.EasemobUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.RandomUtil
;
import
com.liquidnet.service.chime.biz.ChimeUserBiz
;
import
com.liquidnet.service.chime.biz.ChimeUserBiz
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserInfoDto
;
import
com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto
;
import
com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto
;
import
com.liquidnet.service.chime.dto.NewPageResult
;
import
com.liquidnet.service.chime.dto.NewPageResult
;
import
com.liquidnet.service.chime.service.IChimePerformanceService
;
import
com.liquidnet.service.chime.service.IChimePerformanceService
;
import
com.liquidnet.service.chime.utils.DataUtils
;
import
com.liquidnet.service.chime.utils.DataUtils
;
import
com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo
;
import
com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo
;
import
com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Test
;
import
org.junit.Test
;
...
@@ -146,6 +148,69 @@ public class TestDataUtils {
...
@@ -146,6 +148,69 @@ public class TestDataUtils {
// EasemobUtil.createUsers();
// EasemobUtil.createUsers();
}
}
@Test
public
void
createUserInfoNewVo
(){
ExecutorService
executorService
=
Executors
.
newFixedThreadPool
(
200
);
long
start
=
System
.
currentTimeMillis
();
List
<
ChimeUserInfoVo
>
voNewList
=
new
ArrayList
<>();
int
totalNum
=
200000
;
int
pageSize
=
1000
;
int
pageNum
=
1
;
int
totalPage
=
totalNum
%
pageSize
==
0
?
totalNum
/
pageSize
:
(
totalNum
/
pageSize
)
+
1
;;
for
(
int
i
=
0
;
i
<
totalNum
;
i
++){
try
{
int
num
=
i
+
1
;
ChimeUserInfoVo
chimeUserInfoDto
=
ChimeUserInfoVo
.
getNew
();
chimeUserInfoDto
.
setUserId
(
"TEST"
+
IDGenerator
.
nextTimeId
());
chimeUserInfoDto
.
setSex
(
"男"
);
chimeUserInfoDto
.
setUserName
(
"TestName"
+
num
);
chimeUserInfoDto
.
setUserMobile
(
"1381111"
+
num
);
chimeUserInfoDto
.
setAvatar
(
"https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png"
);
chimeUserInfoDto
.
setBirthday
(
"2021-09-01"
);
chimeUserInfoDto
.
setSignature
(
"测试签名"
);
chimeUserInfoDto
.
setArea
(
"山西省 太原市 迎泽区"
);
chimeUserInfoDto
.
setJoinPerformanceId
(
"-1"
);
// easemobUtil.createUser(chimeUserInfoDto.getUserId(),chimeUserInfoDto.getPassWord());
List
<
ChimeUserTagsMappingVo
>
userTagList
=
new
ArrayList
<>();
for
(
int
j
=
0
;
j
<
5
;
j
++){
ChimeUserTagsMappingVo
chimeUserTagDto
=
ChimeUserTagsMappingVo
.
getNew
();
chimeUserTagDto
.
setUserId
(
chimeUserInfoDto
.
getUserId
());
chimeUserTagDto
.
setTagCode
(
"tags"
+
RandomUtil
.
getRandomInt
(
2
,
10
));
chimeUserTagDto
.
setTagDesc
(
"标签"
+
RandomUtil
.
getRandomInt
(
2
,
10
));
userTagList
.
add
(
chimeUserTagDto
);
}
chimeUserInfoDto
.
setUserTagsVoList
(
userTagList
);
voNewList
.
add
(
chimeUserInfoDto
);
if
(
num
%
pageSize
==
0
){
dataUtils
.
createBatchChimeUser
(
voNewList
);
voNewList
=
new
ArrayList
<>();
// Future future = executorService.submit(new Callable(){
// public Object call() throws Exception {
//
// dataUtils.createBatchChimeUser(voNewList);
//
// return Boolean.parseBoolean("true");
// }
// });
System
.
out
.
println
(
"=================执行第几批次============"
+
pageNum
);
pageNum
++;
}
System
.
out
.
println
(
"执行第几个===="
+
num
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
System
.
out
.
println
(
"耗时:"
+(
System
.
currentTimeMillis
()
-
start
)/
1000
+
"秒"
);
executorService
.
shutdown
();
// EasemobUtil.createUsers();
}
@Test
@Test
public
void
testUserList
(){
public
void
testUserList
(){
for
(
int
i
=
0
;
i
<
10
;
i
++){
for
(
int
i
=
0
;
i
<
10
;
i
++){
...
@@ -158,12 +223,11 @@ public class TestDataUtils {
...
@@ -158,12 +223,11 @@ public class TestDataUtils {
reqDto
.
setOrderItem
(
null
);
reqDto
.
setOrderItem
(
null
);
reqDto
.
setOrderSc
(
null
);
reqDto
.
setOrderSc
(
null
);
reqDto
.
setSex
(
"男"
);
reqDto
.
setSex
(
"男"
);
// reqDto.setTags("
");
reqDto
.
setTags
(
"Tags8,tags9,tags2
"
);
// PageInfo<ChimeUserInfoDto> pageInfo = chimePerformanceService.getUserListByCon(reqDto);
// PageInfo<ChimeUserInfoDto> pageInfo = chimePerformanceService.getUserListByCon(reqDto);
NewPageResult
<
ChimeUserInfoDto
>
pageInfo
=
chimePerformanceService
.
getUserListByCon
(
reqDto
);
NewPageResult
<
ChimeUserInfoDto
>
pageInfo
=
chimePerformanceService
.
getUserListByCon
(
reqDto
);
long
endTime
=
System
.
currentTimeMillis
();
long
endTime
=
System
.
currentTimeMillis
();
log
.
info
(
"耗时:{}ms"
,
endTime
-
startTime
);
log
.
info
(
"耗时:{}ms"
,
endTime
-
startTime
);
}
}
}
}
}
}
liquidnet-bus-support/liquidnet-support-eureka/src/main/resources/bootstrap.yml
View file @
b75d2eba
...
@@ -2,4 +2,4 @@ spring:
...
@@ -2,4 +2,4 @@ spring:
application
:
application
:
name
:
liquidnet-support-eureka
name
:
liquidnet-support-eureka
profiles
:
profiles
:
active
:
test-server1
active
:
dev-server1
\ No newline at end of file
\ No newline at end of file
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