|
|
@@ -60,6 +60,8 @@ import javax.mail.internet.MimeBodyPart;
|
|
|
import javax.mail.internet.MimeMessage;
|
|
|
import javax.mail.internet.MimeMultipart;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.Collections;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
@@ -355,10 +357,81 @@ public class MktMailMessageServiceImpl extends MyBaseServiceImpl<MktMailMessageM
|
|
|
if (StringUtils.hasText(query.getBizBatchNo())) {
|
|
|
wrapper.eq(MktMailMessageEntity::getBizBatchNo, query.getBizBatchNo());
|
|
|
}
|
|
|
+ selectWithoutContent(wrapper);
|
|
|
wrapper.orderByDesc(MktMailMessageEntity::getId);
|
|
|
return this.page(page, wrapper);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<MktMailMessageEntity> listMetaByIds(Collection<Long> ids) {
|
|
|
+ if (CollectionUtils.isEmpty(ids)) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ List<Long> idList = ids.stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .distinct()
|
|
|
+ .limit(200)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (idList.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<MktMailMessageEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ selectWithoutContent(wrapper);
|
|
|
+ wrapper.in(MktMailMessageEntity::getId, idList)
|
|
|
+ .eq(MktMailMessageEntity::getIsDelete, CommonConstant.DEL_FLAG_0)
|
|
|
+ .orderByDesc(MktMailMessageEntity::getId);
|
|
|
+ return this.list(wrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 列表查询显式排除 content,避免正文大字段拖慢 SQL / 序列化。
|
|
|
+ */
|
|
|
+ private static void selectWithoutContent(LambdaQueryWrapper<MktMailMessageEntity> wrapper) {
|
|
|
+ wrapper.select(
|
|
|
+ MktMailMessageEntity::getId,
|
|
|
+ MktMailMessageEntity::getAccountId,
|
|
|
+ MktMailMessageEntity::getOrgId,
|
|
|
+ MktMailMessageEntity::getBizRef,
|
|
|
+ MktMailMessageEntity::getBizBatchNo,
|
|
|
+ MktMailMessageEntity::getMessageId,
|
|
|
+ MktMailMessageEntity::getTrackToken,
|
|
|
+ MktMailMessageEntity::getSubject,
|
|
|
+ MktMailMessageEntity::getFromAddr,
|
|
|
+ MktMailMessageEntity::getFromName,
|
|
|
+ MktMailMessageEntity::getRecipient,
|
|
|
+ MktMailMessageEntity::getRecipientCc,
|
|
|
+ MktMailMessageEntity::getRecipientBcc,
|
|
|
+ MktMailMessageEntity::getFolder,
|
|
|
+ MktMailMessageEntity::getMsgUid,
|
|
|
+ MktMailMessageEntity::getRecipientDate,
|
|
|
+ MktMailMessageEntity::getSentDate,
|
|
|
+ MktMailMessageEntity::getIsOnlyHead,
|
|
|
+ MktMailMessageEntity::getIsRead,
|
|
|
+ MktMailMessageEntity::getInOutMark,
|
|
|
+ MktMailMessageEntity::getEmailSize,
|
|
|
+ MktMailMessageEntity::getInReplyTo,
|
|
|
+ MktMailMessageEntity::getReplyMsgId,
|
|
|
+ MktMailMessageEntity::getStatus,
|
|
|
+ MktMailMessageEntity::getFailReason,
|
|
|
+ MktMailMessageEntity::getIsTrack,
|
|
|
+ MktMailMessageEntity::getOpened,
|
|
|
+ MktMailMessageEntity::getFirstOpenTime,
|
|
|
+ MktMailMessageEntity::getOpenCount,
|
|
|
+ MktMailMessageEntity::getReplied,
|
|
|
+ MktMailMessageEntity::getFirstReplyTime,
|
|
|
+ MktMailMessageEntity::getSentTime,
|
|
|
+ MktMailMessageEntity::getDelaySendTime,
|
|
|
+ MktMailMessageEntity::getOwnerBy,
|
|
|
+ MktMailMessageEntity::getCreateBy,
|
|
|
+ MktMailMessageEntity::getUpdateBy,
|
|
|
+ MktMailMessageEntity::getCreateTime,
|
|
|
+ MktMailMessageEntity::getUpdateTime,
|
|
|
+ MktMailMessageEntity::getIsDelete,
|
|
|
+ MktMailMessageEntity::getEnabled,
|
|
|
+ MktMailMessageEntity::getSort
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public MktMailMessageEntity getDetail(Long id, Long operatorId) {
|
|
|
if (id == null) {
|