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
b16b40e2
Commit
b16b40e2
authored
Apr 02, 2023
by
王祖波
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/feature-content2' into feature-content2
parents
326bfc69
7629eb63
Show whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
696 additions
and
136 deletions
+696
-136
NoticeMessageTypeEnum.java
...om/gic/haoban/manage/api/enums/NoticeMessageTypeEnum.java
+1
-1
InteractRecordExtendInfoDTO.java
...manage/api/enums/content/InteractRecordExtendInfoDTO.java
+54
-22
InteractRecordInfoDTO.java
...aoban/manage/api/enums/content/InteractRecordInfoDTO.java
+39
-0
InteractRecordApiService.java
.../manage/api/service/content/InteractRecordApiService.java
+7
-0
NoticeMessageUtil.java
.../gic/haoban/manage/api/util/notify/NoticeMessageUtil.java
+25
-0
TabHaobanInteractRecordMapper.java
...ice/dao/mapper/content/TabHaobanInteractRecordMapper.java
+16
-0
TabHaobanPotentialCustomerMapper.java
.../dao/mapper/content/TabHaobanPotentialCustomerMapper.java
+7
-0
TabHaobanInteractRecord.java
...anage/service/entity/content/TabHaobanInteractRecord.java
+6
-2
InteractRecordBO.java
...oban/manage/service/pojo/bo/content/InteractRecordBO.java
+11
-1
InteractRecordExtendInfoBO.java
...e/service/pojo/bo/content/InteractRecordExtendInfoBO.java
+51
-28
MemberAttrChangeBO.java
...an/manage/service/pojo/bo/content/MemberAttrChangeBO.java
+50
-0
MaterialReportContext.java
...ervice/pojo/bo/content/context/MaterialReportContext.java
+14
-10
PotentialCustomerNotifyContext.java
...jo/bo/content/context/PotentialCustomerNotifyContext.java
+0
-1
InteractRecordMessageBO.java
...vice/pojo/bo/content/message/InteractRecordMessageBO.java
+3
-3
InteractRecordService.java
...manage/service/service/content/InteractRecordService.java
+14
-0
PotentialCustomerService.java
...age/service/service/content/PotentialCustomerService.java
+7
-0
InteractRecordBuilder.java
...ervice/service/content/adaptor/InteractRecordBuilder.java
+88
-14
MaterialReportBuilder.java
...ervice/service/content/adaptor/MaterialReportBuilder.java
+20
-5
PotentialCustomerNotifyBuilder.java
...rvice/content/adaptor/PotentialCustomerNotifyBuilder.java
+3
-4
GroupMessageServiceImpl.java
...service/service/content/impl/GroupMessageServiceImpl.java
+5
-0
InteractRecordServiceImpl.java
...rvice/service/content/impl/InteractRecordServiceImpl.java
+73
-2
MaterialReportServiceImpl.java
...rvice/service/content/impl/MaterialReportServiceImpl.java
+1
-0
PotentialCustomerServiceImpl.java
...ce/service/content/impl/PotentialCustomerServiceImpl.java
+14
-0
InteractRecordMessageService.java
...service/content/message/InteractRecordMessageService.java
+6
-7
InteractRecordApiServiceImpl.java
...ervice/out/impl/content/InteractRecordApiServiceImpl.java
+38
-0
MaterialShareLogApiServiceImpl.java
...vice/out/impl/content/MaterialShareLogApiServiceImpl.java
+1
-1
QywxGroupMsgTaskApiServiceImpl.java
...out/impl/content/task/QywxGroupMsgTaskApiServiceImpl.java
+1
-0
dubbo-haoban-manage-service.xml
...ervice/src/main/resources/dubbo-haoban-manage-service.xml
+2
-0
TabHaobanInteractRecordMapper.xml
...esources/mapper/content/TabHaobanInteractRecordMapper.xml
+19
-1
TabHaobanPotentialCustomerMapper.xml
...urces/mapper/content/TabHaobanPotentialCustomerMapper.xml
+6
-0
InteractRecordTest.java
haoban-manage3-service/src/test/java/InteractRecordTest.java
+16
-4
MaterialReportServiceTest.java
...age3-service/src/test/java/MaterialReportServiceTest.java
+19
-2
WxStaffController.java
...m/gic/haoban/manage/web/controller/WxStaffController.java
+1
-0
InteractRecordController.java
...nage/web/controller/content/InteractRecordController.java
+17
-2
InteractRecordExtendInfoVO.java
...ban/manage/web/vo/content/InteractRecordExtendInfoVO.java
+44
-25
InteractRecordVO.java
...om/gic/haoban/manage/web/vo/content/InteractRecordVO.java
+15
-0
SimpleGoodsInfoVO.java
...m/gic/haoban/manage/web/vo/content/SimpleGoodsInfoVO.java
+2
-1
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/NoticeMessageTypeEnum.java
View file @
b16b40e2
...
@@ -59,7 +59,7 @@ public enum NoticeMessageTypeEnum {
...
@@ -59,7 +59,7 @@ public enum NoticeMessageTypeEnum {
CUSTOMER_SUCCESS_ORDER_REFUND
(
4006
,
"客户成功退单通知"
,
NoticeMessageCategoryTypeEnum
.
CUSTOMER
.
getType
(),
"customer_success_order_refund"
,
"/pages/route/index?pageType="
,
"hbapp_user_bill_detail"
),
CUSTOMER_SUCCESS_ORDER_REFUND
(
4006
,
"客户成功退单通知"
,
NoticeMessageCategoryTypeEnum
.
CUSTOMER
.
getType
(),
"customer_success_order_refund"
,
"/pages/route/index?pageType="
,
"hbapp_user_bill_detail"
),
MATERIAL_NEW_NOTIFY
(
6001
,
"素材上新通知"
,
NoticeMessageCategoryTypeEnum
.
MATERIAL
.
getType
(),
"material_new_notify"
,
"/pages/route/index?pageType="
,
"hbapp_material_center"
),
MATERIAL_NEW_NOTIFY
(
6001
,
"素材上新通知"
,
NoticeMessageCategoryTypeEnum
.
MATERIAL
.
getType
(),
"material_new_notify"
,
"/pages/route/index?pageType="
,
"hbapp_material_center"
),
MATERIAL_
WEEK_REPORT
(
6002
,
"素材周报通知"
,
NoticeMessageCategoryTypeEnum
.
MATERIAL
.
getType
(),
"material_week_notify"
,
"/pages/route/index?pageType="
,
"hbapp_material
_report"
),
MATERIAL_
REPORT_NOTIFY
(
6002
,
"素材周报/月报通知"
,
NoticeMessageCategoryTypeEnum
.
MATERIAL
.
getType
(),
"material_week_notify"
,
"/pages/route/index?pageType="
,
"hbapp_mate
_report"
),
POTENTIAL_CUSTOMER_NOTIFY
(
6003
,
"销售线索通知"
,
NoticeMessageCategoryTypeEnum
.
POTENTIAL_CUSTOMER
.
getType
(),
"potential_customer_notify"
,
"/pages/route/index?pageType="
,
"hbapp_sales_clue_center"
);
POTENTIAL_CUSTOMER_NOTIFY
(
6003
,
"销售线索通知"
,
NoticeMessageCategoryTypeEnum
.
POTENTIAL_CUSTOMER
.
getType
(),
"potential_customer_notify"
,
"/pages/route/index?pageType="
,
"hbapp_sales_clue_center"
);
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/InteractRecordExtendInfoDTO.java
View file @
b16b40e2
...
@@ -14,30 +14,11 @@ import java.util.List;
...
@@ -14,30 +14,11 @@ import java.util.List;
public
class
InteractRecordExtendInfoDTO
implements
Serializable
{
public
class
InteractRecordExtendInfoDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1577766149535235456L
;
private
static
final
long
serialVersionUID
=
1577766149535235456L
;
/**
* 订单编号
*/
private
String
orderNumber
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
/**
* 订单商品项总数
*/
private
Integer
orderTotalNum
;
/**
* 订单应付
*/
private
BigDecimal
orderPay
;
/**
/**
*
订单实付
*
素材关联的订单信息
*/
*/
private
BigDecimal
realPay
;
private
List
<
ExtendOrderInfo
>
extendOrderInfos
;
/**
/**
* 失效商品数量
* 失效商品数量
...
@@ -49,7 +30,7 @@ public class InteractRecordExtendInfoDTO implements Serializable {
...
@@ -49,7 +30,7 @@ public class InteractRecordExtendInfoDTO implements Serializable {
*/
*/
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
public
static
class
ExtendGoodsInfo
{
public
static
class
ExtendGoodsInfo
implements
Serializable
{
/**
/**
* 商品名称
* 商品名称
...
@@ -129,6 +110,40 @@ public class InteractRecordExtendInfoDTO implements Serializable {
...
@@ -129,6 +110,40 @@ public class InteractRecordExtendInfoDTO implements Serializable {
}
}
}
}
/**
* 素材关联的订单信息
*/
public
static
class
ExtendOrderInfo
implements
Serializable
{
/**
* 订单编号
*/
private
String
orderNumber
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
/**
* 订单商品项总数
*/
private
Integer
orderTotalNum
;
/**
* 订单应付
*/
private
BigDecimal
orderPay
;
/**
* 订单实付
*/
private
BigDecimal
realPay
;
/**
* 订单商品信息
*/
private
List
<
ExtendGoodsInfo
>
orderGoodsInfos
;
public
String
getOrderNumber
()
{
public
String
getOrderNumber
()
{
return
orderNumber
;
return
orderNumber
;
}
}
...
@@ -169,6 +184,23 @@ public class InteractRecordExtendInfoDTO implements Serializable {
...
@@ -169,6 +184,23 @@ public class InteractRecordExtendInfoDTO implements Serializable {
this
.
realPay
=
realPay
;
this
.
realPay
=
realPay
;
}
}
public
List
<
ExtendGoodsInfo
>
getOrderGoodsInfos
()
{
return
orderGoodsInfos
;
}
public
void
setOrderGoodsInfos
(
List
<
ExtendGoodsInfo
>
orderGoodsInfos
)
{
this
.
orderGoodsInfos
=
orderGoodsInfos
;
}
}
public
List
<
ExtendOrderInfo
>
getExtendOrderInfos
()
{
return
extendOrderInfos
;
}
public
void
setExtendOrderInfos
(
List
<
ExtendOrderInfo
>
extendOrderInfos
)
{
this
.
extendOrderInfos
=
extendOrderInfos
;
}
public
Integer
getInvalidGoodsNum
()
{
public
Integer
getInvalidGoodsNum
()
{
return
invalidGoodsNum
;
return
invalidGoodsNum
;
}
}
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/InteractRecordInfoDTO.java
View file @
b16b40e2
...
@@ -40,6 +40,11 @@ public class InteractRecordInfoDTO implements Serializable {
...
@@ -40,6 +40,11 @@ public class InteractRecordInfoDTO implements Serializable {
private
Date
createTime
;
private
Date
createTime
;
/**
/**
* 线索来源 1朋友圈; 2客户群; 3 对话框; 0其他
*/
private
Integer
channelSource
;
/**
* 记录事件类型
* 记录事件类型
* 1浏览素材;2 查看商品; 3 购买商品
* 1浏览素材;2 查看商品; 3 购买商品
* 通过此类型区分 弹窗提示
* 通过此类型区分 弹窗提示
...
@@ -52,6 +57,16 @@ public class InteractRecordInfoDTO implements Serializable {
...
@@ -52,6 +57,16 @@ public class InteractRecordInfoDTO implements Serializable {
private
String
bizId
;
private
String
bizId
;
/**
/**
* 浏览的商品数量
*/
private
Integer
visitGoodsNum
;
/**
* 下单的商品数量
*/
private
Integer
orderGoodsNum
;
/**
* 扩展信息
* 扩展信息
*/
*/
private
InteractRecordExtendInfoDTO
extendInfo
;
private
InteractRecordExtendInfoDTO
extendInfo
;
...
@@ -119,4 +134,28 @@ public class InteractRecordInfoDTO implements Serializable {
...
@@ -119,4 +134,28 @@ public class InteractRecordInfoDTO implements Serializable {
public
void
setExtendInfo
(
InteractRecordExtendInfoDTO
extendInfo
)
{
public
void
setExtendInfo
(
InteractRecordExtendInfoDTO
extendInfo
)
{
this
.
extendInfo
=
extendInfo
;
this
.
extendInfo
=
extendInfo
;
}
}
public
Integer
getChannelSource
()
{
return
channelSource
;
}
public
void
setChannelSource
(
Integer
channelSource
)
{
this
.
channelSource
=
channelSource
;
}
public
Integer
getVisitGoodsNum
()
{
return
visitGoodsNum
;
}
public
void
setVisitGoodsNum
(
Integer
visitGoodsNum
)
{
this
.
visitGoodsNum
=
visitGoodsNum
;
}
public
Integer
getOrderGoodsNum
()
{
return
orderGoodsNum
;
}
public
void
setOrderGoodsNum
(
Integer
orderGoodsNum
)
{
this
.
orderGoodsNum
=
orderGoodsNum
;
}
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/content/InteractRecordApiService.java
View file @
b16b40e2
...
@@ -20,4 +20,11 @@ public interface InteractRecordApiService {
...
@@ -20,4 +20,11 @@ public interface InteractRecordApiService {
* @return
* @return
*/
*/
ServiceResponse
<
Page
<
InteractRecordInfoDTO
>>
queryInteractRecordList
(
InteractRecordQDTO
interactRecordQDTO
);
ServiceResponse
<
Page
<
InteractRecordInfoDTO
>>
queryInteractRecordList
(
InteractRecordQDTO
interactRecordQDTO
);
/**
* 处理member信息变化的MQ
* @param params
* @return
*/
ServiceResponse
<
Void
>
memberChangeMQ
(
String
params
);
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/util/notify/NoticeMessageUtil.java
View file @
b16b40e2
...
@@ -9,6 +9,9 @@ import org.apache.commons.collections.CollectionUtils;
...
@@ -9,6 +9,9 @@ import org.apache.commons.collections.CollectionUtils;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -141,4 +144,26 @@ public class NoticeMessageUtil {
...
@@ -141,4 +144,26 @@ public class NoticeMessageUtil {
logger
.
info
(
"发送消息异常:{}"
,
e
);
logger
.
info
(
"发送消息异常:{}"
,
e
);
}
}
}
}
/**
* 构建小程序跳转url
* @param messageTypeEnum
* @param data
* @return
*/
public
static
String
buildMiniAppUrl
(
NoticeMessageTypeEnum
messageTypeEnum
,
String
data
)
{
if
(
StringUtils
.
isNotBlank
(
data
))
{
try
{
data
=
URLEncoder
.
encode
(
data
,
StandardCharsets
.
UTF_8
.
name
());
}
catch
(
UnsupportedEncodingException
e
)
{
logger
.
error
(
e
.
getMessage
());
}
}
String
appUrl
=
messageTypeEnum
.
getPageUrl
();
if
(
StringUtils
.
isNotBlank
(
messageTypeEnum
.
getPageType
()))
{
appUrl
+=
messageTypeEnum
.
getPageType
();
}
appUrl
+=
"&data="
+
data
;
return
appUrl
;
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/content/TabHaobanInteractRecordMapper.java
View file @
b16b40e2
...
@@ -105,5 +105,21 @@ public interface TabHaobanInteractRecordMapper {
...
@@ -105,5 +105,21 @@ public interface TabHaobanInteractRecordMapper {
*/
*/
List
<
PotentialCustomerStaticsBO
>
staticsClerkInteractRecordNew
(
InteractRecordQO
interactRecordQO
);
List
<
PotentialCustomerStaticsBO
>
staticsClerkInteractRecordNew
(
InteractRecordQO
interactRecordQO
);
/**
* 会员合并
* @param mergeMemberId
* @param memberId
* @return
*/
int
mergeMember
(
@Param
(
"mergeMemberId"
)
String
mergeMemberId
,
@Param
(
"memberId"
)
String
memberId
);
/**
* 会员授权事件
* @param memberId
* @param unionId
* @return
*/
int
memberAuthorized
(
@Param
(
"memberId"
)
String
memberId
,
@Param
(
"unionId"
)
String
unionId
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/content/TabHaobanPotentialCustomerMapper.java
View file @
b16b40e2
...
@@ -78,5 +78,12 @@ public interface TabHaobanPotentialCustomerMapper {
...
@@ -78,5 +78,12 @@ public interface TabHaobanPotentialCustomerMapper {
*/
*/
List
<
TabHaobanPotentialCustomer
>
queryPotentialCustomerList
(
PotentialCustomerQO
potentialCustomerQO
);
List
<
TabHaobanPotentialCustomer
>
queryPotentialCustomerList
(
PotentialCustomerQO
potentialCustomerQO
);
/**
* 会员合并操作
* @param mergeMemberId
* @param memberId
*/
void
mergeMember
(
@Param
(
"mergeMemberId"
)
String
mergeMemberId
,
@Param
(
"memberId"
)
String
memberId
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/content/TabHaobanInteractRecord.java
View file @
b16b40e2
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
content
;
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
content
;
import
com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
;
import
java.util.Date
;
import
java.util.Date
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
@@ -44,11 +46,13 @@ public class TabHaobanInteractRecord implements Serializable {
...
@@ -44,11 +46,13 @@ public class TabHaobanInteractRecord implements Serializable {
*/
*/
private
String
storeId
;
private
String
storeId
;
/**
/**
* 线索来源 1朋友圈; 2客户群; 3 对话框; 0其他
* 线索来源 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材
* @see TriggerCustomerChannelType
*/
*/
private
Integer
channelSource
;
private
Integer
channelSource
;
/**
/**
* 事件类型 1浏览商品;2浏览并点击; 3浏览并查看; 4 浏览并购买; 5查看并购买
* 事件类型 1浏览素材;2浏览商品; 3 购买商品
* @see com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
*/
*/
private
Integer
eventType
;
private
Integer
eventType
;
/**
/**
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/InteractRecordBO.java
View file @
b16b40e2
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
content
;
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
content
;
import
com.gic.haoban.manage.api.enums.content.InteractRecordExtendInfoDTO
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -84,4 +83,15 @@ public class InteractRecordBO {
...
@@ -84,4 +83,15 @@ public class InteractRecordBO {
* 扩展信息
* 扩展信息
*/
*/
private
InteractRecordExtendInfoBO
extendInfo
;
private
InteractRecordExtendInfoBO
extendInfo
;
/**
* 浏览的商品数量
*/
private
Integer
visitGoodsNum
;
/**
* 下单的商品数量
*/
private
Integer
orderGoodsNum
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/InteractRecordExtendInfoBO.java
View file @
b16b40e2
...
@@ -18,34 +18,9 @@ import java.util.List;
...
@@ -18,34 +18,9 @@ import java.util.List;
public
class
InteractRecordExtendInfoBO
implements
Serializable
{
public
class
InteractRecordExtendInfoBO
implements
Serializable
{
/**
/**
*
浏览的商品id
*
素材关联的订单信息
*/
*/
private
List
<
String
>
goodsIds
;
private
List
<
ExtendOrderInfo
>
extendOrderInfos
;
/**
* 订单编号
*/
private
String
orderNumber
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
/**
* 订单商品项总数
*/
private
Integer
orderTotalNum
;
/**
* 订单应付
*/
private
BigDecimal
orderPay
;
/**
* 订单实付
*/
private
BigDecimal
realPay
;
/**
/**
* 失效商品数量
* 失效商品数量
...
@@ -57,8 +32,13 @@ public class InteractRecordExtendInfoBO implements Serializable {
...
@@ -57,8 +32,13 @@ public class InteractRecordExtendInfoBO implements Serializable {
*/
*/
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
/**
* 冗余的商品id
*/
private
List
<
String
>
goodsIds
;
@Data
@Data
public
static
class
ExtendGoodsInfo
{
public
static
class
ExtendGoodsInfo
implements
Serializable
{
/**
/**
* 商品名称
* 商品名称
...
@@ -88,6 +68,49 @@ public class InteractRecordExtendInfoBO implements Serializable {
...
@@ -88,6 +68,49 @@ public class InteractRecordExtendInfoBO implements Serializable {
* 商品单价
* 商品单价
*/
*/
private
BigDecimal
salePrice
;
private
BigDecimal
salePrice
;
/***
* 1 erp同步
* 2 自建
* @see com.gic.store.goods.enums.GoodsSourceTypeEnum
*/
private
Integer
sourceType
;
}
/**
* 素材关联的订单信息
*/
@Data
public
static
class
ExtendOrderInfo
implements
Serializable
{
/**
* 订单编号
*/
private
String
orderNumber
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
/**
* 订单商品项总数
*/
private
Integer
orderTotalNum
;
/**
* 订单应付
*/
private
BigDecimal
orderPay
;
/**
* 订单实付
*/
private
BigDecimal
realPay
;
/**
* 订单商品信息
*/
private
List
<
ExtendGoodsInfo
>
orderGoodsInfos
;
}
}
public
static
InteractRecordExtendInfoBO
empty
()
{
public
static
InteractRecordExtendInfoBO
empty
()
{
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/MemberAttrChangeBO.java
0 → 100644
View file @
b16b40e2
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
content
;
import
lombok.Data
;
import
lombok.Getter
;
import
java.io.Serializable
;
/**
* @Author MUSI
* @Date 2023/4/2 9:12 AM
* @Description
* @Version
**/
@Data
public
class
MemberAttrChangeBO
implements
Serializable
{
/**
* 会员id
*/
private
String
memberId
;
/**
* 会员unionId
*/
private
String
unionId
;
/**
* 被合并的会员id
*/
private
String
mergeMemberId
;
/**
* 业务变动类型:1小程序授权 2会员合并
*/
private
Integer
opt
;
@Getter
public
enum
MemberChangeOpt
{
MINI_APP_AUTHORIZED
(
1
,
"会员授权"
),
MEMBER_MERGE
(
2
,
"会员合并"
);
MemberChangeOpt
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
private
Integer
code
;
private
String
desc
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/context/MaterialReportContext.java
View file @
b16b40e2
...
@@ -9,6 +9,7 @@ import com.gic.haoban.manage.service.entity.TabHaobanStaff;
...
@@ -9,6 +9,7 @@ import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import
com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO
;
import
com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -16,7 +17,7 @@ import java.util.Collections;
...
@@ -16,7 +17,7 @@ import java.util.Collections;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
com
.
gic
.
haoban
.
manage
.
api
.
enums
.
NoticeMessageTypeEnum
.
MATERIAL_
WEEK_REPORT
;
import
static
com
.
gic
.
haoban
.
manage
.
api
.
enums
.
NoticeMessageTypeEnum
.
MATERIAL_
REPORT_NOTIFY
;
/**
/**
* @Author MUSI
* @Author MUSI
...
@@ -24,7 +25,7 @@ import static com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum.MATERIAL_WEE
...
@@ -24,7 +25,7 @@ import static com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum.MATERIAL_WEE
* @Description
* @Description
* @Version 好办 周报/月报 上下文
* @Version 好办 周报/月报 上下文
**/
**/
@Slf4j
@Data
@Data
@Builder
@Builder
public
class
MaterialReportContext
{
public
class
MaterialReportContext
{
...
@@ -98,26 +99,27 @@ public class MaterialReportContext {
...
@@ -98,26 +99,27 @@ public class MaterialReportContext {
*/
*/
public
List
<
NoticeMessageBO
>
buildNotifyMessageBos
()
{
public
List
<
NoticeMessageBO
>
buildNotifyMessageBos
()
{
if
(
CollectionUtils
.
isEmpty
(
this
.
staffClerkRelations
))
{
if
(
CollectionUtils
.
isEmpty
(
this
.
staffClerkRelations
))
{
log
.
info
(
"成员未绑定导购, staffId: {}"
,
this
.
staffId
);
return
Collections
.
emptyList
();
return
Collections
.
emptyList
();
}
}
if
(
StringUtils
.
isBlank
(
this
.
mainStoreId
))
{
if
(
StringUtils
.
isBlank
(
this
.
mainStoreId
))
{
log
.
info
(
"成员 {} 没有主门店数据, 区经角色不发送小程序消息通知 "
,
this
.
staffId
);
return
Collections
.
emptyList
();
return
Collections
.
emptyList
();
}
}
return
this
.
staffClerkRelations
return
this
.
staffClerkRelations
.
stream
()
.
stream
()
.
map
(
item
->
{
.
map
(
item
->
{
NoticeMessageBO
noticeMessageBO
=
new
NoticeMessageBO
();
NoticeMessageBO
noticeMessageBO
=
new
NoticeMessageBO
();
noticeMessageBO
.
setCategoryType
(
MATERIAL_
WEEK_REPORT
.
getCategory
());
noticeMessageBO
.
setCategoryType
(
MATERIAL_
REPORT_NOTIFY
.
getCategory
());
noticeMessageBO
.
setMessageType
(
MATERIAL_
WEEK_REPORT
.
getType
());
noticeMessageBO
.
setMessageType
(
MATERIAL_
REPORT_NOTIFY
.
getType
());
noticeMessageBO
.
setClerkId
(
StringUtils
.
isNotBlank
(
item
.
getClerkId
())
?
item
.
getClerkId
()
:
"-1"
);
noticeMessageBO
.
setClerkId
(
StringUtils
.
isNotBlank
(
item
.
getClerkId
())
?
item
.
getClerkId
()
:
"-1"
);
noticeMessageBO
.
setStoreId
(
StringUtils
.
isNotBlank
(
item
.
getStoreId
())
?
item
.
getStoreId
()
:
"-1"
);
noticeMessageBO
.
setStoreId
(
StringUtils
.
isNotBlank
(
item
.
getStoreId
())
?
item
.
getStoreId
()
:
"-1"
);
noticeMessageBO
.
setTitle
(
this
.
getMessageTitle
());
noticeMessageBO
.
setTitle
(
this
.
getMessageTitle
());
noticeMessageBO
.
setTemplateCode
(
MATERIAL_
WEEK_REPORT
.
getTemplateCode
());
noticeMessageBO
.
setTemplateCode
(
MATERIAL_
REPORT_NOTIFY
.
getTemplateCode
());
noticeMessageBO
.
setDescription
(
this
.
getMessageDesc
());
noticeMessageBO
.
setDescription
(
this
.
getMessageDesc
());
noticeMessageBO
.
setEnterpriseId
(
this
.
enterpriseId
);
noticeMessageBO
.
setEnterpriseId
(
this
.
enterpriseId
);
noticeMessageBO
.
setRelationId
(
this
.
clerkId
);
noticeMessageBO
.
setRelationId
(
this
.
clerkId
);
noticeMessageBO
.
setMessageContent
(
this
.
extendParams
());
noticeMessageBO
.
setMessageContent
(
this
.
extendParams
(
item
.
getStoreId
()
));
return
noticeMessageBO
;
return
noticeMessageBO
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
...
@@ -149,10 +151,12 @@ public class MaterialReportContext {
...
@@ -149,10 +151,12 @@ public class MaterialReportContext {
return
String
.
format
(
month_desc
,
monthBeginStr
,
monthEndStr
);
return
String
.
format
(
month_desc
,
monthBeginStr
,
monthEndStr
);
}
}
public
String
extendParams
()
{
public
String
extendParams
(
String
storeId
)
{
JSONObject
params
=
new
JSONObject
();
JSONObject
params
=
new
JSONObject
();
params
.
put
(
"clerkId"
,
this
.
clerkId
);
// params.put("clerkId", this.clerkId);
params
.
put
(
"storeId"
,
this
.
mainStoreId
);
// 此处页面链接 最长128个字节
params
.
put
(
"s"
,
storeId
);
params
.
put
(
"t"
,
this
.
reportType
);
return
params
.
toJSONString
();
return
params
.
toJSONString
();
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/context/PotentialCustomerNotifyContext.java
View file @
b16b40e2
...
@@ -16,7 +16,6 @@ import java.util.Map;
...
@@ -16,7 +16,6 @@ import java.util.Map;
import
java.util.Optional
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
com
.
gic
.
haoban
.
manage
.
api
.
enums
.
NoticeMessageTypeEnum
.
MATERIAL_WEEK_REPORT
;
import
static
com
.
gic
.
haoban
.
manage
.
api
.
enums
.
NoticeMessageTypeEnum
.
POTENTIAL_CUSTOMER_NOTIFY
;
import
static
com
.
gic
.
haoban
.
manage
.
api
.
enums
.
NoticeMessageTypeEnum
.
POTENTIAL_CUSTOMER_NOTIFY
;
/**
/**
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/message/InteractRecordMessageBO.java
View file @
b16b40e2
...
@@ -54,13 +54,13 @@ public class InteractRecordMessageBO implements Serializable {
...
@@ -54,13 +54,13 @@ public class InteractRecordMessageBO implements Serializable {
*/
*/
private
Integer
durationTime
;
private
Integer
durationTime
;
/**
/**
* 购买商品时的 订单
id
* 购买商品时的 订单
编号
*/
*/
private
String
order
Id
;
private
String
order
Number
;
/**
/**
* 查看商品时查看的商品id
* 查看商品时查看的商品id
*/
*/
private
List
<
String
>
goodsIds
;
private
String
goodsId
;
/**
/**
* 业务唯一标识
* 业务唯一标识
*/
*/
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/InteractRecordService.java
View file @
b16b40e2
...
@@ -51,4 +51,18 @@ public interface InteractRecordService {
...
@@ -51,4 +51,18 @@ public interface InteractRecordService {
*/
*/
List
<
PotentialCustomerStaticsBO
>
staticsClerkNewInteractRecord
(
InteractRecordQO
interactRecordQO
);
List
<
PotentialCustomerStaticsBO
>
staticsClerkNewInteractRecord
(
InteractRecordQO
interactRecordQO
);
/**
* 会员合并操作
* @param mergeMemberId
* @param memberId
*/
void
mergeMember
(
String
mergeMemberId
,
String
memberId
);
/**
* 会员授权事件
* @param memberId
* @param unionId
*/
void
memberAuthorized
(
String
memberId
,
String
unionId
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/PotentialCustomerService.java
View file @
b16b40e2
...
@@ -55,4 +55,11 @@ public interface PotentialCustomerService {
...
@@ -55,4 +55,11 @@ public interface PotentialCustomerService {
* @param context
* @param context
*/
*/
void
sendPotentialCustomerNotice
(
PotentialCustomerNotifyContext
context
);
void
sendPotentialCustomerNotice
(
PotentialCustomerNotifyContext
context
);
/**
* 会员合并操作
* @param mergeMemberId
* @param memberId
*/
void
mergeMember
(
String
mergeMemberId
,
String
memberId
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/InteractRecordBuilder.java
View file @
b16b40e2
...
@@ -2,23 +2,30 @@ package com.gic.haoban.manage.service.service.content.adaptor;
...
@@ -2,23 +2,30 @@ package com.gic.haoban.manage.service.service.content.adaptor;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.TypeReference
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
;
import
com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
;
import
com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
;
import
com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO
;
import
com.gic.store.goods.dto.goods.GoodsInfoSimpleDTO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerBO
;
import
com.gic.store.goods.dto.qdto.ErpGoodsInfoQDTO
;
import
com.gic.member.api.dto.MemberDTO
;
import
com.gic.member.api.service.MemberService
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.qdto.GoodsListQDTO
;
import
com.gic.store.goods.enums.GoodsStatusEnum
;
import
com.gic.store.goods.enums.GoodsStatusEnum
;
import
com.gic.store.goods.service.Goods
InfoOut
ApiService
;
import
com.gic.store.goods.service.Goods
Center
ApiService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -31,9 +38,10 @@ import java.util.stream.Collectors;
...
@@ -31,9 +38,10 @@ import java.util.stream.Collectors;
@Slf4j
@Slf4j
@Component
@Component
public
class
InteractRecordBuilder
{
public
class
InteractRecordBuilder
{
@Autowired
@Autowired
private
GoodsInfoOutApiService
goodsInfoOutApiService
;
private
GoodsCenterApiService
goodsCenterApiService
;
@Autowired
private
MemberService
memberService
;
/**
/**
* 互动记录描述
* 互动记录描述
...
@@ -47,6 +55,7 @@ public class InteractRecordBuilder {
...
@@ -47,6 +55,7 @@ public class InteractRecordBuilder {
/**
/**
* 基于渠道和事件类型拼接信息
* 基于渠道和事件类型拼接信息
*
* @param channelSource
* @param channelSource
* @param eventType
* @param eventType
* @return
* @return
...
@@ -56,7 +65,7 @@ public class InteractRecordBuilder {
...
@@ -56,7 +65,7 @@ public class InteractRecordBuilder {
if
(
TriggerCustomerChannelType
.
showDescChannel
().
contains
(
channelSource
))
{
if
(
TriggerCustomerChannelType
.
showDescChannel
().
contains
(
channelSource
))
{
TriggerCustomerChannelType
channelType
=
TriggerCustomerChannelType
.
getInstance
(
channelSource
);
TriggerCustomerChannelType
channelType
=
TriggerCustomerChannelType
.
getInstance
(
channelSource
);
if
(
channelType
!=
null
)
{
if
(
channelType
!=
null
)
{
stringBuilder
.
append
(
String
.
format
(
"通过
[%s]
"
,
channelType
.
getDesc
()));
stringBuilder
.
append
(
String
.
format
(
"通过
%s
"
,
channelType
.
getDesc
()));
}
}
}
}
MaterialInteractRecordEventType
instance
=
MaterialInteractRecordEventType
.
getInstance
(
eventType
);
MaterialInteractRecordEventType
instance
=
MaterialInteractRecordEventType
.
getInstance
(
eventType
);
...
@@ -93,10 +102,12 @@ public class InteractRecordBuilder {
...
@@ -93,10 +102,12 @@ public class InteractRecordBuilder {
// 浏览商品事件
// 浏览商品事件
List
<
String
>
visitGoodsIds
=
extendInfo
.
getGoodsIds
();
List
<
String
>
visitGoodsIds
=
extendInfo
.
getGoodsIds
();
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
log
.
info
(
"组装浏览商品信息, 商品信息不存在 {}"
,
interactRecord
.
getExtendInfo
());
return
null
;
return
null
;
}
}
// 拼接商品信息
// 拼接商品信息
List
<
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
>
extendGoodsInfos
=
this
.
convertGoodsInfo
(
visitGoodsIds
,
interactRecord
.
getEnterpriseId
());
List
<
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
>
extendGoodsInfos
=
this
.
convertGoodsInfo
(
visitGoodsIds
,
interactRecord
.
getEnterpriseId
());
extendInfo
.
setExtendGoodsInfos
(
extendGoodsInfos
);
extendInfo
.
setExtendGoodsInfos
(
extendGoodsInfos
);
extendInfo
.
setInvalidGoodsNum
(
visitGoodsIds
.
size
()
-
extendGoodsInfos
.
size
());
extendInfo
.
setInvalidGoodsNum
(
visitGoodsIds
.
size
()
-
extendGoodsInfos
.
size
());
return
extendInfo
;
return
extendInfo
;
...
@@ -105,26 +116,89 @@ public class InteractRecordBuilder {
...
@@ -105,26 +116,89 @@ public class InteractRecordBuilder {
}
}
private
List
<
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
>
convertGoodsInfo
(
List
<
String
>
visitGoodsIds
,
String
enterpriseId
)
{
private
List
<
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
>
convertGoodsInfo
(
List
<
String
>
visitGoodsIds
,
String
enterpriseId
)
{
ErpGoodsInfoQDTO
search
=
new
ErpGoodsInfoQDTO
();
if
(
CollectionUtils
.
isEmpty
(
visitGoodsIds
))
{
search
.
setEnterpriseId
(
enterpriseId
);
return
Collections
.
emptyList
();
search
.
setGoodsIds
(
visitGoodsIds
);
}
search
.
setExcludeStatus
(
Arrays
.
asList
(
GoodsStatusEnum
.
DELETED
.
getCode
(),
GoodsStatusEnum
.
BACK
.
getCode
()));
GoodsListQDTO
goodsListQDTO
=
new
GoodsListQDTO
();
ServiceResponse
<
List
<
GoodsInfoSimpleDTO
>>
serviceResponse
=
goodsListQDTO
.
setEnterpriseId
(
enterpriseId
);
goodsInfoOutApiService
.
queryErpGoodsInfoWithIds
(
search
);
goodsListQDTO
.
setIncludeGoodsIds
(
visitGoodsIds
);
goodsListQDTO
.
setExcludeStatus
(
Arrays
.
asList
(
GoodsStatusEnum
.
DELETED
.
getCode
(),
GoodsStatusEnum
.
BACK
.
getCode
()));
goodsListQDTO
.
setPageSize
(
visitGoodsIds
.
size
()
+
1
);
ServiceResponse
<
Page
<
GoodsSpuInfoDTO
>>
serviceResponse
=
goodsCenterApiService
.
queryStoreGoodsList
(
goodsListQDTO
);
if
(!
serviceResponse
.
isSuccess
())
{
if
(!
serviceResponse
.
isSuccess
())
{
log
.
info
(
"查询商品异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
}
if
(
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
().
getResult
()))
{
log
.
info
(
"查询商品为空 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
return
Collections
.
emptyList
();
}
}
return
serviceResponse
.
getResult
()
return
serviceResponse
.
getResult
()
.
getResult
()
.
stream
()
.
stream
()
.
map
(
item
->
{
.
map
(
item
->
{
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
extendGoodsInfo
=
new
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
();
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
extendGoodsInfo
=
new
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
();
extendGoodsInfo
.
setGoodsName
(
item
.
getGoodsName
());
extendGoodsInfo
.
setGoodsName
(
item
.
getGoodsName
());
extendGoodsInfo
.
setGoodsCode
(
item
.
getGoodsCode
());
extendGoodsInfo
.
setGoodsCode
(
item
.
getGoodsCode
());
extendGoodsInfo
.
setGoodsImageUrl
(
item
.
get
Goods
ImageUrl
());
extendGoodsInfo
.
setGoodsImageUrl
(
item
.
getImageUrl
());
extendGoodsInfo
.
setSalePrice
(
item
.
getSalePrice
());
extendGoodsInfo
.
setSalePrice
(
item
.
getSalePrice
());
extendGoodsInfo
.
setSourceType
(
item
.
getSourceType
());
return
extendGoodsInfo
;
return
extendGoodsInfo
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
}
}
/**
* 计算商品浏览数量
* @param interactRecordBO
* @return
*/
public
void
warpRelationGoodsNum
(
InteractRecordBO
interactRecordBO
)
{
if
(
interactRecordBO
==
null
)
{
log
.
info
(
"互动记录不存在"
);
return
;
}
if
(
interactRecordBO
.
getExtendInfo
()
==
null
)
{
log
.
info
(
"互动记录不存在扩展信息 {}"
,
JSON
.
toJSONString
(
interactRecordBO
));
return
;
}
InteractRecordExtendInfoBO
extendInfo
=
interactRecordBO
.
getExtendInfo
();
interactRecordBO
.
setVisitGoodsNum
(
0
);
if
(
CollectionUtils
.
isNotEmpty
(
extendInfo
.
getGoodsIds
()))
{
interactRecordBO
.
setVisitGoodsNum
(
extendInfo
.
getGoodsIds
().
size
());
}
interactRecordBO
.
setOrderGoodsNum
(
0
);
if
(
CollectionUtils
.
isNotEmpty
(
extendInfo
.
getExtendOrderInfos
()))
{
Integer
orderGoodsNum
=
extendInfo
.
getExtendOrderInfos
()
.
stream
()
.
map
(
item
->
item
.
getOrderGoodsInfos
().
size
())
.
reduce
(
0
,
Integer:
:
sum
);
interactRecordBO
.
setOrderGoodsNum
(
orderGoodsNum
);
}
}
public
PotentialCustomerBO
build
(
TabHaobanInteractRecord
interactRecord
)
{
PotentialCustomerBO
temp
=
new
PotentialCustomerBO
();
BeanUtils
.
copyProperties
(
interactRecord
,
temp
);
temp
.
setId
(
null
);
// 获取会员信息
MemberDTO
memberDTO
=
memberService
.
queryMember
(
interactRecord
.
getMemberId
());
if
(
memberDTO
!=
null
)
{
temp
.
setMemberName
(
memberDTO
.
getMemberName
());
temp
.
setMemberNickName
(
memberDTO
.
getThirdNickname
());
temp
.
setMemberImageUrl
(
memberDTO
.
getThirdImgUrl
());
temp
.
setMemberPhone
(
memberDTO
.
getPhoneNumber
());
}
temp
.
setStarFlag
(
0
);
temp
.
setSeeFlag
(
0
);
temp
.
setLastAccessTime
(
interactRecord
.
getCreateTime
());
temp
.
setCreateTime
(
new
Date
());
temp
.
setUpdateTime
(
new
Date
());
temp
.
setDeleteFlag
(
0
);
// 查询memberId是否成交过订单
temp
.
setDealRecordNum
(
0
);
return
temp
;
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/MaterialReportBuilder.java
View file @
b16b40e2
...
@@ -3,7 +3,9 @@ package com.gic.haoban.manage.service.service.content.adaptor;
...
@@ -3,7 +3,9 @@ package com.gic.haoban.manage.service.service.content.adaptor;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum
;
import
com.gic.haoban.manage.api.enums.content.MaterialReportType
;
import
com.gic.haoban.manage.api.enums.content.MaterialReportType
;
import
com.gic.haoban.manage.api.util.notify.NoticeMessageUtil
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated
;
import
com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated
;
import
com.gic.haoban.manage.service.pojo.bo.content.context.MaterialReportContext
;
import
com.gic.haoban.manage.service.pojo.bo.content.context.MaterialReportContext
;
...
@@ -74,12 +76,19 @@ public class MaterialReportBuilder {
...
@@ -74,12 +76,19 @@ public class MaterialReportBuilder {
*/
*/
public
void
fillMainStore
(
MaterialReportContext
context
)
{
public
void
fillMainStore
(
MaterialReportContext
context
)
{
if
(
CollectionUtils
.
isEmpty
(
context
.
getStaffClerkRelations
()))
{
if
(
CollectionUtils
.
isEmpty
(
context
.
getStaffClerkRelations
()))
{
log
.
info
(
"不存在成员与导购的关联关系 staffId: {}"
,
context
.
getStaffId
());
return
;
return
;
}
}
if
(
context
.
getStaffClerkRelations
().
size
()
==
1
)
{
StaffClerkRelationDTO
staffClerkRelationDTO
=
context
.
getStaffClerkRelations
().
get
(
0
);
StaffClerkRelationDTO
staffClerkRelationDTO
=
context
.
getStaffClerkRelations
().
get
(
0
);
String
wxEnterpriseId
=
staffClerkRelationDTO
.
getWxEnterpriseId
();
if
(
staffClerkRelationDTO
.
getClerkType
()
!=
null
&&
staffClerkRelationDTO
.
getClerkType
()
==
2
)
{
log
.
info
(
"成员clerId:{}, staffId: {} 为区经角色"
,
staffClerkRelationDTO
.
getClerkId
(),
staffClerkRelationDTO
.
getStaffId
());
// 区经无主门店
context
.
setClerkId
(
staffClerkRelationDTO
.
getClerkId
());
context
.
setClerkId
(
staffClerkRelationDTO
.
getClerkId
());
TabHaobanClerkMainStoreRelated
mainStoreInfo
=
clerkMainStoreRelatedService
.
getMainStoreByStaffId
(
context
.
getStaffId
(),
wxEnterpriseId
);
}
return
;
}
TabHaobanClerkMainStoreRelated
mainStoreInfo
=
clerkMainStoreRelatedService
.
getMainStoreByStaffId
(
context
.
getStaffId
(),
context
.
getStaffInfo
().
getWxEnterpriseId
());
if
(
mainStoreInfo
!=
null
)
{
if
(
mainStoreInfo
!=
null
)
{
context
.
setMainStoreId
(
mainStoreInfo
.
getStoreId
());
context
.
setMainStoreId
(
mainStoreInfo
.
getStoreId
());
Optional
<
StaffClerkRelationDTO
>
mainClerkInfo
=
context
.
getStaffClerkRelations
()
Optional
<
StaffClerkRelationDTO
>
mainClerkInfo
=
context
.
getStaffClerkRelations
()
...
@@ -90,6 +99,7 @@ public class MaterialReportBuilder {
...
@@ -90,6 +99,7 @@ public class MaterialReportBuilder {
log
.
info
(
"成员{}与主门店{}不存在导购关联关系"
,
context
.
getStaffId
(),
context
.
getMainStoreId
());
log
.
info
(
"成员{}与主门店{}不存在导购关联关系"
,
context
.
getStaffId
(),
context
.
getMainStoreId
());
return
;
return
;
}
}
// 成员在主门店时的clerkId
context
.
setClerkId
(
mainClerkInfo
.
get
().
getClerkId
());
context
.
setClerkId
(
mainClerkInfo
.
get
().
getClerkId
());
}
}
}
}
...
@@ -100,6 +110,13 @@ public class MaterialReportBuilder {
...
@@ -100,6 +110,13 @@ public class MaterialReportBuilder {
*/
*/
public
void
buildMaterialReportData
(
MaterialReportContext
context
)
{
public
void
buildMaterialReportData
(
MaterialReportContext
context
)
{
// 获取该导购 在门店 的周报/月报数据
// 获取该导购 在门店 的周报/月报数据
String
clerkId
=
context
.
getClerkId
();
if
(
StringUtils
.
isBlank
(
context
.
getMainStoreId
()))
{
// 区经
}
else
{
String
mainStoreId
=
context
.
getMainStoreId
();
}
String
templatePath
=
""
;
String
templatePath
=
""
;
if
(
MaterialReportType
.
WEEK
.
getCode
().
equals
(
context
.
getReportType
()))
{
if
(
MaterialReportType
.
WEEK
.
getCode
().
equals
(
context
.
getReportType
()))
{
context
.
setUseMaterialNum
(
103
);
context
.
setUseMaterialNum
(
103
);
...
@@ -110,7 +127,6 @@ public class MaterialReportBuilder {
...
@@ -110,7 +127,6 @@ public class MaterialReportBuilder {
context
.
setConvertAmount
(
"12.3万"
);
context
.
setConvertAmount
(
"12.3万"
);
templatePath
=
month_template_report
;
templatePath
=
month_template_report
;
}
}
// 生成图片地址
// 生成图片地址
String
url
=
DrawImageUtils
.
drawImage
(
context
.
getFactoryCode
(),
context
.
getUseMaterialNum
()
+
""
,
context
.
getConvertAmount
(),
templatePath
);
String
url
=
DrawImageUtils
.
drawImage
(
context
.
getFactoryCode
(),
context
.
getUseMaterialNum
()
+
""
,
context
.
getConvertAmount
(),
templatePath
);
context
.
setMaterialReportUrl
(
url
);
context
.
setMaterialReportUrl
(
url
);
...
@@ -137,8 +153,7 @@ public class MaterialReportBuilder {
...
@@ -137,8 +153,7 @@ public class MaterialReportBuilder {
articleInfo
.
setAppid
(
config
.
getAppid
());
articleInfo
.
setAppid
(
config
.
getAppid
());
articleInfo
.
setTitle
(
context
.
getMessageTitle
());
articleInfo
.
setTitle
(
context
.
getMessageTitle
());
articleInfo
.
setDescription
(
context
.
getMessageDesc
());
articleInfo
.
setDescription
(
context
.
getMessageDesc
());
// pagePath 拼接参数?
articleInfo
.
setPagepath
(
NoticeMessageUtil
.
buildMiniAppUrl
(
NoticeMessageTypeEnum
.
MATERIAL_REPORT_NOTIFY
,
context
.
extendParams
(
context
.
getMainStoreId
())));
articleInfo
.
setPagepath
(
"/monthList"
);
articleInfo
.
setPicurl
(
context
.
getMaterialReportUrl
());
articleInfo
.
setPicurl
(
context
.
getMaterialReportUrl
());
newsSendMessage
.
setArticleMessages
(
Collections
.
singletonList
(
articleInfo
));
newsSendMessage
.
setArticleMessages
(
Collections
.
singletonList
(
articleInfo
));
return
newsSendMessage
;
return
newsSendMessage
;
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/PotentialCustomerNotifyBuilder.java
View file @
b16b40e2
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
.
adaptor
;
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
.
adaptor
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.dto.StaffDTO
;
import
com.gic.haoban.manage.api.dto.StaffDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.api.util.notify.NoticeMessageUtil
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated
;
import
com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated
;
import
com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO
;
import
com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO
;
...
@@ -15,8 +16,6 @@ import com.gic.haoban.manage.service.service.StaffClerkRelationService;
...
@@ -15,8 +16,6 @@ import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.haoban.manage.service.service.notify.NoticeMessageService
;
import
com.gic.haoban.manage.service.service.notify.NoticeMessageService
;
import
com.gic.wechat.api.dto.qywx.ItemDTO
;
import
com.gic.wechat.api.dto.qywx.ItemDTO
;
import
com.gic.wechat.api.dto.qywx.QywxNewsArticleMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxNewsSendMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO
;
import
com.gic.wechat.api.service.qywx.QywxSuiteApiService
;
import
com.gic.wechat.api.service.qywx.QywxSuiteApiService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -195,7 +194,7 @@ public class PotentialCustomerNotifyBuilder {
...
@@ -195,7 +194,7 @@ public class PotentialCustomerNotifyBuilder {
list
.
add
(
wxUserId
);
list
.
add
(
wxUserId
);
messageDTO
.
setAppid
(
config
.
getAppid
());
messageDTO
.
setAppid
(
config
.
getAppid
());
messageDTO
.
setUserIds
(
list
);
messageDTO
.
setUserIds
(
list
);
messageDTO
.
setPage
(
"/pageurl?"
);
messageDTO
.
setPage
(
NoticeMessageUtil
.
buildMiniAppUrl
(
NoticeMessageTypeEnum
.
MATERIAL_REPORT_NOTIFY
,
""
)
);
messageDTO
.
setTitle
(
"销售线索通知"
);
messageDTO
.
setTitle
(
"销售线索通知"
);
messageDTO
.
setItems
(
Collections
.
singletonList
(
itemDTO
));
messageDTO
.
setItems
(
Collections
.
singletonList
(
itemDTO
));
return
messageDTO
;
return
messageDTO
;
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/GroupMessageServiceImpl.java
View file @
b16b40e2
...
@@ -136,6 +136,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
...
@@ -136,6 +136,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
List
<
TabHaobanStaff
>
tabHaobanStaffs
=
staffService
.
listStaffWithIds
(
staffIds
);
List
<
TabHaobanStaff
>
tabHaobanStaffs
=
staffService
.
listStaffWithIds
(
staffIds
);
if
(
CollectionUtils
.
isEmpty
(
tabHaobanStaffs
))
{
if
(
CollectionUtils
.
isEmpty
(
tabHaobanStaffs
))
{
log
.
info
(
"成员不存在 staffIds:{}"
,
JSON
.
toJSONString
(
staffIds
));
return
Collections
.
emptyMap
();
return
Collections
.
emptyMap
();
}
}
return
tabHaobanStaffs
return
tabHaobanStaffs
...
@@ -181,6 +182,8 @@ public class GroupMessageServiceImpl implements GroupMessageService {
...
@@ -181,6 +182,8 @@ public class GroupMessageServiceImpl implements GroupMessageService {
private
void
doHandlerWithSend2Group
(
String
wxEnterpriseId
,
List
<
ClerkShareLogBO
>
clerkShareLogBos
,
GroupMessageInfoBo
groupMessageInfoBo
,
private
void
doHandlerWithSend2Group
(
String
wxEnterpriseId
,
List
<
ClerkShareLogBO
>
clerkShareLogBos
,
GroupMessageInfoBo
groupMessageInfoBo
,
WxEnterpriseQwDTO
qwInfo
,
WxEnterpriseQwDTO
qwInfo
,
String
corpId
,
Map
<
String
,
TabHaobanStaff
>
staffInfoMap
,
List
<
String
>
excludeMsgId
,
List
<
Long
>
clerkShareLogIds
)
{
String
corpId
,
Map
<
String
,
TabHaobanStaff
>
staffInfoMap
,
List
<
String
>
excludeMsgId
,
List
<
Long
>
clerkShareLogIds
)
{
log
.
info
(
"doHandlerWithSend2Group 处理群发到群组开始 >>>>>>> "
);
if
(
groupMessageInfoBo
.
getStartTime
()
==
null
||
groupMessageInfoBo
.
getEndTime
()
==
null
)
{
if
(
groupMessageInfoBo
.
getStartTime
()
==
null
||
groupMessageInfoBo
.
getEndTime
()
==
null
)
{
log
.
info
(
"doHandlerWithSend2Group 处理群发到群组缺少时间参数 {}"
,
JSON
.
toJSONString
(
groupMessageInfoBo
));
log
.
info
(
"doHandlerWithSend2Group 处理群发到群组缺少时间参数 {}"
,
JSON
.
toJSONString
(
groupMessageInfoBo
));
return
;
return
;
...
@@ -254,6 +257,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
...
@@ -254,6 +257,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
*/
*/
private
void
doHandlerWithSend2Customer
(
List
<
ClerkShareLogBO
>
clerkShareLogBos
,
GroupMessageInfoBo
groupMessageInfoBo
,
WxEnterpriseQwDTO
qwInfo
,
private
void
doHandlerWithSend2Customer
(
List
<
ClerkShareLogBO
>
clerkShareLogBos
,
GroupMessageInfoBo
groupMessageInfoBo
,
WxEnterpriseQwDTO
qwInfo
,
String
corpId
,
Map
<
String
,
TabHaobanStaff
>
staffInfoMap
,
List
<
String
>
excludeMsgId
,
List
<
Long
>
clerkShareLogIds
)
{
String
corpId
,
Map
<
String
,
TabHaobanStaff
>
staffInfoMap
,
List
<
String
>
excludeMsgId
,
List
<
Long
>
clerkShareLogIds
)
{
log
.
info
(
"doHandlerWithSend2Customer 处理群发到客户 开始 >>>>>>>>"
);
if
(
groupMessageInfoBo
.
getStartTime
()
==
null
||
groupMessageInfoBo
.
getEndTime
()
==
null
)
{
if
(
groupMessageInfoBo
.
getStartTime
()
==
null
||
groupMessageInfoBo
.
getEndTime
()
==
null
)
{
log
.
info
(
"doHandlerWithSend2Customer 处理群发到客户 缺少时间参数 {}"
,
JSON
.
toJSONString
(
groupMessageInfoBo
));
log
.
info
(
"doHandlerWithSend2Customer 处理群发到客户 缺少时间参数 {}"
,
JSON
.
toJSONString
(
groupMessageInfoBo
));
return
;
return
;
...
@@ -431,6 +435,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
...
@@ -431,6 +435,7 @@ public class GroupMessageServiceImpl implements GroupMessageService {
List
<
QywxGroupMsgSendResultDTO
.
GroupMsgSendResultInfo
>
groupMsgSendResultInfos
=
new
ArrayList
<>();
List
<
QywxGroupMsgSendResultDTO
.
GroupMsgSendResultInfo
>
groupMsgSendResultInfos
=
new
ArrayList
<>();
groupMsgSendResultInfos
.
addAll
(
serviceResponse
.
getResult
().
getSendResultInfos
());
groupMsgSendResultInfos
.
addAll
(
serviceResponse
.
getResult
().
getSendResultInfos
());
if
(
StringUtils
.
isNotBlank
(
serviceResponse
.
getResult
().
getCursor
()))
{
if
(
StringUtils
.
isNotBlank
(
serviceResponse
.
getResult
().
getCursor
()))
{
log
.
info
(
"递归获取成员群发结果 >>>>> "
);
String
tempCursor
=
serviceResponse
.
getResult
().
getCursor
();
String
tempCursor
=
serviceResponse
.
getResult
().
getCursor
();
this
.
queryGroupMsgSendResult
(
corpid
,
msgId
,
userId
,
tempCursor
);
this
.
queryGroupMsgSendResult
(
corpid
,
msgId
,
userId
,
tempCursor
);
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/InteractRecordServiceImpl.java
View file @
b16b40e2
...
@@ -7,9 +7,11 @@ import com.gic.commons.util.UniqueIdUtils;
...
@@ -7,9 +7,11 @@ import com.gic.commons.util.UniqueIdUtils;
import
com.gic.haoban.manage.service.dao.mapper.content.TabHaobanInteractRecordMapper
;
import
com.gic.haoban.manage.service.dao.mapper.content.TabHaobanInteractRecordMapper
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerStaticsBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerStaticsBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
import
com.gic.haoban.manage.service.service.content.PotentialCustomerService
;
import
com.gic.haoban.manage.service.service.content.adaptor.InteractRecordBuilder
;
import
com.gic.haoban.manage.service.service.content.adaptor.InteractRecordBuilder
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageHelper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -20,8 +22,11 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -20,8 +22,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -38,6 +43,8 @@ public class InteractRecordServiceImpl implements InteractRecordService {
...
@@ -38,6 +43,8 @@ public class InteractRecordServiceImpl implements InteractRecordService {
private
TabHaobanInteractRecordMapper
tabHaobanInteractRecordMapper
;
private
TabHaobanInteractRecordMapper
tabHaobanInteractRecordMapper
;
@Autowired
@Autowired
private
InteractRecordBuilder
interactRecordBuilder
;
private
InteractRecordBuilder
interactRecordBuilder
;
@Autowired
PotentialCustomerService
potentialCustomerService
;
/**
/**
* 查询互动记录
* 查询互动记录
...
@@ -71,12 +78,14 @@ public class InteractRecordServiceImpl implements InteractRecordService {
...
@@ -71,12 +78,14 @@ public class InteractRecordServiceImpl implements InteractRecordService {
@Override
@Override
public
Page
<
InteractRecordBO
>
queryInteractRecordPage
(
InteractRecordQO
interactRecordQO
)
{
public
Page
<
InteractRecordBO
>
queryInteractRecordPage
(
InteractRecordQO
interactRecordQO
)
{
// 默认查最近一年内的的数据
if
(
StringUtils
.
isBlank
(
interactRecordQO
.
getClerkId
()))
{
if
(
StringUtils
.
isBlank
(
interactRecordQO
.
getClerkId
()))
{
log
.
info
(
"queryInteractRecordPage 参数缺失"
);
log
.
info
(
"queryInteractRecordPage 参数缺失"
);
return
new
Page
<>();
return
new
Page
<>();
}
}
// 默认查最近一年内的的数据
if
(
interactRecordQO
.
getStartTime
()
==
null
||
interactRecordQO
.
getStartTime
().
before
(
DateUtil
.
addNumForYear
(
new
Date
(),
-
1
)))
{
interactRecordQO
.
setStartTime
(
DateUtil
.
addNumForYear
(
new
Date
(),
-
1
));
interactRecordQO
.
setStartTime
(
DateUtil
.
addNumForYear
(
new
Date
(),
-
1
));
}
PageHelper
.
startPage
(
interactRecordQO
.
getPageNum
(),
interactRecordQO
.
getPageSize
());
PageHelper
.
startPage
(
interactRecordQO
.
getPageNum
(),
interactRecordQO
.
getPageSize
());
com
.
github
.
pagehelper
.
Page
<
TabHaobanInteractRecord
>
pageResult
=
com
.
github
.
pagehelper
.
Page
<
TabHaobanInteractRecord
>
pageResult
=
(
com
.
github
.
pagehelper
.
Page
<
TabHaobanInteractRecord
>)
tabHaobanInteractRecordMapper
.
queryInteractRecordList
(
interactRecordQO
);
(
com
.
github
.
pagehelper
.
Page
<
TabHaobanInteractRecord
>)
tabHaobanInteractRecordMapper
.
queryInteractRecordList
(
interactRecordQO
);
...
@@ -91,8 +100,9 @@ public class InteractRecordServiceImpl implements InteractRecordService {
...
@@ -91,8 +100,9 @@ public class InteractRecordServiceImpl implements InteractRecordService {
.
map
(
item
->
{
.
map
(
item
->
{
InteractRecordBO
temp
=
new
InteractRecordBO
();
InteractRecordBO
temp
=
new
InteractRecordBO
();
BeanUtils
.
copyProperties
(
item
,
temp
);
BeanUtils
.
copyProperties
(
item
,
temp
);
temp
.
setRecordDesc
(
this
.
interactRecordBuilder
.
buildDesc
(
item
));
temp
.
setRecordDesc
(
interactRecordBuilder
.
buildDesc
(
item
));
temp
.
setExtendInfo
(
interactRecordBuilder
.
convertExtendInfo
(
item
));
temp
.
setExtendInfo
(
interactRecordBuilder
.
convertExtendInfo
(
item
));
interactRecordBuilder
.
warpRelationGoodsNum
(
temp
);
return
temp
;
return
temp
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
...
@@ -152,4 +162,65 @@ public class InteractRecordServiceImpl implements InteractRecordService {
...
@@ -152,4 +162,65 @@ public class InteractRecordServiceImpl implements InteractRecordService {
public
List
<
PotentialCustomerStaticsBO
>
staticsClerkNewInteractRecord
(
InteractRecordQO
interactRecordQO
)
{
public
List
<
PotentialCustomerStaticsBO
>
staticsClerkNewInteractRecord
(
InteractRecordQO
interactRecordQO
)
{
return
this
.
tabHaobanInteractRecordMapper
.
staticsClerkInteractRecordNew
(
interactRecordQO
);
return
this
.
tabHaobanInteractRecordMapper
.
staticsClerkInteractRecordNew
(
interactRecordQO
);
}
}
/**
* 会员合并操作
*
* @param mergeMemberId
* @param memberId
*/
@Override
public
void
mergeMember
(
String
mergeMemberId
,
String
memberId
)
{
if
(
StringUtils
.
isAnyBlank
(
memberId
,
mergeMemberId
))
{
log
.
info
(
"合并会员参数缺失 mergeMemberId: {} memberId: {}"
,
mergeMemberId
,
memberId
);
return
;
}
tabHaobanInteractRecordMapper
.
mergeMember
(
mergeMemberId
,
memberId
);
}
/**
* 会员授权事件
*
* @param memberId
* @param unionId
*/
@Override
public
void
memberAuthorized
(
String
memberId
,
String
unionId
)
{
InteractRecordQO
interactRecordQO
=
new
InteractRecordQO
();
interactRecordQO
.
setUnionId
(
unionId
);
List
<
TabHaobanInteractRecord
>
interactRecords
=
this
.
tabHaobanInteractRecordMapper
.
queryInteractRecordList
(
interactRecordQO
);
if
(
CollectionUtils
.
isEmpty
(
interactRecords
))
{
log
.
info
(
"会员授权事件, 该会员未产生过互动记录 {}"
,
unionId
);
return
;
}
tabHaobanInteractRecordMapper
.
memberAuthorized
(
memberId
,
unionId
);
Map
<
String
,
List
<
TabHaobanInteractRecord
>>
interactRecordMap
=
interactRecords
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
item
->
item
.
getClerkId
()
+
item
.
getMemberId
()));
for
(
Map
.
Entry
<
String
,
List
<
TabHaobanInteractRecord
>>
entry
:
interactRecordMap
.
entrySet
())
{
this
.
handlerRecord
(
memberId
,
entry
.
getValue
());
}
}
private
void
handlerRecord
(
String
memberId
,
List
<
TabHaobanInteractRecord
>
interactRecords
)
{
Integer
durationTime
=
interactRecords
.
stream
()
.
map
(
TabHaobanInteractRecord:
:
getDurationTime
)
.
filter
(
Objects:
:
nonNull
)
.
reduce
(
0
,
Integer:
:
sum
);
interactRecords
.
sort
(
Comparator
.
comparing
(
TabHaobanInteractRecord:
:
getId
).
reversed
());
TabHaobanInteractRecord
interactRecord
=
interactRecords
.
get
(
0
);
interactRecord
.
setMemberId
(
memberId
);
PotentialCustomerBO
potentialCustomerBO
=
potentialCustomerService
.
queryPotentialCustomerInfo
(
interactRecord
.
getClerkId
(),
memberId
);
if
(
potentialCustomerBO
==
null
)
{
potentialCustomerBO
=
interactRecordBuilder
.
build
(
interactRecord
);
}
potentialCustomerBO
.
setDurationTime
(
durationTime
);
potentialCustomerService
.
saveOrUpdatePotentialCustomer
(
potentialCustomerBO
);
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/MaterialReportServiceImpl.java
View file @
b16b40e2
...
@@ -89,6 +89,7 @@ public class MaterialReportServiceImpl implements MaterialReportService {
...
@@ -89,6 +89,7 @@ public class MaterialReportServiceImpl implements MaterialReportService {
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
staffInfo
.
getWxEnterpriseId
());
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
staffInfo
.
getWxEnterpriseId
());
QywxNewsSendMessageDTO
newsSendMessageDTO
=
materialReportBuilder
.
buildQywxNewsMessage
(
context
,
qwDTO
);
QywxNewsSendMessageDTO
newsSendMessageDTO
=
materialReportBuilder
.
buildQywxNewsMessage
(
context
,
qwDTO
);
if
(
newsSendMessageDTO
==
null
)
{
if
(
newsSendMessageDTO
==
null
)
{
log
.
info
(
"构建企业应用消息异常 {}"
);
return
;
return
;
}
}
log
.
info
(
"发送企业图文消息参数{}"
,
JSON
.
toJSONString
(
newsSendMessageDTO
));
log
.
info
(
"发送企业图文消息参数{}"
,
JSON
.
toJSONString
(
newsSendMessageDTO
));
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/PotentialCustomerServiceImpl.java
View file @
b16b40e2
...
@@ -229,4 +229,18 @@ public class PotentialCustomerServiceImpl implements PotentialCustomerService {
...
@@ -229,4 +229,18 @@ public class PotentialCustomerServiceImpl implements PotentialCustomerService {
// 如果该导购id是成员在主门店时的导购id 发送应用消息
// 如果该导购id是成员在主门店时的导购id 发送应用消息
potentialCustomerNotifyBuilder
.
sendApplicationMessage
(
context
);
potentialCustomerNotifyBuilder
.
sendApplicationMessage
(
context
);
}
}
/**
* 会员合并操作
*
* @param mergeMemberId
* @param memberId
*/
@Override
public
void
mergeMember
(
String
mergeMemberId
,
String
memberId
)
{
if
(
StringUtils
.
isAnyBlank
(
mergeMemberId
,
memberId
))
{
return
;
}
potentialCustomerMapper
.
mergeMember
(
mergeMemberId
,
memberId
);
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/message/InteractRecordMessageService.java
View file @
b16b40e2
...
@@ -69,22 +69,21 @@ public class InteractRecordMessageService {
...
@@ -69,22 +69,21 @@ public class InteractRecordMessageService {
}
}
}
}
if
(
null
==
interactRecordBO
.
getExtendInfo
())
{
interactRecordBO
.
setExtendInfo
(
InteractRecordExtendInfoBO
.
empty
());
}
// 组装扩展信息
// 组装扩展信息
if
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
()))
{
if
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
()))
{
// 浏览商品
// 浏览商品
if
(
CollectionUtils
.
isNotEmpty
(
interactRecordMessageBO
.
getGoodsIds
()))
{
if
(
StringUtils
.
isNotBlank
(
interactRecordMessageBO
.
getGoodsId
()))
{
if
(
interactRecordBO
.
getExtendInfo
()
==
null
){
interactRecordBO
.
getExtendInfo
().
getGoodsIds
().
add
(
interactRecordMessageBO
.
getGoodsId
());
interactRecordBO
.
setExtendInfo
(
InteractRecordExtendInfoBO
.
empty
());
}
interactRecordBO
.
getExtendInfo
().
getGoodsIds
().
addAll
(
interactRecordMessageBO
.
getGoodsIds
());
}
}
}
}
if
(
MaterialInteractRecordEventType
.
ORDER
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
()))
{
if
(
MaterialInteractRecordEventType
.
ORDER
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
()))
{
// 下单
// 下单
// 查询订单信息
// 查询订单信息
String
orderId
=
interactRecordMessageBO
.
getOrderId
();
String
orderNumber
=
interactRecordMessageBO
.
getOrderNumber
();
}
}
interactRecordService
.
saveOrUpdateInteractRecord
(
interactRecordBO
);
interactRecordService
.
saveOrUpdateInteractRecord
(
interactRecordBO
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/InteractRecordApiServiceImpl.java
View file @
b16b40e2
...
@@ -8,10 +8,13 @@ import com.gic.haoban.manage.api.enums.content.InteractRecordExtendInfoDTO;
...
@@ -8,10 +8,13 @@ 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.InteractRecordInfoDTO
;
import
com.gic.haoban.manage.api.service.content.InteractRecordApiService
;
import
com.gic.haoban.manage.api.service.content.InteractRecordApiService
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.MemberAttrChangeBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
import
com.gic.haoban.manage.service.service.content.PotentialCustomerService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -32,6 +35,8 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
...
@@ -32,6 +35,8 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
@Autowired
@Autowired
private
InteractRecordService
interactRecordService
;
private
InteractRecordService
interactRecordService
;
@Autowired
PotentialCustomerService
potentialCustomerService
;
/**
/**
* 查询互动记录
* 查询互动记录
...
@@ -72,4 +77,37 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
...
@@ -72,4 +77,37 @@ public class InteractRecordApiServiceImpl implements InteractRecordApiService {
result
.
setResult
(
recordInfos
);
result
.
setResult
(
recordInfos
);
return
ServiceResponse
.
success
(
result
);
return
ServiceResponse
.
success
(
result
);
}
}
/**
* 处理member信息变化的MQ
*
* @param params
* @return
*/
@Override
public
ServiceResponse
<
Void
>
memberChangeMQ
(
String
params
)
{
if
(
StringUtils
.
isBlank
(
params
))
{
log
.
info
(
"会员id发生变化 {}"
,
params
);
return
ServiceResponse
.
success
();
}
MemberAttrChangeBO
memberAttrChangeBO
=
JSON
.
parseObject
(
params
,
MemberAttrChangeBO
.
class
);
if
(
memberAttrChangeBO
==
null
)
{
return
ServiceResponse
.
success
();
}
if
(
MemberAttrChangeBO
.
MemberChangeOpt
.
MINI_APP_AUTHORIZED
.
getCode
().
equals
(
memberAttrChangeBO
.
getOpt
()))
{
// 会员授权事件
// 根据unionId 刷新 memberId 并写入销售线索
interactRecordService
.
memberAuthorized
(
memberAttrChangeBO
.
getMemberId
(),
memberAttrChangeBO
.
getUnionId
());
}
if
(
MemberAttrChangeBO
.
MemberChangeOpt
.
MEMBER_MERGE
.
getCode
().
equals
(
memberAttrChangeBO
.
getOpt
()))
{
//会员合并
// 把合并的memberId 修改成 合并后的memberId
interactRecordService
.
mergeMember
(
memberAttrChangeBO
.
getMergeMemberId
(),
memberAttrChangeBO
.
getMemberId
());
potentialCustomerService
.
mergeMember
(
memberAttrChangeBO
.
getMergeMemberId
(),
memberAttrChangeBO
.
getMemberId
());
}
return
ServiceResponse
.
success
();
}
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/MaterialShareLogApiServiceImpl.java
View file @
b16b40e2
...
@@ -40,7 +40,7 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic
...
@@ -40,7 +40,7 @@ public class MaterialShareLogApiServiceImpl implements MaterialShareLogApiServic
ClerkShareLogBO
clerkShareLogBO
=
new
ClerkShareLogBO
();
ClerkShareLogBO
clerkShareLogBO
=
new
ClerkShareLogBO
();
BeanUtils
.
copyProperties
(
clerkShareMaterialLogDTO
,
clerkShareLogBO
);
BeanUtils
.
copyProperties
(
clerkShareMaterialLogDTO
,
clerkShareLogBO
);
Long
logId
=
clerkShareLogService
.
saveClerkShareLog
(
clerkShareLogBO
);
Long
logId
=
clerkShareLogService
.
saveClerkShareLog
(
clerkShareLogBO
);
if
(
logId
!=
null
){
if
(
logId
!=
null
&&
ClerkShareMaterialType
.
SHARE_PYQ
.
getCode
().
equals
(
clerkShareLogBO
.
getShareType
())
){
// MQ 通知处理导购分享日志
// MQ 通知处理导购分享日志
TriggerCustomerDetailLogDTO
triggerCustomerDetailLog
=
new
TriggerCustomerDetailLogDTO
();
TriggerCustomerDetailLogDTO
triggerCustomerDetailLog
=
new
TriggerCustomerDetailLogDTO
();
triggerCustomerDetailLog
.
setEnterpriseId
(
clerkShareLogBO
.
getEnterpriseId
());
triggerCustomerDetailLog
.
setEnterpriseId
(
clerkShareLogBO
.
getEnterpriseId
());
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/task/QywxGroupMsgTaskApiServiceImpl.java
View file @
b16b40e2
...
@@ -53,6 +53,7 @@ public class QywxGroupMsgTaskApiServiceImpl implements QywxGroupMsgTaskApiServic
...
@@ -53,6 +53,7 @@ public class QywxGroupMsgTaskApiServiceImpl implements QywxGroupMsgTaskApiServic
@Override
@Override
public
ServiceResponse
<
Void
>
groupMsgTaskJob
(
String
params
)
{
public
ServiceResponse
<
Void
>
groupMsgTaskJob
(
String
params
)
{
log
.
info
(
"执行群发定时任务 {}"
,
DateUtil
.
datetimeToString
(
new
Date
()));
// 获取开启【内容】权限的企业id
// 获取开启【内容】权限的企业id
List
<
String
>
enterpriseIds
=
groupMessageService
.
hasMaterialRightEnterprise
();
List
<
String
>
enterpriseIds
=
groupMessageService
.
hasMaterialRightEnterprise
();
// 获取企业 (当前时间 - 30分钟, 当前时间)范围内的 导购分享记录。按创建时间排序
// 获取企业 (当前时间 - 30分钟, 当前时间)范围内的 导购分享记录。按创建时间排序
...
...
haoban-manage3-service/src/main/resources/dubbo-haoban-manage-service.xml
View file @
b16b40e2
...
@@ -214,5 +214,6 @@
...
@@ -214,5 +214,6 @@
ref=
"interactRecordApiService"
timeout=
"10000"
/>
ref=
"interactRecordApiService"
timeout=
"10000"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.GoodsInfoOutApiService"
id=
"goodsInfoOutApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.GoodsInfoOutApiService"
id=
"goodsInfoOutApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.GoodsCenterApiService"
id=
"goodsCenterApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
</beans>
</beans>
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/content/TabHaobanInteractRecordMapper.xml
View file @
b16b40e2
...
@@ -261,7 +261,10 @@
...
@@ -261,7 +261,10 @@
select
<include
refid=
"baseSql"
/>
select
<include
refid=
"baseSql"
/>
from tab_haoban_interact_record
from tab_haoban_interact_record
<where>
<where>
clerk_id = #{clerkId} and delete_flag = 0
delete_flag = 0
<if
test=
"clerkId != null and clerkId != ''"
>
and clerk_id = #{clerkId}
</if>
<if
test=
"memberId != null and memberId != ''"
>
<if
test=
"memberId != null and memberId != ''"
>
and member_id = #{memberId}
and member_id = #{memberId}
</if>
</if>
...
@@ -271,6 +274,9 @@
...
@@ -271,6 +274,9 @@
<if
test=
"endTime != null"
>
<if
test=
"endTime != null"
>
and create_time
<![CDATA[ <= ]]>
#{endTime}
and create_time
<![CDATA[ <= ]]>
#{endTime}
</if>
</if>
<if
test=
"unionId != null and unionId != '' "
>
and union_id = #{unionId}
</if>
</where>
</where>
order by id desc
order by id desc
</select>
</select>
...
@@ -295,5 +301,17 @@
...
@@ -295,5 +301,17 @@
order by null
order by null
</select>
</select>
<update
id=
"mergeMember"
>
update tab_haoban_interact_record
set member_id = #{memberId}
where member_id = #{mergeMemberId} and delete_flag = 0
</update>
<update
id=
"memberAuthorized"
>
update tab_haoban_interact_record
set member_id = #{memberId}
where union_id = #{unionId} and delete_flag = 0
</update>
</mapper>
</mapper>
haoban-manage3-service/src/main/resources/mapper/content/TabHaobanPotentialCustomerMapper.xml
View file @
b16b40e2
...
@@ -276,5 +276,11 @@
...
@@ -276,5 +276,11 @@
where clerk_id = #{clerkId} and delete_flag = 0 and member_id = #{memberId}
where clerk_id = #{clerkId} and delete_flag = 0 and member_id = #{memberId}
</select>
</select>
<update
id=
"mergeMember"
>
update tab_haoban_potential_customer
set member_id = #{memberId}
where member_id = #{memberId} and delete_flag = 0
</update>
</mapper>
</mapper>
haoban-manage3-service/src/test/java/InteractRecordTest.java
View file @
b16b40e2
import
cn.hutool.crypto.digest.MD5
;
import
cn.hutool.crypto.digest.MD5
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO
;
import
com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO
;
import
com.gic.haoban.manage.api.dto.qdto.content.InteractRecordQDTO
;
import
com.gic.haoban.manage.api.enums.content.InteractRecordInfoDTO
;
import
com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
;
import
com.gic.haoban.manage.api.enums.content.MaterialInteractRecordEventType
;
import
com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
;
import
com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
;
import
com.gic.haoban.manage.api.service.content.InteractRecordApiService
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanOwnerLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.chat.GroupChatPlanOwnerLogMapper
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.message.InteractRecordMessageBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
...
@@ -33,6 +40,8 @@ public class InteractRecordTest {
...
@@ -33,6 +40,8 @@ public class InteractRecordTest {
private
InteractRecordService
interactRecordService
;
private
InteractRecordService
interactRecordService
;
@Autowired
@Autowired
private
InteractRecordMessageService
interactRecordMessageService
;
private
InteractRecordMessageService
interactRecordMessageService
;
@Autowired
InteractRecordApiService
interactRecordApiService
;
String
eid
=
"ff8080815dacd3a2015dacd3ef5c0000"
;
String
eid
=
"ff8080815dacd3a2015dacd3ef5c0000"
;
...
@@ -43,9 +52,12 @@ public class InteractRecordTest {
...
@@ -43,9 +52,12 @@ public class InteractRecordTest {
@Test
@Test
public
void
queryInteractPageTest
(){
public
void
queryInteractPageTest
(){
InteractRecordQO
interactRecordQO
=
new
InteractRecordQO
();
InteractRecordQDTO
interactRecordQO
=
new
InteractRecordQDTO
();
interactRecordQO
.
setClerkId
(
staffId
);
interactRecordQO
.
setClerkId
(
clerkId
);
interactRecordService
.
queryInteractRecordPage
(
interactRecordQO
);
interactRecordQO
.
setMemberId
(
memberId
);
ServiceResponse
<
Page
<
InteractRecordInfoDTO
>>
serviceResponse
=
interactRecordApiService
.
queryInteractRecordList
(
interactRecordQO
);
System
.
out
.
println
(
JSON
.
toJSONString
(
serviceResponse
));
}
}
@Test
@Test
...
@@ -60,7 +72,7 @@ public class InteractRecordTest {
...
@@ -60,7 +72,7 @@ public class InteractRecordTest {
message
.
setMaterialId
(
"1232139123912"
);
message
.
setMaterialId
(
"1232139123912"
);
message
.
setChannelSource
(
TriggerCustomerChannelType
.
PYQ
.
getCode
());
message
.
setChannelSource
(
TriggerCustomerChannelType
.
PYQ
.
getCode
());
message
.
setEventType
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
());
message
.
setEventType
(
MaterialInteractRecordEventType
.
VISIT_PRODUCT
.
getCode
());
message
.
setGoodsId
s
(
Collections
.
singletonList
(
"fbc508e395f846ef9005852c420e1c23"
)
);
message
.
setGoodsId
(
"fbc508e395f846ef9005852c420e1c23"
);
message
.
setDurationTime
(
2000
);
message
.
setDurationTime
(
2000
);
message
.
setBusinessUUId
(
businessId
);
message
.
setBusinessUUId
(
businessId
);
message
.
setLastAccessTime
(
new
Date
().
getTime
());
message
.
setLastAccessTime
(
new
Date
().
getTime
());
...
...
haoban-manage3-service/src/test/java/MaterialReportServiceTest.java
View file @
b16b40e2
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum
;
import
com.gic.haoban.manage.api.enums.content.MaterialReportType
;
import
com.gic.haoban.manage.api.enums.content.MaterialReportType
;
import
com.gic.haoban.manage.api.service.content.task.QywxGroupMsgTaskApiService
;
import
com.gic.haoban.manage.api.service.content.task.QywxGroupMsgTaskApiService
;
import
com.gic.haoban.manage.api.util.notify.NoticeMessageUtil
;
import
com.gic.haoban.manage.service.dao.mapper.content.TabHaobanInteractRecordMapper
;
import
com.gic.haoban.manage.service.dao.mapper.content.TabHaobanInteractRecordMapper
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.service.content.MaterialReportService
;
import
com.gic.haoban.manage.service.service.content.MaterialReportService
;
...
@@ -22,8 +25,8 @@ import java.util.List;
...
@@ -22,8 +25,8 @@ import java.util.List;
* @Version
* @Version
**/
**/
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
//
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
(
locations
=
{
"classpath:applicationContext-conf.xml"
})
//
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public
class
MaterialReportServiceTest
{
public
class
MaterialReportServiceTest
{
public
MaterialReportServiceTest
(){
public
MaterialReportServiceTest
(){
...
@@ -50,6 +53,7 @@ public class MaterialReportServiceTest {
...
@@ -50,6 +53,7 @@ public class MaterialReportServiceTest {
@Test
@Test
public
void
weekReport
(){
public
void
weekReport
(){
qywxGroupMsgTaskApiService
.
handlerMaterialMonthReport
(
""
);
qywxGroupMsgTaskApiService
.
handlerMaterialMonthReport
(
""
);
qywxGroupMsgTaskApiService
.
handlerMaterialWeekReport
(
""
);
}
}
@Test
@Test
...
@@ -75,4 +79,17 @@ public class MaterialReportServiceTest {
...
@@ -75,4 +79,17 @@ public class MaterialReportServiceTest {
List
<
TabHaobanInteractRecord
>
tabHaobanInteractRecords
=
interactRecordMapper
.
queryAllByLimit
(
temp
);
List
<
TabHaobanInteractRecord
>
tabHaobanInteractRecords
=
interactRecordMapper
.
queryAllByLimit
(
temp
);
System
.
out
.
println
(
JSON
.
toJSONString
(
tabHaobanInteractRecords
));
System
.
out
.
println
(
JSON
.
toJSONString
(
tabHaobanInteractRecords
));
}
}
@Test
public
void
urlTest
(){
JSONObject
params
=
new
JSONObject
();
//params.put("clerkId", "300b60c7f8874ca2b9cc696ad6b6a480");
params
.
put
(
"s"
,
"ff8080816e216c04016e34294282004a"
);
params
.
put
(
"t"
,
1
);
String
s
=
params
.
toJSONString
();
String
s1
=
NoticeMessageUtil
.
buildMiniAppUrl
(
NoticeMessageTypeEnum
.
MATERIAL_REPORT_NOTIFY
,
s
);
System
.
out
.
println
(
"/pages/route/index?pageType=hbapp_material_report&data="
.
length
());
System
.
out
.
println
(
s1
);
System
.
out
.
println
(
s1
.
length
());
}
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/WxStaffController.java
View file @
b16b40e2
...
@@ -1614,6 +1614,7 @@ public class WxStaffController extends WebBaseController {
...
@@ -1614,6 +1614,7 @@ public class WxStaffController extends WebBaseController {
StoreListVO
vo
=
new
StoreListVO
();
StoreListVO
vo
=
new
StoreListVO
();
vo
.
setStoreId
(
store
.
getStoreId
());
vo
.
setStoreId
(
store
.
getStoreId
());
vo
.
setStoreName
(
store
.
getStoreName
());
vo
.
setStoreName
(
store
.
getStoreName
());
vo
.
setStoreCode
(
store
.
getStoreCode
());
voList
.
add
(
vo
)
;
voList
.
add
(
vo
)
;
}
}
}
}
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/InteractRecordController.java
View file @
b16b40e2
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
content
;
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
content
;
import
cn.hutool.core.text.StrSpliter
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.content.api.dto.material.ContentMaterialBaseDTO
;
import
com.gic.content.api.dto.material.ContentMaterialBaseDTO
;
import
com.gic.haoban.manage.api.dto.qdto.content.InteractRecordQDTO
;
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.InteractRecordInfoDTO
;
import
com.gic.haoban.manage.api.service.content.InteractRecordApiService
;
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.controller.content.adaptor.ContentMaterialAdaptor
;
import
com.gic.haoban.manage.web.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.web.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.web.vo.content.ContentMaterialInfoVO
;
import
com.gic.haoban.manage.web.vo.content.ContentMaterialInfoVO
;
import
com.gic.haoban.manage.web.vo.content.InteractRecordExtendInfoVO
;
import
com.gic.haoban.manage.web.vo.content.InteractRecordVO
;
import
com.gic.haoban.manage.web.vo.content.InteractRecordVO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -64,11 +69,21 @@ public class InteractRecordController {
...
@@ -64,11 +69,21 @@ public class InteractRecordController {
.
stream
()
.
stream
()
.
map
(
item
->
{
.
map
(
item
->
{
InteractRecordVO
interactRecordVO
=
new
InteractRecordVO
();
InteractRecordVO
interactRecordVO
=
new
InteractRecordVO
();
BeanUtils
.
copyProperties
(
i
nteractRecordVO
,
interactRecordVO
);
BeanUtils
.
copyProperties
(
i
tem
,
interactRecordVO
);
ContentMaterialBaseDTO
materialBaseInfo
=
materialBaseMap
.
get
(
Long
.
parseLong
(
item
.
getBizId
()));
ContentMaterialBaseDTO
materialBaseInfo
=
materialBaseMap
.
get
(
Long
.
parseLong
(
item
.
getBizId
()));
if
(
materialBaseInfo
!=
null
)
{
if
(
materialBaseInfo
!=
null
)
{
ContentMaterialInfoVO
temp
=
new
ContentMaterialInfoVO
();
ContentMaterialInfoVO
temp
=
new
ContentMaterialInfoVO
();
BeanUtils
.
copyProperties
(
materialBaseInfo
,
item
);
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
));
}
if
(
null
!=
item
.
getExtendInfo
())
{
InteractRecordExtendInfoVO
extendInfoVO
=
EntityUtil
.
changeEntityByJSON
(
InteractRecordExtendInfoVO
.
class
,
item
.
getExtendInfo
());
interactRecordVO
.
setExtendInfo
(
extendInfoVO
);
}
interactRecordVO
.
setContentMaterialInfoVO
(
temp
);
interactRecordVO
.
setContentMaterialInfoVO
(
temp
);
}
}
return
interactRecordVO
;
return
interactRecordVO
;
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/InteractRecordExtendInfoVO.java
View file @
b16b40e2
...
@@ -19,40 +19,19 @@ public class InteractRecordExtendInfoVO implements Serializable {
...
@@ -19,40 +19,19 @@ public class InteractRecordExtendInfoVO implements Serializable {
private
static
final
long
serialVersionUID
=
799914036029100258L
;
private
static
final
long
serialVersionUID
=
799914036029100258L
;
/**
/**
* 订单编号
* 素材关联的商品信息商品信息
*/
private
String
orderNumber
;
/**
* 订单创建时间
*/
*/
private
Date
orderCreateTime
;
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
/**
* 订单商品项总数
*/
private
Integer
orderTotalNum
;
/**
* 订单应付
*/
private
BigDecimal
orderPay
;
/**
/**
*
订单实付
*
素材关联的订单信息
*/
*/
private
BigDecimal
realPay
;
private
List
<
ExtendOrderInfo
>
extendOrderInfos
;
/**
/**
* 失效商品数量
* 失效商品数量
*/
*/
private
Integer
invalidGoodsNum
;
private
Integer
invalidGoodsNum
;
/**
* 素材扩展商品信息
*/
private
List
<
ExtendGoodsInfo
>
extendGoodsInfos
;
@Data
@Data
public
static
class
ExtendGoodsInfo
{
public
static
class
ExtendGoodsInfo
{
...
@@ -84,5 +63,45 @@ public class InteractRecordExtendInfoVO implements Serializable {
...
@@ -84,5 +63,45 @@ public class InteractRecordExtendInfoVO implements Serializable {
* 商品单价
* 商品单价
*/
*/
private
BigDecimal
salePrice
;
private
BigDecimal
salePrice
;
/***
* 1 erp同步
* 2 自建
* @see com.gic.store.goods.enums.GoodsSourceTypeEnum
*/
private
Integer
sourceType
;
}
@Data
public
static
class
ExtendOrderInfo
{
/**
* 订单编号
*/
private
String
orderNumber
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
/**
* 订单商品项总数
*/
private
Integer
orderTotalNum
;
/**
* 订单应付
*/
private
BigDecimal
orderPay
;
/**
* 订单实付
*/
private
BigDecimal
realPay
;
/**
* 订单项商品信息
*/
private
List
<
ExtendGoodsInfo
>
orderGoodsInfos
;
}
}
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/InteractRecordVO.java
View file @
b16b40e2
...
@@ -43,6 +43,11 @@ public class InteractRecordVO implements Serializable {
...
@@ -43,6 +43,11 @@ public class InteractRecordVO implements Serializable {
private
Date
createTime
;
private
Date
createTime
;
/**
/**
* 1 "朋友圈"; 2 "客户群";3 "对话框";4 "复制文案"; 5"下载素材"
*/
private
Integer
channelSource
;
/**
* 记录事件类型
* 记录事件类型
* 1浏览素材;2 查看商品; 3 购买商品
* 1浏览素材;2 查看商品; 3 购买商品
* 通过此类型区分 弹窗提示
* 通过此类型区分 弹窗提示
...
@@ -50,6 +55,16 @@ public class InteractRecordVO implements Serializable {
...
@@ -50,6 +55,16 @@ public class InteractRecordVO implements Serializable {
private
Integer
eventType
;
private
Integer
eventType
;
/**
/**
* 浏览的商品数量
*/
private
Integer
visitGoodsNum
;
/**
* 下单的商品数量
*/
private
Integer
orderGoodsNum
;
/**
* 素材信息
* 素材信息
* null 代表素材被删除
* null 代表素材被删除
*/
*/
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/SimpleGoodsInfoVO.java
View file @
b16b40e2
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.web.vo.content;
...
@@ -3,6 +3,7 @@ package com.gic.haoban.manage.web.vo.content;
import
lombok.Data
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
/**
* @Author MUSI
* @Author MUSI
...
@@ -51,7 +52,7 @@ public class SimpleGoodsInfoVO implements Serializable {
...
@@ -51,7 +52,7 @@ public class SimpleGoodsInfoVO implements Serializable {
/**
/**
* 商品价格
* 商品价格
*/
*/
private
String
salePrice
;
private
BigDecimal
salePrice
;
/**
/**
* 商品状态
* 商品状态
...
...
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