diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTagGroupServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTagGroupServiceImpl.java index 065aadb16be11f5aea21fe1bcb8ef72cb6db0725..1206a909b9ad3b8e811d3484f7bc8c7eb3a8cb33 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTagGroupServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTagGroupServiceImpl.java @@ -120,12 +120,17 @@ public class WeTagGroupServiceImpl extends ServiceImpl initWeTags = this.iWeTagService.list(new LambdaQueryWrapper().eq(WeTag::getGroupId, weTagGroup.getGroupId()).eq(WeTag::getStatus, Constants.NORMAL_CODE)); + // 如果标签组下最初的标签和需要删除的标签个数相等时,需要把标签组一并删除 + WeCropDelDto weCropDelDto = WeCropDelDto.builder() + .tag_id(ArrayUtil.toArray(removeWeTags.stream().map(WeTag::getTagId).collect(Collectors.toList()), String.class)) + .build(); + if (CollectionUtil.isNotEmpty(initWeTags) && initWeTags.size() == removeWeTags.size()) { + weCropDelDto.builder().group_id(ArrayUtil.toArray(ListUtil.toList(weTagGroup.getGroupId()), String.class)); + } //同步删除微信端的标签 - weCropTagClient.delCorpTag( - WeCropDelDto.builder() - .group_id(ArrayUtil.toArray(ListUtil.toList(weTagGroup.getGroupId()), String.class)) - .tag_id(ArrayUtil.toArray(removeWeTags.stream().map(WeTag::getTagId).collect(Collectors.toList()), String.class)) - .build()); + weCropTagClient.delCorpTag(weCropDelDto); //移除本地 removeWeTags.stream().forEach(v -> v.setStatus(Constants.DELETE_CODE));