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
7d4e90ec
Commit
7d4e90ec
authored
May 27, 2025
by
王祖波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发送商品、素材自动建联
parent
a29fa8d1
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
157 additions
and
47 deletions
+157
-47
DealQwSendDTO.java
...ava/com/gic/haoban/manage/api/dto/send/DealQwSendDTO.java
+16
-0
ContactFollowTypeEnum.java
...aoban/manage/api/enums/contact/ContactFollowTypeEnum.java
+14
-8
ContactFollowBatchQDTO.java
...aoban/manage/api/qdto/contact/ContactFollowBatchQDTO.java
+19
-0
ContactFollowServiceImpl.java
...ervice/service/contact/impl/ContactFollowServiceImpl.java
+29
-0
QwSendApiServiceImpl.java
...e/service/service/out/impl/send/QwSendApiServiceImpl.java
+1
-1
QwSendMsgService.java
.../haoban/manage/service/service/send/QwSendMsgService.java
+2
-2
QwSendMsgServiceImpl.java
...anage/service/service/send/impl/QwSendMsgServiceImpl.java
+63
-9
dubbo-haoban-manage-service.xml
...ervice/src/main/resources/dubbo-haoban-manage-service.xml
+1
-0
ClerkMaterialShareController.java
.../web/controller/content/ClerkMaterialShareController.java
+12
-27
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/send/DealQwSendDTO.java
View file @
7d4e90ec
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
send
;
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
send
;
import
com.gic.haoban.manage.api.dto.anaylsis.ClerkShareGoodsLogDTO
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* Created by wangzubo on 2025/3/25.
* Created by wangzubo on 2025/3/25.
...
@@ -60,6 +63,11 @@ public class DealQwSendDTO implements Serializable {
...
@@ -60,6 +63,11 @@ public class DealQwSendDTO implements Serializable {
*/
*/
private
String
enterpriseId
;
private
String
enterpriseId
;
/**
* 商品分享信息
*/
private
List
<
ClerkShareGoodsLogDTO
>
shareGoodsList
;
public
FinishQwSendBO
()
{
public
FinishQwSendBO
()
{
}
}
...
@@ -119,6 +127,14 @@ public class DealQwSendDTO implements Serializable {
...
@@ -119,6 +127,14 @@ public class DealQwSendDTO implements Serializable {
public
void
setEnterpriseId
(
String
enterpriseId
)
{
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
this
.
enterpriseId
=
enterpriseId
;
}
}
public
List
<
ClerkShareGoodsLogDTO
>
getShareGoodsList
()
{
return
shareGoodsList
;
}
public
void
setShareGoodsList
(
List
<
ClerkShareGoodsLogDTO
>
shareGoodsList
)
{
this
.
shareGoodsList
=
shareGoodsList
;
}
}
}
public
static
class
QwSendMsgBO
implements
Serializable
{
public
static
class
QwSendMsgBO
implements
Serializable
{
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/contact/ContactFollowTypeEnum.java
View file @
7d4e90ec
...
@@ -4,22 +4,24 @@ import org.apache.commons.lang3.StringUtils;
...
@@ -4,22 +4,24 @@ import org.apache.commons.lang3.StringUtils;
public
enum
ContactFollowTypeEnum
{
public
enum
ContactFollowTypeEnum
{
PRIVATE_PHONE
(
1
,
"私人电话"
,
"私人电话"
),
PRIVATE_PHONE
(
1
,
"私人电话"
,
"私人电话"
,
null
),
WECHAT_SESSION
(
2
,
"企微会话"
,
"企微会话"
),
WECHAT_SESSION
(
2
,
"企微会话"
,
"企微会话"
,
null
),
PRODUCT
(
3
,
"发送商品"
,
"商品"
),
PRODUCT
(
3
,
"发送商品"
,
"商品"
,
ContactAutoTypeEnum
.
GOODS_RECOMMEND
.
getCode
()
),
WECHAT_GROUP_SEND
(
4
,
"企微群发"
,
"企微群发"
),
WECHAT_GROUP_SEND
(
4
,
"企微群发"
,
"企微群发"
,
null
),
CONTACT
(
5
,
"标记建联"
,
"标记了建联"
),
CONTACT
(
5
,
"标记建联"
,
"标记了建联"
,
null
),
AUTO_CONTACT
(
6
,
"系统自动标记"
,
"系统自动标记"
),
AUTO_CONTACT
(
6
,
"系统自动标记"
,
"系统自动标记"
,
null
),
MATERIAL
(
7
,
"营销素材"
,
"营销素材"
);
MATERIAL
(
7
,
"营销素材"
,
"营销素材"
,
ContactAutoTypeEnum
.
MATERIAL
.
getCode
()
);
private
final
int
code
;
private
final
int
code
;
private
final
String
description
;
private
final
String
description
;
private
final
String
textMatch
;
private
final
String
textMatch
;
private
final
Integer
contactAutoType
;
ContactFollowTypeEnum
(
int
code
,
String
description
,
String
textMatch
)
{
ContactFollowTypeEnum
(
int
code
,
String
description
,
String
textMatch
,
Integer
contactAutoType
)
{
this
.
code
=
code
;
this
.
code
=
code
;
this
.
description
=
description
;
this
.
description
=
description
;
this
.
textMatch
=
textMatch
;
this
.
textMatch
=
textMatch
;
this
.
contactAutoType
=
contactAutoType
;
}
}
public
String
getTextMatch
()
{
public
String
getTextMatch
()
{
...
@@ -34,6 +36,10 @@ public enum ContactFollowTypeEnum {
...
@@ -34,6 +36,10 @@ public enum ContactFollowTypeEnum {
return
description
;
return
description
;
}
}
public
Integer
getContactAutoType
()
{
return
contactAutoType
;
}
public
static
ContactFollowTypeEnum
fromCode
(
int
code
)
{
public
static
ContactFollowTypeEnum
fromCode
(
int
code
)
{
for
(
ContactFollowTypeEnum
type
:
values
())
{
for
(
ContactFollowTypeEnum
type
:
values
())
{
if
(
type
.
code
==
code
)
{
if
(
type
.
code
==
code
)
{
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/qdto/contact/ContactFollowBatchQDTO.java
View file @
7d4e90ec
...
@@ -78,6 +78,11 @@ public class ContactFollowBatchQDTO implements Serializable {
...
@@ -78,6 +78,11 @@ public class ContactFollowBatchQDTO implements Serializable {
private
String
memberId
;
private
String
memberId
;
/**
/**
* 外部联系人id
*/
private
String
externalUserId
;
/**
* 跟进时间
* 跟进时间
*/
*/
private
Date
followTime
;
private
Date
followTime
;
...
@@ -90,6 +95,12 @@ public class ContactFollowBatchQDTO implements Serializable {
...
@@ -90,6 +95,12 @@ public class ContactFollowBatchQDTO implements Serializable {
this
.
followTime
=
followTime
;
this
.
followTime
=
followTime
;
}
}
public
MemberFollow
(
String
memberId
,
String
externalUserId
,
Date
followTime
)
{
this
.
memberId
=
memberId
;
this
.
externalUserId
=
externalUserId
;
this
.
followTime
=
followTime
;
}
public
String
getMemberId
()
{
public
String
getMemberId
()
{
return
memberId
;
return
memberId
;
}
}
...
@@ -98,6 +109,14 @@ public class ContactFollowBatchQDTO implements Serializable {
...
@@ -98,6 +109,14 @@ public class ContactFollowBatchQDTO implements Serializable {
this
.
memberId
=
memberId
;
this
.
memberId
=
memberId
;
}
}
public
String
getExternalUserId
()
{
return
externalUserId
;
}
public
void
setExternalUserId
(
String
externalUserId
)
{
this
.
externalUserId
=
externalUserId
;
}
public
Date
getFollowTime
()
{
public
Date
getFollowTime
()
{
return
followTime
;
return
followTime
;
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/contact/impl/ContactFollowServiceImpl.java
View file @
7d4e90ec
...
@@ -8,6 +8,7 @@ import com.gic.api.base.commons.ServiceResponse;
...
@@ -8,6 +8,7 @@ import com.gic.api.base.commons.ServiceResponse;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowDTO
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowDTO
;
...
@@ -15,9 +16,11 @@ import com.gic.haoban.manage.api.dto.contact.ContactFollowGoodsDTO;
...
@@ -15,9 +16,11 @@ import com.gic.haoban.manage.api.dto.contact.ContactFollowGoodsDTO;
import
com.gic.haoban.manage.api.enums.contact.ContactFollowTypeEnum
;
import
com.gic.haoban.manage.api.enums.contact.ContactFollowTypeEnum
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactLogQDTO
;
import
com.gic.haoban.manage.service.dao.mapper.contact.TabContactFollowMapper
;
import
com.gic.haoban.manage.service.dao.mapper.contact.TabContactFollowMapper
;
import
com.gic.haoban.manage.service.entity.contact.TabContactFollow
;
import
com.gic.haoban.manage.service.entity.contact.TabContactFollow
;
import
com.gic.haoban.manage.service.service.contact.ContactFollowService
;
import
com.gic.haoban.manage.service.service.contact.ContactFollowService
;
import
com.gic.mq.sdk.GicMQClient
;
import
com.gic.store.goods.service.StoreGoodsService
;
import
com.gic.store.goods.service.StoreGoodsService
;
import
com.gic.store.goods.vo.StoreGoodsVO
;
import
com.gic.store.goods.vo.StoreGoodsVO
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageHelper
;
...
@@ -85,6 +88,32 @@ public class ContactFollowServiceImpl implements ContactFollowService {
...
@@ -85,6 +88,32 @@ public class ContactFollowServiceImpl implements ContactFollowService {
return
contactFollow
;
return
contactFollow
;
}).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
}).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
contactFollowMapper
.
insertBatch
(
followList
);
contactFollowMapper
.
insertBatch
(
followList
);
// 部分跟进发送自动建联
autoContactSend
(
followList
);
}
private
static
void
autoContactSend
(
List
<
TabContactFollow
>
followList
)
{
// 自动建联
Integer
followType
=
followList
.
get
(
0
).
getFollowType
();
Integer
contactAutoType
=
ContactFollowTypeEnum
.
fromCode
(
followType
).
getContactAutoType
();
if
(
contactAutoType
!=
null
)
{
List
<
String
>
message
=
followList
.
stream
().
map
(
x
->
{
ContactLogQDTO
contactLogQDTO
=
new
ContactLogQDTO
();
contactLogQDTO
.
setMemberId
(
x
.
getMemberId
());
contactLogQDTO
.
setClerkId
(
x
.
getClerkId
());
contactLogQDTO
.
setEnterpriseId
(
x
.
getEnterpriseId
());
contactLogQDTO
.
setContactAutoType
(
contactAutoType
);
return
JSON
.
toJSONString
(
contactLogQDTO
);
}).
collect
(
Collectors
.
toList
());
String
routerName
=
"autoContactLogForMQ"
;
try
{
GicMQClient
clientInstance
=
GICMQClientUtil
.
getClientInstance
();
clientInstance
.
sendBatchMessages
(
routerName
,
message
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"发送错误!路由规则名称:"
+
routerName
+
",message:"
+
message
,
e
);
}
message
.
clear
();
}
}
}
@Override
@Override
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/send/QwSendApiServiceImpl.java
View file @
7d4e90ec
...
@@ -42,7 +42,7 @@ public class QwSendApiServiceImpl implements QwSendApiService {
...
@@ -42,7 +42,7 @@ public class QwSendApiServiceImpl implements QwSendApiService {
if
(
Objects
.
equals
(
refreshType
,
1
))
{
if
(
Objects
.
equals
(
refreshType
,
1
))
{
qwSendMsgService
.
finishQwSend
(
dealQwSendDTO
.
getFinishQwSend
(),
dealQwSendDTO
.
getTryCount
());
qwSendMsgService
.
finishQwSend
(
dealQwSendDTO
.
getFinishQwSend
(),
dealQwSendDTO
.
getTryCount
());
}
else
if
(
Objects
.
equals
(
refreshType
,
2
))
{
}
else
if
(
Objects
.
equals
(
refreshType
,
2
))
{
qwSendMsgService
.
refreshQwSendLog
(
dealQwSendDTO
.
getQwSendMsg
()
);
qwSendMsgService
.
refreshQwSendLog
(
dealQwSendDTO
);
}
}
return
ServiceResponse
.
success
();
return
ServiceResponse
.
success
();
}
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/send/QwSendMsgService.java
View file @
7d4e90ec
...
@@ -20,8 +20,8 @@ public interface QwSendMsgService {
...
@@ -20,8 +20,8 @@ public interface QwSendMsgService {
/**
/**
* 刷新企微群结果
* 刷新企微群结果
* @param
qwSendMsg
* @param
dealQwSendDTO
*/
*/
void
refreshQwSendLog
(
DealQwSendDTO
.
QwSendMsgBO
qwSendMsg
);
void
refreshQwSendLog
(
DealQwSendDTO
dealQwSendDTO
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/send/impl/QwSendMsgServiceImpl.java
View file @
7d4e90ec
...
@@ -5,31 +5,36 @@ import com.alibaba.fastjson.JSON;
...
@@ -5,31 +5,36 @@ import com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.BusinessException
;
import
com.gic.api.base.commons.BusinessException
;
import
com.gic.api.base.commons.JSONResponse
;
import
com.gic.api.base.commons.JSONResponse
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.content.api.utils.MqUtils
;
import
com.gic.content.api.utils.MqUtils
;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.manage.api.dto.anaylsis.ClerkShareGoodsLogDTO
;
import
com.gic.haoban.manage.api.dto.send.DealQwSendDTO
;
import
com.gic.haoban.manage.api.dto.send.DealQwSendDTO
;
import
com.gic.haoban.manage.api.enums.contact.ContactFollowTypeEnum
;
import
com.gic.haoban.manage.api.enums.contact.ContactFollowTypeEnum
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowBatchQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowBatchQDTO
;
import
com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService
;
import
com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService
;
import
com.gic.haoban.manage.api.service.MessageApiService
;
import
com.gic.haoban.manage.api.service.MessageApiService
;
import
com.gic.haoban.manage.api.service.content.MaterialShareLogApiService
;
import
com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper
;
import
com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper
;
import
com.gic.haoban.manage.service.dao.mapper.send.QwSendLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.send.QwSendLogMapper
;
import
com.gic.haoban.manage.service.dao.mapper.send.QwSendMsgMapper
;
import
com.gic.haoban.manage.service.dao.mapper.send.QwSendMsgMapper
;
import
com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated
;
import
com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated
;
import
com.gic.haoban.manage.service.entity.send.TabQwSendLog
;
import
com.gic.haoban.manage.service.entity.send.TabQwSendLog
;
import
com.gic.haoban.manage.service.entity.send.TabQwSendMsg
;
import
com.gic.haoban.manage.service.entity.send.TabQwSendMsg
;
import
com.gic.haoban.manage.service.pojo.bo.send.FinishQwSendBO
;
import
com.gic.haoban.manage.service.pojo.bo.send.GroupSendResultBO
;
import
com.gic.haoban.manage.service.pojo.bo.send.GroupSendResultBO
;
import
com.gic.haoban.manage.service.service.chat.GroupChatPlanService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatPlanService
;
import
com.gic.haoban.manage.service.service.content.impl.GroupMessageServiceImpl
;
import
com.gic.haoban.manage.service.service.content.impl.GroupMessageServiceImpl
;
import
com.gic.haoban.manage.service.service.send.QwSendMsgService
;
import
com.gic.haoban.manage.service.service.send.QwSendMsgService
;
import
com.gic.member.api.constant.MemberExtKeyEnum
;
import
com.gic.member.api.dto.member.req.MemberExtraPropertyReq
;
import
com.gic.member.api.service.extra.MemberExtraPropertyApiService
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -55,6 +60,10 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
...
@@ -55,6 +60,10 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
private
MemberUnionidRelatedApiService
memberUnionidRelatedApiService
;
private
MemberUnionidRelatedApiService
memberUnionidRelatedApiService
;
@Autowired
@Autowired
private
MessageApiService
messageApiService
;
private
MessageApiService
messageApiService
;
@Autowired
private
MaterialShareLogApiService
materialShareLogApiService
;
@Autowired
private
MemberExtraPropertyApiService
memberExtraPropertyApiService
;
@Override
@Override
public
void
finishQwSend
(
DealQwSendDTO
.
FinishQwSendBO
finishQwSendBO
,
Integer
tryCount
)
{
public
void
finishQwSend
(
DealQwSendDTO
.
FinishQwSendBO
finishQwSendBO
,
Integer
tryCount
)
{
...
@@ -83,7 +92,8 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
...
@@ -83,7 +92,8 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
dealQwSendDTO
.
setRefreshType
(
2
);
dealQwSendDTO
.
setRefreshType
(
2
);
DealQwSendDTO
.
QwSendMsgBO
qwSendMsgBO
=
EntityUtil
.
changeEntityByJSON
(
DealQwSendDTO
.
QwSendMsgBO
.
class
,
qwSendMsg
);
DealQwSendDTO
.
QwSendMsgBO
qwSendMsgBO
=
EntityUtil
.
changeEntityByJSON
(
DealQwSendDTO
.
QwSendMsgBO
.
class
,
qwSendMsg
);
dealQwSendDTO
.
setQwSendMsg
(
qwSendMsgBO
);
dealQwSendDTO
.
setQwSendMsg
(
qwSendMsgBO
);
MqUtils
.
sendMessageToMQ
(
"qwSendRefreshByMQ"
,
JSON
.
toJSONString
(
dealQwSendDTO
),
60
);
dealQwSendDTO
.
setFinishQwSend
(
finishQwSendBO
);
MqUtils
.
sendMessageToMQ
(
"qwSendRefreshByMQ"
,
JSON
.
toJSONString
(
dealQwSendDTO
),
30
);
}
else
{
}
else
{
if
(
tryCount
!=
null
&&
tryCount
>=
5
)
{
if
(
tryCount
!=
null
&&
tryCount
>=
5
)
{
return
;
return
;
...
@@ -102,7 +112,8 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
...
@@ -102,7 +112,8 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
}
}
@Override
@Override
public
void
refreshQwSendLog
(
DealQwSendDTO
.
QwSendMsgBO
qwSendMsg
)
{
public
void
refreshQwSendLog
(
DealQwSendDTO
dealQwSendDTO
)
{
DealQwSendDTO
.
QwSendMsgBO
qwSendMsg
=
dealQwSendDTO
.
getQwSendMsg
();
List
<
GroupSendResultBO
>
sendResultList
=
getSendResultList
(
qwSendMsg
);
List
<
GroupSendResultBO
>
sendResultList
=
getSendResultList
(
qwSendMsg
);
if
(
CollectionUtils
.
isEmpty
(
sendResultList
))
{
if
(
CollectionUtils
.
isEmpty
(
sendResultList
))
{
return
;
return
;
...
@@ -147,9 +158,9 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
...
@@ -147,9 +158,9 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
if
(
StringUtils
.
isBlank
(
log
.
getMemberId
()))
{
if
(
StringUtils
.
isBlank
(
log
.
getMemberId
()))
{
return
;
return
;
}
}
memberList
.
add
(
new
ContactFollowBatchQDTO
.
MemberFollow
(
log
.
getMemberId
(),
log
.
getSendTime
()));
memberList
.
add
(
new
ContactFollowBatchQDTO
.
MemberFollow
(
log
.
getMemberId
(),
log
.
get
ExternalUserId
(),
log
.
get
SendTime
()));
});
});
saveFollowMQ
(
qwSendMsg
.
getEnterpriseId
(),
qwSendMsg
.
getClerkId
(),
memberList
);
saveFollowMQ
(
qwSendMsg
.
getEnterpriseId
(),
qwSendMsg
.
getClerkId
(),
memberList
,
dealQwSendDTO
.
getFinishQwSend
()
);
}
}
entities
.
clear
();
entities
.
clear
();
}
}
...
@@ -229,16 +240,59 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
...
@@ -229,16 +240,59 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
return
EntityUtil
.
changeEntityListByJSON
(
GroupSendResultBO
.
class
,
list
);
return
EntityUtil
.
changeEntityListByJSON
(
GroupSendResultBO
.
class
,
list
);
}
}
private
void
saveFollowMQ
(
String
enterpriseId
,
String
clerkId
,
List
<
ContactFollowBatchQDTO
.
MemberFollow
>
memberList
)
{
private
void
saveFollowMQ
(
String
enterpriseId
,
String
clerkId
,
List
<
ContactFollowBatchQDTO
.
MemberFollow
>
memberList
,
DealQwSendDTO
.
FinishQwSendBO
finishQwSendBO
)
{
if
(
org
.
apache
.
commons
.
collections
.
CollectionUtils
.
isEmpty
(
memberList
))
{
if
(
org
.
apache
.
commons
.
collections
.
CollectionUtils
.
isEmpty
(
memberList
))
{
return
;
return
;
}
}
if
(
finishQwSendBO
==
null
)
{
return
;
}
Integer
followType
=
null
;
String
followRemark
=
null
;
Integer
bizType
=
finishQwSendBO
.
getBizType
();
List
<
ClerkShareGoodsLogDTO
>
shareGoodsList
=
finishQwSendBO
.
getShareGoodsList
();
if
(
Objects
.
equals
(
bizType
,
1
))
{
followType
=
ContactFollowTypeEnum
.
MATERIAL
.
getCode
();
followRemark
=
"向客户发送了营销素材"
;
}
else
if
(
Objects
.
equals
(
bizType
,
2
))
{
followType
=
ContactFollowTypeEnum
.
PRODUCT
.
getCode
();
followRemark
=
"向客户发送了"
+
shareGoodsList
.
size
()
+
"款商品"
;
}
else
{
return
;
}
ContactFollowBatchQDTO
batchQDTO
=
new
ContactFollowBatchQDTO
();
ContactFollowBatchQDTO
batchQDTO
=
new
ContactFollowBatchQDTO
();
batchQDTO
.
setEnterpriseId
(
enterpriseId
);
batchQDTO
.
setEnterpriseId
(
enterpriseId
);
batchQDTO
.
setMemberList
(
memberList
);
batchQDTO
.
setMemberList
(
memberList
);
batchQDTO
.
setClerkId
(
clerkId
);
batchQDTO
.
setClerkId
(
clerkId
);
batchQDTO
.
setFollowType
(
ContactFollowTypeEnum
.
WECHAT_GROUP_SEND
.
getCode
()
);
batchQDTO
.
setFollowType
(
followType
);
batchQDTO
.
setFollowRemark
(
"通过企微群发向客户发送了消息"
);
batchQDTO
.
setFollowRemark
(
followRemark
);
MqUtils
.
sendMessageToMQ
(
"saveBatchFollowForMQ"
,
JSON
.
toJSONString
(
batchQDTO
));
MqUtils
.
sendMessageToMQ
(
"saveBatchFollowForMQ"
,
JSON
.
toJSONString
(
batchQDTO
));
if
(
Objects
.
equals
(
bizType
,
2
))
{
saveShareMaterialLog
(
enterpriseId
,
shareGoodsList
,
memberList
);
}
}
private
void
saveShareMaterialLog
(
String
enterpriseId
,
List
<
ClerkShareGoodsLogDTO
>
shareGoodsList
,
List
<
ContactFollowBatchQDTO
.
MemberFollow
>
memberList
)
{
List
<
ClerkShareGoodsLogDTO
>
list
=
Lists
.
newArrayList
();
for
(
ContactFollowBatchQDTO
.
MemberFollow
memberInfo
:
memberList
)
{
for
(
ClerkShareGoodsLogDTO
goodsLogDTO
:
shareGoodsList
)
{
ClerkShareGoodsLogDTO
temp
=
EntityUtil
.
changeEntityByJSON
(
ClerkShareGoodsLogDTO
.
class
,
goodsLogDTO
);
temp
.
setExternalUserId
(
memberInfo
.
getExternalUserId
());
temp
.
setMemberId
(
memberInfo
.
getMemberId
());
list
.
add
(
temp
);
}
//更新会员推荐时间更新
MemberExtraPropertyReq
memberExtraPropertyReq
=
new
MemberExtraPropertyReq
();
memberExtraPropertyReq
.
setEnterpriseId
(
enterpriseId
);
memberExtraPropertyReq
.
setMemberId
(
memberInfo
.
getMemberId
());
memberExtraPropertyReq
.
setExtraKey
(
MemberExtKeyEnum
.
MEMBER_GOODS_SUGGEST_TIME
.
key
());
memberExtraPropertyReq
.
setExtraValue
(
memberInfo
.
getFollowTime
().
getTime
());
try
{
memberExtraPropertyApiService
.
updateMemberExtraProperty
(
memberExtraPropertyReq
);
}
catch
(
Exception
e
)
{
log
.
info
(
"更新会员推荐时间更新异常,"
,
e
);
}
}
materialShareLogApiService
.
saveClerkShareRecommendLog
(
list
);
}
}
}
}
haoban-manage3-service/src/main/resources/dubbo-haoban-manage-service.xml
View file @
7d4e90ec
...
@@ -257,6 +257,7 @@
...
@@ -257,6 +257,7 @@
<dubbo:reference
interface=
"com.gic.clerk.api.service.MenuApiService"
id=
"menuApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.clerk.api.service.MenuApiService"
id=
"menuApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.member.ext.api.service.MemberGrowthWriteApiService"
id=
"memberGrowthWriteApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.member.ext.api.service.MemberGrowthWriteApiService"
id=
"memberGrowthWriteApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.member.api.service.integral.IntegralWriteApiService"
id=
"integralWriteApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.member.api.service.integral.IntegralWriteApiService"
id=
"integralWriteApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
id=
"memberExtraPropertyApiService"
interface=
"com.gic.member.api.service.extra.MemberExtraPropertyApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
id=
"memberTagEsApiService"
interface=
"com.gic.member.tag.api.service.MemberTagEsApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
id=
"memberTagEsApiService"
interface=
"com.gic.member.tag.api.service.MemberTagEsApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
id=
"memberCrowdApiService"
interface=
"com.gic.member.ext.api.service.MemberCrowdApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
id=
"memberCrowdApiService"
interface=
"com.gic.member.ext.api.service.MemberCrowdApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/ClerkMaterialShareController.java
View file @
7d4e90ec
...
@@ -130,21 +130,12 @@ public class ClerkMaterialShareController {
...
@@ -130,21 +130,12 @@ public class ClerkMaterialShareController {
log
.
info
(
"saveClerkShareMaterialLog 保存导购分享推荐商品日志 clerkId:{}, recommendShareLogQO{}"
,
recommendShareLogQO
.
getClerkId
(),
JSON
.
toJSONString
(
recommendShareLogQO
));
log
.
info
(
"saveClerkShareMaterialLog 保存导购分享推荐商品日志 clerkId:{}, recommendShareLogQO{}"
,
recommendShareLogQO
.
getClerkId
(),
JSON
.
toJSONString
(
recommendShareLogQO
));
List
<
ClerkShareGoodsLogDTO
>
list
=
Lists
.
newArrayList
();
List
<
ClerkShareGoodsLogDTO
>
list
=
Lists
.
newArrayList
();
List
<
String
>
memberIdList
=
Lists
.
newArrayList
();
List
<
String
>
goodsIdList
=
recommendShareLogQO
.
getGoodsIdList
();
List
<
String
>
goodsIdList
=
recommendShareLogQO
.
getGoodsIdList
();
List
<
RecommendShareLogQO
.
MemberInfo
>
externalUserIdList
=
recommendShareLogQO
.
getMemberInfoList
();
for
(
String
goodsId
:
goodsIdList
)
{
for
(
RecommendShareLogQO
.
MemberInfo
memberInfo
:
externalUserIdList
)
{
for
(
String
goodsId
:
goodsIdList
)
{
ClerkShareGoodsLogDTO
temp
=
new
ClerkShareGoodsLogDTO
();
ClerkShareGoodsLogDTO
temp
=
new
ClerkShareGoodsLogDTO
();
temp
.
setEnterpriseId
(
recommendShareLogQO
.
getEnterpriseId
());
temp
.
setEnterpriseId
(
recommendShareLogQO
.
getEnterpriseId
());
temp
.
setWxEnterpriseId
(
recommendShareLogQO
.
getWxEnterpriseId
());
temp
.
setWxEnterpriseId
(
recommendShareLogQO
.
getWxEnterpriseId
());
temp
.
setClerkId
(
recommendShareLogQO
.
getClerkId
());
temp
.
setClerkId
(
recommendShareLogQO
.
getClerkId
());
temp
.
setExternalUserId
(
memberInfo
.
getExternalUserId
());
temp
.
setMemberId
(
memberInfo
.
getMemberId
());
if
(
StringUtils
.
isNotEmpty
(
memberInfo
.
getMemberId
())){
memberIdList
.
add
(
memberInfo
.
getMemberId
());
}
temp
.
setBizId
(
goodsId
);
temp
.
setBizId
(
goodsId
);
temp
.
setBizType
(
ShareBizType
.
GOODS
.
getCode
());
temp
.
setBizType
(
ShareBizType
.
GOODS
.
getCode
());
temp
.
setStoreId
(
recommendShareLogQO
.
getStoreId
());
temp
.
setStoreId
(
recommendShareLogQO
.
getStoreId
());
...
@@ -152,25 +143,20 @@ public class ClerkMaterialShareController {
...
@@ -152,25 +143,20 @@ public class ClerkMaterialShareController {
temp
.
setStaffId
(
recommendShareLogQO
.
getStaffId
());
temp
.
setStaffId
(
recommendShareLogQO
.
getStaffId
());
temp
.
setWxaLinkId
(
recommendShareLogQO
.
getWxaLinkId
());
temp
.
setWxaLinkId
(
recommendShareLogQO
.
getWxaLinkId
());
list
.
add
(
temp
);
list
.
add
(
temp
);
}
}
}
ServiceResponse
<
Long
>
serviceResponse
=
materialShareLogApiService
.
saveClerkShareRecommendLog
(
list
);
// 改为查询企微是否真正发送成功
DealQwSendDTO
.
FinishQwSendBO
finishQwSendBO
=
new
DealQwSendDTO
.
FinishQwSendBO
(
recommendShareLogQO
.
getClerkId
(),
recommendShareLogQO
.
getStaffId
(),
DateUtil
.
date
(),
2
,
recommendShareLogQO
.
getWxEnterpriseId
(),
recommendShareLogQO
.
getEnterpriseId
());
finishQwSendBO
.
setShareGoodsList
(
list
);
dealQwSendMsg
(
finishQwSendBO
);
if
(!
serviceResponse
.
isSuccess
())
{
return
RestResponse
.
failure
(
"-701"
,
"系统异常"
);
}
//更新会员推荐时间更新
if
(
CollectionUtils
.
isNotEmpty
(
memberIdList
)){
for
(
String
memberId
:
memberIdList
)
{
MemberExtraPropertyReq
memberExtraPropertyReq
=
new
MemberExtraPropertyReq
();
memberExtraPropertyReq
.
setEnterpriseId
(
recommendShareLogQO
.
getEnterpriseId
());
memberExtraPropertyReq
.
setMemberId
(
memberId
);
memberExtraPropertyReq
.
setExtraKey
(
MemberExtKeyEnum
.
MEMBER_GOODS_SUGGEST_TIME
.
key
());
memberExtraPropertyReq
.
setExtraValue
(
new
Date
().
getTime
());
memberExtraPropertyApiService
.
updateMemberExtraProperty
(
memberExtraPropertyReq
);
}
}
if
(
StringUtils
.
isNotBlank
(
recommendShareLogQO
.
getWxaLinkId
()))
{
if
(
StringUtils
.
isNotBlank
(
recommendShareLogQO
.
getWxaLinkId
()))
{
enterpriseWxaLinkService
.
updateTimeById
(
recommendShareLogQO
.
getWxaLinkId
());
enterpriseWxaLinkService
.
updateTimeById
(
recommendShareLogQO
.
getWxaLinkId
());
}
}
...
@@ -179,7 +165,6 @@ public class ClerkMaterialShareController {
...
@@ -179,7 +165,6 @@ public class ClerkMaterialShareController {
}
}
private
void
dealQwSendMsg
(
DealQwSendDTO
.
FinishQwSendBO
finishQwSend
)
{
private
void
dealQwSendMsg
(
DealQwSendDTO
.
FinishQwSendBO
finishQwSend
)
{
// 商品分享暂时不记,记录的是发送商品的类型而不是企微群发
DealQwSendDTO
dealQwSendDTO
=
new
DealQwSendDTO
();
DealQwSendDTO
dealQwSendDTO
=
new
DealQwSendDTO
();
dealQwSendDTO
.
setEnterpriseId
(
finishQwSend
.
getEnterpriseId
());
dealQwSendDTO
.
setEnterpriseId
(
finishQwSend
.
getEnterpriseId
());
dealQwSendDTO
.
setRefreshType
(
1
);
dealQwSendDTO
.
setRefreshType
(
1
);
...
...
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