REQ-2135: filter blank and null values for card items of im message
This commit is contained in:
parent
004207b249
commit
9f2fa169c1
@ -7,6 +7,7 @@ import cn.axzo.msg.center.message.domain.dto.MessageTemplateDTO;
|
||||
import cn.axzo.msg.center.message.domain.dto.MessageTemplateRouterDTO;
|
||||
import cn.axzo.msg.center.message.domain.vo.GeneralMessagePushVO;
|
||||
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
|
||||
import cn.axzo.msg.center.utils.MessageCardUtil;
|
||||
import cn.axzo.msg.center.utils.MessageRouterUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -58,8 +59,9 @@ public class MessageTemplateParser {
|
||||
List<MessageCardContentItemDTO> cardContentItems) {
|
||||
GeneralMessagePushVO.CardButton cardDetailButton = GeneralMessagePushVO.parseDetailButton(msgTemplateRouter);
|
||||
List<GeneralMessagePushVO.CardButton> cardButtons = GeneralMessagePushVO.parseCardButtons(msgTemplateRouter);
|
||||
List<GeneralMessagePushVO.CardExtensionItem> cardExtension = CollectionUtils.isEmpty(cardContentItems) ? Collections.emptyList() :
|
||||
cardContentItems.stream()
|
||||
List<MessageCardContentItemDTO> cardItems = MessageCardUtil.filterParsedCardItemsByValues(cardContentItems);
|
||||
List<GeneralMessagePushVO.CardExtensionItem> cardExtension = CollectionUtils.isEmpty(cardItems) ? Collections.emptyList() :
|
||||
cardItems.stream()
|
||||
.map(GeneralMessagePushVO.CardExtensionItem::from)
|
||||
.collect(Collectors.toList());
|
||||
List<GeneralMessagePushVO.Subtitle> subtitles = Collections.emptyList();
|
||||
|
||||
@ -10,8 +10,8 @@ import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @description
|
||||
@ -37,18 +37,26 @@ public final class MessageCardUtil {
|
||||
JSONObject bizExtParam = JSON.parseObject(bizExtParamStr);
|
||||
// 复制一个副本,避免直接修改
|
||||
msgCardContentItems = BeanConvertUtils.copyList(msgCardContentItems, MessageCardContentItemDTO.class);
|
||||
List<MessageCardContentItemDTO> result = new ArrayList<>();
|
||||
msgCardContentItems.forEach(e -> {
|
||||
String modifiedValue = PlaceholderResolver.getDefaultResolver().resolveByMap(e.getValue(), bizExtParam);
|
||||
e.setValue(modifiedValue);
|
||||
// 过滤空值的卡片
|
||||
if(StringUtils.isNotBlank(modifiedValue) && !"null".equals(modifiedValue)){
|
||||
e.setValue(modifiedValue);
|
||||
result.add(e);
|
||||
}
|
||||
});
|
||||
return result;
|
||||
return filterParsedCardItemsByValues(msgCardContentItems);
|
||||
}
|
||||
return msgCardContentItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* 过滤空值的卡片
|
||||
*/
|
||||
public static List<MessageCardContentItemDTO> filterParsedCardItemsByValues(
|
||||
List<MessageCardContentItemDTO> items) {
|
||||
if (CollectionUtils.isEmpty(items)) {
|
||||
return items;
|
||||
}
|
||||
return items.stream()
|
||||
.filter(item -> StringUtils.isNotBlank(item.getValue()) && !"null".equals(item.getValue()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user