Commit dcbc8703 by fudahua

会员标签同步-同步没有打的标签

parent e07aee2c
......@@ -681,6 +681,7 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
}
//企业下的企业微信标签对应关系
Map<String, Set<String>> entQywxTagKeysMap = syncTagFormatPojo.getEntQywxTagKeysMap();
Map<String, Set<String>> entGicTagItemIdMap = syncTagFormatPojo.getEntGicTagItemIdMap();
List<String> hasSaveMemberId = new ArrayList<>();
for (TabHaobanExternalClerkRelated clerkRelated : clerkRelateds) {
......@@ -692,15 +693,25 @@ public class QywxTagApiServiceImpl implements QywxTagApiService {
//该会员所在企业下 配置的同步的标签列表
Set<String> entQywxSyncTagKeys = entQywxTagKeysMap.get(clerkRelated.getEnterpriseId());
Set<String> entQywxSyncTagItemIds = entGicTagItemIdMap.get(clerkRelated.getEnterpriseId());
if (CollectionUtils.isEmpty(entQywxSyncTagKeys)) {
logger.info("该企业下没有配置需要同步的:{},{}", externalUserId, clerkRelated.getEnterpriseId());
continue;
}
//该会员打的标签
List<MemberTagDTO> gicItems = memberTagService.listMemberTag(clerkRelated.getEnterpriseId(), clerkRelated.getMemberId());
Set<String> noSyncTagItemIds = new HashSet<>();
if (!CollectionUtils.isEmpty(gicItems)) {
noSyncTagItemIds = gicItems.stream().filter(itemId -> !entQywxSyncTagItemIds.contains(itemId)).map(dto -> dto.getTagsId()).collect(Collectors.toSet());
logger.info("没有同步的标签:{}", JSONObject.toJSONString(noSyncTagItemIds));
}
//该企业下会员需要设置的标签
Sets.SetView<String> entMemberNeedSetQywxKeys = Sets.intersection(staffHasSetTagKeys, entQywxSyncTagKeys);
Set<String> saveTagIds = entMemberNeedSetQywxKeys.stream().map(qywxKey -> syncTagFormatPojo.getQywxToGicTagItemIdMap().get(qywxKey)).collect(Collectors.toSet());
saveTagIds.addAll(noSyncTagItemIds);
logger.info("该企业会员需要打的标签:{}", JSONObject.toJSONString(entMemberNeedSetQywxKeys));
if (CollectionUtils.isEmpty(entMemberNeedSetQywxKeys)) {
if (CollectionUtils.isEmpty(saveTagIds)) {
saveMemberTags(new HashSet<>(), clerkRelated.getEnterpriseId(), clerkRelated.getMemberId(), clerkRelated.getClerkId());
} else {
saveMemberTags(saveTagIds, clerkRelated.getEnterpriseId(), clerkRelated.getMemberId(), clerkRelated.getClerkId());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment