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
9084c3a6
Commit
9084c3a6
authored
Apr 15, 2025
by
王祖波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
潜客数据定时刷新
parent
721f3a05
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
212 additions
and
178 deletions
+212
-178
ContactAdaptor.java
...anage/service/service/contact/adaptor/ContactAdaptor.java
+199
-0
HaobanTimerApiServiceImpl.java
...e/service/service/out/impl/HaobanTimerApiServiceImpl.java
+10
-60
RouterApiServiceImpl.java
...service/service/out/impl/common/RouterApiServiceImpl.java
+3
-118
No files found.
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/contact/adaptor/ContactAdaptor.java
0 → 100644
View file @
9084c3a6
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
contact
.
adaptor
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.PropertyNamingStrategy
;
import
com.alibaba.fastjson.serializer.SerializeConfig
;
import
com.alibaba.hologres.client.HoloClient
;
import
com.alibaba.hologres.client.Put
;
import
com.alibaba.hologres.client.model.TableSchema
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.dto.ClerkListDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.enterprise.api.constant.EnterpriseServiceEnum
;
import
com.gic.enterprise.api.dto.enterprise.EnterpriseUsingStatusDTO
;
import
com.gic.enterprise.api.service.EnterpriseUseForbidService
;
import
com.gic.haoban.app.customer.dto.ChildDTO
;
import
com.gic.haoban.app.customer.dto.CustomerDTO
;
import
com.gic.haoban.app.customer.dto.FilterListDTO
;
import
com.gic.haoban.app.customer.dto.MemberInfoListParamsDTO
;
import
com.gic.haoban.app.customer.dto.contact.ContactParamDTO
;
import
com.gic.haoban.app.customer.dto.contact.ContactSumDTO
;
import
com.gic.haoban.app.customer.service.api.service.CustomerApiService
;
import
com.gic.haoban.common.utils.DateUtil
;
import
com.gic.haoban.manage.service.dao.mapper.content.holo.HoloDataSource
;
import
com.gic.haoban.manage.service.pojo.bo.contact.ContactDataBO
;
import
com.gic.store.goods.dto.potential.PlatformPotentialCustomerOutDTO
;
import
com.gic.store.goods.service.potential.PlatformPotentialCustomerApiService
;
import
com.google.common.collect.Lists
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* Created by wangzubo on 2025/4/14.
*/
@Slf4j
@Component
public
class
ContactAdaptor
{
@Autowired
private
EnterpriseUseForbidService
enterpriseUseForbidService
;
@Autowired
private
ClerkService
clerkService
;
@Autowired
private
PlatformPotentialCustomerApiService
platformPotentialCustomerApiService
;
@Autowired
private
CustomerApiService
customerService
;
@Autowired
private
HoloDataSource
holoDataSource
;
/**
* 潜客商户定时刷新
*/
public
void
contactDataTimer
()
{
// 处理潜客相关企业ID
ServiceResponse
<
List
<
EnterpriseUsingStatusDTO
>>
serviceResponse
=
enterpriseUseForbidService
.
getUseEnterpriseByCode
(
EnterpriseServiceEnum
.
POTENTIAL
.
getRightMenuCode
(),
null
);
List
<
ContactDataBO
>
list
=
new
ArrayList
<>();
List
<
String
>
eidList
=
Optional
.
ofNullable
(
serviceResponse
.
getResult
()).
orElse
(
Collections
.
emptyList
())
.
stream
()
.
filter
(
item
->
Boolean
.
TRUE
.
equals
(
item
.
getVaild
()))
.
map
(
EnterpriseUsingStatusDTO:
:
getEnterpriseId
).
collect
(
Collectors
.
toList
());
ContactDataBO
contactDataBO
=
null
;
for
(
String
eid
:
eidList
)
{
log
.
info
(
"开始处理潜客数据eid:{}"
,
eid
);
Set
<
String
>
storeIdSet
=
new
HashSet
<>();
List
<
ClerkListDTO
>
enterpriseClerk
=
clerkService
.
getEnterpriseClerk
(
eid
);
if
(
CollectionUtils
.
isEmpty
(
enterpriseClerk
))
{
continue
;
}
log
.
info
(
"潜客数据导购数:{}"
,
enterpriseClerk
.
size
());
for
(
int
i
=
0
;
i
<
enterpriseClerk
.
size
();
i
++)
{
ClerkListDTO
clerk
=
enterpriseClerk
.
get
(
i
);
// 无归属导购数据
if
(
storeIdSet
.
add
(
clerk
.
getStoreId
()))
{
contactDataBO
=
new
ContactDataBO
();
contactDataBO
.
setEnterpriseId
(
clerk
.
getEnterpriseId
());
contactDataBO
.
setClerkId
(
"-1"
);
contactDataBO
.
setStoreId
(
clerk
.
getStoreId
());
list
.
add
(
contactDataBO
);
}
contactDataBO
=
new
ContactDataBO
();
contactDataBO
.
setEnterpriseId
(
clerk
.
getEnterpriseId
());
contactDataBO
.
setClerkId
(
clerk
.
getClerkId
());
contactDataBO
.
setStoreId
(
clerk
.
getStoreId
());
list
.
add
(
contactDataBO
);
if
(
list
.
size
()
>=
100
||
i
==
enterpriseClerk
.
size
()
-
1
)
{
try
{
String
jsonString
=
JSON
.
toJSONString
(
list
);
GICMQClientUtil
.
getClientInstance
().
sendMessage
(
"contactDataRefreshMQ"
,
jsonString
);
jsonString
=
null
;
}
catch
(
Exception
e
)
{
log
.
error
(
"发送MQ异常:"
,
e
);
}
list
.
clear
();
}
}
}
}
/**
* 定时刷新未建联数到holo
* @param param
*/
public
void
contactDataRefresh
(
String
param
)
{
List
<
ContactDataBO
>
list
=
JSONObject
.
parseArray
(
param
,
ContactDataBO
.
class
);
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
;
}
ContactDataBO
contactDataBO
=
list
.
get
(
0
);
String
enterpriseId
=
contactDataBO
.
getEnterpriseId
();
ServiceResponse
<
PlatformPotentialCustomerOutDTO
>
potentialResponse
=
platformPotentialCustomerApiService
.
getPotentialCustomerOutRule
(
enterpriseId
);
if
(!
potentialResponse
.
isSuccess
()
||
potentialResponse
.
getResult
()
==
null
)
{
return
;
}
List
<
String
>
clerkIdList
=
list
.
stream
().
map
(
ContactDataBO:
:
getClerkId
).
collect
(
Collectors
.
toList
());
List
<
ClerkDTO
>
clerkDTOS
=
clerkService
.
getClerkByClerkIds
(
new
HashSet
<>(
clerkIdList
));
Map
<
String
,
ClerkDTO
>
clerkMap
=
Optional
.
ofNullable
(
clerkDTOS
).
orElse
(
new
ArrayList
<>()).
stream
().
collect
(
Collectors
.
toMap
(
ClerkDTO:
:
getClerkId
,
clerkDTO
->
clerkDTO
));
for
(
ContactDataBO
dataBO
:
list
)
{
boolean
unassigned
=
Objects
.
equals
(
dataBO
.
getClerkId
(),
"-1"
);
ClerkDTO
clerkDTO
=
clerkMap
.
get
(
dataBO
.
getClerkId
());
Integer
noConnPotCusNum
=
getNoConnPotCusNum
(
potentialResponse
.
getResult
(),
dataBO
.
getEnterpriseId
(),
dataBO
.
getStoreId
(),
clerkDTO
,
unassigned
);
log
.
info
(
"clerkId:{},noConnPotCusNum:{}"
,
dataBO
.
getClerkId
(),
noConnPotCusNum
);
dataBO
.
setNoConnPotCusNum
(
noConnPotCusNum
);
}
try
{
HoloClient
client
=
holoDataSource
.
getClient
();
if
(
client
==
null
)
{
log
.
error
(
"数仓数据源链接异常, 请检查!!!!{}"
,
param
);
return
;
}
TableSchema
tableSchema
=
client
.
getTableSchema
(
"ads_gic_mbr_no_conn_mbr_1d"
);
SerializeConfig
serializeConfig
=
new
SerializeConfig
();
serializeConfig
.
setPropertyNamingStrategy
(
PropertyNamingStrategy
.
SnakeCase
);
List
<
Put
>
puts
=
list
.
stream
()
.
map
(
item
->
{
Put
temp
=
new
Put
(
tableSchema
);
temp
.
setObject
(
"ent_id"
,
item
.
getEnterpriseId
());
temp
.
setObject
(
"store_id"
,
item
.
getStoreId
());
temp
.
setObject
(
"clerk_id"
,
item
.
getClerkId
());
temp
.
setObject
(
"no_conn_pot_cus_num"
,
item
.
getNoConnPotCusNum
());
// 时间戳格式不行
temp
.
setObject
(
"create_time"
,
DateUtil
.
dateToStr
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
return
temp
;
})
.
collect
(
Collectors
.
toList
());
client
.
put
(
puts
);
log
.
info
(
"写数据组完成"
);
}
catch
(
Exception
ex
)
{
log
.
info
(
"数据组写入异常 {}"
,
param
,
ex
);
}
}
public
Integer
getNoConnPotCusNum
(
PlatformPotentialCustomerOutDTO
result
,
String
enterpriseId
,
String
storeId
,
ClerkDTO
clerkDTO
,
boolean
unassigned
)
{
if
(
StringUtils
.
isBlank
(
storeId
)
&&
clerkDTO
==
null
)
{
return
0
;
}
String
clerkTypeStr
=
"1"
;
CustomerDTO
params
=
new
CustomerDTO
();
String
clerkId
=
null
;
if
(
clerkDTO
!=
null
)
{
clerkTypeStr
=
"0"
;
clerkId
=
clerkDTO
.
getClerkId
();
Integer
clerkType
=
clerkDTO
.
getClerkType
();
if
(
clerkType
==
0
||
clerkType
==
1
)
{
storeId
=
clerkDTO
.
getStoreId
();
}
}
ContactParamDTO
contact
=
new
ContactParamDTO
();
contact
.
setRuleJSON
(
JSON
.
toJSONString
(
result
));
contact
.
setContactType
(
0
);
params
.
setStoreId
(
storeId
);
params
.
setClerkId
(
clerkId
);
params
.
setClerkType
(
clerkTypeStr
);
params
.
setEnterpriseId
(
enterpriseId
);
params
.
setContactParamDTO
(
contact
);
MemberInfoListParamsDTO
memberInfoListParamsDTO
=
new
MemberInfoListParamsDTO
();
// 查询无归属数据
if
(
unassigned
)
{
FilterListDTO
filterListDTO
=
new
FilterListDTO
();
filterListDTO
.
setFilterType
(
"1"
);
ChildDTO
child
=
new
ChildDTO
();
child
.
setId
(
"-1"
);
filterListDTO
.
setChild
(
child
);
memberInfoListParamsDTO
.
setFilterList
(
Lists
.
newArrayList
(
filterListDTO
));
}
ServiceResponse
<
ContactSumDTO
>
noContactResponse
=
customerService
.
contactMemberSum
(
new
com
.
gic
.
haoban
.
base
.
api
.
common
.
BasePageInfo
(),
params
,
memberInfoListParamsDTO
);
return
noContactResponse
.
getResult
()
!=
null
?
noContactResponse
.
getResult
().
getTotalCount
()
:
0
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/HaobanTimerApiServiceImpl.java
View file @
9084c3a6
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
out
.
impl
;
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
out
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.clerk.api.dto.ClerkListDTO
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.enterprise.api.constant.EnterpriseServiceEnum
;
import
com.gic.enterprise.api.dto.enterprise.EnterpriseUsingStatusDTO
;
import
com.gic.enterprise.api.service.EnterpriseUseForbidService
;
import
com.gic.haoban.manage.api.dto.CommonDataMQDTO
;
import
com.gic.haoban.manage.api.dto.CommonDataMQDTO
;
import
com.gic.haoban.manage.api.service.HaobanCommonMQApiService
;
import
com.gic.haoban.manage.api.service.HaobanCommonMQApiService
;
import
com.gic.haoban.manage.api.service.HaobanTimerApiService
;
import
com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper
;
import
com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper
;
import
com.gic.haoban.manage.service.dao.mapper.hm.WxUserAddLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.hm.WxUserAddLogMapper
;
import
com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated
;
import
com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated
;
import
com.gic.haoban.manage.service.entity.hm.TabWxUserAddLog
;
import
com.gic.haoban.manage.service.entity.hm.TabWxUserAddLog
;
import
com.gic.haoban.manage.service.pojo.bo.contact.ContactDataBO
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.haoban.manage.service.service.chat.*
;
import
com.gic.haoban.manage.service.service.chat.GroupChatActivityService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatDataService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatPlanService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatService
;
import
com.gic.haoban.manage.service.service.contact.adaptor.ContactAdaptor
;
import
com.gic.haoban.manage.service.service.hm.HmQrcodeTempService
;
import
com.gic.haoban.manage.service.util.DingUtils
;
import
com.gic.haoban.manage.service.util.DingUtils
;
import
com.gic.haoban.manage.service.util.HBQwMonitorUtils
;
import
com.gic.haoban.manage.service.util.HBQwMonitorUtils
;
import
com.gic.redis.data.util.RedisUtil
;
import
com.gic.redis.data.util.RedisUtil
;
...
@@ -28,10 +27,6 @@ import org.redisson.api.RMap;
...
@@ -28,10 +27,6 @@ import org.redisson.api.RMap;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.service.HaobanTimerApiService
;
import
com.gic.haoban.manage.service.service.hm.HmQrcodeTempService
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -66,9 +61,7 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
...
@@ -66,9 +61,7 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
@Autowired
@Autowired
private
GroupChatPlanService
groupChatPlanService
;
private
GroupChatPlanService
groupChatPlanService
;
@Autowired
@Autowired
private
EnterpriseUseForbidService
enterpriseUseForbidService
;
private
ContactAdaptor
contactAdaptor
;
@Autowired
private
ClerkService
clerkService
;
@Override
@Override
...
@@ -219,49 +212,6 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
...
@@ -219,49 +212,6 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
@Override
@Override
public
void
contactDataTimer
(
String
params
)
{
public
void
contactDataTimer
(
String
params
)
{
// 处理潜客相关企业ID
contactAdaptor
.
contactDataTimer
();
ServiceResponse
<
List
<
EnterpriseUsingStatusDTO
>>
serviceResponse
=
enterpriseUseForbidService
.
getUseEnterpriseByCode
(
EnterpriseServiceEnum
.
POTENTIAL
.
getRightMenuCode
(),
null
);
List
<
ContactDataBO
>
list
=
new
ArrayList
<>();
List
<
String
>
eidList
=
Optional
.
ofNullable
(
serviceResponse
.
getResult
()).
orElse
(
Collections
.
emptyList
())
.
stream
()
.
filter
(
item
->
Boolean
.
TRUE
.
equals
(
item
.
getVaild
()))
.
map
(
EnterpriseUsingStatusDTO:
:
getEnterpriseId
).
collect
(
Collectors
.
toList
());
ContactDataBO
contactDataBO
=
null
;
for
(
String
eid
:
eidList
)
{
log
.
info
(
"开始处理潜客数据eid:{}"
,
eid
);
Set
<
String
>
storeIdSet
=
new
HashSet
<>();
List
<
ClerkListDTO
>
enterpriseClerk
=
clerkService
.
getEnterpriseClerk
(
eid
);
if
(
CollectionUtils
.
isEmpty
(
enterpriseClerk
))
{
continue
;
}
log
.
info
(
"潜客数据导购数:{}"
,
enterpriseClerk
.
size
());
for
(
int
i
=
0
;
i
<
enterpriseClerk
.
size
();
i
++)
{
ClerkListDTO
clerk
=
enterpriseClerk
.
get
(
i
);
// 无归属导购数据
if
(
storeIdSet
.
add
(
clerk
.
getStoreId
()))
{
contactDataBO
=
new
ContactDataBO
();
contactDataBO
.
setEnterpriseId
(
clerk
.
getEnterpriseId
());
contactDataBO
.
setClerkId
(
"-1"
);
contactDataBO
.
setStoreId
(
clerk
.
getStoreId
());
list
.
add
(
contactDataBO
);
}
contactDataBO
=
new
ContactDataBO
();
contactDataBO
.
setEnterpriseId
(
clerk
.
getEnterpriseId
());
contactDataBO
.
setClerkId
(
clerk
.
getClerkId
());
contactDataBO
.
setStoreId
(
clerk
.
getStoreId
());
list
.
add
(
contactDataBO
);
if
(
list
.
size
()
>=
100
||
i
==
enterpriseClerk
.
size
()
-
1
)
{
try
{
String
jsonString
=
JSON
.
toJSONString
(
list
);
GICMQClientUtil
.
getClientInstance
().
sendMessage
(
"contactDataRefreshMQ"
,
jsonString
);
jsonString
=
null
;
}
catch
(
Exception
e
)
{
log
.
error
(
"发送MQ异常:"
,
e
);
}
list
.
clear
();
}
}
}
}
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/common/RouterApiServiceImpl.java
View file @
9084c3a6
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
out
.
impl
.
common
;
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
out
.
impl
.
common
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.PropertyNamingStrategy
;
import
com.alibaba.fastjson.serializer.SerializeConfig
;
import
com.alibaba.hologres.client.HoloClient
;
import
com.alibaba.hologres.client.Put
;
import
com.alibaba.hologres.client.model.TableSchema
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.enterprise.api.dto.StoreDTO
;
import
com.gic.haoban.app.customer.dto.ChildDTO
;
import
com.gic.haoban.app.customer.dto.CustomerDTO
;
import
com.gic.haoban.app.customer.dto.FilterListDTO
;
import
com.gic.haoban.app.customer.dto.MemberInfoListParamsDTO
;
import
com.gic.haoban.app.customer.dto.contact.ContactParamDTO
;
import
com.gic.haoban.app.customer.dto.contact.ContactSumDTO
;
import
com.gic.haoban.app.customer.service.api.service.CustomerApiService
;
import
com.gic.haoban.common.utils.DateUtil
;
import
com.gic.haoban.manage.api.service.common.RouterApiService
;
import
com.gic.haoban.manage.api.service.common.RouterApiService
;
import
com.gic.haoban.manage.service.dao.mapper.content.holo.HoloDataSource
;
import
com.gic.haoban.manage.service.pojo.bo.contact.ContactDataBO
;
import
com.gic.haoban.manage.service.service.contact.ContactLogService
;
import
com.gic.haoban.manage.service.service.contact.ContactLogService
;
import
com.gic.haoban.manage.service.service.contact.adaptor.ContactAdaptor
;
import
com.gic.member.api.dto.event.clerk.ClerkAddEventParam
;
import
com.gic.member.api.dto.event.clerk.ClerkAddEventParam
;
import
com.gic.store.goods.dto.potential.PlatformPotentialCustomerOutDTO
;
import
com.gic.store.goods.service.potential.PlatformPotentialCustomerApiService
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
@Service
(
"routerApiService"
)
@Service
(
"routerApiService"
)
public
class
RouterApiServiceImpl
implements
RouterApiService
{
public
class
RouterApiServiceImpl
implements
RouterApiService
{
...
@@ -51,13 +23,7 @@ public class RouterApiServiceImpl implements RouterApiService {
...
@@ -51,13 +23,7 @@ public class RouterApiServiceImpl implements RouterApiService {
@Autowired
@Autowired
private
ContactLogService
contactLogService
;
private
ContactLogService
contactLogService
;
@Autowired
@Autowired
private
PlatformPotentialCustomerApiService
platformPotentialCustomerApiService
;
private
ContactAdaptor
contactAdaptor
;
@Autowired
private
ClerkService
clerkService
;
@Autowired
private
CustomerApiService
customerService
;
@Autowired
private
HoloDataSource
holoDataSource
;
@Override
@Override
public
ServiceResponse
<
Void
>
memberClerkEvent
(
String
params
)
{
public
ServiceResponse
<
Void
>
memberClerkEvent
(
String
params
)
{
...
@@ -79,89 +45,8 @@ public class RouterApiServiceImpl implements RouterApiService {
...
@@ -79,89 +45,8 @@ public class RouterApiServiceImpl implements RouterApiService {
if
(
StringUtils
.
isBlank
(
param
))
{
if
(
StringUtils
.
isBlank
(
param
))
{
return
ServiceResponse
.
success
();
return
ServiceResponse
.
success
();
}
}
List
<
ContactDataBO
>
list
=
JSONObject
.
parseArray
(
param
,
ContactDataBO
.
class
);
contactAdaptor
.
contactDataRefresh
(
param
);
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
ServiceResponse
.
success
();
}
ContactDataBO
contactDataBO
=
list
.
get
(
0
);
String
enterpriseId
=
contactDataBO
.
getEnterpriseId
();
ServiceResponse
<
PlatformPotentialCustomerOutDTO
>
potentialResponse
=
platformPotentialCustomerApiService
.
getPotentialCustomerOutRule
(
enterpriseId
);
if
(!
potentialResponse
.
isSuccess
()
||
potentialResponse
.
getResult
()
==
null
)
{
return
ServiceResponse
.
success
();
}
for
(
ContactDataBO
dataBO
:
list
)
{
boolean
unassigned
=
Objects
.
equals
(
dataBO
.
getClerkId
(),
"-1"
);
Integer
noConnPotCusNum
=
getNoConnPotCusNum
(
potentialResponse
.
getResult
(),
dataBO
.
getEnterpriseId
(),
dataBO
.
getStoreId
(),
dataBO
.
getClerkId
(),
unassigned
);
dataBO
.
setNoConnPotCusNum
(
noConnPotCusNum
);
}
try
{
HoloClient
client
=
holoDataSource
.
getClient
();
if
(
client
==
null
)
{
logger
.
error
(
"数仓数据源链接异常, 请检查!!!!{}"
,
param
);
return
ServiceResponse
.
success
();
}
TableSchema
tableSchema
=
client
.
getTableSchema
(
"ads_gic_mbr_no_conn_mbr_1d"
);
SerializeConfig
serializeConfig
=
new
SerializeConfig
();
serializeConfig
.
setPropertyNamingStrategy
(
PropertyNamingStrategy
.
SnakeCase
);
List
<
Put
>
puts
=
list
.
stream
()
.
map
(
item
->
{
Put
temp
=
new
Put
(
tableSchema
);
temp
.
setObject
(
"ent_id"
,
item
.
getEnterpriseId
());
temp
.
setObject
(
"store_id"
,
item
.
getStoreId
());
temp
.
setObject
(
"clerk_id"
,
item
.
getClerkId
());
temp
.
setObject
(
"no_conn_pot_cus_num"
,
item
.
getNoConnPotCusNum
());
// 时间戳格式不行
temp
.
setObject
(
"create_time"
,
DateUtil
.
dateToStr
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
return
temp
;
})
.
collect
(
Collectors
.
toList
());
client
.
put
(
puts
);
logger
.
info
(
"写数据组完成"
);
}
catch
(
Exception
ex
)
{
logger
.
info
(
"数据组写入异常 {}"
,
param
,
ex
);
}
return
ServiceResponse
.
success
();
return
ServiceResponse
.
success
();
}
}
private
Integer
getNoConnPotCusNum
(
PlatformPotentialCustomerOutDTO
result
,
String
enterpriseId
,
String
storeId
,
String
clerkId
,
boolean
unassigned
)
{
if
(
StringUtils
.
isBlank
(
storeId
)
&&
StringUtils
.
isBlank
(
clerkId
))
{
return
0
;
}
ClerkDTO
clerkDTO
=
null
;
if
(
StringUtils
.
isNotBlank
(
clerkId
))
{
clerkDTO
=
clerkService
.
getClerkByClerkId
(
clerkId
);
}
String
clerkTypeStr
=
"1"
;
CustomerDTO
params
=
new
CustomerDTO
();
if
(
clerkDTO
!=
null
)
{
clerkTypeStr
=
"0"
;
clerkId
=
clerkDTO
.
getClerkId
();
Integer
clerkType
=
clerkDTO
.
getClerkType
();
if
(
clerkType
==
0
||
clerkType
==
1
)
{
storeId
=
clerkDTO
.
getStoreId
();
}
}
ContactParamDTO
contact
=
new
ContactParamDTO
();
contact
.
setRuleJSON
(
JSON
.
toJSONString
(
result
));
contact
.
setContactType
(
0
);
params
.
setStoreId
(
storeId
);
params
.
setClerkId
(
clerkId
);
params
.
setClerkType
(
clerkTypeStr
);
params
.
setEnterpriseId
(
enterpriseId
);
params
.
setContactParamDTO
(
contact
);
MemberInfoListParamsDTO
memberInfoListParamsDTO
=
new
MemberInfoListParamsDTO
();
// 查询无归属数据
if
(
unassigned
)
{
FilterListDTO
filterListDTO
=
new
FilterListDTO
();
filterListDTO
.
setFilterType
(
"1"
);
ChildDTO
child
=
new
ChildDTO
();
child
.
setId
(
"-1"
);
filterListDTO
.
setChild
(
child
);
memberInfoListParamsDTO
.
setFilterList
(
Lists
.
newArrayList
(
filterListDTO
));
}
ServiceResponse
<
ContactSumDTO
>
noContactResponse
=
customerService
.
contactMemberSum
(
new
com
.
gic
.
haoban
.
base
.
api
.
common
.
BasePageInfo
(),
params
,
memberInfoListParamsDTO
);
return
noContactResponse
.
getResult
()
!=
null
?
noContactResponse
.
getResult
().
getTotalCount
()
:
0
;
}
}
}
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