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
4c0feea9
Commit
4c0feea9
authored
Feb 18, 2022
by
xugaojun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
触发好有关联,逻辑变更, 代码优化,api变更
parent
30f78c71
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
78 additions
and
79 deletions
+78
-79
EnterpriseController.java
...ic/haoban/manage/web/controller/EnterpriseController.java
+3
-4
AddMemberUnionRelateConsumerProcessor.java
...e/mq/processor/AddMemberUnionRelateConsumerProcessor.java
+65
-67
MemberUnionRelatedBO.java
...c/haoban/manage/service/pojo/bo/MemberUnionRelatedBO.java
+10
-8
No files found.
haoban-manage3-operation-web/src/main/java/com/gic/haoban/manage/web/controller/EnterpriseController.java
View file @
4c0feea9
...
...
@@ -396,18 +396,17 @@ public class EnterpriseController extends WebBaseController {
}
/**
* desc: 发送
存量
会员关联消息
* desc: 发送会员关联消息
*
* @param wxEnterpriseId 微信企业id
* @param content 文本内容
* @return : {@link HaobanResponse}
* @author : YongEn
* @date : 2022/2/17
*/
@RequestMapping
(
"/send-stock-member-relation-message"
)
public
HaobanResponse
sendMass
(
String
wxEnterpriseId
,
String
content
)
{
public
HaobanResponse
sendMass
(
String
wxEnterpriseId
)
{
// 异步调用
groupSendOperateApiService
.
sendStockMemberRelationMessage
(
wxEnterpriseId
,
content
);
groupSendOperateApiService
.
sendStockMemberRelationMessage
(
wxEnterpriseId
);
return
resultResponse
(
HaoBanErrCode
.
ERR_1
);
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/mq/processor/AddMemberUnionRelateConsumerProcessor.java
View file @
4c0feea9
...
...
@@ -4,7 +4,9 @@ import cn.hutool.crypto.SecureUtil;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.JSONResponse
;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.clerk.api.service.PowerService
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.haoban.manage.api.dto.ExternalUserDTO
;
import
com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO
;
...
...
@@ -17,13 +19,9 @@ import com.gic.haoban.manage.service.pojo.ExternalUserPojo;
import
com.gic.haoban.manage.service.pojo.bo.MemberUnionRelatedBO
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.haoban.manage.service.util.EmojiFilterUtil
;
import
com.gic.wechat.api.dto.qywx.QywxExternalMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxMessageMaterialDTO
;
import
com.gic.wechat.api.dto.qywx.QywxMiniprogramMaterialDTO
;
import
com.gic.wechat.api.enums.QywxMediaTypeEnum
;
import
com.gic.wechat.api.service.qywx.QywxSuiteApiService
;
import
com.gic.member.api.dto.MemberDTO
;
import
com.gic.member.api.service.MemberOpenCardBusinessService
;
import
com.gic.wechat.api.service.qywx.QywxUserApiService
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
...
...
@@ -31,7 +29,6 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -50,8 +47,6 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
@Autowired
private
QywxUserApiService
qywxUserApiService
;
@Autowired
private
QywxSuiteApiService
qywxSuiteApiService
;
@Autowired
private
Config
config
;
@Autowired
private
MemberUnionRelatedService
memberUnionRelatedService
;
...
...
@@ -64,9 +59,11 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
@Autowired
private
ExternalClerkRelatedService
externalClerkRelatedService
;
@Autowired
private
StaffService
staffService
;
private
ClerkService
clerkService
;
@Autowired
private
PowerService
powerService
;
@Autowired
private
M
iniprogramSettingService
miniprogramSetting
Service
;
private
M
emberOpenCardBusinessService
memberOpenCardBusiness
Service
;
@Override
MemberUnionRelatedBO
paramParse
(
String
s
)
{
...
...
@@ -84,13 +81,22 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
logger
.
info
(
"新增外部联系人, 自建与第三方均为空"
);
return
;
}
if
(
StringUtils
.
isEmpty
(
dto
.
getUnionid
()))
{
logger
.
info
(
"unionId为空, 会员无法查询"
);
return
;
}
// 幂等
MemberUnionidRelatedDTO
exsitDTO
=
memberUnionRelatedService
.
getByParams
(
wxUserId
,
wxEnterpriseId
,
dto
.
getExternalName
(),
dto
.
getAddCreateTime
());
String
memberUnion
i
dRelatedId
;
String
memberUnion
I
dRelatedId
;
if
(
Objects
.
isNull
(
exsitDTO
))
{
// 创建memberUnion 临时表关联
memberUnion
i
dRelatedId
=
memberUnionRelatedService
.
addMemberUnionidRelated
(
dto
);
memberUnion
I
dRelatedId
=
memberUnionRelatedService
.
addMemberUnionidRelated
(
dto
);
}
else
{
memberUnionidRelatedId
=
exsitDTO
.
getMemberUnionidRelatedId
();
memberUnionIdRelatedId
=
exsitDTO
.
getMemberUnionidRelatedId
();
}
if
(
StringUtils
.
isEmpty
(
memberUnionIdRelatedId
))
{
logger
.
info
(
"添加临时关联表memberUnionIdRelate失败"
);
return
;
}
// 创建导购外部联系人导购
TabHaobanClerkMainStoreRelated
mainStoreRelated
=
clerkMainStoreRelatedService
.
getMainStoreByStaffId
(
staffId
,
wxEnterpriseId
);
...
...
@@ -109,78 +115,70 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
logger
.
info
(
"没有存在企业关联:{},{}"
,
staffClerkRelationDTO
.
getWxEnterpriseId
(),
enterpriseId
);
return
;
}
TabMiniprogramSetting
miniprogramSetting
=
miniprogramSettingService
.
getMiniprogramSetting
(
wxEnterpriseId
,
enterpriseId
);
if
(
null
==
miniprogramSetting
)
{
logger
.
info
(
"需要配置小程序配置:wxEnterpriseId:{},enterpriseId:{}"
,
wxEnterpriseId
,
enterpriseId
);
return
;
}
// 幂等
List
<
TabHaobanExternalClerkRelated
>
externalClerkRelateds
=
externalClerkRelatedService
.
listByExTernalUseridAndWxUserIdAllStatus
(
wxEnterpriseId
,
dto
.
getExternalUserid
(),
dto
.
getWxUserId
());
if
(
CollectionUtils
.
isEmpty
(
externalClerkRelateds
)){
logger
.
info
(
"已经存在好友关系"
);
return
;
}
// 新增导购,获取导购二维码
String
qrCodeParam
=
createClerkQrCodeParam
(
staffClerkRelationDTO
.
getClerkCode
(),
enterpriseId
,
dto
.
getUnionid
());
if
(
StringUtils
.
isEmpty
(
qrCodeParam
))
{
logger
.
info
(
"不能生产导购二维码, clerkCode:{}"
,
staffClerkRelationDTO
.
getClerkCode
());
return
;
}
logger
.
info
(
"【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}"
,
enterpriseId
,
dto
.
getUnionid
(),
dto
.
getExternalName
(),
dto
.
getAvatar
(),
qrCodeParam
);
MemberDTO
member
=
memberOpenCardBusinessService
.
getMemberByQywxChannelParam
(
enterpriseId
,
dto
.
getUnionid
(),
""
,
dto
.
getExternalName
(),
dto
.
getAvatar
(),
qrCodeParam
);
if
(
member
==
null
)
{
logger
.
info
(
"生产会员memnerid失败:{}"
,
dto
.
getUnionid
());
return
;
}
String
relationKey
=
SecureUtil
.
md5
(
staffId
+
externalUserid
);
logger
.
info
(
"新增TabHaobanExternalClerkRelated"
);
TabHaobanExternalClerkRelated
related
=
new
TabHaobanExternalClerkRelated
();
related
.
setAddCreateTime
(
dto
.
getAddCreateTime
());
related
.
setClerkId
(
null
);
related
.
setEnterpriseId
(
null
);
related
.
setClerkId
(
staffClerkRelationDTO
.
getClerkId
()
);
related
.
setEnterpriseId
(
enterpriseId
);
related
.
setExternalName
(
dto
.
getExternalName
());
related
.
setExternalUserId
(
externalUserid
);
related
.
setStaffId
(
staffId
);
related
.
setHeadUrl
(
dto
.
getAvatar
());
related
.
setMemberUnionidRelatedId
(
memberUnion
i
dRelatedId
);
related
.
setMemberUnionidRelatedId
(
memberUnion
I
dRelatedId
);
related
.
setStoreId
(
staffClerkRelationDTO
.
getStoreId
());
related
.
setRelationKey
(
relationKey
);
related
.
setUnionid
(
null
);
related
.
setUnionid
(
dto
.
getUnionid
()
);
related
.
setWxEnterpriseId
(
wxEnterpriseId
);
related
.
setWxUserId
(
wxUserId
);
related
.
setMemberId
(
null
);
related
.
setMemberId
(
member
.
getMemberId
()
);
externalClerkRelatedService
.
insert
(
related
);
// 发送群发消息
JSONResponse
jsonResponse
=
sendMessage
(
bo
,
relationKey
,
miniprogramSetting
);
logger
.
info
(
"存量会员群发执行结果:{}"
,
JSON
.
toJSONString
(
jsonResponse
));
}
private
JSONResponse
sendMessage
(
MemberUnionRelatedBO
bo
,
String
relationKey
,
TabMiniprogramSetting
miniprogramSetting
)
{
String
wxUserId
=
bo
.
getWxUserId
();
QywxExternalMessageDTO
dto
=
new
QywxExternalMessageDTO
();
// 文本内容
dto
.
setChatType
(
"single"
);
dto
.
setContent
(
bo
.
getContent
());
// sender
if
(
bo
.
getCorpid
().
length
()
>
20
)
{
TabHaobanStaff
tabHaobanStaff
=
staffService
.
selectByUserIdAndEnterpriseId
(
wxUserId
,
bo
.
getWxEnterpriseId
());
if
(
tabHaobanStaff
==
null
)
{
JSONResponse
jp
=
new
JSONResponse
();
jp
.
setErrorCode
(-
1
);
jp
.
setErrorMessage
(
"员工未查询到,群发创建失败,userId:"
+
wxUserId
);
return
jp
;
}
dto
.
setSenderUserId
(
tabHaobanStaff
.
getWxOpenUseId
());
}
else
{
dto
.
setSenderUserId
(
wxUserId
);
private
String
createClerkQrCodeParam
(
String
clerkCode
,
String
enterpriseId
,
String
unionId
)
{
//新增导购和外部联系人关系
ClerkDTO
clerk
=
clerkService
.
getClerkByClerkCode
(
enterpriseId
,
clerkCode
);
logger
.
info
(
"【新增外部联系人】clerkCode={},unionid:{}"
,
clerkCode
,
unionId
);
if
(
clerk
==
null
)
{
logger
.
info
(
"【新增外部联系人】导购为空:{},{}"
,
clerkCode
,
unionId
);
return
null
;
}
// 外部联系人id
dto
.
setExternalUserid
(
Lists
.
newArrayList
(
bo
.
getExternalUserid
()));
List
<
QywxMessageMaterialDTO
>
messageMaterialList
=
new
ArrayList
<>(
1
);
QywxMiniprogramMaterialDTO
miniprogramMaterialDTO
=
new
QywxMiniprogramMaterialDTO
();
miniprogramMaterialDTO
.
setTitle
(
miniprogramSetting
.
getTitle
());
miniprogramMaterialDTO
.
setPicMediaId
(
miniprogramSetting
.
getMediaId
());
miniprogramMaterialDTO
.
setAppid
(
miniprogramSetting
.
getAppId
());
miniprogramMaterialDTO
.
setPage
(
config
.
getMemberOpenPage
()
+
relationKey
);
QywxMessageMaterialDTO
materialDTO
=
new
QywxMessageMaterialDTO
();
materialDTO
.
setMsgType
(
QywxMediaTypeEnum
.
MINIPROGRAM
.
getName
());
materialDTO
.
setMiniprogram
(
miniprogramMaterialDTO
);
messageMaterialList
.
add
(
materialDTO
);
dto
.
setAttachments
(
messageMaterialList
);
// 创建企业群发
return
qywxSuiteApiService
.
sendExternalMessage
(
bo
.
getCorpid
(),
config
.
getSuiteId
(),
dto
);
String
qrcodeParam
=
clerk
.
getQrcodeParam
();
if
(
StringUtils
.
isBlank
(
qrcodeParam
))
{
powerService
.
saveClerkQrCode
(
clerk
.
getClerkId
());
clerk
=
clerkService
.
getClerkByClerkCode
(
enterpriseId
,
clerkCode
);
qrcodeParam
=
clerk
.
getQrcodeParam
();
}
return
qrcodeParam
;
}
private
MemberUnionidRelatedDTO
getAndMergeMemberUnion
(
MemberUnionRelatedBO
bo
)
{
...
...
@@ -215,7 +213,7 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
Objects
.
nonNull
(
selfExternalUserDTO
)
?
selfExternalUserDTO
.
getAvatar
()
:
thirdExternalUserDTO
.
getAvatar
()
);
dto
.
setUnionid
(
Objects
.
nonNull
(
selfExternalUserDTO
)
?
selfExternalUserDTO
.
get
Name
()
:
null
Objects
.
nonNull
(
selfExternalUserDTO
)
?
selfExternalUserDTO
.
get
UnionId
()
:
null
);
dto
.
setSelfExternalUserid
(
Objects
.
nonNull
(
selfExternalUserDTO
)
?
selfExternalUserDTO
.
getExternalUserId
()
:
null
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/MemberUnionRelatedBO.java
View file @
4c0feea9
...
...
@@ -23,8 +23,6 @@ public class MemberUnionRelatedBO implements Serializable {
private
String
staffId
;
private
String
content
;
public
String
getCorpid
()
{
return
corpid
;
}
...
...
@@ -73,11 +71,15 @@ public class MemberUnionRelatedBO implements Serializable {
this
.
staffId
=
staffId
;
}
public
String
getContent
()
{
return
content
;
}
public
void
setContent
(
String
content
)
{
this
.
content
=
content
;
@Override
public
String
toString
()
{
return
"MemberUnionRelatedBO{"
+
"corpid='"
+
corpid
+
'\''
+
", wxEnterpriseId='"
+
wxEnterpriseId
+
'\''
+
", externalUserid='"
+
externalUserid
+
'\''
+
", wxUserId='"
+
wxUserId
+
'\''
+
", secret='"
+
secret
+
'\''
+
", staffId='"
+
staffId
+
'\''
+
'}'
;
}
}
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