Bläddra i källkod

增加修改邮件内容接口

chenkq 1 månad sedan
förälder
incheckning
8d0ab34c29

+ 12 - 0
storlead-mail-api/src/main/java/com/storlead/mail/mkt/MktMailApiController.java

@@ -15,6 +15,7 @@ import com.storlead.sales.mail.common.service.MailTempAttachmentService;
 import com.storlead.sales.mail.common.util.SafeFilePathResolver;
 import com.storlead.sales.mail.mkt.entity.MktMailAttachmentEntity;
 import com.storlead.sales.mail.mkt.entity.MktMailMessageEntity;
+import com.storlead.sales.mail.mkt.pojo.MktEditMailContentDTO;
 import com.storlead.sales.mail.mkt.pojo.MktMailQueryDTO;
 import com.storlead.sales.mail.mkt.pojo.MktOpenStatsVO;
 import com.storlead.sales.mail.mkt.pojo.MktSendMailDTO;
@@ -208,6 +209,17 @@ public class MktMailApiController {
         return Result.result(entity);
     }
 
+    @PostMapping("/edit_content")
+    @ApiOperation("编辑营销邮件内容(仅更新正文,不发送、不改收件人/附件)")
+    public Result<?> editContent(@RequestBody MktEditMailContentDTO dto) {
+        Long userId = LoginUserUtil.getCurrentUserId();
+        if (Objects.isNull(userId)) {
+            return Result.error("未登录");
+        }
+        MktMailMessageEntity entity = mktMailMessageService.updateContent(dto, userId);
+        return Result.result(entity);
+    }
+
     @PostMapping("/page_list")
     @ApiOperation("营销邮件投递分页")
     public Result<?> pageList(@RequestBody MktMailQueryDTO query) {

+ 16 - 0
storlead-mail/storlead-mail-mkt/src/main/java/com/storlead/sales/mail/mkt/pojo/MktEditMailContentDTO.java

@@ -0,0 +1,16 @@
+package com.storlead.sales.mail.mkt.pojo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("营销邮件编辑正文请求")
+public class MktEditMailContentDTO {
+
+    @ApiModelProperty(value = "邮件ID", required = true)
+    private Long id;
+
+    @ApiModelProperty(value = "正文HTML", required = true)
+    private String content;
+}

+ 6 - 0
storlead-mail/storlead-mail-mkt/src/main/java/com/storlead/sales/mail/mkt/service/MktMailMessageService.java

@@ -3,6 +3,7 @@ package com.storlead.sales.mail.mkt.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.storlead.framework.mybatis.service.MyBaseService;
 import com.storlead.sales.mail.mkt.entity.MktMailMessageEntity;
+import com.storlead.sales.mail.mkt.pojo.MktEditMailContentDTO;
 import com.storlead.sales.mail.mkt.pojo.MktMailQueryDTO;
 import com.storlead.sales.mail.mkt.pojo.MktOpenStatsVO;
 import com.storlead.sales.mail.mkt.pojo.MktSendMailDTO;
@@ -23,6 +24,11 @@ public interface MktMailMessageService extends MyBaseService<MktMailMessageEntit
      */
     MktMailMessageEntity send(MktSendMailDTO dto, Long operatorId);
 
+    /**
+     * 仅更新正文;可写范围与发送一致(草稿/延时/失败)。
+     */
+    MktMailMessageEntity updateContent(MktEditMailContentDTO dto, Long operatorId);
+
     /**
      * 扫描并发送到期的营销定时邮件,返回成功条数。
      */

+ 19 - 0
storlead-mail/storlead-mail-mkt/src/main/java/com/storlead/sales/mail/mkt/service/impl/MktMailMessageServiceImpl.java

@@ -22,6 +22,7 @@ import com.storlead.sales.mail.mkt.entity.MktMailAttachmentEntity;
 import com.storlead.sales.mail.mkt.entity.MktMailMessageEntity;
 import com.storlead.sales.mail.mkt.enums.MktMailFolderEnum;
 import com.storlead.sales.mail.mkt.mapper.MktMailMessageMapper;
+import com.storlead.sales.mail.mkt.pojo.MktEditMailContentDTO;
 import com.storlead.sales.mail.mkt.pojo.MktMailQueryDTO;
 import com.storlead.sales.mail.mkt.pojo.MktOpenStatsVO;
 import com.storlead.sales.mail.mkt.pojo.MktSendMailDTO;
@@ -190,6 +191,24 @@ public class MktMailMessageServiceImpl extends MyBaseServiceImpl<MktMailMessageM
         return entity;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public MktMailMessageEntity updateContent(MktEditMailContentDTO dto, Long operatorId) {
+        if (dto == null || dto.getId() == null) {
+            throw new WebException("邮件ID不能为空");
+        }
+        if (dto.getContent() == null) {
+            throw new WebException("邮件内容不能为空");
+        }
+        MktMailMessageEntity entity = resolveWritableEntity(dto.getId(), operatorId);
+        LambdaUpdateWrapper<MktMailMessageEntity> update = new LambdaUpdateWrapper<>();
+        update.eq(MktMailMessageEntity::getId, entity.getId());
+        update.set(MktMailMessageEntity::getContent, dto.getContent());
+        update.set(MktMailMessageEntity::getEmailSize, (long) dto.getContent().length());
+        this.update(update);
+        return this.getById(entity.getId());
+    }
+
     @Override
     public int sendDueDelayedMails() {
         Date now = new Date();