Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
Overview
Overview
Details
Activity
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
haoban3.0
haoban-manage3.0
Commits
fa9e7cf8
Commit
fa9e7cf8
authored
Oct 10, 2024
by
王祖波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
人群匹配代码
parent
12b678be
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
162 additions
and
0 deletions
+162
-0
ESMemberInfoService.java
...ic/haoban/manage/service/service/ESMemberInfoService.java
+50
-0
ESMemberInfoServiceImpl.java
.../manage/service/service/impl/ESMemberInfoServiceImpl.java
+112
-0
No files found.
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/ESMemberInfoService.java
0 → 100644
View file @
fa9e7cf8
package
com
.
gic
.
haoban
.
manage
.
service
.
service
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.content.api.dto.common.MemberSearchDTO
;
import
com.gic.member.api.dto.es.MemberDataDTO
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
/**
* @author: YuZhi
* @date: 2022/3/14 10:01
*/
public
interface
ESMemberInfoService
{
/**
* 获取会员查询条件(老的筛选器存的查询条件)
* @param enterpriseId 企业id
* @param memberType 查询会员类型0人群1分组
* @param filterJson 查询条件
* @param creatorId 创建人id
* @param readyFlag 是否需要判断分组准备完成
* @return
*/
String
getMemberSearchParamOld
(
String
enterpriseId
,
Integer
memberType
,
String
filterJson
,
String
creatorId
,
boolean
readyFlag
);
/**
* 单个会员条件匹配
* @param enterpriseId 企业id
* @param searchJson 条件json
* @param memberId 会员id
* @return
*/
boolean
matchMember
(
String
enterpriseId
,
JSONObject
searchJson
,
String
memberId
,
String
creatorId
);
/**
*
* @Title: queryDataSingle
* @Description: 单个会员
* @author xugh
* @param enterpriseId
* @param memberId
* @param returnFields
* @return
* @throws
*/
JSONObject
queryDataSingle
(
String
enterpriseId
,
String
memberId
,
String
returnFields
)
;
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/ESMemberInfoServiceImpl.java
0 → 100644
View file @
fa9e7cf8
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.DateUtil
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.content.api.dto.common.MemberSearchDTO
;
import
com.gic.enterprise.api.service.StoreService
;
import
com.gic.haoban.manage.service.service.ESMemberInfoService
;
import
com.gic.member.api.dto.es.MemberDataDTO
;
import
com.gic.member.ext.api.service.MemberCrowdApiService
;
import
com.gic.member.tag.api.dto.MemberExistDTO
;
import
com.gic.member.tag.api.service.MemberTagEsApiService
;
import
com.gic.member.tag.api.service.MemberTagGroupApiService
;
import
com.gic.search.engine.api.constant.OperateEnum
;
import
com.gic.search.engine.api.dto.ESResponseQueryBatch
;
import
com.gic.search.engine.api.dto.ESResponseQueryBatchByScroll
;
import
com.gic.search.engine.api.dto.ESResponseQueryCount
;
import
com.gic.search.engine.api.dto.ESResponseQuerySingle
;
import
com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO
;
import
com.gic.search.engine.api.filter.NewNodeAddUtil
;
import
com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author: YuZhi
* @date: 2022/3/14 10:02
*/
@Service
public
class
ESMemberInfoServiceImpl
implements
ESMemberInfoService
{
Logger
logger
=
LogManager
.
getLogger
(
ESMemberInfoService
.
class
);
@Autowired
private
ESDataDynamicOperationApiService
esApiService
;
@Autowired
private
StoreService
storeService
;
@Autowired
private
MemberTagGroupApiService
memberTagGroupApiService
;
@Autowired
private
MemberTagEsApiService
memberTagEsApiService
;
@Override
public
String
getMemberSearchParamOld
(
String
enterpriseId
,
Integer
memberType
,
String
filterJson
,
String
creatorId
,
boolean
readyFlag
)
{
String
searchParams
=
"{}"
;
if
(
StringUtils
.
isBlank
(
filterJson
))
{
return
searchParams
;
}
logger
.
info
(
"人群条件参数enterpriseId:{},memberType:{},filterJson:{}"
,
enterpriseId
,
memberType
,
filterJson
);
if
(
memberType
==
0
)
{
searchParams
=
filterJson
;
}
else
if
(
memberType
==
1
)
{
MemberExistDTO
dto
=
new
MemberExistDTO
();
dto
.
setEnterpriseId
(
enterpriseId
);
String
[]
tagGroupIdArr
=
filterJson
.
split
(
","
);
List
<
String
>
list
=
Arrays
.
asList
(
tagGroupIdArr
);
if
(
readyFlag
)
{
// 是否准备好,true可以执行
boolean
finishFlag
=
memberTagEsApiService
.
memberTagReady
(
enterpriseId
,
list
)
;
if
(!
finishFlag
)
{
return
null
;
}
}
dto
.
setMemberTagGroupIds
(
list
);
dto
.
setUseId
(
creatorId
);
searchParams
=
memberTagGroupApiService
.
getSearchJsonByGroupId
(
dto
);
}
logger
.
info
(
"人群条件:{}"
,
searchParams
);
return
searchParams
;
}
@Override
public
boolean
matchMember
(
String
enterpriseId
,
JSONObject
searchJson
,
String
memberId
,
String
creatorId
)
{
JSONObject
jsonObject
=
queryDataSingle
(
enterpriseId
,
memberId
,
""
);
if
(
jsonObject
==
null
)
{
return
false
;
}
searchJson
=
this
.
storeService
.
parseSelectData
(
searchJson
,
enterpriseId
,
creatorId
,
null
);
return
esApiService
.
matchMember
(
searchJson
,
enterpriseId
,
jsonObject
);
}
@Override
public
JSONObject
queryDataSingle
(
String
enterpriseId
,
String
memberId
,
String
returnFields
)
{
JSONObject
searchRes
=
null
;
try
{
JSONObject
searchJson
=
new
JSONObject
();
DynamicSearchDTO
search
=
new
DynamicSearchDTO
();
searchJson
.
put
(
"id"
,
memberId
);
search
.
setSearchJson
(
searchJson
);
search
.
setEnterpriseId
(
enterpriseId
);
search
.
setColumnCategoryCode
(
"member"
);
if
(
StringUtils
.
isNotBlank
(
returnFields
))
{
search
.
setReturnFileds
(
returnFields
);
}
ESResponseQuerySingle
single
=
esApiService
.
queryDataSingle
(
search
);
searchRes
=
single
.
getRes
();
}
catch
(
Exception
e
)
{
logger
.
warn
(
"从搜索引擎搜索会员数据异常memberId: {}"
,
memberId
,
e
);
}
return
searchRes
;
}
}
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