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
4371676f
Commit
4371676f
authored
Sep 07, 2023
by
王祖波
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-content4' into 'master'
Feature content4 See merge request
!1422
parents
74e5adda
dc7b309e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
48 changed files
with
1957 additions
and
127 deletions
+1957
-127
NoticeMessageTypeEnum.java
...om/gic/haoban/manage/api/enums/NoticeMessageTypeEnum.java
+2
-0
InteractRecordInfoDTO.java
...aoban/manage/api/enums/content/InteractRecordInfoDTO.java
+15
-0
MaterialInteractRecordEventType.java
...ge/api/enums/content/MaterialInteractRecordEventType.java
+5
-3
ShareBizType.java
...com/gic/haoban/manage/api/enums/content/ShareBizType.java
+11
-1
HaobanRoleApiService.java
.../haoban/manage/api/service/role/HaobanRoleApiService.java
+8
-0
InteractRecordMessageContext.java
...pojo/bo/content/context/InteractRecordMessageContext.java
+29
-4
InteractRecordMessageBO.java
...vice/pojo/bo/content/message/InteractRecordMessageBO.java
+7
-1
InteractRecordService.java
...manage/service/service/content/InteractRecordService.java
+2
-2
GoodsInfoAdaptor.java
...age/service/service/content/adaptor/GoodsInfoAdaptor.java
+39
-0
InteractRecordBuilder.java
...ervice/service/content/adaptor/InteractRecordBuilder.java
+40
-18
InteractRecordMessageBuilder.java
...service/content/adaptor/InteractRecordMessageBuilder.java
+1
-1
InteractRecordServiceImpl.java
...rvice/service/content/impl/InteractRecordServiceImpl.java
+3
-3
InteractRecordMessageListener.java
...ervice/content/message/InteractRecordMessageListener.java
+6
-2
InteractRecordMessageService.java
...service/content/message/InteractRecordMessageService.java
+19
-7
MallOrderStatusChangeApiServiceImpl.java
...out/impl/content/MallOrderStatusChangeApiServiceImpl.java
+9
-1
PotentialCustomerApiServiceImpl.java
...ice/out/impl/content/PotentialCustomerApiServiceImpl.java
+1
-1
HaobanRoleApiServiceImpl.java
...rvice/service/out/impl/role/HaobanRoleApiServiceImpl.java
+41
-4
TabHaobanInteractRecordMapper.xml
...esources/mapper/content/TabHaobanInteractRecordMapper.xml
+1
-0
InteractRecordMessageServiceTest.java
...rvice/src/test/java/InteractRecordMessageServiceTest.java
+41
-0
TabHaobanAppLogController.java
...oban/manage/web/controller/TabHaobanAppLogController.java
+6
-1
ErrorLogReportQO.java
.../gic/haoban/manage/web/qo/logrecord/ErrorLogReportQO.java
+29
-0
WxStaffController.java
...m/gic/haoban/manage/web/controller/WxStaffController.java
+6
-0
ContentCreativeController.java
...age/web/controller/content/ContentCreativeController.java
+0
-0
ContentImageController.java
...manage/web/controller/content/ContentImageController.java
+130
-0
ContentMaterialController.java
...age/web/controller/content/ContentMaterialController.java
+35
-21
InteractRecordController.java
...nage/web/controller/content/InteractRecordController.java
+14
-10
MaterialDataStaticsController.java
...web/controller/content/MaterialDataStaticsController.java
+6
-2
PotentialCustomerController.java
...e/web/controller/content/PotentialCustomerController.java
+71
-22
ClerkStoreAdaptor.java
...age/web/controller/content/adaptor/ClerkStoreAdaptor.java
+14
-0
ContentMaterialAdaptor.java
...eb/controller/content/adaptor/ContentMaterialAdaptor.java
+3
-0
MaterialDataAdaptor.java
...e/web/controller/content/adaptor/MaterialDataAdaptor.java
+107
-13
GoodsInfoAdaptor.java
.../haoban/manage/web/controller/goods/GoodsInfoAdaptor.java
+14
-0
ContentAuditMaterialDataQO.java
...ban/manage/web/qo/content/ContentAuditMaterialDataQO.java
+57
-0
ContentAuditMaterialQO.java
.../haoban/manage/web/qo/content/ContentAuditMaterialQO.java
+58
-0
ContentMaterialListQO.java
...c/haoban/manage/web/qo/content/ContentMaterialListQO.java
+159
-0
ContentMaterialSaveQO.java
...c/haoban/manage/web/qo/content/ContentMaterialSaveQO.java
+263
-0
RightVO.java
...x/src/main/java/com/gic/haoban/manage/web/vo/RightVO.java
+13
-0
StoreClerkVO.java
.../main/java/com/gic/haoban/manage/web/vo/StoreClerkVO.java
+9
-2
ContentMaterialInfoVO.java
...c/haoban/manage/web/vo/content/ContentMaterialInfoVO.java
+51
-3
InteractRecordExtendInfoVO.java
...ban/manage/web/vo/content/InteractRecordExtendInfoVO.java
+2
-2
InteractRecordVO.java
...om/gic/haoban/manage/web/vo/content/InteractRecordVO.java
+9
-2
ContentAuditorVO.java
...oban/manage/web/vo/content/creative/ContentAuditorVO.java
+59
-0
ContentGoodsVO.java
...haoban/manage/web/vo/content/creative/ContentGoodsVO.java
+129
-0
ContentMaterialConvsVO.java
...anage/web/vo/content/creative/ContentMaterialConvsVO.java
+55
-0
ContentMaterialDataVO.java
...manage/web/vo/content/creative/ContentMaterialDataVO.java
+34
-0
ContentMaterialVO.java
...ban/manage/web/vo/content/creative/ContentMaterialVO.java
+299
-0
PotentialCustomerVO.java
.../manage/web/vo/content/potential/PotentialCustomerVO.java
+18
-1
ContentMaterialLandingPageVO.java
...ge/web/vo/content/share/ContentMaterialLandingPageVO.java
+27
-0
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/NoticeMessageTypeEnum.java
View file @
4371676f
...
...
@@ -80,6 +80,8 @@ public enum NoticeMessageTypeEnum {
MATERIAL_REPORT_NOTIFY_MONTH
(
6004
,
"素材月报通知"
,
NoticeMessageCategoryTypeEnum
.
MATERIAL
.
getType
(),
"material_month_notify"
,
"/pages/route/index?pageType="
,
"hbapp_mate_report"
,
"materialMonth"
,
"clerkMaterialsReport"
),
CLERK_COMMISSION_NOTIFY
(
6005
,
"客户下单通知"
,
NoticeMessageCategoryTypeEnum
.
CUSTOMER
.
getType
(),
"clerk_commission_notify"
,
"/pages/route/index?pageType="
,
"hbapp_withdraw_list"
,
"clerkCommissionNotify"
,
"haobanNotice"
),
MATERIAL_AUDIT_NOTIFY
(
6006
,
"素材审核通知"
,
NoticeMessageCategoryTypeEnum
.
MATERIAL
.
getType
(),
"material_audit_notify"
,
"/pages/route/index?pageType="
,
"hbapp_create_center"
,
"materialAuditNotify"
,
"haobanNotice"
),
CASH_APPLY_REFUSE_NOTIFY
(
7001
,
"提现通知"
,
NoticeMessageCategoryTypeEnum
.
OTHER
.
getType
(),
"cash_apply_refuse_notify"
,
"/pages/route/index?pageType="
,
"hbapp_withdraw_list"
,
"cashApplyRefuseNotify"
,
"haobanNotice"
),
CASH_APPLY_FAIL_NOTIFY
(
7002
,
"提现通知"
,
NoticeMessageCategoryTypeEnum
.
OTHER
.
getType
(),
"cash_apply_fail_notify"
,
"/pages/route/index?pageType="
,
"hbapp_withdraw_list"
,
"cashApplyFailNotify"
,
"haobanNotice"
),
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/InteractRecordInfoDTO.java
View file @
4371676f
...
...
@@ -56,6 +56,13 @@ public class InteractRecordInfoDTO implements Serializable {
*/
private
String
bizId
;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
/**
* 浏览的商品数量
*/
...
...
@@ -158,4 +165,12 @@ public class InteractRecordInfoDTO implements Serializable {
public
void
setOrderGoodsNum
(
Integer
orderGoodsNum
)
{
this
.
orderGoodsNum
=
orderGoodsNum
;
}
public
Integer
getBizType
()
{
return
bizType
;
}
public
void
setBizType
(
Integer
bizType
)
{
this
.
bizType
=
bizType
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/MaterialInteractRecordEventType.java
View file @
4371676f
...
...
@@ -9,9 +9,10 @@ package com.gic.haoban.manage.api.enums.content;
**/
public
enum
MaterialInteractRecordEventType
{
VISIT_MATERIAL
(
1
,
"浏览了你分享的素材"
),
VISIT_PRODUCT
(
2
,
"浏览了你分享的素材,并查看了关联商品"
),
ORDER
(
3
,
"浏览了你分享的素材,并购买了商品"
);
VISIT_MATERIAL
(
1
,
"浏览了你分享的%s"
),
VISIT_PRODUCT
(
2
,
"浏览了你分享的%s,并查看了关联商品"
),
ORDER
(
3
,
"浏览了你分享的%s,并购买了商品"
),
ADD_SHOPPING_CART
(
4
,
"浏览你分享的%s,并加入了购物车"
);
MaterialInteractRecordEventType
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
...
...
@@ -48,4 +49,5 @@ public enum MaterialInteractRecordEventType {
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/ShareBizType.java
View file @
4371676f
...
...
@@ -9,7 +9,8 @@ package com.gic.haoban.manage.api.enums.content;
**/
public
enum
ShareBizType
{
MATERIAL
(
1
,
"素材"
);
MATERIAL
(
1
,
"素材"
),
GOODS
(
2
,
"商品"
);
ShareBizType
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
...
...
@@ -24,4 +25,13 @@ public enum ShareBizType {
public
String
getDesc
()
{
return
desc
;
}
public
static
String
getDescWithCode
(
Integer
code
)
{
for
(
ShareBizType
value
:
values
())
{
if
(
value
.
code
.
equals
(
code
))
{
return
value
.
desc
;
}
}
return
""
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/role/HaobanRoleApiService.java
View file @
4371676f
...
...
@@ -82,4 +82,12 @@ public interface HaobanRoleApiService {
* @return
*/
ServiceResponse
<
Void
>
contentMaterialRoleInit
(
ContentMaterialROleInitQDTO
contentMaterialROleInitQDTO
);
/**
* 刷新企业权限 单次
* @param params
* @return
*/
@Deprecated
ServiceResponse
<
Void
>
flushRightOneTime
(
String
params
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/context/InteractRecordMessageContext.java
View file @
4371676f
...
...
@@ -9,6 +9,7 @@ import com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessa
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.math.NumberUtils
;
import
org.springframework.beans.BeanUtils
;
import
java.util.Date
;
...
...
@@ -39,6 +40,30 @@ public class InteractRecordMessageContext {
*/
private
Boolean
hasDeal
;
/**
* 业务类型
* @return
*/
public
Integer
getBizType
()
{
// 素材id不为空 且 素材id是数字类型
if
(
StringUtils
.
isNotBlank
(
interactRecordMessageBO
.
getMaterialId
())
&&
NumberUtils
.
isDigits
(
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
)
{
InteractRecordMessageContext
context
=
new
InteractRecordMessageContext
();
context
.
setInteractRecordMessageBO
(
interactRecordMessageBO
);
...
...
@@ -51,8 +76,8 @@ public class InteractRecordMessageContext {
* @return
*/
public
String
buildRecordKey
()
{
String
customerId
=
StringUtils
.
isNotBlank
(
interactRecordMessageBO
.
getMemberId
())
?
interactRecordMessageBO
.
getMemberId
()
:
interactRecordMessageBO
.
getUnionId
();
String
key
=
interactRecordMessageBO
.
getBusinessUUId
()
+
interactRecordMessageBO
.
getClerkId
()
+
interactRecordMessageBO
.
getMaterialId
()
+
customerId
;
String
key
=
interactRecordMessageBO
.
getBusinessUUId
()
+
interactRecordMessageBO
.
getClerkId
()
+
this
.
getBizId
()
+
this
.
getCustomerId
()
;
return
MD5
.
create
().
digestHex
(
key
);
}
...
...
@@ -94,8 +119,8 @@ public class InteractRecordMessageContext {
temp
.
setEventType
(
this
.
interactRecordMessageBO
.
getEventType
());
Integer
durationTime
=
Optional
.
ofNullable
(
this
.
interactRecordMessageBO
.
getDurationTime
()).
orElse
(
0
);
temp
.
setDurationTime
(
durationTime
/
1000
);
temp
.
setBizType
(
ShareBizType
.
MATERIAL
.
getCod
e
());
temp
.
setBizId
(
this
.
interactRecordMessageBO
.
getMaterialId
()
+
""
);
temp
.
setBizType
(
this
.
getBizTyp
e
());
temp
.
setBizId
(
this
.
getBizId
()
);
temp
.
setTimes
(
this
.
times
);
temp
.
setTraceId
(
this
.
buildRecordKey
());
temp
.
setDeleteFlag
(
0
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/message/InteractRecordMessageBO.java
View file @
4371676f
...
...
@@ -45,7 +45,7 @@ public class InteractRecordMessageBO implements Serializable {
*/
private
Integer
channelSource
;
/**
* 事件类型 1浏览素材;2查看商品; 3购买商品
* 事件类型 1浏览素材;2查看商品; 3购买商品
4 加入购物车
*/
private
Integer
eventType
;
/**
...
...
@@ -80,4 +80,10 @@ public class InteractRecordMessageBO implements Serializable {
* 消息消费次数
*/
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/InteractRecordService.java
View file @
4371676f
...
...
@@ -68,10 +68,10 @@ public interface InteractRecordService {
/**
* 查询最新的一条互动记录
* @param clerkId
* @param
material
Id
* @param
biz
Id
* @param memberId
* @return
*/
InteractRecordBO
queryLeastRecord
(
String
enterpriseId
,
String
clerkId
,
String
material
Id
,
String
memberId
);
InteractRecordBO
queryLeastRecord
(
String
enterpriseId
,
String
clerkId
,
String
biz
Id
,
String
memberId
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/GoodsInfoAdaptor.java
0 → 100644
View file @
4371676f
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 @
4371676f
...
...
@@ -2,18 +2,18 @@ package com.gic.haoban.manage.service.service.content.adaptor;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
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.service.entity.content.TabHaobanInteractRecord
;
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.PotentialCustomerBO
;
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.qdto.GoodsListQDTO
;
import
com.gic.store.goods.service.GoodsCenterApiService
;
import
com.gic.store.goods.service.GoodsInfoOutApiService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -25,6 +25,7 @@ import java.util.Arrays;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -36,10 +37,13 @@ import java.util.stream.Collectors;
@Slf4j
@Component
public
class
InteractRecordBuilder
{
@Autowired
private
GoodsCenterApiService
goodsCenterApiService
;
@Autowired
private
InteractRecordMessageBuilder
interactRecordMessageBuilder
;
@Autowired
private
GoodsInfoOutApiService
goodsInfoOutApiService
;
@Autowired
private
GoodsInfoAdaptor
goodsInfoAdaptor
;
/**
* 互动记录描述
...
...
@@ -48,7 +52,7 @@ public class InteractRecordBuilder {
* @return
*/
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 {
* @param eventType
* @return
*/
public
String
buildDesc
(
Integer
channelSource
,
Integer
eventType
)
{
public
String
buildDesc
(
Integer
channelSource
,
Integer
eventType
,
Integer
bizType
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
if
(
TriggerCustomerChannelType
.
showDescChannel
().
contains
(
channelSource
))
{
TriggerCustomerChannelType
channelType
=
TriggerCustomerChannelType
.
getInstance
(
channelSource
);
...
...
@@ -68,7 +72,11 @@ public class InteractRecordBuilder {
}
MaterialInteractRecordEventType
instance
=
MaterialInteractRecordEventType
.
getInstance
(
eventType
);
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
();
}
...
...
@@ -96,7 +104,9 @@ public class InteractRecordBuilder {
}
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
())
||
MaterialInteractRecordEventType
.
ORDER
.
getCode
().
equals
(
interactRecord
.
getEventType
()))
{
// 浏览商品事件
List
<
String
>
visitGoodsIds
=
extendInfo
.
getGoodsIds
();
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
...
...
@@ -110,6 +120,19 @@ public class InteractRecordBuilder {
extendInfo
.
setInvalidGoodsNum
(
visitGoodsIds
.
size
()
-
extendGoodsInfos
.
size
());
return
extendInfo
;
}
// if (MaterialInteractRecordEventType.ORDER.getCode().equals(interactRecord.getEventType())
// && ShareBizType.GOODS.getCode().equals(interactRecord.getBizType())) {
// InteractRecordExtendInfoBO.ExtendGoodsInfo extendGoodsInfo = new InteractRecordExtendInfoBO.ExtendGoodsInfo();
// extendGoodsInfo.setGoodsName();
// extendGoodsInfo.setGoodsCode(item.getGoodsCode());
// extendGoodsInfo.setGoodsImageUrl(item.getGoodsImageUrl());
// extendGoodsInfo.setSalePrice(item.getSalePrice());
// extendGoodsInfo.setSourceType(item.getSourceType());
// GoodsSpuInfoDTO goodsSpuInfoDTO = goodsMinPriceMap.get(item.getGoodsId());
// if (goodsSpuInfoDTO != null && goodsSpuInfoDTO.getMinPrice() != null) {
// extendGoodsInfo.setSalePrice(goodsSpuInfoDTO.getMinPrice());
// }
// }
return
extendInfo
;
}
...
...
@@ -117,33 +140,32 @@ public class InteractRecordBuilder {
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
return
Collections
.
emptyList
();
}
GoodsListQDTO
goodsListQDTO
=
new
GoodsListQDTO
();
goodsListQDTO
.
setEnterpriseId
(
enterpriseId
);
goodsListQDTO
.
setIncludeGoodsIds
(
visitGoodsIds
);
goodsListQDTO
.
setPageSize
(
visitGoodsIds
.
size
()
+
1
);
ServiceResponse
<
Page
<
GoodsSpuInfoDTO
>>
serviceResponse
=
goodsCenterApiService
.
queryStoreGoodsList
(
goodsListQDTO
);
ServiceResponse
<
List
<
GoodsInfoSimpleDTO
>>
serviceResponse
=
goodsInfoOutApiService
.
queryGoodsSimpleInfo
(
visitGoodsIds
);
// 1:已上线,2:未上线,3:回收站
if
(!
serviceResponse
.
isSuccess
())
{
log
.
info
(
"查询商品异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
}
if
(
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
()
.
getResult
()
))
{
if
(
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
()))
{
log
.
info
(
"查询商品为空 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
}
Map
<
String
,
GoodsSpuInfoDTO
>
goodsMinPriceMap
=
goodsInfoAdaptor
.
queryGoodsMinPrice
(
enterpriseId
,
visitGoodsIds
);
List
<
Integer
>
excludeStatus
=
Arrays
.
asList
(
0
,
3
);
return
serviceResponse
.
getResult
()
.
getResult
()
.
stream
()
.
filter
(
item
->
!
excludeStatus
.
contains
(
item
.
getStatus
()))
.
map
(
item
->
{
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
extendGoodsInfo
=
new
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
();
extendGoodsInfo
.
setGoodsName
(
item
.
getGoodsName
());
extendGoodsInfo
.
setGoodsCode
(
item
.
getGoodsCode
());
extendGoodsInfo
.
setGoodsImageUrl
(
item
.
getImageUrl
());
extendGoodsInfo
.
setGoodsImageUrl
(
item
.
get
Goods
ImageUrl
());
extendGoodsInfo
.
setSalePrice
(
item
.
getSalePrice
());
extendGoodsInfo
.
setSourceType
(
item
.
getSourceType
());
GoodsSpuInfoDTO
goodsSpuInfoDTO
=
goodsMinPriceMap
.
get
(
item
.
getGoodsId
());
if
(
goodsSpuInfoDTO
!=
null
&&
goodsSpuInfoDTO
.
getMinPrice
()
!=
null
)
{
extendGoodsInfo
.
setSalePrice
(
goodsSpuInfoDTO
.
getMinPrice
());
}
return
extendGoodsInfo
;
})
.
collect
(
Collectors
.
toList
());
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/InteractRecordMessageBuilder.java
View file @
4371676f
...
...
@@ -190,7 +190,7 @@ public class InteractRecordMessageBuilder {
.
map
(
ListOrderItemDTO:
:
getMallProId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
Map
<
String
,
Integer
>
goodsSourceTypeMap
=
queryGoodsSimpleInfo
(
enterpriseId
,
goodsIds
);
Map
<
String
,
Integer
>
goodsSourceTypeMap
=
this
.
queryGoodsSimpleInfo
(
enterpriseId
,
goodsIds
);
OrderOutInfoDTO
orderOutInfoDTO
=
serviceResponse
.
getResult
();
InteractRecordExtendInfoBO
.
ExtendOrderInfo
extendOrderInfo
=
new
InteractRecordExtendInfoBO
.
ExtendOrderInfo
();
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/InteractRecordServiceImpl.java
View file @
4371676f
...
...
@@ -232,16 +232,16 @@ public class InteractRecordServiceImpl implements InteractRecordService {
* 查询最新的一条互动记录
*
* @param clerkId
* @param
material
Id
* @param
biz
Id
* @param memberId
* @return
*/
@Override
public
InteractRecordBO
queryLeastRecord
(
String
enterpriseId
,
String
clerkId
,
String
material
Id
,
String
memberId
)
{
public
InteractRecordBO
queryLeastRecord
(
String
enterpriseId
,
String
clerkId
,
String
biz
Id
,
String
memberId
)
{
InteractRecordQO
interactRecordQO
=
new
InteractRecordQO
();
interactRecordQO
.
setEnterpriseId
(
enterpriseId
);
interactRecordQO
.
setClerkId
(
clerkId
);
interactRecordQO
.
setBizId
(
material
Id
);
interactRecordQO
.
setBizId
(
biz
Id
);
interactRecordQO
.
setMemberId
(
memberId
);
PageHelper
.
startPage
(
1
,
1
);
com
.
github
.
pagehelper
.
Page
<
TabHaobanInteractRecord
>
pageResult
=
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/message/InteractRecordMessageListener.java
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
.
message
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.dubbo.entity.ProviderLocalTag
;
import
com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
;
import
com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -11,6 +12,7 @@ import org.springframework.kafka.listener.MessageListener;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.UUID
;
/**
* @Author MUSI
...
...
@@ -29,12 +31,14 @@ public class InteractRecordMessageListener implements MessageListener<String, St
static
{
dealEventType
.
add
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
());
dealEventType
.
add
(
MaterialInteractRecordEventType
.
VISIT_MATERIAL
.
getCode
());
dealEventType
.
add
(
MaterialInteractRecordEventType
.
ADD_SHOPPING_CART
.
getCode
());
}
@Override
public
void
onMessage
(
ConsumerRecord
<
String
,
String
>
consumerRecord
)
{
ProviderLocalTag
providerLocalTag
=
ProviderLocalTag
.
tag
.
get
();
providerLocalTag
.
traceId
=
UUID
.
randomUUID
().
toString
();
String
value
=
consumerRecord
.
value
();
log
.
info
(
"【InteractRecordMessageListener】处理埋点事件 {}"
,
value
);
InteractRecordMessageBO
recordMessageBO
=
JSON
.
parseObject
(
value
,
InteractRecordMessageBO
.
class
);
if
(
recordMessageBO
==
null
)
{
...
...
@@ -42,7 +46,7 @@ public class InteractRecordMessageListener implements MessageListener<String, St
return
;
}
if
(
recordMessageBO
.
getEventType
()
==
null
||
!
dealEventType
.
contains
(
recordMessageBO
.
getEventType
()))
{
log
.
info
(
"
素材埋点事件类型非素材
相关类型 {}"
,
recordMessageBO
.
getEventType
());
log
.
info
(
"
埋点事件类型非
相关类型 {}"
,
recordMessageBO
.
getEventType
());
return
;
}
dataConvert
(
recordMessageBO
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/message/InteractRecordMessageService.java
View file @
4371676f
...
...
@@ -92,6 +92,9 @@ public class InteractRecordMessageService {
if
(
interactRecordBO
.
getEventType
()
<
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
())))
{
...
...
@@ -100,15 +103,19 @@ public class InteractRecordMessageService {
if
(!
MaterialInteractRecordEventType
.
VISIT_MATERIAL
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
())
&&
null
==
interactRecordBO
.
getExtendInfo
())
{
log
.
info
(
"非素材浏览
时间
,初始化扩展字段"
);
log
.
info
(
"非素材浏览
事件
,初始化扩展字段"
);
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
())
&&
!
interactRecordBO
.
getExtendInfo
().
getGoodsIds
().
contains
(
interactRecordMessageBO
.
getGoodsId
()))
{
interactRecordBO
.
getExtendInfo
().
getGoodsIds
().
add
(
interactRecordMessageBO
.
getGoodsId
());
&&
!
interactRecordBO
.
getExtendInfo
()
.
getGoodsIds
().
contains
(
interactRecordMessageBO
.
getGoodsId
()))
{
interactRecordBO
.
getExtendInfo
().
getGoodsIds
()
.
add
(
interactRecordMessageBO
.
getGoodsId
());
}
}
...
...
@@ -139,9 +146,9 @@ public class InteractRecordMessageService {
potentialCustomerBO
.
setSeeFlag
(
0
);
potentialCustomerBO
.
setStoreId
(
interactRecordBO
.
getStoreId
());
potentialCustomerBO
.
setBizId
(
interactRecordBO
.
getBizId
());
potentialCustomerBO
.
setBizType
(
interactRecordBO
.
getBizType
());
potentialCustomerBO
.
setEventType
(
interactRecordBO
.
getEventType
());
potentialCustomerBO
.
setChannelSource
(
interactRecordBO
.
getChannelSource
());
potentialCustomerBO
.
setEventType
(
interactRecordBO
.
getEventType
());
potentialCustomerBO
.
setDurationTime
(
interactRecordBO
.
getDurationTime
());
potentialCustomerBO
.
setTimes
(
interactRecordBO
.
getTimes
());
potentialCustomerService
.
saveOrUpdatePotentialCustomer
(
potentialCustomerBO
);
...
...
@@ -157,9 +164,14 @@ public class InteractRecordMessageService {
* @return
*/
public
InteractRecordBO
getInteractRecordBOWithOrderType
(
InteractRecordMessageBO
interactRecordMessageBO
)
{
InteractRecordBO
interactRecordBO
;
InteractRecordBO
interactRecordBO
=
null
;
String
bizId
=
interactRecordMessageBO
.
getMaterialId
();
if
(
StringUtils
.
isBlank
(
bizId
))
{
bizId
=
interactRecordMessageBO
.
getGoodsId
();
}
interactRecordBO
=
interactRecordService
.
queryLeastRecord
(
interactRecordMessageBO
.
getEnterpriseId
(),
interactRecordMessageBO
.
getClerkId
(),
interactRecordMessageBO
.
getMaterialId
()
,
interactRecordMessageBO
.
getMemberId
());
bizId
,
interactRecordMessageBO
.
getMemberId
());
return
interactRecordBO
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/MallOrderStatusChangeApiServiceImpl.java
View file @
4371676f
...
...
@@ -76,13 +76,21 @@ public class MallOrderStatusChangeApiServiceImpl implements MallOrderStatusChang
JSONObject
jsonObject
=
JSON
.
parseObject
(
extendJson
,
JSONObject
.
class
);
String
clerkId
=
jsonObject
.
getString
(
"clerkId"
);
String
contentMaterialId
=
jsonObject
.
getString
(
"contentMaterialId"
);
String
goodsId
=
jsonObject
.
getString
(
"proId"
);
String
memberId
=
orderEventMqBO
.
getMemberId
();
InteractRecordMessageBO
interactRecordMessageBO
=
new
InteractRecordMessageBO
();
interactRecordMessageBO
.
setEnterpriseId
(
orderEventMqBO
.
getEnterpriseId
());
interactRecordMessageBO
.
setMemberId
(
memberId
);
interactRecordMessageBO
.
setClerkId
(
clerkId
);
interactRecordMessageBO
.
setMaterialId
(
contentMaterialId
);
if
(
StringUtils
.
isNotBlank
(
contentMaterialId
)
&&
StringUtils
.
isNumeric
(
contentMaterialId
))
{
interactRecordMessageBO
.
setMaterialId
(
contentMaterialId
);
}
else
if
(
StringUtils
.
isNotBlank
(
goodsId
)
&&
!
StringUtils
.
isNumeric
(
goodsId
))
{
interactRecordMessageBO
.
setGoodsId
(
goodsId
);
}
else
{
log
.
info
(
"订单扩展信息中无要处理的数据 {}"
,
extendJson
);
return
ServiceResponse
.
success
();
}
interactRecordMessageBO
.
setEventType
(
MaterialInteractRecordEventType
.
ORDER
.
getCode
());
interactRecordMessageBO
.
setDurationTime
(
0
);
interactRecordMessageBO
.
setLastAccessTime
(
orderInfo
.
getCreateTime
().
getTime
());
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/PotentialCustomerApiServiceImpl.java
View file @
4371676f
...
...
@@ -56,7 +56,7 @@ public class PotentialCustomerApiServiceImpl implements PotentialCustomerApiServ
PotentialCustomerDTO
temp
=
new
PotentialCustomerDTO
();
BeanUtils
.
copyProperties
(
item
,
temp
);
temp
.
setPotentialCustomerId
(
item
.
getId
());
temp
.
setDesc
(
interactRecordBuilder
.
buildDesc
(
item
.
getChannelSource
(),
item
.
getEventType
()));
temp
.
setDesc
(
interactRecordBuilder
.
buildDesc
(
item
.
getChannelSource
(),
item
.
getEventType
()
,
item
.
getBizType
()
));
return
temp
;
})
.
collect
(
Collectors
.
toList
());
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/role/HaobanRoleApiServiceImpl.java
View file @
4371676f
...
...
@@ -26,6 +26,7 @@ import com.gic.haoban.manage.service.pojo.bo.role.HaobanMenuBO;
import
com.gic.haoban.manage.service.pojo.bo.role.HaobanRoleBO
;
import
com.gic.haoban.manage.service.service.TemplateEnterpriseRelatedService
;
import
com.gic.haoban.manage.service.service.WxEnterpriseRelatedService
;
import
com.gic.haoban.manage.service.service.content.adaptor.MaterialEnterpriseAdaptor
;
import
com.gic.haoban.manage.service.service.role.HaobanMenuService
;
import
com.gic.haoban.manage.service.service.role.HaobanRoleMenuService
;
import
com.gic.haoban.manage.service.service.role.HaobanRoleService
;
...
...
@@ -68,6 +69,8 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
private
TabHaobanTemplateApplicationRelatedMapper
tabHaobanTemplateApplicationRelatedMapper
;
@Autowired
private
TemplateEnterpriseRelatedService
templateEnterpriseRelatedService
;
@Autowired
private
MaterialEnterpriseAdaptor
materialEnterpriseAdaptor
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -575,16 +578,50 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
static
{
// 导购
menuCodeMap
.
put
(
"0"
+
ContentMaterialROleInitQDTO
.
Version
.
LOW
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"salesClue"
,
"customerDetail_interact"
));
menuCodeMap
.
put
(
"0"
+
ContentMaterialROleInitQDTO
.
Version
.
HIGH
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"salesClue"
,
"customerDetail_interact"
));
menuCodeMap
.
put
(
"0"
+
ContentMaterialROleInitQDTO
.
Version
.
LOW
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"salesClue"
,
"customerDetail_interact"
));
menuCodeMap
.
put
(
"0"
+
ContentMaterialROleInitQDTO
.
Version
.
HIGH
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"salesClue"
,
"customerDetail_interact"
,
"publishMaterial"
,
"userCenter_createCenter"
));
// 店长
menuCodeMap
.
put
(
"1"
+
ContentMaterialROleInitQDTO
.
Version
.
LOW
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"materialManage"
,
"salesClue"
,
"customerDetail_interact"
));
menuCodeMap
.
put
(
"1"
+
ContentMaterialROleInitQDTO
.
Version
.
HIGH
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"materialManage"
,
"salesClue"
,
"customerDetail_interact"
));
menuCodeMap
.
put
(
"1"
+
ContentMaterialROleInitQDTO
.
Version
.
HIGH
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"materialManage"
,
"salesClue"
,
"customerDetail_interact"
,
"publishMaterial"
,
"userCenter_createCenter"
));
// 区经
menuCodeMap
.
put
(
"2"
+
ContentMaterialROleInitQDTO
.
Version
.
LOW
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"materialManage"
));
menuCodeMap
.
put
(
"2"
+
ContentMaterialROleInitQDTO
.
Version
.
HIGH
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"materialManage"
));
menuCodeMap
.
put
(
"2"
+
ContentMaterialROleInitQDTO
.
Version
.
HIGH
.
getCode
(),
Arrays
.
asList
(
"materialMain"
,
"commodityCenter"
,
"commodityCenterTab"
,
"materialCenterTab"
,
"goodsDetail_material"
,
"goodsCenter_Count"
,
"materialManage"
,
"publishMaterial"
,
"userCenter_createCenter"
));
}
/**
* 刷新企业权限
*
* @param params
* @return
*/
@Override
public
ServiceResponse
<
Void
>
flushRightOneTime
(
String
params
)
{
logger
.
info
(
"flushRightOneTime 刷新企业内容权限:{}"
,
params
);
// 获取所有开通内容高级版的企业
List
<
String
>
enterpriseIds
=
materialEnterpriseAdaptor
.
queryHasRightEnterpriseIds
(
MaterialEnterpriseAdaptor
.
MaterialLevel
.
HIGH
.
getCode
());
// 执行刷新权限
String
enterpriseId
=
""
;
if
(
StringUtils
.
isNotBlank
(
params
)
&&
!
StringUtils
.
equals
(
"-1"
,
params
))
{
enterpriseId
=
params
;
}
for
(
String
tempId
:
enterpriseIds
)
{
if
(
StringUtils
.
isNotBlank
(
enterpriseId
)
&&
!
StringUtils
.
equalsIgnoreCase
(
enterpriseId
,
tempId
))
{
logger
.
info
(
"当前企业:{} 不是目标企业:{}, 忽略"
,
tempId
,
enterpriseId
);
continue
;
}
ContentMaterialROleInitQDTO
contentMaterialROleInitQDTO
=
new
ContentMaterialROleInitQDTO
();
contentMaterialROleInitQDTO
.
setEnterpriseId
(
tempId
);
contentMaterialROleInitQDTO
.
setVersion
(
MaterialEnterpriseAdaptor
.
MaterialLevel
.
HIGH
.
getCode
());
logger
.
info
(
"添加企业素材纬度权限: {}"
,
JSON
.
toJSONString
(
contentMaterialROleInitQDTO
));
this
.
contentMaterialRoleInit
(
contentMaterialROleInitQDTO
);
}
return
ServiceResponse
.
success
();
}
}
haoban-manage3-service/src/main/resources/mapper/content/TabHaobanInteractRecordMapper.xml
View file @
4371676f
...
...
@@ -323,6 +323,7 @@
update tab_haoban_interact_record
set member_id = #{memberId}
where union_id = #{unionId} and delete_flag = 0
and (member_id is null or member_id = '')
</update>
</mapper>
...
...
haoban-manage3-service/src/test/java/InteractRecordMessageServiceTest.java
View file @
4371676f
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.dto.content.PotentialCustomerDTO
;
import
com.gic.haoban.manage.api.dto.qdto.content.PotentialCustomerQDTO
;
import
com.gic.haoban.manage.api.service.content.MallOrderStatusChangeApiService
;
import
com.gic.haoban.manage.api.service.content.PotentialCustomerApiService
;
import
com.gic.haoban.manage.service.pojo.bo.content.OrderEventMqBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO
;
import
com.gic.haoban.manage.service.service.content.PotentialCustomerService
;
import
com.gic.haoban.manage.service.service.content.message.InteractRecordMessageService
;
import
com.gic.haoban.manage.service.service.out.impl.content.MallOrderStatusChangeApiServiceImpl
;
import
com.sun.org.apache.bcel.internal.generic.DADD
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
...
...
@@ -26,6 +35,8 @@ public class InteractRecordMessageServiceTest {
InteractRecordMessageService
interactRecordMessageService
;
@Autowired
MallOrderStatusChangeApiService
mallOrderStatusChangeApiService
;
@Autowired
private
PotentialCustomerApiService
potentialCustomerApiService
;
String
eid
=
"ff8080815dacd3a2015dacd3ef5c0000"
;
String
wxEid
=
"ca66a01b79474c40b3e7c7f93daf1a3b"
;
...
...
@@ -60,4 +71,34 @@ public class InteractRecordMessageServiceTest {
String
params
=
"{\"orderNumber\":\"6230408781099580\",\"toStatus\":2,\"fromStatus\":1,\"orderId\":\"c08691af8297480db3d25ef5ef19e863\",\"enterpriseId\":\"ff8080815dacd3a2015dacd3ef5c0000\",\"mqTraceId\":\"244806167-1-1680932807.425-/gic-thirdparty/wxmall_payment_result_notice\",\"memberId\":\"ff8080818147efc8018148d1759903c8\"}"
;
mallOrderStatusChangeApiService
.
mallOrderStatusChange
(
params
);
}
@Test
public
void
dealGoodsRecord
(){
String
json
=
"{\"businessUUId\":\"IcB5ZMEvmzir1uvjgc6ohJFMmexraBak\",\"durationTime\":21990,\"enterpriseId\":\"ff8080815dacd3a2015dacd3ef5c0000\",\"eventType\":2,\"goodsId\":\"ff808081890a1b4201890a54b479001d\",\"lastAccessTime\":1692580759467,\"memberId\":\"ff80808189fd5ba6018a01ea3e070673\",\"refUrl\":\"pages/authorize/authorize\",\"unionId\":\"orXl9tyHOI4qP1QxwVcA7A3sB7zg\"}"
;
InteractRecordMessageBO
interactRecordMessageBO
=
JSONObject
.
parseObject
(
json
,
InteractRecordMessageBO
.
class
);
interactRecordMessageBO
.
setChannelSource
(
3
);
interactRecordMessageBO
.
setClerkId
(
"415b123576674913b365005b81037551"
);
interactRecordMessageService
.
dealRecord
(
interactRecordMessageBO
);
}
@Test
public
void
queryPotentialCustomer
()
{
PotentialCustomerQDTO
potentialCustomerQDTO
=
new
PotentialCustomerQDTO
();
potentialCustomerQDTO
.
setEnterpriseId
(
"ff8080815dacd3a2015dacd3ef5c0000"
);
potentialCustomerQDTO
.
setClerkId
(
"415b123576674913b365005b81037551"
);
potentialCustomerQDTO
.
setWxEnterpriseId
(
"ca66a01b79474c40b3e7c7f93daf1a3b"
);
ServiceResponse
<
Page
<
PotentialCustomerDTO
>>
pageServiceResponse
=
potentialCustomerApiService
.
queryPotentialCustomer
(
potentialCustomerQDTO
);
System
.
out
.
println
(
JSONObject
.
toJSONString
(
pageServiceResponse
));
}
@Autowired
private
MallOrderStatusChangeApiServiceImpl
mallOrderStatusChangeApiServiceImpl
;
@Test
public
void
orderTest
()
{
String
json
=
"{\"orderNumber\":\"0230823781099580\",\"toStatus\":2,\"fromStatus\":1,\"orderId\":\"0a84ff17893046e49839fa3c3542bffa\",\"deliveryChannel\":1,\"eventTime\":1692794627733,\"enterpriseId\":\"8a809083802bbf5201804af08b0d0095\",\"businessType\":1,\"mqTraceId\":\"60157-1-1692794627.506-/gic-thirdparty/wxmall_payment_result_notice\",\"memberId\":\"8a808d838995476c0189b55f0ab807f7\"}"
;
mallOrderStatusChangeApiServiceImpl
.
sendDelayMessage
(
JSONObject
.
parseObject
(
json
,
OrderEventMqBO
.
class
));
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/TabHaobanAppLogController.java
View file @
4371676f
...
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.web.controller;
import
com.alibaba.fastjson.JSON
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.haoban.common.anno.IgnoreLogin
;
import
com.gic.haoban.manage.web.qo.logrecord.ErrorLogReportQO
;
import
com.gic.log.record.bean.WebErrorLogReport
;
import
com.gic.log.record.util.LogWebErrorLogReportUtil
;
import
org.apache.logging.log4j.LogManager
;
...
...
@@ -27,9 +28,13 @@ public class TabHaobanAppLogController {
@ResponseBody
@IgnoreLogin
@com
.
gic
.
web
.
common
.
ano
.
IgnoreLogin
public
RestResponse
<
Boolean
>
insertLog
(
@RequestBody
WebErrorLogReport
qo
)
{
public
RestResponse
<
Boolean
>
insertLog
(
@RequestBody
ErrorLogReportQO
qo
)
{
logger
.
info
(
"插入日志的参数:{}"
,
JSON
.
toJSONString
(
qo
));
qo
.
setCreateTime
(
new
Date
());
if
(
qo
.
getType
()
!=
null
&&
qo
.
getType
()
==
1
)
{
logger
.
info
(
"TabHaobanAppLogController 日志内容:{}"
,
JSON
.
toJSONString
(
qo
));
return
RestResponse
.
successResult
();
}
LogWebErrorLogReportUtil
.
pushWebErrorLogReport
(
qo
);
return
RestResponse
.
successResult
();
}
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/qo/logrecord/ErrorLogReportQO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
logrecord
;
import
com.gic.log.record.bean.WebErrorLogReport
;
/**
* @Author MUSI
* @Date 2023/8/15 2:27 PM
* @Description
* @Version
**/
public
class
ErrorLogReportQO
extends
WebErrorLogReport
{
private
static
final
long
serialVersionUID
=
-
2657084366633675726L
;
/**
* 0 获取null 正常记录
* 1 只记录log日志,不记录到ES
*/
private
Integer
type
;
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/WxStaffController.java
View file @
4371676f
...
...
@@ -243,6 +243,9 @@ public class WxStaffController extends WebBaseController {
vo
.
setClerkId
(
dto
.
getClerkId
());
vo
.
setClerkType
(
dto
.
getClerkType
());
vo
.
setClerkImg
(
dto
.
getImageUrl
());
if
(
StringUtils
.
isBlank
(
vo
.
getClerkImg
()))
{
vo
.
setClerkImg
(
dto
.
getHeadImgUrl
());
}
vo
.
setClerkName
(
dto
.
getClerkName
());
StaffClerkRelationDTO
related
=
bindCodeMap
.
get
(
dto
.
getClerkId
());
if
(
related
!=
null
)
{
...
...
@@ -251,6 +254,8 @@ public class WxStaffController extends WebBaseController {
}
else
{
vo
.
setBindFlag
(
0
);
}
long
memberCount
=
customerApiService
.
countMember
(
enterpriseId
,
storeId
,
dto
.
getClerkId
());
vo
.
setMemberCount
(
Convert
.
toInt
(
memberCount
,
0
));
resultList
.
add
(
vo
);
}
Page
<
StoreClerkVO
>
page
=
new
Page
();
...
...
@@ -1904,6 +1909,7 @@ public class WxStaffController extends WebBaseController {
}
else
{
vo
.
setStatus
(
2
);
}
vo
.
setModuleVersion
(
dto
.
getModuleVersion
());
return
RestResponse
.
successResult
(
vo
);
}
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/ContentCreativeController.java
0 → 100644
View file @
4371676f
This diff is collapsed.
Click to expand it.
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/ContentImageController.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
content
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.enterprise.api.dto.EnterpriseDTO
;
import
com.gic.enterprise.api.service.AccountService
;
import
com.gic.enterprise.api.service.EnterpriseService
;
import
com.gic.thirdparty.cloudfile.CloudFileUtil
;
import
com.gic.thirdparty.cloudfile.enums.CloudFileBusinessOptEnum
;
import
com.gic.thirdparty.cloudfile.enums.CloudFileTypeEnum
;
import
com.gic.thirdparty.cloudfile.pojo.CloudFileInfo
;
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.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
org.springframework.web.multipart.commons.CommonsMultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.File
;
/**
* 好办-通用
*/
@Controller
@RequestMapping
(
"/content"
)
public
class
ContentImageController
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
ContentImageController
.
class
);
@Autowired
private
AccountService
accountService
;
@Autowired
private
EnterpriseService
enterpriseService
;
/**
* 获取桶名称
* @param fileType 文件后缀 mp4
* @return
*/
@RequestMapping
(
"get-bucket"
)
@ResponseBody
public
RestResponse
<
CloudFileInfo
>
getBucket
(
String
fileType
,
String
enterpriseId
)
{
//存储空间余额校验
if
(!
accountService
.
storageFeeCheck
(
enterpriseId
)){
return
RestResponse
.
failure
(
"-1"
,
"存储余额不足,暂不支持图片/视频上传,请充值"
);
}
EnterpriseDTO
enterpriseDTO
=
enterpriseService
.
getEnterpriseById
(
enterpriseId
);
CloudFileInfo
cloudFileInfo
=
CloudFileUtil
.
getPreUploadFileInfo
(
fileType
,
CloudFileTypeEnum
.
VIDEO
,
enterpriseDTO
.
getFactoryCode
(),
CloudFileBusinessOptEnum
.
MATERIAL_CONTENT
);
if
(
cloudFileInfo
==
null
){
return
RestResponse
.
failure
(
"-1"
,
"获取桶名称失败"
);
}
return
RestResponse
.
successResult
(
cloudFileInfo
);
}
/**
* 图片上传
*
* @param request
* @param videoPicFileId 上传视频首针图片时使用
* @param fileFlag = 1-普通图片 2-视频截取首针图片(需要与视频建立关联关系)
* @param bucketName 存储桶名称
* @return
*/
@RequestMapping
(
"upload-image"
)
@ResponseBody
public
RestResponse
<
CloudFileInfo
>
uploadCloudImage
(
HttpServletRequest
request
,
String
enterpriseId
,
Integer
fileFlag
,
String
videoPicFileId
,
String
bucketName
)
{
//存储空间余额校验
if
(!
accountService
.
storageFeeCheck
(
enterpriseId
)){
return
RestResponse
.
failure
(
"-1"
,
"存储余额不足,暂不支持图片/视频上传,请充值"
);
}
if
(
fileFlag
==
null
){
fileFlag
=
1
;
}
if
(
fileFlag
==
2
&&
StringUtils
.
isBlank
(
videoPicFileId
)
||
fileFlag
==
2
&&
StringUtils
.
isBlank
(
bucketName
)){
return
RestResponse
.
failure
(
"-1"
,
"必传参数不能为空"
);
}
EnterpriseDTO
enterpriseDTO
=
enterpriseService
.
getEnterpriseById
(
enterpriseId
);
try
{
MultipartHttpServletRequest
multiRequest
=
(
MultipartHttpServletRequest
)
request
;
String
fileName
=
multiRequest
.
getFileNames
().
next
();
CommonsMultipartFile
multiFile
=
(
CommonsMultipartFile
)
multiRequest
.
getMultiFileMap
().
get
(
fileName
).
get
(
0
);
long
fileSize
=
multiFile
.
getSize
();
Boolean
compressFlag
=
false
;
//大于10M压缩
if
(
fileSize
/
1024
/
1024
>
10
)
{
compressFlag
=
true
;
}
String
originalFilename
=
multiFile
.
getOriginalFilename
();
String
fileType
=
originalFilename
.
substring
(
originalFilename
.
lastIndexOf
(
"."
)+
1
).
toLowerCase
();
logger
.
info
(
"文件名称 originalFilename = {}"
,
originalFilename
);
logger
.
info
(
"文件类型 fileType = {}"
,
fileType
);
if
(!
"JPG"
.
equals
(
fileType
)
&&
!
"jpg"
.
equals
(
fileType
)
&&
!
"PNG"
.
equals
(
fileType
)
&&
!
"png"
.
equals
(
fileType
)
&&
!
"JPEG"
.
equals
(
fileType
)
&&
!
"jpeg"
.
equals
(
fileType
)
&&
!
"blob"
.
equals
(
fileType
))
{
//blob为了解决 前端截取的视频首针是blob,兼容
return
RestResponse
.
failure
(
"-1"
,
"图片格式错误"
);
}
String
prefix
=
".jpg"
;
if
(!
"blob"
.
equals
(
fileType
)){
prefix
=
originalFilename
.
substring
(
originalFilename
.
lastIndexOf
(
"."
));
}
else
{
fileType
=
"png"
;
}
File
file
=
File
.
createTempFile
(
fileName
,
prefix
);
multiFile
.
transferTo
(
file
);
if
(
fileFlag
==
1
)
{
CloudFileInfo
cloudFileInfo
=
CloudFileUtil
.
uploadFileNoRelation
(
file
,
fileType
,
CloudFileTypeEnum
.
IMAGE
,
enterpriseDTO
.
getFactoryCode
(),
CloudFileBusinessOptEnum
.
MATERIAL_CONTENT
,
compressFlag
);
return
RestResponse
.
successResult
(
cloudFileInfo
);
}
else
if
(
fileFlag
==
2
){
// 若是前端截取的视频首针图片,则调用新接口
CloudFileUtil
.
uploadPreFileByFieldKey
(
file
,
bucketName
,
videoPicFileId
);
}
return
RestResponse
.
successResult
();
}
catch
(
Exception
e
)
{
logger
.
warn
(
"图片上传异常"
,
e
);
return
RestResponse
.
failure
(
"-1"
,
"图片上传异常"
);
}
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/ContentMaterialController.java
View file @
4371676f
...
...
@@ -6,21 +6,22 @@ import com.gic.api.base.commons.Page;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.content.api.dto.column.ContentColumnListDTO
;
import
com.gic.content.api.dto.material.ContentMaterial
Front
DTO
;
import
com.gic.content.api.dto.material.ContentMaterialDTO
;
import
com.gic.content.api.dto.material.ContentMaterialShareInfoDTO
;
import
com.gic.content.api.enums.ColumnEnum
;
import
com.gic.content.api.enums.MaterialSearchSceneEnum
;
import
com.gic.content.api.qdto.column.ContentColumnClerkQDTO
;
import
com.gic.content.api.qdto.material.ContentMaterialPage
Front
QDTO
;
import
com.gic.content.api.qdto.material.ContentMaterialPageQDTO
;
import
com.gic.content.api.qdto.material.ContentMaterialShareQDTO
;
import
com.gic.content.api.service.ContentColumnApiService
;
import
com.gic.content.api.service.ContentMaterialApiService
;
import
com.gic.content.api.service.ContentMaterialShareApiService
;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.web.controller.commission.CommissionManager
;
import
com.gic.haoban.manage.web.controller.content.adaptor.ClerkStoreAdaptor
;
import
com.gic.haoban.manage.web.controller.goods.GoodsInfoAdaptor
;
import
com.gic.haoban.manage.web.qo.content.ContentColumnClerkViewQO
;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialListQO
;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialQO
;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialShareQO
;
import
com.gic.haoban.manage.web.vo.content.ContentColumnInfoVO
;
...
...
@@ -35,14 +36,11 @@ import org.springframework.beans.BeanUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -105,44 +103,45 @@ public class ContentMaterialController {
return
RestResponse
.
failure
(
"-777"
,
"参数异常"
);
}
List
<
Integer
>
goodsShowStatus
=
goodsInfoAdaptor
.
getGoodsShowStatus
(
contentMaterialQO
.
getEnterpriseId
());
ContentMaterialPageFrontQDTO
contentMaterialPageFrontQDTO
=
new
ContentMaterialPageFrontQDTO
();
contentMaterialPageFrontQDTO
.
setEnterpriseId
(
contentMaterialQO
.
getEnterpriseId
());
contentMaterialPageFrontQDTO
.
setKeyWord
(
contentMaterialQO
.
getSearch
());
contentMaterialPageFrontQDTO
.
setContentColumnId
(
contentMaterialQO
.
getContentColumnId
());
contentMaterialPageFrontQDTO
.
setMaterialType
(
contentMaterialQO
.
getMaterialType
());
ContentMaterialPageQDTO
pageQDTO
=
new
ContentMaterialPageQDTO
();
pageQDTO
.
setQueryScene
(
MaterialSearchSceneEnum
.
HAOBAN_MARKETING
.
value
);
pageQDTO
.
setEnterpriseId
(
contentMaterialQO
.
getEnterpriseId
());
pageQDTO
.
setSearch
(
contentMaterialQO
.
getSearch
());
pageQDTO
.
setContentColumnId
(
contentMaterialQO
.
getContentColumnId
());
pageQDTO
.
setMaterialType
(
contentMaterialQO
.
getMaterialType
());
if
(
contentMaterialQO
.
getSortType
()
!=
null
)
{
if
(
contentMaterialQO
.
getSortType
()
==
2
)
{
contentMaterialPageFront
QDTO
.
setHotFlag
(
1
);
page
QDTO
.
setHotFlag
(
1
);
}
}
if
(
StringUtils
.
isBlank
(
contentMaterialQO
.
getStoreId
()))
{
// 区经 获取管辖的权限
List
<
String
>
storeIds
=
this
.
clerkStoreAdaptor
.
queryClerkStoreIds
(
contentMaterialQO
.
getClerkId
(),
contentMaterialQO
.
getWxEnterpriseId
());
contentMaterialPageFront
QDTO
.
setStoreIdList
(
storeIds
);
page
QDTO
.
setStoreIdList
(
storeIds
);
}
else
{
contentMaterialPageFront
QDTO
.
setStoreIdList
(
Collections
.
singletonList
(
contentMaterialQO
.
getStoreId
()));
page
QDTO
.
setStoreIdList
(
Collections
.
singletonList
(
contentMaterialQO
.
getStoreId
()));
}
if
(
contentMaterialQO
.
getSearchType
()
!=
null
&&
contentMaterialQO
.
getSearchType
().
equals
(
1
))
{
if
(
StringUtils
.
isNotBlank
(
contentMaterialQO
.
getSearch
()))
{
// 搜索条件需要置为空
contentMaterialPageFrontQDTO
.
setKeyWord
(
null
);
pageQDTO
.
setSearch
(
null
);
List
<
String
>
goodsIds
=
goodsInfoAdaptor
.
queryGoodsIdWithSearch
(
contentMaterialQO
.
getEnterpriseId
(),
contentMaterialQO
.
getSearch
());
if
(
CollectionUtils
.
isEmpty
(
goodsIds
))
{
log
.
info
(
"搜索商品不存在 {}"
,
contentMaterialQO
.
getSearch
());
return
RestResponse
.
successResult
(
new
Page
<>());
}
contentMaterialPageFront
QDTO
.
setGoodsIdList
(
goodsIds
);
page
QDTO
.
setGoodsIdList
(
goodsIds
);
}
}
BasePageInfo
pageInfo
=
new
BasePageInfo
();
pageInfo
.
setPageNum
(
contentMaterialQO
.
getPageNum
());
pageInfo
.
setPageSize
(
contentMaterialQO
.
getPageSize
());
ServiceResponse
<
Page
<
ContentMaterial
FrontDTO
>>
serviceResponse
=
contentMaterialApiService
.
pageMaterialFront
(
contentMaterialPageFront
QDTO
,
pageInfo
);
ServiceResponse
<
Page
<
ContentMaterial
DTO
>>
serviceResponse
=
contentMaterialApiService
.
pageMaterial
(
page
QDTO
,
pageInfo
);
if
(!
serviceResponse
.
isSuccess
()
||
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
().
getResult
()))
{
return
RestResponse
.
successResult
(
new
Page
<>());
}
Page
<
ContentMaterial
Front
DTO
>
responseResult
=
serviceResponse
.
getResult
();
Page
<
ContentMaterialDTO
>
responseResult
=
serviceResponse
.
getResult
();
Page
<
ContentMaterialInfoVO
>
result
=
new
Page
<>();
result
.
setTotalCount
(
responseResult
.
getTotalCount
());
List
<
String
>
goodsIds
=
responseResult
.
getResult
()
...
...
@@ -168,7 +167,7 @@ public class ContentMaterialController {
* @param item
* @return
*/
private
ContentMaterialInfoVO
getContentMaterialInfoVO
(
List
<
Integer
>
goodsShowStatus
,
ContentMaterial
Front
DTO
item
,
Map
<
String
,
BigDecimal
>
commissionMap
)
{
private
ContentMaterialInfoVO
getContentMaterialInfoVO
(
List
<
Integer
>
goodsShowStatus
,
ContentMaterialDTO
item
,
Map
<
String
,
BigDecimal
>
commissionMap
)
{
ContentMaterialInfoVO
contentMaterialInfoVO
=
new
ContentMaterialInfoVO
();
BeanUtils
.
copyProperties
(
item
,
contentMaterialInfoVO
);
if
(
CollectionUtils
.
isNotEmpty
(
item
.
getContentGoodsList
()))
{
...
...
@@ -247,4 +246,19 @@ public class ContentMaterialController {
return
RestResponse
.
successResult
();
}
/**
* 素材数量查询
* @param search search
* @return
*/
@ResponseBody
@RequestMapping
(
"/count-material"
)
public
RestResponse
<
Long
>
countMaterial
(
@RequestBody
ContentMaterialListQO
search
)
{
ContentMaterialPageQDTO
pageQDTO
=
EntityUtil
.
changeEntityByOrika
(
ContentMaterialPageQDTO
.
class
,
search
);
ServiceResponse
<
Long
>
response
=
contentMaterialApiService
.
countMaterialBySearch
(
pageQDTO
);
if
(!
response
.
isSuccess
())
{
return
RestResponse
.
failure
(
response
.
getCode
(),
response
.
getMessage
());
}
return
RestResponse
.
successResult
(
response
.
getResult
());
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/InteractRecordController.java
View file @
4371676f
...
...
@@ -9,6 +9,7 @@ import com.gic.content.api.dto.material.ContentMaterialBaseDTO;
import
com.gic.haoban.manage.api.dto.qdto.content.InteractRecordQDTO
;
import
com.gic.haoban.manage.api.enums.content.InteractRecordExtendInfoDTO
;
import
com.gic.haoban.manage.api.enums.content.InteractRecordInfoDTO
;
import
com.gic.haoban.manage.api.enums.content.ShareBizType
;
import
com.gic.haoban.manage.api.service.content.InteractRecordApiService
;
import
com.gic.haoban.manage.web.controller.content.adaptor.ContentMaterialAdaptor
;
import
com.gic.haoban.manage.web.qo.content.InteractRecordQO
;
...
...
@@ -59,6 +60,7 @@ public class InteractRecordController {
List
<
Long
>
materialIds
=
serviceResponse
.
getResult
()
.
getResult
()
.
stream
()
.
filter
(
item
->
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
.
map
(
item
->
Long
.
parseLong
(
item
.
getBizId
()))
.
distinct
()
.
collect
(
Collectors
.
toList
());
...
...
@@ -74,17 +76,19 @@ public class InteractRecordController {
InteractRecordExtendInfoVO
extendInfoVO
=
EntityUtil
.
changeEntityByJSON
(
InteractRecordExtendInfoVO
.
class
,
item
.
getExtendInfo
());
interactRecordVO
.
setExtendInfo
(
extendInfoVO
);
}
ContentMaterialBaseDTO
materialBaseInfo
=
materialBaseMap
.
get
(
Long
.
parseLong
(
item
.
getBizId
()));
if
(
materialBaseInfo
!=
null
)
{
ContentMaterialInfoVO
temp
=
new
ContentMaterialInfoVO
();
BeanUtils
.
copyProperties
(
materialBaseInfo
,
temp
);
if
(
StringUtils
.
isNotBlank
(
materialBaseInfo
.
getMaterialThumbnailImageUrls
()))
{
temp
.
setMaterialThumbnailImageUrls
(
StrSpliter
.
split
(
materialBaseInfo
.
getMaterialThumbnailImageUrls
(),
","
,
true
,
true
));
if
(
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
{
ContentMaterialBaseDTO
materialBaseInfo
=
materialBaseMap
.
get
(
Long
.
parseLong
(
item
.
getBizId
()));
if
(
materialBaseInfo
!=
null
)
{
ContentMaterialInfoVO
temp
=
new
ContentMaterialInfoVO
();
BeanUtils
.
copyProperties
(
materialBaseInfo
,
temp
);
if
(
StringUtils
.
isNotBlank
(
materialBaseInfo
.
getMaterialThumbnailImageUrls
()))
{
temp
.
setMaterialThumbnailImageUrls
(
StrSpliter
.
split
(
materialBaseInfo
.
getMaterialThumbnailImageUrls
(),
","
,
true
,
true
));
}
if
(
StringUtils
.
isNotBlank
(
materialBaseInfo
.
getMaterialImageUrls
()))
{
temp
.
setMaterialImageUrls
(
StrSpliter
.
split
(
materialBaseInfo
.
getMaterialImageUrls
(),
","
,
true
,
true
));
}
interactRecordVO
.
setContentMaterialInfoVO
(
temp
);
}
if
(
StringUtils
.
isNotBlank
(
materialBaseInfo
.
getMaterialImageUrls
()))
{
temp
.
setMaterialImageUrls
(
StrSpliter
.
split
(
materialBaseInfo
.
getMaterialImageUrls
(),
","
,
true
,
true
));
}
interactRecordVO
.
setContentMaterialInfoVO
(
temp
);
}
return
interactRecordVO
;
})
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/MaterialDataStaticsController.java
View file @
4371676f
...
...
@@ -8,8 +8,11 @@ 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.content.api.dto.material.ContentMaterialDTO
;
import
com.gic.content.api.dto.material.ContentMaterialFrontDTO
;
import
com.gic.content.api.enums.MaterialSearchSceneEnum
;
import
com.gic.content.api.qdto.material.ContentMaterialPageFrontQDTO
;
import
com.gic.content.api.qdto.material.ContentMaterialPageQDTO
;
import
com.gic.content.api.service.ContentMaterialApiService
;
import
com.gic.enterprise.api.dto.StoreDTO
;
import
com.gic.enterprise.api.service.StoreService
;
...
...
@@ -71,7 +74,8 @@ public class MaterialDataStaticsController {
@RequestMapping
(
path
=
"/content/material/index/data"
)
public
RestResponse
<
MaterialIndexDataVO
>
queryMaterialIndexData
(
@RequestBody
ContentMaterialBaseQO
contentMaterialBaseQO
)
{
ContentMaterialPageFrontQDTO
search
=
new
ContentMaterialPageFrontQDTO
();
ContentMaterialPageQDTO
search
=
new
ContentMaterialPageQDTO
();
search
.
setQueryScene
(
MaterialSearchSceneEnum
.
HAOBAN_MARKETING
.
value
);
search
.
setEnterpriseId
(
contentMaterialBaseQO
.
getEnterpriseId
());
search
.
setPublishBeginStartTime
(
DateUtil
.
beginOfDay
(
new
Date
()));
search
.
setPublishBeginEndTime
(
DateUtil
.
endOfDay
(
new
Date
()));
...
...
@@ -88,7 +92,7 @@ public class MaterialDataStaticsController {
pageInfo
.
setPageNum
(
1
);
pageInfo
.
setPageSize
(
1
);
int
totalMaterialNum
=
0
;
ServiceResponse
<
Page
<
ContentMaterial
FrontDTO
>>
serviceResponse
=
this
.
contentMaterialApiService
.
pageMaterialFront
(
search
,
pageInfo
);
ServiceResponse
<
Page
<
ContentMaterial
DTO
>>
serviceResponse
=
this
.
contentMaterialApiService
.
pageMaterial
(
search
,
pageInfo
);
if
(
serviceResponse
.
isSuccess
()
&&
serviceResponse
.
getResult
()
!=
null
)
{
totalMaterialNum
=
serviceResponse
.
getResult
().
getTotalCount
();
}
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/PotentialCustomerController.java
View file @
4371676f
...
...
@@ -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.web.controller.content.adaptor.ContentMaterialAdaptor
;
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.PotentialCustomerQO
;
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.store.goods.dto.goods.GoodsInfoSimpleDTO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -45,6 +49,8 @@ public class PotentialCustomerController {
ContentMaterialAdaptor
contentMaterialAdaptor
;
@Autowired
MaterialDataAdaptor
materialDataAdaptor
;
@Autowired
private
GoodsInfoAdaptor
goodsInfoAdaptor
;
/**
...
...
@@ -69,6 +75,18 @@ public class PotentialCustomerController {
return
RestResponse
.
successResult
();
}
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
.
stream
()
.
filter
(
item
->
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
...
...
@@ -76,6 +94,7 @@ public class PotentialCustomerController {
.
collect
(
Collectors
.
toList
());
Map
<
Long
,
ContentMaterialBaseDTO
>
materialInfoMap
=
contentMaterialAdaptor
.
queryMaterialInfoMap
(
potentialCustomerQO
.
getEnterpriseId
(),
materialIds
);
// 会员最近30天访问
List
<
String
>
memberIds
=
customerDTOS
.
stream
()
.
filter
(
item
->
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
...
...
@@ -89,33 +108,63 @@ public class PotentialCustomerController {
PotentialCustomerVO
temp
=
new
PotentialCustomerVO
();
BeanUtils
.
copyProperties
(
item
,
temp
);
temp
.
setPotentialCustomerId
(
item
.
getPotentialCustomerId
());
ContentMaterialBaseDTO
contentMaterialBaseDTO
=
materialInfoMap
.
get
(
Long
.
parseLong
(
item
.
getBizId
()));
if
(
contentMaterialBaseDTO
!=
null
)
{
ContentMaterialInfoVO
contentMaterialInfoVO
=
new
ContentMaterialInfoVO
();
BeanUtils
.
copyProperties
(
contentMaterialBaseDTO
,
contentMaterialInfoVO
);
if
(
StringUtils
.
isNotBlank
(
contentMaterialBaseDTO
.
getMaterialImageUrls
()))
{
String
[]
split
=
StringUtils
.
split
(
contentMaterialBaseDTO
.
getMaterialImageUrls
(),
","
);
List
<
String
>
imageUrls
=
Arrays
.
stream
(
split
).
collect
(
Collectors
.
toList
());
contentMaterialInfoVO
.
setMaterialImageUrls
(
imageUrls
);
if
(
ShareBizType
.
MATERIAL
.
getCode
().
equals
(
item
.
getBizType
()))
{
ContentMaterialBaseDTO
contentMaterialBaseDTO
=
materialInfoMap
.
get
(
Long
.
parseLong
(
item
.
getBizId
()));
if
(
contentMaterialBaseDTO
!=
null
)
{
ContentMaterialInfoVO
contentMaterialInfoVO
=
new
ContentMaterialInfoVO
();
BeanUtils
.
copyProperties
(
contentMaterialBaseDTO
,
contentMaterialInfoVO
);
if
(
StringUtils
.
isNotBlank
(
contentMaterialBaseDTO
.
getMaterialImageUrls
()))
{
String
[]
split
=
StringUtils
.
split
(
contentMaterialBaseDTO
.
getMaterialImageUrls
(),
","
);
List
<
String
>
imageUrls
=
Arrays
.
stream
(
split
).
collect
(
Collectors
.
toList
());
contentMaterialInfoVO
.
setMaterialImageUrls
(
imageUrls
);
}
if
(
StringUtils
.
isNotBlank
(
contentMaterialBaseDTO
.
getMaterialThumbnailImageUrls
()))
{
String
[]
split
=
StringUtils
.
split
(
contentMaterialBaseDTO
.
getMaterialThumbnailImageUrls
(),
","
);
List
<
String
>
imageUrls
=
Arrays
.
stream
(
split
).
collect
(
Collectors
.
toList
());
contentMaterialInfoVO
.
setMaterialThumbnailImageUrls
(
imageUrls
);
}
temp
.
setContentMaterialInfoVO
(
contentMaterialInfoVO
);
}
if
(
StringUtils
.
isNotBlank
(
contentMaterialBaseDTO
.
getMaterialThumbnailImageUrls
()))
{
String
[]
split
=
StringUtils
.
split
(
contentMaterialBaseDTO
.
getMaterialThumbnailImageUrls
(),
","
);
List
<
String
>
imageUrls
=
Arrays
.
stream
(
split
).
collect
(
Collectors
.
toList
());
contentMaterialInfoVO
.
setMaterialThumbnailImageUrls
(
imageUrls
);
}
temp
.
setContentMaterialInfoVO
(
contentMaterialInfoVO
);
Integer
visitNum
=
memberVisitMap
.
get
(
item
.
getMemberId
());
temp
.
setVisitNum
(
Optional
.
ofNullable
(
visitNum
).
orElse
(
0
));
}
Integer
visitNum
=
memberVisitMap
.
get
(
item
.
getMemberId
());
temp
.
setVisitNum
(
Optional
.
ofNullable
(
visitNum
).
orElse
(
0
));
return
temp
;
})
.
collect
(
Collectors
.
toList
());
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
);
return
customerVOS
;
}
private
void
buildGoodsInfo
(
String
enterpriseId
,
List
<
PotentialCustomerVO
>
customerVos
)
{
if
(
CollectionUtils
.
isEmpty
(
customerVos
))
{
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/content/adaptor/ClerkStoreAdaptor.java
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
content
.
adaptor
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.dto.StaffDTO
;
import
com.gic.haoban.manage.api.dto.role.StoreRoleDTO
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.api.service.StaffClerkRelationApiService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -23,6 +26,8 @@ public class ClerkStoreAdaptor {
@Autowired
private
StaffApiService
staffApiService
;
@Autowired
private
StaffClerkRelationApiService
staffClerkRelationApiService
;
/**
* 查询区经角色下管辖的门店权限
...
...
@@ -59,4 +64,13 @@ public class ClerkStoreAdaptor {
return
storeRole
.
getStoreCount
();
}
public
StaffDTO
queryStaff
(
String
clerkId
)
{
StaffClerkRelationDTO
clerkRelationDTO
=
staffClerkRelationApiService
.
getByClerkId
(
clerkId
);
if
(
clerkRelationDTO
!=
null
)
{
StaffDTO
staffDTO
=
staffApiService
.
selectById
(
clerkRelationDTO
.
getStaffId
());
return
staffDTO
;
}
return
null
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/adaptor/ContentMaterialAdaptor.java
View file @
4371676f
...
...
@@ -35,6 +35,9 @@ public class ContentMaterialAdaptor {
* @return
*/
public
Map
<
Long
,
ContentMaterialBaseDTO
>
queryMaterialInfoMap
(
String
enterpriseId
,
List
<
Long
>
materialIds
)
{
if
(
CollectionUtils
.
isEmpty
(
materialIds
))
{
return
Collections
.
emptyMap
();
}
ServiceResponse
<
List
<
ContentMaterialBaseDTO
>>
serviceResponse
=
contentMaterialApiService
.
listMaterialIdByMaterialIdList
(
enterpriseId
,
materialIds
,
null
);
if
(!
serviceResponse
.
isSuccess
())
{
return
Collections
.
emptyMap
();
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/adaptor/MaterialDataAdaptor.java
View file @
4371676f
...
...
@@ -5,9 +5,9 @@ import cn.hutool.core.date.DateTime;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.commons.util.DataApiUtils
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.enterprise.api.dto.EnterpriseDTO
;
import
com.gic.enterprise.api.service.EnterpriseService
;
import
com.gic.haoban.manage.api.enums.content.MaterialReportType
;
...
...
@@ -15,7 +15,7 @@ import com.gic.haoban.manage.web.qo.content.statistics.MaterialAnalyzeDataQO;
import
com.gic.haoban.manage.web.qo.content.statistics.MaterialReportQO
;
import
com.gic.haoban.manage.web.qo.content.statistics.MaterialStoreAnalyzeDataQO
;
import
com.gic.haoban.manage.web.qo.content.statistics.MaterialStoreReportQO
;
import
com.gic.haoban.manage.web.
utils.target.DataTargetHttpUtils
;
import
com.gic.haoban.manage.web.
vo.content.creative.ContentMaterialConvsVO
;
import
com.gic.haoban.manage.web.vo.content.statistics.MaterialAreaUsedDataVO
;
import
com.gic.haoban.manage.web.vo.content.statistics.MaterialClerkUsedDataVO
;
import
com.gic.haoban.manage.web.vo.content.statistics.MaterialDataOverviewVO
;
...
...
@@ -95,6 +95,17 @@ public class MaterialDataAdaptor {
*/
private
static
final
String
MEMBER_RECENTLY_30_DAY_VISIT
=
"data_matl_haoban_user_30day_stats_real"
;
/**
* 创作中心素材审核转化数据
*/
private
static
final
String
MATERIAL_CREATIVE_CONVS_DATA
=
"data_cms_matl_examine_convs_list"
;
/**
* 创作中心转化数据汇总
*/
private
static
final
String
MATERIAL_CREATIVE_CONVS_TOTAL_DATA
=
"data_cms_matl_examine_convs_total"
;
@Autowired
private
EnterpriseService
enterpriseService
;
...
...
@@ -411,20 +422,103 @@ public class MaterialDataAdaptor {
*/
public
Map
<
String
,
Integer
>
queryMemberVisitMap
(
String
enterpriseId
,
String
storeId
,
String
clerkId
,
List
<
String
>
memberIds
)
{
try
{
Map
<
String
,
Object
>
inlineParams
=
new
HashMap
<>();
if
(
StringUtils
.
isNotBlank
(
clerkId
))
{
inlineParams
.
put
(
"clerkId"
,
clerkId
);
}
inlineParams
.
put
(
"enterpriseId"
,
enterpriseId
);
inlineParams
.
put
(
"customerId"
,
StringUtils
.
join
(
memberIds
,
","
));
Map
<
String
,
Object
>
result
=
DataApiUtils
.
http
(
JSON
.
toJSONString
(
inlineParams
),
MEMBER_RECENTLY_30_DAY_VISIT
);
List
<
MemberVisitMaterialBO
>
memberVisitMaterialBos
=
DataApiUtils
.
parseDataList
(
result
,
MemberVisitMaterialBO
.
class
);
if
(
CollectionUtils
.
isEmpty
(
memberVisitMaterialBos
))
{
return
Collections
.
emptyMap
();
}
return
memberVisitMaterialBos
.
stream
()
.
collect
(
Collectors
.
toMap
(
MemberVisitMaterialBO:
:
getCustomerId
,
item
->
Optional
.
ofNullable
(
item
.
getMatlNum30Day
())
.
map
(
Integer:
:
new
).
orElse
(
0
),
(
v1
,
v2
)
->
v1
));
}
catch
(
Exception
ex
){
log
.
info
(
"查询会员素材异常"
,
ex
);
}
return
Collections
.
emptyMap
();
}
/**
* 创作中心获取素材转化数
* @param enterpriseId 企业id
* @param materialIdList 素材id
* @param pageInfo 分页
* @return
*/
public
Page
<
ContentMaterialConvsVO
>
queryCreativeConvs
(
String
enterpriseId
,
List
<
Long
>
materialIdList
,
BasePageInfo
pageInfo
)
{
Map
<
String
,
Object
>
inlineParams
=
new
HashMap
<>();
if
(
StringUtils
.
isNotBlank
(
clerkId
))
{
inlineParams
.
put
(
"clerkId"
,
clerkId
);
if
(
CollectionUtils
.
isEmpty
(
materialIdList
))
{
return
new
Page
();
}
inlineParams
.
put
(
"enterpriseId"
,
enterpriseId
);
inlineParams
.
put
(
"contentMaterialId"
,
StringUtils
.
join
(
materialIdList
,
","
));
inlineParams
.
put
(
"pageNum"
,
pageInfo
.
getPageNum
());
inlineParams
.
put
(
"pageSize"
,
pageInfo
.
getPageSize
());
Map
<
String
,
Object
>
result
=
null
;
try
{
result
=
DataApiUtils
.
http
(
JSON
.
toJSONString
(
inlineParams
),
MATERIAL_CREATIVE_CONVS_DATA
);
}
catch
(
Exception
e
)
{
log
.
error
(
"创作中心获取素材转化数异常"
,
e
);
return
new
Page
();
}
Page
<
ContentMaterialConvsVO
>
page
=
DataApiUtils
.
getPageData
(
result
,
ContentMaterialConvsVO
.
class
);
return
page
;
}
/**
* 创作中心获取素材转化数组装成map
* @param enterpriseId 企业id
* @param materialIdList 素材id
* @param pageInfo 分页
* @return
*/
public
Map
<
Long
,
ContentMaterialConvsVO
>
queryCreativeConvsMap
(
String
enterpriseId
,
List
<
Long
>
materialIdList
,
BasePageInfo
pageInfo
)
{
if
(
pageInfo
==
null
)
{
pageInfo
=
new
BasePageInfo
();
pageInfo
.
setPageNum
(
1
);
pageInfo
.
setPageSize
(
1
);
}
Page
<
ContentMaterialConvsVO
>
page
=
queryCreativeConvs
(
enterpriseId
,
materialIdList
,
pageInfo
);
if
(
page
!=
null
&&
CollectionUtils
.
isNotEmpty
(
page
.
getResult
()))
{
List
<
ContentMaterialConvsVO
>
result
=
page
.
getResult
();
Map
<
Long
,
ContentMaterialConvsVO
>
map
=
result
.
stream
().
collect
(
Collectors
.
toMap
(
ContentMaterialConvsVO:
:
getContentMaterialId
,
t
->
t
));
return
map
;
}
return
new
HashMap
<>();
}
/**
* 创作中心获取素材转化数总和(30天)
* @param enterpriseId 企业id
* @param materialIdList 素材id列表
* @return
*/
public
ContentMaterialConvsVO
queryCreativeConvsOverview
(
String
enterpriseId
,
List
<
Long
>
materialIdList
)
{
Map
<
String
,
Object
>
inlineParams
=
new
HashMap
<>();
if
(
CollectionUtils
.
isEmpty
(
materialIdList
))
{
return
new
ContentMaterialConvsVO
();
}
inlineParams
.
put
(
"enterpriseId"
,
enterpriseId
);
inlineParams
.
put
(
"customerId"
,
StringUtils
.
join
(
memberIds
,
","
));
Map
<
String
,
Object
>
result
=
DataApiUtils
.
http
(
JSON
.
toJSONString
(
inlineParams
),
MEMBER_RECENTLY_30_DAY_VISIT
);
List
<
MemberVisitMaterialBO
>
memberVisitMaterialBos
=
DataApiUtils
.
parseDataList
(
result
,
MemberVisitMaterialBO
.
class
);
if
(
CollectionUtils
.
isEmpty
(
memberVisitMaterialBos
))
{
return
Collections
.
emptyMap
();
inlineParams
.
put
(
"contentMaterialId"
,
StringUtils
.
join
(
materialIdList
,
","
));
Map
<
String
,
Object
>
result
=
null
;
try
{
result
=
DataApiUtils
.
http
(
JSON
.
toJSONString
(
inlineParams
),
MATERIAL_CREATIVE_CONVS_TOTAL_DATA
);
}
catch
(
Exception
e
)
{
log
.
error
(
"创作中心获取素材转化数总和异常"
,
e
);
return
new
ContentMaterialConvsVO
();
}
List
<
ContentMaterialConvsVO
>
list
=
DataApiUtils
.
parseDataList
(
result
,
ContentMaterialConvsVO
.
class
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
return
list
.
get
(
0
);
}
return
memberVisitMaterialBos
.
stream
()
.
collect
(
Collectors
.
toMap
(
MemberVisitMaterialBO:
:
getCustomerId
,
item
->
Optional
.
ofNullable
(
item
.
getMatlNum30Day
())
.
map
(
Integer:
:
new
).
orElse
(
0
),
(
v1
,
v2
)
->
v1
));
return
new
ContentMaterialConvsVO
();
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/goods/GoodsInfoAdaptor.java
View file @
4371676f
...
...
@@ -5,6 +5,7 @@ import com.gic.api.base.commons.Page;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.app.aggregation.api.dto.GoodsSettingDTO
;
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.qdto.GoodsListQDTO
;
import
com.gic.store.goods.service.GoodsCenterApiService
;
...
...
@@ -125,4 +126,17 @@ public class GoodsInfoAdaptor {
.
stream
()
.
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/qo/content/ContentAuditMaterialDataQO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
content
;
public
class
ContentAuditMaterialDataQO
{
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 门店id
*/
private
String
storeId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 是否仅查创建数
*/
private
Integer
createFlag
;
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getStoreId
()
{
return
storeId
;
}
public
void
setStoreId
(
String
storeId
)
{
this
.
storeId
=
storeId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
Integer
getCreateFlag
()
{
return
createFlag
;
}
public
void
setCreateFlag
(
Integer
createFlag
)
{
this
.
createFlag
=
createFlag
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/content/ContentAuditMaterialQO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
content
;
import
com.gic.commons.web.qo.PageQo
;
public
class
ContentAuditMaterialQO
extends
PageQo
{
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 门店id
*/
private
String
storeId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 是否有转化 1是0否
*/
private
Integer
convsFlag
;
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getStoreId
()
{
return
storeId
;
}
public
void
setStoreId
(
String
storeId
)
{
this
.
storeId
=
storeId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
Integer
getConvsFlag
()
{
return
convsFlag
;
}
public
void
setConvsFlag
(
Integer
convsFlag
)
{
this
.
convsFlag
=
convsFlag
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/content/ContentMaterialListQO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
content
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.gic.commons.web.qo.PageQo
;
import
com.gic.content.api.enums.MaterialSearchSceneEnum
;
import
java.util.List
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
public
class
ContentMaterialListQO
extends
PageQo
{
/**
* 查询场景 1:gic后台营销素材 2:好办营销素材 3:gic后台社区素材 4:gic后台审核素材 5:好办审核素材 6:小程序社区素材
* @see MaterialSearchSceneEnum
*/
private
Integer
queryScene
;
/**
* 栏目id
*/
private
Long
contentColumnId
;
/**
* 搜索名称
*/
private
String
search
;
/**
* 商品搜索
*/
private
String
goodsSearch
;
/**
* 素材搜索
*/
private
String
materialSearch
;
/**
* 素材类型1图文2纯文字3纯图片4视频
*/
private
Integer
materialType
;
/**
* 企业ID
*/
private
String
enterpriseId
;
/**
* 会员id
*/
private
String
memberId
;
/**
* 排序字段
* createTime:创建时间
* publishBeginTime:发布时间
* topTime:置顶时间
* @see com.gic.content.api.enums.MaterialOrderFieldEnum
*/
private
String
orderField
;
/**
* 排序 desc降序 asc升序
*/
private
String
order
;
/**
* 商品id
*/
private
List
<
String
>
goodsIdList
;
public
Integer
getQueryScene
()
{
return
queryScene
;
}
public
void
setQueryScene
(
Integer
queryScene
)
{
this
.
queryScene
=
queryScene
;
}
public
Long
getContentColumnId
()
{
return
contentColumnId
;
}
public
void
setContentColumnId
(
Long
contentColumnId
)
{
this
.
contentColumnId
=
contentColumnId
;
}
public
String
getSearch
()
{
return
search
;
}
public
void
setSearch
(
String
search
)
{
this
.
search
=
search
;
}
public
String
getGoodsSearch
()
{
return
goodsSearch
;
}
public
void
setGoodsSearch
(
String
goodsSearch
)
{
this
.
goodsSearch
=
goodsSearch
;
}
public
String
getMaterialSearch
()
{
return
materialSearch
;
}
public
void
setMaterialSearch
(
String
materialSearch
)
{
this
.
materialSearch
=
materialSearch
;
}
public
Integer
getMaterialType
()
{
return
materialType
;
}
public
void
setMaterialType
(
Integer
materialType
)
{
this
.
materialType
=
materialType
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getOrderField
()
{
return
orderField
;
}
public
void
setOrderField
(
String
orderField
)
{
this
.
orderField
=
orderField
;
}
public
String
getOrder
()
{
return
order
;
}
public
void
setOrder
(
String
order
)
{
this
.
order
=
order
;
}
public
List
<
String
>
getGoodsIdList
()
{
return
goodsIdList
;
}
public
void
setGoodsIdList
(
List
<
String
>
goodsIdList
)
{
this
.
goodsIdList
=
goodsIdList
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/content/ContentMaterialSaveQO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
content
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
org.hibernate.validator.constraints.Length
;
import
org.hibernate.validator.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
import
java.util.List
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
public
class
ContentMaterialSaveQO
{
/**
* 素材id
*/
private
Long
contentMaterialId
;
/**
* 门店id
*/
private
String
storeId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 素材名称
*/
private
String
materialTitle
;
/**
* 素材类型1图文4视频
*/
@NotNull
(
message
=
"素材类型不能为空"
)
private
Integer
materialType
;
/**
* 上架状态0未上架1已上架(默认1)
*/
private
Integer
shelfStatus
=
1
;
/**
* 素材内容
*/
private
String
materialContent
;
/**
* 素材图片url列表
*/
private
String
materialImageUrls
;
/**
* 素材压缩后的图片url列表
*/
private
String
materialThumbnailImageUrls
;
/**
* 素材图片信息列表{width:px,height:px,size:Bytes}
*/
private
String
materialImageInfos
;
/**
* 素材视频url
*/
private
String
materialVideoUrl
;
/**
* 视频信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoInfo
;
/**
* 素材视频封面url
*/
private
String
materialVideoImageUrl
;
/**
* 视频封面信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoImageInfo
;
/**
* 素材视频第一帧url
*/
private
String
materialVideoFirstImageUrl
;
/**
* 视频第一帧信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoFirstImageInfo
;
/**
* 视频时长
*/
private
Integer
duration
;
/**
* 企业ID
*/
private
String
enterpriseId
;
/**
* 企微id
*/
private
String
wxEnterpriseId
;
/**
* 关联商品id列表
*/
private
List
<
String
>
contentGoodsIdList
;
public
Long
getContentMaterialId
()
{
return
contentMaterialId
;
}
public
void
setContentMaterialId
(
Long
contentMaterialId
)
{
this
.
contentMaterialId
=
contentMaterialId
;
}
public
String
getStoreId
()
{
return
storeId
;
}
public
void
setStoreId
(
String
storeId
)
{
this
.
storeId
=
storeId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getMaterialTitle
()
{
return
materialTitle
;
}
public
void
setMaterialTitle
(
String
materialTitle
)
{
this
.
materialTitle
=
materialTitle
;
}
public
Integer
getMaterialType
()
{
return
materialType
;
}
public
void
setMaterialType
(
Integer
materialType
)
{
this
.
materialType
=
materialType
;
}
public
Integer
getShelfStatus
()
{
return
shelfStatus
;
}
public
void
setShelfStatus
(
Integer
shelfStatus
)
{
this
.
shelfStatus
=
shelfStatus
;
}
public
String
getMaterialContent
()
{
return
materialContent
;
}
public
void
setMaterialContent
(
String
materialContent
)
{
this
.
materialContent
=
materialContent
;
}
public
String
getMaterialImageUrls
()
{
return
materialImageUrls
;
}
public
void
setMaterialImageUrls
(
String
materialImageUrls
)
{
this
.
materialImageUrls
=
materialImageUrls
;
}
public
String
getMaterialThumbnailImageUrls
()
{
return
materialThumbnailImageUrls
;
}
public
void
setMaterialThumbnailImageUrls
(
String
materialThumbnailImageUrls
)
{
this
.
materialThumbnailImageUrls
=
materialThumbnailImageUrls
;
}
public
String
getMaterialImageInfos
()
{
return
materialImageInfos
;
}
public
void
setMaterialImageInfos
(
String
materialImageInfos
)
{
this
.
materialImageInfos
=
materialImageInfos
;
}
public
String
getMaterialVideoUrl
()
{
return
materialVideoUrl
;
}
public
void
setMaterialVideoUrl
(
String
materialVideoUrl
)
{
this
.
materialVideoUrl
=
materialVideoUrl
;
}
public
String
getMaterialVideoInfo
()
{
return
materialVideoInfo
;
}
public
void
setMaterialVideoInfo
(
String
materialVideoInfo
)
{
this
.
materialVideoInfo
=
materialVideoInfo
;
}
public
String
getMaterialVideoImageUrl
()
{
return
materialVideoImageUrl
;
}
public
void
setMaterialVideoImageUrl
(
String
materialVideoImageUrl
)
{
this
.
materialVideoImageUrl
=
materialVideoImageUrl
;
}
public
String
getMaterialVideoImageInfo
()
{
return
materialVideoImageInfo
;
}
public
void
setMaterialVideoImageInfo
(
String
materialVideoImageInfo
)
{
this
.
materialVideoImageInfo
=
materialVideoImageInfo
;
}
public
String
getMaterialVideoFirstImageUrl
()
{
return
materialVideoFirstImageUrl
;
}
public
void
setMaterialVideoFirstImageUrl
(
String
materialVideoFirstImageUrl
)
{
this
.
materialVideoFirstImageUrl
=
materialVideoFirstImageUrl
;
}
public
String
getMaterialVideoFirstImageInfo
()
{
return
materialVideoFirstImageInfo
;
}
public
void
setMaterialVideoFirstImageInfo
(
String
materialVideoFirstImageInfo
)
{
this
.
materialVideoFirstImageInfo
=
materialVideoFirstImageInfo
;
}
public
Integer
getDuration
()
{
return
duration
;
}
public
void
setDuration
(
Integer
duration
)
{
this
.
duration
=
duration
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
public
List
<
String
>
getContentGoodsIdList
()
{
return
contentGoodsIdList
;
}
public
void
setContentGoodsIdList
(
List
<
String
>
contentGoodsIdList
)
{
this
.
contentGoodsIdList
=
contentGoodsIdList
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/RightVO.java
View file @
4371676f
...
...
@@ -12,6 +12,11 @@ public class RightVO implements Serializable{
// 0未购买 1正常 2已过期
private
int
status
;
/**
* 版本 1基础版2高级版
*/
private
Integer
moduleVersion
;
public
int
getStatus
()
{
return
status
;
}
...
...
@@ -19,4 +24,12 @@ public class RightVO implements Serializable{
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
Integer
getModuleVersion
()
{
return
moduleVersion
;
}
public
void
setModuleVersion
(
Integer
moduleVersion
)
{
this
.
moduleVersion
=
moduleVersion
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/StoreClerkVO.java
View file @
4371676f
...
...
@@ -18,6 +18,8 @@ public class StoreClerkVO implements Serializable {
private
String
clerkImg
;
private
String
clerkName
;
private
Integer
memberCount
;
public
String
getClerkName
()
{
return
clerkName
;
}
...
...
@@ -60,7 +62,12 @@ public class StoreClerkVO implements Serializable {
public
void
setBindFlag
(
int
bindFlag
)
{
this
.
bindFlag
=
bindFlag
;
}
public
Integer
getMemberCount
()
{
return
memberCount
;
}
public
void
setMemberCount
(
Integer
memberCount
)
{
this
.
memberCount
=
memberCount
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/ContentMaterialInfoVO.java
View file @
4371676f
...
...
@@ -53,21 +53,37 @@ public class ContentMaterialInfoVO implements Serializable {
private
List
<
String
>
materialThumbnailImageUrls
;
/**
* 素材视频链接
* 素材图片信息列表{width:px,height:px,size:Bytes}
*/
private
String
materialImageInfos
;
/**
* 素材视频url
*/
private
String
materialVideoUrl
;
/**
* 素材视频封面链接
* 视频信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoInfo
;
/**
* 素材视频封面url
*/
private
String
materialVideoImageUrl
;
/**
* 视频封面信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoImageInfo
;
/**
* 素材视频第一帧url
*/
private
String
materialVideoFirstImageUrl
;
/**
* 视频第一帧信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoFirstImageInfo
;
/**
* 分享次数
*/
private
Long
shareCount
;
...
...
@@ -241,4 +257,36 @@ public class ContentMaterialInfoVO implements Serializable {
public
void
setSourceType
(
Integer
sourceType
)
{
this
.
sourceType
=
sourceType
;
}
public
String
getMaterialImageInfos
()
{
return
materialImageInfos
;
}
public
void
setMaterialImageInfos
(
String
materialImageInfos
)
{
this
.
materialImageInfos
=
materialImageInfos
;
}
public
String
getMaterialVideoInfo
()
{
return
materialVideoInfo
;
}
public
void
setMaterialVideoInfo
(
String
materialVideoInfo
)
{
this
.
materialVideoInfo
=
materialVideoInfo
;
}
public
String
getMaterialVideoImageInfo
()
{
return
materialVideoImageInfo
;
}
public
void
setMaterialVideoImageInfo
(
String
materialVideoImageInfo
)
{
this
.
materialVideoImageInfo
=
materialVideoImageInfo
;
}
public
String
getMaterialVideoFirstImageInfo
()
{
return
materialVideoFirstImageInfo
;
}
public
void
setMaterialVideoFirstImageInfo
(
String
materialVideoFirstImageInfo
)
{
this
.
materialVideoFirstImageInfo
=
materialVideoFirstImageInfo
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/InteractRecordExtendInfoVO.java
View file @
4371676f
...
...
@@ -19,12 +19,12 @@ public class InteractRecordExtendInfoVO implements Serializable {
private
static
final
long
serialVersionUID
=
799914036029100258L
;
/**
*
素材关联的商品信息
商品信息
* 商品信息
*/
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
/**
*
素材关联的
订单信息
* 订单信息
*/
private
List
<
ExtendOrderInfo
>
extendOrderInfos
;
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/InteractRecordVO.java
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
content
;
import
com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author MUSI
...
...
@@ -49,12 +49,19 @@ public class InteractRecordVO implements Serializable {
/**
* 记录事件类型
* 1浏览素材;2 查看商品; 3 购买商品
* 1浏览素材;2 查看商品; 3 购买商品
; 4 加入购物车
* 通过此类型区分 弹窗提示
* @see MaterialInteractRecordEventType
*/
private
Integer
eventType
;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
/**
* 浏览的商品数量
*/
private
Integer
visitGoodsNum
;
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/creative/ContentAuditorVO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
content
.
creative
;
import
java.io.Serializable
;
import
java.util.Date
;
public
class
ContentAuditorVO
implements
Serializable
{
/**
* 审核人id
*/
private
String
auditorId
;
/**
* 审核人名称
*/
private
String
auditorName
;
/**
* 审核时间
*/
private
Date
auditorTime
;
/**
* 审核备注
*/
private
String
remark
;
public
String
getAuditorId
()
{
return
auditorId
;
}
public
void
setAuditorId
(
String
auditorId
)
{
this
.
auditorId
=
auditorId
;
}
public
String
getAuditorName
()
{
return
auditorName
;
}
public
void
setAuditorName
(
String
auditorName
)
{
this
.
auditorName
=
auditorName
;
}
public
Date
getAuditorTime
()
{
return
auditorTime
;
}
public
void
setAuditorTime
(
Date
auditorTime
)
{
this
.
auditorTime
=
auditorTime
;
}
public
String
getRemark
()
{
return
remark
;
}
public
void
setRemark
(
String
remark
)
{
this
.
remark
=
remark
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/creative/ContentGoodsVO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
content
.
creative
;
import
java.math.BigDecimal
;
/**
* 内容分类表(TabContentCategory)表实体类
*
* @author makejava
* @since 2022-10-27 17:20:20
*/
@SuppressWarnings
(
"serial"
)
public
class
ContentGoodsVO
{
/**
* 商品id
*/
private
String
goodsId
;
/**
* 商品Code
*/
private
String
goodsCode
;
/**
* 商品名称
*/
private
String
goodsName
;
/**
* 商品主图
*/
private
String
goodsImageUrl
;
/**
* spu库存
*/
private
Integer
spuStock
;
/**
* 商品状态
* @see com.gic.store.goods.enums.GoodsStatusEnum
*/
private
Integer
status
;
/**
* 是否已完善1是0否
*/
private
Integer
isComplete
;
/**
* 吊牌价 / 划线价
*/
private
BigDecimal
tagPrice
;
/**
* 最小sku价格/一口价
*/
private
BigDecimal
minPrice
;
public
String
getGoodsId
()
{
return
goodsId
;
}
public
void
setGoodsId
(
String
goodsId
)
{
this
.
goodsId
=
goodsId
;
}
public
String
getGoodsCode
()
{
return
goodsCode
;
}
public
void
setGoodsCode
(
String
goodsCode
)
{
this
.
goodsCode
=
goodsCode
;
}
public
String
getGoodsName
()
{
return
goodsName
;
}
public
void
setGoodsName
(
String
goodsName
)
{
this
.
goodsName
=
goodsName
;
}
public
String
getGoodsImageUrl
()
{
return
goodsImageUrl
;
}
public
void
setGoodsImageUrl
(
String
goodsImageUrl
)
{
this
.
goodsImageUrl
=
goodsImageUrl
;
}
public
Integer
getSpuStock
()
{
return
spuStock
;
}
public
void
setSpuStock
(
Integer
spuStock
)
{
this
.
spuStock
=
spuStock
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
}
public
Integer
getIsComplete
()
{
return
isComplete
;
}
public
void
setIsComplete
(
Integer
isComplete
)
{
this
.
isComplete
=
isComplete
;
}
public
BigDecimal
getTagPrice
()
{
return
tagPrice
;
}
public
void
setTagPrice
(
BigDecimal
tagPrice
)
{
this
.
tagPrice
=
tagPrice
;
}
public
BigDecimal
getMinPrice
()
{
return
minPrice
;
}
public
void
setMinPrice
(
BigDecimal
minPrice
)
{
this
.
minPrice
=
minPrice
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/creative/ContentMaterialConvsVO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
content
.
creative
;
import
java.io.Serializable
;
public
class
ContentMaterialConvsVO
implements
Serializable
{
/**
* 素材id
*/
private
Long
contentMaterialId
;
/**
* 转化人数
*/
private
Integer
convsNum
=
0
;
/**
* 转化金额
*/
private
Double
convsAmt
=
0.0
;
public
Long
getContentMaterialId
()
{
return
contentMaterialId
;
}
public
void
setContentMaterialId
(
Long
contentMaterialId
)
{
this
.
contentMaterialId
=
contentMaterialId
;
}
public
Integer
getConvsNum
()
{
return
convsNum
;
}
public
void
setConvsNum
(
Integer
convsNum
)
{
this
.
convsNum
=
convsNum
;
}
public
Double
getConvsAmt
()
{
return
convsAmt
;
}
public
void
setConvsAmt
(
Double
convsAmt
)
{
this
.
convsAmt
=
convsAmt
;
}
public
void
setConvs
(
ContentMaterialConvsVO
convs
)
{
if
(
convs
==
null
)
{
this
.
setConvsNum
(
0
);
this
.
setConvsAmt
(
0.0
);
return
;
}
this
.
setConvsNum
(
convs
.
getConvsNum
());
this
.
setConvsAmt
(
convs
.
getConvsAmt
());
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/creative/ContentMaterialDataVO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
content
.
creative
;
import
java.io.Serializable
;
import
java.util.Date
;
public
class
ContentMaterialDataVO
extends
ContentMaterialConvsVO
implements
Serializable
{
/**
* 创建数
*/
private
Long
createCount
;
/**
* 待审核数
*/
private
Long
auditCount
;
public
Long
getCreateCount
()
{
return
createCount
;
}
public
void
setCreateCount
(
Long
createCount
)
{
this
.
createCount
=
createCount
;
}
public
Long
getAuditCount
()
{
return
auditCount
;
}
public
void
setAuditCount
(
Long
auditCount
)
{
this
.
auditCount
=
auditCount
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/creative/ContentMaterialVO.java
0 → 100644
View file @
4371676f
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
content
.
creative
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
java.util.Date
;
import
java.util.List
;
public
class
ContentMaterialVO
extends
ContentMaterialConvsVO
{
/**
* 素材id
*/
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
private
Long
contentMaterialId
;
/**
* 素材用途0无(未审核)1营销2社区
*/
private
Integer
materialPurpose
;
/**
* 素材名称
*/
private
String
materialTitle
;
/**
* 素材类型1图文4视频
*/
private
Integer
materialType
;
/**
* 1企业/品牌方2导购
*/
private
Integer
materialSource
;
/**
* 上架状态0未上架1已上架
*/
private
Integer
shelfStatus
;
/**
* 素材内容
*/
private
String
materialContent
;
/**
* 素材图片url列表
*/
private
String
materialImageUrls
;
/**
* 素材压缩后的图片url列表
*/
private
String
materialThumbnailImageUrls
;
/**
* 素材图片信息列表{width:px,height:px,size:Bytes}
*/
private
String
materialImageInfos
;
/**
* 素材视频url
*/
private
String
materialVideoUrl
;
/**
* 视频信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoInfo
;
/**
* 素材视频封面url
*/
private
String
materialVideoImageUrl
;
/**
* 视频封面信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoImageInfo
;
/**
* 素材视频第一帧url
*/
private
String
materialVideoFirstImageUrl
;
/**
* 视频第一帧信息{width:px,height:px,size:Bytes}
*/
private
String
materialVideoFirstImageInfo
;
/**
* 视频时长
*/
private
Integer
duration
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 关联商品列表
*/
private
List
<
ContentGoodsVO
>
contentGoodsList
;
/**
* 审核状态0待审核1未通过2已通过
*/
private
Integer
auditStatus
;
/**
* 审核信息
*/
private
ContentAuditorVO
auditor
;
public
Long
getContentMaterialId
()
{
return
contentMaterialId
;
}
public
void
setContentMaterialId
(
Long
contentMaterialId
)
{
this
.
contentMaterialId
=
contentMaterialId
;
}
public
Integer
getMaterialPurpose
()
{
return
materialPurpose
;
}
public
void
setMaterialPurpose
(
Integer
materialPurpose
)
{
this
.
materialPurpose
=
materialPurpose
;
}
public
String
getMaterialTitle
()
{
return
materialTitle
;
}
public
void
setMaterialTitle
(
String
materialTitle
)
{
this
.
materialTitle
=
materialTitle
;
}
public
Integer
getMaterialType
()
{
return
materialType
;
}
public
void
setMaterialType
(
Integer
materialType
)
{
this
.
materialType
=
materialType
;
}
public
Integer
getMaterialSource
()
{
return
materialSource
;
}
public
void
setMaterialSource
(
Integer
materialSource
)
{
this
.
materialSource
=
materialSource
;
}
public
Integer
getShelfStatus
()
{
return
shelfStatus
;
}
public
void
setShelfStatus
(
Integer
shelfStatus
)
{
this
.
shelfStatus
=
shelfStatus
;
}
public
String
getMaterialContent
()
{
return
materialContent
;
}
public
void
setMaterialContent
(
String
materialContent
)
{
this
.
materialContent
=
materialContent
;
}
public
String
getMaterialImageUrls
()
{
return
materialImageUrls
;
}
public
void
setMaterialImageUrls
(
String
materialImageUrls
)
{
this
.
materialImageUrls
=
materialImageUrls
;
}
public
String
getMaterialThumbnailImageUrls
()
{
return
materialThumbnailImageUrls
;
}
public
void
setMaterialThumbnailImageUrls
(
String
materialThumbnailImageUrls
)
{
this
.
materialThumbnailImageUrls
=
materialThumbnailImageUrls
;
}
public
String
getMaterialImageInfos
()
{
return
materialImageInfos
;
}
public
void
setMaterialImageInfos
(
String
materialImageInfos
)
{
this
.
materialImageInfos
=
materialImageInfos
;
}
public
String
getMaterialVideoUrl
()
{
return
materialVideoUrl
;
}
public
void
setMaterialVideoUrl
(
String
materialVideoUrl
)
{
this
.
materialVideoUrl
=
materialVideoUrl
;
}
public
String
getMaterialVideoInfo
()
{
return
materialVideoInfo
;
}
public
void
setMaterialVideoInfo
(
String
materialVideoInfo
)
{
this
.
materialVideoInfo
=
materialVideoInfo
;
}
public
String
getMaterialVideoImageUrl
()
{
return
materialVideoImageUrl
;
}
public
void
setMaterialVideoImageUrl
(
String
materialVideoImageUrl
)
{
this
.
materialVideoImageUrl
=
materialVideoImageUrl
;
}
public
String
getMaterialVideoImageInfo
()
{
return
materialVideoImageInfo
;
}
public
void
setMaterialVideoImageInfo
(
String
materialVideoImageInfo
)
{
this
.
materialVideoImageInfo
=
materialVideoImageInfo
;
}
public
String
getMaterialVideoFirstImageUrl
()
{
return
materialVideoFirstImageUrl
;
}
public
void
setMaterialVideoFirstImageUrl
(
String
materialVideoFirstImageUrl
)
{
this
.
materialVideoFirstImageUrl
=
materialVideoFirstImageUrl
;
}
public
String
getMaterialVideoFirstImageInfo
()
{
return
materialVideoFirstImageInfo
;
}
public
void
setMaterialVideoFirstImageInfo
(
String
materialVideoFirstImageInfo
)
{
this
.
materialVideoFirstImageInfo
=
materialVideoFirstImageInfo
;
}
public
Integer
getDuration
()
{
return
duration
;
}
public
void
setDuration
(
Integer
duration
)
{
this
.
duration
=
duration
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
List
<
ContentGoodsVO
>
getContentGoodsList
()
{
return
contentGoodsList
;
}
public
void
setContentGoodsList
(
List
<
ContentGoodsVO
>
contentGoodsList
)
{
this
.
contentGoodsList
=
contentGoodsList
;
}
public
Integer
getAuditStatus
()
{
return
auditStatus
;
}
public
void
setAuditStatus
(
Integer
auditStatus
)
{
this
.
auditStatus
=
auditStatus
;
}
public
ContentAuditorVO
getAuditor
()
{
return
auditor
;
}
public
void
setAuditor
(
ContentAuditorVO
auditor
)
{
this
.
auditor
=
auditor
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/potential/PotentialCustomerVO.java
View file @
4371676f
...
...
@@ -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.ser.std.ToStringSerializer
;
import
com.gic.haoban.manage.web.vo.content.ContentMaterialInfoVO
;
import
com.gic.haoban.manage.web.vo.content.SimpleGoodsInfoVO
;
import
lombok.Data
;
import
java.io.Serializable
;
...
...
@@ -90,11 +91,16 @@ public class PotentialCustomerVO implements Serializable {
private
Integer
dealRecord
;
/**
* 素材信息
* 素材信息
bizType == 1 读取
*/
private
ContentMaterialInfoVO
contentMaterialInfoVO
;
/**
* 商品信息 bizType == 2 时
*/
private
SimpleGoodsInfoVO
simpleGoodsInfoVO
;
/**
* 第几次访问
*/
private
Integer
times
;
...
...
@@ -103,4 +109,15 @@ public class PotentialCustomerVO implements Serializable {
* 停留时长 单位秒
*/
private
Integer
durationTime
;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
/**
* 业务id
*/
private
String
bizId
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/share/ContentMaterialLandingPageVO.java
View file @
4371676f
...
...
@@ -51,6 +51,17 @@ public class ContentMaterialLandingPageVO implements Serializable {
*/
private
Integer
shoppingCartNum
;
/**
* 跳转穿搭社区开关
* 1 开启; 0关闭
*/
private
Integer
communityJumpFlag
;
/**
* 同款搭配数量
*/
private
Integer
collocationNum
;
public
ContentMaterialInfoVO
getContentMaterialInfo
()
{
return
contentMaterialInfo
;
...
...
@@ -99,4 +110,20 @@ public class ContentMaterialLandingPageVO implements Serializable {
public
void
setShoppingCartNum
(
Integer
shoppingCartNum
)
{
this
.
shoppingCartNum
=
shoppingCartNum
;
}
public
Integer
getCollocationNum
()
{
return
collocationNum
;
}
public
void
setCollocationNum
(
Integer
collocationNum
)
{
this
.
collocationNum
=
collocationNum
;
}
public
Integer
getCommunityJumpFlag
()
{
return
communityJumpFlag
;
}
public
void
setCommunityJumpFlag
(
Integer
communityJumpFlag
)
{
this
.
communityJumpFlag
=
communityJumpFlag
;
}
}
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