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
3ed6a8ab
Commit
3ed6a8ab
authored
Aug 15, 2023
by
songyinghui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 销售线索
parent
e3cd31d0
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
222 additions
and
42 deletions
+222
-42
MaterialInteractRecordEventType.java
...ge/api/enums/content/MaterialInteractRecordEventType.java
+5
-3
ShareBizType.java
...com/gic/haoban/manage/api/enums/content/ShareBizType.java
+11
-1
InteractRecordMessageContext.java
...pojo/bo/content/context/InteractRecordMessageContext.java
+26
-4
InteractRecordMessageBO.java
...vice/pojo/bo/content/message/InteractRecordMessageBO.java
+7
-1
GoodsInfoAdaptor.java
...age/service/service/content/adaptor/GoodsInfoAdaptor.java
+39
-0
InteractRecordBuilder.java
...ervice/service/content/adaptor/InteractRecordBuilder.java
+26
-18
InteractRecordMessageBuilder.java
...service/content/adaptor/InteractRecordMessageBuilder.java
+1
-1
InteractRecordMessageService.java
...service/content/message/InteractRecordMessageService.java
+11
-4
MallOrderStatusChangeApiServiceImpl.java
...out/impl/content/MallOrderStatusChangeApiServiceImpl.java
+2
-0
PotentialCustomerApiServiceImpl.java
...ice/out/impl/content/PotentialCustomerApiServiceImpl.java
+1
-1
PotentialCustomerController.java
...e/web/controller/content/PotentialCustomerController.java
+53
-6
GoodsInfoAdaptor.java
.../haoban/manage/web/controller/goods/GoodsInfoAdaptor.java
+14
-0
InteractRecordExtendInfoVO.java
...ban/manage/web/vo/content/InteractRecordExtendInfoVO.java
+2
-2
InteractRecordVO.java
...om/gic/haoban/manage/web/vo/content/InteractRecordVO.java
+6
-0
PotentialCustomerVO.java
.../manage/web/vo/content/potential/PotentialCustomerVO.java
+18
-1
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/MaterialInteractRecordEventType.java
View file @
3ed6a8ab
...
@@ -9,9 +9,10 @@ package com.gic.haoban.manage.api.enums.content;
...
@@ -9,9 +9,10 @@ package com.gic.haoban.manage.api.enums.content;
**/
**/
public
enum
MaterialInteractRecordEventType
{
public
enum
MaterialInteractRecordEventType
{
VISIT_MATERIAL
(
1
,
"浏览了你分享的素材"
),
VISIT_MATERIAL
(
1
,
"浏览了你分享的%s"
),
VISIT_PRODUCT
(
2
,
"浏览了你分享的素材,并查看了关联商品"
),
VISIT_PRODUCT
(
2
,
"浏览了你分享的%s,并查看了关联商品"
),
ORDER
(
3
,
"浏览了你分享的素材,并购买了商品"
);
ORDER
(
3
,
"浏览了你分享的%s,并购买了商品"
),
ADD_SHOPPING_CART
(
4
,
"浏览你分享的%s,并加入了购物车"
);
MaterialInteractRecordEventType
(
Integer
code
,
String
desc
)
{
MaterialInteractRecordEventType
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
code
=
code
;
...
@@ -48,4 +49,5 @@ public enum MaterialInteractRecordEventType {
...
@@ -48,4 +49,5 @@ public enum MaterialInteractRecordEventType {
public
void
setDesc
(
String
desc
)
{
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
this
.
desc
=
desc
;
}
}
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/ShareBizType.java
View file @
3ed6a8ab
...
@@ -9,7 +9,8 @@ package com.gic.haoban.manage.api.enums.content;
...
@@ -9,7 +9,8 @@ package com.gic.haoban.manage.api.enums.content;
**/
**/
public
enum
ShareBizType
{
public
enum
ShareBizType
{
MATERIAL
(
1
,
"素材"
);
MATERIAL
(
1
,
"素材"
),
GOODS
(
2
,
"商品"
);
ShareBizType
(
Integer
code
,
String
desc
)
{
ShareBizType
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
code
=
code
;
this
.
desc
=
desc
;
this
.
desc
=
desc
;
...
@@ -24,4 +25,13 @@ public enum ShareBizType {
...
@@ -24,4 +25,13 @@ public enum ShareBizType {
public
String
getDesc
()
{
public
String
getDesc
()
{
return
desc
;
return
desc
;
}
}
public
static
String
getDescWithCode
(
Integer
code
)
{
for
(
ShareBizType
value
:
values
())
{
if
(
value
.
code
.
equals
(
code
))
{
return
value
.
desc
;
}
}
return
""
;
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/context/InteractRecordMessageContext.java
View file @
3ed6a8ab
...
@@ -39,6 +39,28 @@ public class InteractRecordMessageContext {
...
@@ -39,6 +39,28 @@ public class InteractRecordMessageContext {
*/
*/
private
Boolean
hasDeal
;
private
Boolean
hasDeal
;
/**
* 业务类型
* @return
*/
public
Integer
getBizType
()
{
if
(
StringUtils
.
isNotBlank
(
interactRecordMessageBO
.
getMaterialId
()))
{
return
ShareBizType
.
MATERIAL
.
getCode
();
}
return
ShareBizType
.
GOODS
.
getCode
();
}
public
String
getBizId
()
{
Integer
bizType
=
this
.
getBizType
();
if
(
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
bizType
))
{
return
interactRecordMessageBO
.
getMaterialId
();
}
if
(
ShareBizType
.
GOODS
.
getCode
().
equals
(
bizType
))
{
return
interactRecordMessageBO
.
getGoodsId
();
}
return
StringUtils
.
EMPTY
;
}
public
static
InteractRecordMessageContext
create
(
InteractRecordMessageBO
interactRecordMessageBO
)
{
public
static
InteractRecordMessageContext
create
(
InteractRecordMessageBO
interactRecordMessageBO
)
{
InteractRecordMessageContext
context
=
new
InteractRecordMessageContext
();
InteractRecordMessageContext
context
=
new
InteractRecordMessageContext
();
context
.
setInteractRecordMessageBO
(
interactRecordMessageBO
);
context
.
setInteractRecordMessageBO
(
interactRecordMessageBO
);
...
@@ -51,8 +73,8 @@ public class InteractRecordMessageContext {
...
@@ -51,8 +73,8 @@ public class InteractRecordMessageContext {
* @return
* @return
*/
*/
public
String
buildRecordKey
()
{
public
String
buildRecordKey
()
{
String
customerId
=
StringUtils
.
isNotBlank
(
interactRecordMessageBO
.
getMemberId
())
?
interactRecordMessageBO
.
getMemberId
()
:
interactRecordMessageBO
.
getUnionId
();
String
key
=
interactRecordMessageBO
.
getBusinessUUId
()
+
interactRecordMessageBO
.
getClerkId
()
String
key
=
interactRecordMessageBO
.
getBusinessUUId
()
+
interactRecordMessageBO
.
getClerkId
()
+
interactRecordMessageBO
.
getMaterialId
()
+
customerId
;
+
this
.
getBizId
()
+
this
.
getCustomerId
()
;
return
MD5
.
create
().
digestHex
(
key
);
return
MD5
.
create
().
digestHex
(
key
);
}
}
...
@@ -94,8 +116,8 @@ public class InteractRecordMessageContext {
...
@@ -94,8 +116,8 @@ public class InteractRecordMessageContext {
temp
.
setEventType
(
this
.
interactRecordMessageBO
.
getEventType
());
temp
.
setEventType
(
this
.
interactRecordMessageBO
.
getEventType
());
Integer
durationTime
=
Optional
.
ofNullable
(
this
.
interactRecordMessageBO
.
getDurationTime
()).
orElse
(
0
);
Integer
durationTime
=
Optional
.
ofNullable
(
this
.
interactRecordMessageBO
.
getDurationTime
()).
orElse
(
0
);
temp
.
setDurationTime
(
durationTime
/
1000
);
temp
.
setDurationTime
(
durationTime
/
1000
);
temp
.
setBizType
(
ShareBizType
.
MATERIAL
.
getCod
e
());
temp
.
setBizType
(
this
.
getBizTyp
e
());
temp
.
setBizId
(
this
.
interactRecordMessageBO
.
getMaterialId
()
+
""
);
temp
.
setBizId
(
this
.
getBizId
()
);
temp
.
setTimes
(
this
.
times
);
temp
.
setTimes
(
this
.
times
);
temp
.
setTraceId
(
this
.
buildRecordKey
());
temp
.
setTraceId
(
this
.
buildRecordKey
());
temp
.
setDeleteFlag
(
0
);
temp
.
setDeleteFlag
(
0
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/message/InteractRecordMessageBO.java
View file @
3ed6a8ab
...
@@ -45,7 +45,7 @@ public class InteractRecordMessageBO implements Serializable {
...
@@ -45,7 +45,7 @@ public class InteractRecordMessageBO implements Serializable {
*/
*/
private
Integer
channelSource
;
private
Integer
channelSource
;
/**
/**
* 事件类型 1浏览素材;2查看商品; 3购买商品
* 事件类型 1浏览素材;2查看商品; 3购买商品
4 加入购物车
*/
*/
private
Integer
eventType
;
private
Integer
eventType
;
/**
/**
...
@@ -80,4 +80,10 @@ public class InteractRecordMessageBO implements Serializable {
...
@@ -80,4 +80,10 @@ public class InteractRecordMessageBO implements Serializable {
* 消息消费次数
* 消息消费次数
*/
*/
private
Integer
times
;
private
Integer
times
;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/GoodsInfoAdaptor.java
0 → 100644
View file @
3ed6a8ab
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
.
adaptor
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.service.GoodsCenterApiService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* @Author MUSI
* @Date 2023/8/15 9:28 AM
* @Description
* @Version
**/
@Component
public
class
GoodsInfoAdaptor
{
@Autowired
private
GoodsCenterApiService
goodsCenterApiService
;
public
Map
<
String
,
GoodsSpuInfoDTO
>
queryGoodsMinPrice
(
String
enterpriseId
,
List
<
String
>
goodsIds
)
{
ServiceResponse
<
List
<
GoodsSpuInfoDTO
>>
response
=
goodsCenterApiService
.
queryGoodsMinPrice
(
enterpriseId
,
goodsIds
);
if
(!
response
.
isSuccess
()
||
CollectionUtils
.
isEmpty
(
response
.
getResult
()))
{
return
Collections
.
emptyMap
();
}
return
response
.
getResult
()
.
stream
()
.
collect
(
Collectors
.
toMap
(
GoodsSpuInfoDTO:
:
getGoodsId
,
Function
.
identity
(),
(
v1
,
v2
)
->
v1
));
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/InteractRecordBuilder.java
View file @
3ed6a8ab
...
@@ -2,18 +2,18 @@ package com.gic.haoban.manage.service.service.content.adaptor;
...
@@ -2,18 +2,18 @@ package com.gic.haoban.manage.service.service.content.adaptor;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.TypeReference
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
;
import
com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
;
import
com.gic.haoban.manage.api.enums.content.ShareBizType
;
import
com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
;
import
com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.context.InteractRecordMessageContext
;
import
com.gic.haoban.manage.service.pojo.bo.content.context.InteractRecordMessageContext
;
import
com.gic.store.goods.dto.goods.GoodsInfoSimpleDTO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.qdto.GoodsListQDTO
;
import
com.gic.store.goods.service.GoodsInfoOutApiService
;
import
com.gic.store.goods.service.GoodsCenterApiService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -25,6 +25,7 @@ import java.util.Arrays;
...
@@ -25,6 +25,7 @@ import java.util.Arrays;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -36,10 +37,13 @@ import java.util.stream.Collectors;
...
@@ -36,10 +37,13 @@ import java.util.stream.Collectors;
@Slf4j
@Slf4j
@Component
@Component
public
class
InteractRecordBuilder
{
public
class
InteractRecordBuilder
{
@Autowired
private
GoodsCenterApiService
goodsCenterApiService
;
@Autowired
@Autowired
private
InteractRecordMessageBuilder
interactRecordMessageBuilder
;
private
InteractRecordMessageBuilder
interactRecordMessageBuilder
;
@Autowired
private
GoodsInfoOutApiService
goodsInfoOutApiService
;
@Autowired
private
GoodsInfoAdaptor
goodsInfoAdaptor
;
/**
/**
* 互动记录描述
* 互动记录描述
...
@@ -48,7 +52,7 @@ public class InteractRecordBuilder {
...
@@ -48,7 +52,7 @@ public class InteractRecordBuilder {
* @return
* @return
*/
*/
public
String
buildDesc
(
TabHaobanInteractRecord
interactRecord
)
{
public
String
buildDesc
(
TabHaobanInteractRecord
interactRecord
)
{
return
this
.
buildDesc
(
interactRecord
.
getChannelSource
(),
interactRecord
.
getEventType
());
return
this
.
buildDesc
(
interactRecord
.
getChannelSource
(),
interactRecord
.
getEventType
()
,
interactRecord
.
getBizType
()
);
}
}
/**
/**
...
@@ -58,7 +62,7 @@ public class InteractRecordBuilder {
...
@@ -58,7 +62,7 @@ public class InteractRecordBuilder {
* @param eventType
* @param eventType
* @return
* @return
*/
*/
public
String
buildDesc
(
Integer
channelSource
,
Integer
eventType
)
{
public
String
buildDesc
(
Integer
channelSource
,
Integer
eventType
,
Integer
bizType
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
StringBuilder
stringBuilder
=
new
StringBuilder
();
if
(
TriggerCustomerChannelType
.
showDescChannel
().
contains
(
channelSource
))
{
if
(
TriggerCustomerChannelType
.
showDescChannel
().
contains
(
channelSource
))
{
TriggerCustomerChannelType
channelType
=
TriggerCustomerChannelType
.
getInstance
(
channelSource
);
TriggerCustomerChannelType
channelType
=
TriggerCustomerChannelType
.
getInstance
(
channelSource
);
...
@@ -68,7 +72,11 @@ public class InteractRecordBuilder {
...
@@ -68,7 +72,11 @@ public class InteractRecordBuilder {
}
}
MaterialInteractRecordEventType
instance
=
MaterialInteractRecordEventType
.
getInstance
(
eventType
);
MaterialInteractRecordEventType
instance
=
MaterialInteractRecordEventType
.
getInstance
(
eventType
);
if
(
instance
!=
null
)
{
if
(
instance
!=
null
)
{
stringBuilder
.
append
(
instance
.
getDesc
());
String
text
=
String
.
format
(
instance
.
getDesc
(),
ShareBizType
.
getDescWithCode
(
bizType
));
if
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
().
equals
(
eventType
)
&&
ShareBizType
.
GOODS
.
getCode
().
equals
(
bizType
))
{
text
=
"浏览了你分享的商品"
;
}
stringBuilder
.
append
(
text
);
}
}
return
stringBuilder
.
toString
();
return
stringBuilder
.
toString
();
}
}
...
@@ -96,7 +104,8 @@ public class InteractRecordBuilder {
...
@@ -96,7 +104,8 @@ public class InteractRecordBuilder {
}
}
InteractRecordExtendInfoBO
extendInfo
=
JSON
.
parseObject
(
interactRecord
.
getExtendInfo
(),
new
TypeReference
<
InteractRecordExtendInfoBO
>()
{
InteractRecordExtendInfoBO
extendInfo
=
JSON
.
parseObject
(
interactRecord
.
getExtendInfo
(),
new
TypeReference
<
InteractRecordExtendInfoBO
>()
{
});
});
if
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
().
equals
(
interactRecord
.
getEventType
()))
{
if
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
().
equals
(
interactRecord
.
getEventType
())
||
MaterialInteractRecordEventType
.
ADD_SHOPPING_CART
.
getCode
().
equals
(
interactRecord
.
getEventType
()))
{
// 浏览商品事件
// 浏览商品事件
List
<
String
>
visitGoodsIds
=
extendInfo
.
getGoodsIds
();
List
<
String
>
visitGoodsIds
=
extendInfo
.
getGoodsIds
();
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
...
@@ -117,33 +126,32 @@ public class InteractRecordBuilder {
...
@@ -117,33 +126,32 @@ public class InteractRecordBuilder {
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
return
Collections
.
emptyList
();
return
Collections
.
emptyList
();
}
}
GoodsListQDTO
goodsListQDTO
=
new
GoodsListQDTO
();
ServiceResponse
<
List
<
GoodsInfoSimpleDTO
>>
serviceResponse
=
goodsInfoOutApiService
.
queryGoodsSimpleInfo
(
visitGoodsIds
);
goodsListQDTO
.
setEnterpriseId
(
enterpriseId
);
goodsListQDTO
.
setIncludeGoodsIds
(
visitGoodsIds
);
goodsListQDTO
.
setPageSize
(
visitGoodsIds
.
size
()
+
1
);
ServiceResponse
<
Page
<
GoodsSpuInfoDTO
>>
serviceResponse
=
goodsCenterApiService
.
queryStoreGoodsList
(
goodsListQDTO
);
// 1:已上线,2:未上线,3:回收站
// 1:已上线,2:未上线,3:回收站
if
(!
serviceResponse
.
isSuccess
())
{
if
(!
serviceResponse
.
isSuccess
())
{
log
.
info
(
"查询商品异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
log
.
info
(
"查询商品异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
return
Collections
.
emptyList
();
}
}
if
(
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
()
.
getResult
()
))
{
if
(
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
()))
{
log
.
info
(
"查询商品为空 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
log
.
info
(
"查询商品为空 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
return
Collections
.
emptyList
();
}
}
Map
<
String
,
GoodsSpuInfoDTO
>
goodsMinPriceMap
=
goodsInfoAdaptor
.
queryGoodsMinPrice
(
enterpriseId
,
visitGoodsIds
);
List
<
Integer
>
excludeStatus
=
Arrays
.
asList
(
0
,
3
);
List
<
Integer
>
excludeStatus
=
Arrays
.
asList
(
0
,
3
);
return
serviceResponse
.
getResult
()
return
serviceResponse
.
getResult
()
.
getResult
()
.
stream
()
.
stream
()
.
filter
(
item
->
!
excludeStatus
.
contains
(
item
.
getStatus
()))
.
filter
(
item
->
!
excludeStatus
.
contains
(
item
.
getStatus
()))
.
map
(
item
->
{
.
map
(
item
->
{
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
extendGoodsInfo
=
new
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
();
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
extendGoodsInfo
=
new
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
();
extendGoodsInfo
.
setGoodsName
(
item
.
getGoodsName
());
extendGoodsInfo
.
setGoodsName
(
item
.
getGoodsName
());
extendGoodsInfo
.
setGoodsCode
(
item
.
getGoodsCode
());
extendGoodsInfo
.
setGoodsCode
(
item
.
getGoodsCode
());
extendGoodsInfo
.
setGoodsImageUrl
(
item
.
getImageUrl
());
extendGoodsInfo
.
setGoodsImageUrl
(
item
.
get
Goods
ImageUrl
());
extendGoodsInfo
.
setSalePrice
(
item
.
getSalePrice
());
extendGoodsInfo
.
setSalePrice
(
item
.
getSalePrice
());
extendGoodsInfo
.
setSourceType
(
item
.
getSourceType
());
extendGoodsInfo
.
setSourceType
(
item
.
getSourceType
());
GoodsSpuInfoDTO
goodsSpuInfoDTO
=
goodsMinPriceMap
.
get
(
item
.
getGoodsId
());
if
(
goodsSpuInfoDTO
!=
null
&&
goodsSpuInfoDTO
.
getMinPrice
()
!=
null
)
{
extendGoodsInfo
.
setSalePrice
(
goodsSpuInfoDTO
.
getMinPrice
());
}
return
extendGoodsInfo
;
return
extendGoodsInfo
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/InteractRecordMessageBuilder.java
View file @
3ed6a8ab
...
@@ -190,7 +190,7 @@ public class InteractRecordMessageBuilder {
...
@@ -190,7 +190,7 @@ public class InteractRecordMessageBuilder {
.
map
(
ListOrderItemDTO:
:
getMallProId
)
.
map
(
ListOrderItemDTO:
:
getMallProId
)
.
distinct
()
.
distinct
()
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
Map
<
String
,
Integer
>
goodsSourceTypeMap
=
queryGoodsSimpleInfo
(
enterpriseId
,
goodsIds
);
Map
<
String
,
Integer
>
goodsSourceTypeMap
=
this
.
queryGoodsSimpleInfo
(
enterpriseId
,
goodsIds
);
OrderOutInfoDTO
orderOutInfoDTO
=
serviceResponse
.
getResult
();
OrderOutInfoDTO
orderOutInfoDTO
=
serviceResponse
.
getResult
();
InteractRecordExtendInfoBO
.
ExtendOrderInfo
extendOrderInfo
=
new
InteractRecordExtendInfoBO
.
ExtendOrderInfo
();
InteractRecordExtendInfoBO
.
ExtendOrderInfo
extendOrderInfo
=
new
InteractRecordExtendInfoBO
.
ExtendOrderInfo
();
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/message/InteractRecordMessageService.java
View file @
3ed6a8ab
...
@@ -92,6 +92,9 @@ public class InteractRecordMessageService {
...
@@ -92,6 +92,9 @@ public class InteractRecordMessageService {
if
(
interactRecordBO
.
getEventType
()
<
interactRecordMessageBO
.
getEventType
())
{
if
(
interactRecordBO
.
getEventType
()
<
interactRecordMessageBO
.
getEventType
())
{
interactRecordBO
.
setEventType
(
interactRecordMessageBO
.
getEventType
());
interactRecordBO
.
setEventType
(
interactRecordMessageBO
.
getEventType
());
}
}
if
(
MaterialInteractRecordEventType
.
ORDER
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
()))
{
interactRecordBO
.
setEventType
(
interactRecordMessageBO
.
getEventType
());
}
}
}
// 更新互动记录的最新访问时间
// 更新互动记录的最新访问时间
if
(
interactRecordBO
.
getLastAccessTime
().
before
(
new
Date
(
interactRecordMessageBO
.
getLastAccessTime
())))
{
if
(
interactRecordBO
.
getLastAccessTime
().
before
(
new
Date
(
interactRecordMessageBO
.
getLastAccessTime
())))
{
...
@@ -100,15 +103,19 @@ public class InteractRecordMessageService {
...
@@ -100,15 +103,19 @@ public class InteractRecordMessageService {
if
(!
MaterialInteractRecordEventType
.
VISIT_MATERIAL
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
())
if
(!
MaterialInteractRecordEventType
.
VISIT_MATERIAL
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
())
&&
null
==
interactRecordBO
.
getExtendInfo
())
{
&&
null
==
interactRecordBO
.
getExtendInfo
())
{
log
.
info
(
"非素材浏览
时间
,初始化扩展字段"
);
log
.
info
(
"非素材浏览
事件
,初始化扩展字段"
);
interactRecordBO
.
setExtendInfo
(
InteractRecordExtendInfoBO
.
empty
());
interactRecordBO
.
setExtendInfo
(
InteractRecordExtendInfoBO
.
empty
());
}
}
// 组装扩展信息
// 组装扩展信息
if
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
()))
{
if
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
()
.
equals
(
interactRecordMessageBO
.
getEventType
())
||
MaterialInteractRecordEventType
.
ADD_SHOPPING_CART
.
getCode
().
equals
(
interactRecordBO
.
getEventType
()))
{
// 浏览商品
// 浏览商品
if
(
StringUtils
.
isNotBlank
(
interactRecordMessageBO
.
getGoodsId
())
if
(
StringUtils
.
isNotBlank
(
interactRecordMessageBO
.
getGoodsId
())
&&
!
interactRecordBO
.
getExtendInfo
().
getGoodsIds
().
contains
(
interactRecordMessageBO
.
getGoodsId
()))
{
&&
!
interactRecordBO
.
getExtendInfo
()
interactRecordBO
.
getExtendInfo
().
getGoodsIds
().
add
(
interactRecordMessageBO
.
getGoodsId
());
.
getGoodsIds
().
contains
(
interactRecordMessageBO
.
getGoodsId
()))
{
interactRecordBO
.
getExtendInfo
().
getGoodsIds
()
.
add
(
interactRecordMessageBO
.
getGoodsId
());
}
}
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/MallOrderStatusChangeApiServiceImpl.java
View file @
3ed6a8ab
...
@@ -76,6 +76,7 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang
...
@@ -76,6 +76,7 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang
JSONObject
jsonObject
=
JSON
.
parseObject
(
extendJson
,
JSONObject
.
class
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
extendJson
,
JSONObject
.
class
);
String
clerkId
=
jsonObject
.
getString
(
"clerkId"
);
String
clerkId
=
jsonObject
.
getString
(
"clerkId"
);
String
contentMaterialId
=
jsonObject
.
getString
(
"contentMaterialId"
);
String
contentMaterialId
=
jsonObject
.
getString
(
"contentMaterialId"
);
String
goodsId
=
jsonObject
.
getString
(
"goodsId"
);
String
memberId
=
orderEventMqBO
.
getMemberId
();
String
memberId
=
orderEventMqBO
.
getMemberId
();
InteractRecordMessageBO
interactRecordMessageBO
=
new
InteractRecordMessageBO
();
InteractRecordMessageBO
interactRecordMessageBO
=
new
InteractRecordMessageBO
();
...
@@ -83,6 +84,7 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang
...
@@ -83,6 +84,7 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang
interactRecordMessageBO
.
setMemberId
(
memberId
);
interactRecordMessageBO
.
setMemberId
(
memberId
);
interactRecordMessageBO
.
setClerkId
(
clerkId
);
interactRecordMessageBO
.
setClerkId
(
clerkId
);
interactRecordMessageBO
.
setMaterialId
(
contentMaterialId
);
interactRecordMessageBO
.
setMaterialId
(
contentMaterialId
);
interactRecordMessageBO
.
setGoodsId
(
goodsId
);
interactRecordMessageBO
.
setEventType
(
MaterialInteractRecordEventType
.
ORDER
.
getCode
());
interactRecordMessageBO
.
setEventType
(
MaterialInteractRecordEventType
.
ORDER
.
getCode
());
interactRecordMessageBO
.
setDurationTime
(
0
);
interactRecordMessageBO
.
setDurationTime
(
0
);
interactRecordMessageBO
.
setLastAccessTime
(
orderInfo
.
getCreateTime
().
getTime
());
interactRecordMessageBO
.
setLastAccessTime
(
orderInfo
.
getCreateTime
().
getTime
());
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/PotentialCustomerApiServiceImpl.java
View file @
3ed6a8ab
...
@@ -56,7 +56,7 @@ public class PotentialCustomerApiServiceImpl implements PotentialCustomerApiServ
...
@@ -56,7 +56,7 @@ public class PotentialCustomerApiServiceImpl implements PotentialCustomerApiServ
PotentialCustomerDTO
temp
=
new
PotentialCustomerDTO
();
PotentialCustomerDTO
temp
=
new
PotentialCustomerDTO
();
BeanUtils
.
copyProperties
(
item
,
temp
);
BeanUtils
.
copyProperties
(
item
,
temp
);
temp
.
setPotentialCustomerId
(
item
.
getId
());
temp
.
setPotentialCustomerId
(
item
.
getId
());
temp
.
setDesc
(
interactRecordBuilder
.
buildDesc
(
item
.
getChannelSource
(),
item
.
getEventType
()));
temp
.
setDesc
(
interactRecordBuilder
.
buildDesc
(
item
.
getChannelSource
(),
item
.
getEventType
()
,
item
.
getBizType
()
));
return
temp
;
return
temp
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/PotentialCustomerController.java
View file @
3ed6a8ab
...
@@ -12,10 +12,14 @@ import com.gic.haoban.manage.api.enums.content.ShareBizType;
...
@@ -12,10 +12,14 @@ import com.gic.haoban.manage.api.enums.content.ShareBizType;
import
com.gic.haoban.manage.api.service.content.PotentialCustomerApiService
;
import
com.gic.haoban.manage.api.service.content.PotentialCustomerApiService
;
import
com.gic.haoban.manage.web.controller.content.adaptor.ContentMaterialAdaptor
;
import
com.gic.haoban.manage.web.controller.content.adaptor.ContentMaterialAdaptor
;
import
com.gic.haoban.manage.web.controller.content.adaptor.MaterialDataAdaptor
;
import
com.gic.haoban.manage.web.controller.content.adaptor.MaterialDataAdaptor
;
import
com.gic.haoban.manage.web.controller.goods.GoodsInfoAdaptor
;
import
com.gic.haoban.manage.web.qo.content.potential.PotentialCustomerMarkRecordVO
;
import
com.gic.haoban.manage.web.qo.content.potential.PotentialCustomerMarkRecordVO
;
import
com.gic.haoban.manage.web.qo.content.potential.PotentialCustomerQO
;
import
com.gic.haoban.manage.web.qo.content.potential.PotentialCustomerQO
;
import
com.gic.haoban.manage.web.vo.content.ContentMaterialInfoVO
;
import
com.gic.haoban.manage.web.vo.content.ContentMaterialInfoVO
;
import
com.gic.haoban.manage.web.vo.content.SimpleGoodsInfoVO
;
import
com.gic.haoban.manage.web.vo.content.potential.PotentialCustomerVO
;
import
com.gic.haoban.manage.web.vo.content.potential.PotentialCustomerVO
;
import
com.gic.store.goods.dto.goods.GoodsInfoSimpleDTO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -45,6 +49,8 @@ public class PotentialCustomerController {
...
@@ -45,6 +49,8 @@ public class PotentialCustomerController {
ContentMaterialAdaptor
contentMaterialAdaptor
;
ContentMaterialAdaptor
contentMaterialAdaptor
;
@Autowired
@Autowired
MaterialDataAdaptor
materialDataAdaptor
;
MaterialDataAdaptor
materialDataAdaptor
;
@Autowired
private
GoodsInfoAdaptor
goodsInfoAdaptor
;
/**
/**
...
@@ -69,6 +75,18 @@ public class PotentialCustomerController {
...
@@ -69,6 +75,18 @@ public class PotentialCustomerController {
return
RestResponse
.
successResult
();
return
RestResponse
.
successResult
();
}
}
List
<
PotentialCustomerDTO
>
customerDTOS
=
serviceResponse
.
getResult
().
getResult
();
List
<
PotentialCustomerDTO
>
customerDTOS
=
serviceResponse
.
getResult
().
getResult
();
List
<
PotentialCustomerVO
>
customerVOS
=
this
.
buildContentInfo
(
potentialCustomerQO
,
customerDTOS
);
this
.
buildGoodsInfo
(
searchQDTO
.
getEnterpriseId
(),
customerVOS
);
Page
<
PotentialCustomerVO
>
result
=
new
Page
<>();
result
.
setTotalCount
(
serviceResponse
.
getResult
().
getTotalCount
());
result
.
setResult
(
customerVOS
);
result
.
setCurrentPage
(
potentialCustomerQO
.
getPageNum
());
result
.
setPageSize
(
potentialCustomerQO
.
getPageSize
());
return
RestResponse
.
successResult
(
result
);
}
private
List
<
PotentialCustomerVO
>
buildContentInfo
(
PotentialCustomerQO
potentialCustomerQO
,
List
<
PotentialCustomerDTO
>
customerDTOS
)
{
// 素材信息
List
<
Long
>
materialIds
=
customerDTOS
List
<
Long
>
materialIds
=
customerDTOS
.
stream
()
.
stream
()
.
filter
(
item
->
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
.
filter
(
item
->
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
...
@@ -76,6 +94,7 @@ public class PotentialCustomerController {
...
@@ -76,6 +94,7 @@ public class PotentialCustomerController {
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
Map
<
Long
,
ContentMaterialBaseDTO
>
materialInfoMap
=
contentMaterialAdaptor
.
queryMaterialInfoMap
(
potentialCustomerQO
.
getEnterpriseId
(),
materialIds
);
Map
<
Long
,
ContentMaterialBaseDTO
>
materialInfoMap
=
contentMaterialAdaptor
.
queryMaterialInfoMap
(
potentialCustomerQO
.
getEnterpriseId
(),
materialIds
);
// 会员最近30天访问
List
<
String
>
memberIds
=
customerDTOS
List
<
String
>
memberIds
=
customerDTOS
.
stream
()
.
stream
()
.
filter
(
item
->
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
.
filter
(
item
->
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
...
@@ -110,12 +129,40 @@ public class PotentialCustomerController {
...
@@ -110,12 +129,40 @@ public class PotentialCustomerController {
return
temp
;
return
temp
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
Page
<
PotentialCustomerVO
>
result
=
new
Page
<>();
return
customerVOS
;
result
.
setTotalCount
(
serviceResponse
.
getResult
().
getTotalCount
());
}
result
.
setResult
(
customerVOS
);
result
.
setCurrentPage
(
potentialCustomerQO
.
getPageNum
());
private
void
buildGoodsInfo
(
String
enterpriseId
,
List
<
PotentialCustomerVO
>
customerVos
)
{
result
.
setPageSize
(
potentialCustomerQO
.
getPageSize
());
if
(
CollectionUtils
.
isEmpty
(
customerVos
))
{
return
RestResponse
.
successResult
(
result
);
return
;
}
List
<
String
>
goodsIds
=
customerVos
.
stream
()
.
filter
(
item
->
ShareBizType
.
GOODS
.
getCode
().
equals
(
item
.
getBizType
()))
.
map
(
PotentialCustomerVO:
:
getBizId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
Map
<
String
,
GoodsInfoSimpleDTO
>
goodsInfoMap
=
goodsInfoAdaptor
.
queryGoodsInfo
(
enterpriseId
,
goodsIds
);
Map
<
String
,
GoodsSpuInfoDTO
>
goodsSpuInfoMap
=
goodsInfoAdaptor
.
queryGoodsMinPrice
(
enterpriseId
,
goodsIds
);
for
(
PotentialCustomerVO
customerVo
:
customerVos
)
{
GoodsInfoSimpleDTO
goodsInfoSimpleDTO
=
goodsInfoMap
.
get
(
customerVo
.
getBizId
());
if
(
goodsInfoSimpleDTO
==
null
)
{
continue
;
}
SimpleGoodsInfoVO
simpleGoodsInfoVO
=
new
SimpleGoodsInfoVO
();
simpleGoodsInfoVO
.
setGoodsId
(
customerVo
.
getBizId
());
simpleGoodsInfoVO
.
setGoodsCode
(
goodsInfoSimpleDTO
.
getGoodsCode
());
simpleGoodsInfoVO
.
setGoodsName
(
goodsInfoSimpleDTO
.
getGoodsName
());
simpleGoodsInfoVO
.
setSourceType
(
goodsInfoSimpleDTO
.
getSourceType
());
simpleGoodsInfoVO
.
setGoodsImg
(
goodsInfoSimpleDTO
.
getGoodsImageUrl
());
simpleGoodsInfoVO
.
setSalePrice
(
goodsInfoSimpleDTO
.
getSalePrice
());
GoodsSpuInfoDTO
goodsSpuInfoDTO
=
goodsSpuInfoMap
.
get
(
customerVo
.
getBizId
());
if
(
goodsSpuInfoDTO
!=
null
&&
goodsSpuInfoDTO
.
getMinPrice
()
!=
null
)
{
simpleGoodsInfoVO
.
setSalePrice
(
goodsSpuInfoDTO
.
getMinPrice
());
}
customerVo
.
setSimpleGoodsInfoVO
(
simpleGoodsInfoVO
);
}
}
}
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/goods/GoodsInfoAdaptor.java
View file @
3ed6a8ab
...
@@ -5,6 +5,7 @@ import com.gic.api.base.commons.Page;
...
@@ -5,6 +5,7 @@ import com.gic.api.base.commons.Page;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.app.aggregation.api.dto.GoodsSettingDTO
;
import
com.gic.haoban.app.aggregation.api.dto.GoodsSettingDTO
;
import
com.gic.haoban.app.aggregation.api.service.SettingApiService
;
import
com.gic.haoban.app.aggregation.api.service.SettingApiService
;
import
com.gic.store.goods.dto.goods.GoodsInfoSimpleDTO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.qdto.GoodsListQDTO
;
import
com.gic.store.goods.dto.qdto.GoodsListQDTO
;
import
com.gic.store.goods.service.GoodsCenterApiService
;
import
com.gic.store.goods.service.GoodsCenterApiService
;
...
@@ -125,4 +126,17 @@ public class GoodsInfoAdaptor {
...
@@ -125,4 +126,17 @@ public class GoodsInfoAdaptor {
.
stream
()
.
stream
()
.
collect
(
Collectors
.
toMap
(
GoodsSpuInfoDTO:
:
getGoodsId
,
Function
.
identity
()));
.
collect
(
Collectors
.
toMap
(
GoodsSpuInfoDTO:
:
getGoodsId
,
Function
.
identity
()));
}
}
public
Map
<
String
,
GoodsInfoSimpleDTO
>
queryGoodsInfo
(
String
enterpriseId
,
List
<
String
>
goodsIds
)
{
if
(
CollectionUtils
.
isEmpty
(
goodsIds
))
{
return
Collections
.
emptyMap
();
}
ServiceResponse
<
List
<
GoodsInfoSimpleDTO
>>
serviceResponse
=
goodsInfoOutApiService
.
queryGoodsSimpleInfo
(
goodsIds
);
if
(!
serviceResponse
.
isSuccess
()
||
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
()))
{
return
Collections
.
emptyMap
();
}
return
serviceResponse
.
getResult
()
.
stream
()
.
collect
(
Collectors
.
toMap
(
GoodsInfoSimpleDTO:
:
getGoodsId
,
Function
.
identity
()));
}
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/InteractRecordExtendInfoVO.java
View file @
3ed6a8ab
...
@@ -19,12 +19,12 @@ public class InteractRecordExtendInfoVO implements Serializable {
...
@@ -19,12 +19,12 @@ public class InteractRecordExtendInfoVO implements Serializable {
private
static
final
long
serialVersionUID
=
799914036029100258L
;
private
static
final
long
serialVersionUID
=
799914036029100258L
;
/**
/**
*
素材关联的商品信息
商品信息
* 商品信息
*/
*/
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
/**
/**
*
素材关联的
订单信息
* 订单信息
*/
*/
private
List
<
ExtendOrderInfo
>
extendOrderInfos
;
private
List
<
ExtendOrderInfo
>
extendOrderInfos
;
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/InteractRecordVO.java
View file @
3ed6a8ab
...
@@ -55,6 +55,12 @@ public class InteractRecordVO implements Serializable {
...
@@ -55,6 +55,12 @@ public class InteractRecordVO implements Serializable {
private
Integer
eventType
;
private
Integer
eventType
;
/**
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
/**
* 浏览的商品数量
* 浏览的商品数量
*/
*/
private
Integer
visitGoodsNum
;
private
Integer
visitGoodsNum
;
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/potential/PotentialCustomerVO.java
View file @
3ed6a8ab
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.web.vo.content.potential;
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.web.vo.content.potential;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.gic.haoban.manage.web.vo.content.ContentMaterialInfoVO
;
import
com.gic.haoban.manage.web.vo.content.ContentMaterialInfoVO
;
import
com.gic.haoban.manage.web.vo.content.SimpleGoodsInfoVO
;
import
lombok.Data
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
@@ -90,11 +91,16 @@ public class PotentialCustomerVO implements Serializable {
...
@@ -90,11 +91,16 @@ public class PotentialCustomerVO implements Serializable {
private
Integer
dealRecord
;
private
Integer
dealRecord
;
/**
/**
* 素材信息
* 素材信息
bizType == 1 读取
*/
*/
private
ContentMaterialInfoVO
contentMaterialInfoVO
;
private
ContentMaterialInfoVO
contentMaterialInfoVO
;
/**
/**
* 商品信息 bizType == 2 时
*/
private
SimpleGoodsInfoVO
simpleGoodsInfoVO
;
/**
* 第几次访问
* 第几次访问
*/
*/
private
Integer
times
;
private
Integer
times
;
...
@@ -103,4 +109,15 @@ public class PotentialCustomerVO implements Serializable {
...
@@ -103,4 +109,15 @@ public class PotentialCustomerVO implements Serializable {
* 停留时长 单位秒
* 停留时长 单位秒
*/
*/
private
Integer
durationTime
;
private
Integer
durationTime
;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
/**
* 业务id
*/
private
String
bizId
;
}
}
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