24282 2 년 전
부모
커밋
d59facae94
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      src/main/java/com/fjhx/email/service/impl/MailServiceImpl.java

+ 6 - 2
src/main/java/com/fjhx/email/service/impl/MailServiceImpl.java

@@ -2,6 +2,7 @@ package com.fjhx.email.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.email.config.base.BaseEntity;
@@ -191,11 +192,14 @@ public class MailServiceImpl implements IMailService {
 
         }
 
-        for (MessageDetailVo.MessageAttachment messageAttachment : messageDetailVo.getMessageAttachmentList()) {
+        // copy一份数据,防止多线程下把文件路径前缀保存到数据库中
+        MessageDetailVo copy = JSONObject.parseObject(JSONObject.toJSONString(messageDetailVo), MessageDetailVo.class);
+
+        for (MessageDetailVo.MessageAttachment messageAttachment : copy.getMessageAttachmentList()) {
             messageAttachment.setUrl(ObsFileUtil.getCompleteUrl(messageAttachment.getUrl()));
         }
 
-        return messageDetailVo;
+        return copy;
     }
 
     private void saveMessageDetail(Long messageId, MessageDetailVo messageDetailVo, Integer type) {