新增邮件发送记录编辑接口,邮件记录重新发送接口

This commit is contained in:
wangqiong
2024-04-17 15:24:38 +08:00
parent 376e86cc28
commit 75da02d795
10 changed files with 376 additions and 68 deletions
@@ -3,9 +3,10 @@ package com.ruoyi.wisdomarbitrate.domain.dto.sendrecord;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.Date;
@Data
public class SendMailRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
@@ -40,6 +41,15 @@ public class SendMailRecord extends BaseEntity {
private Integer sendStatus;
/** 附件id */
private String fileIds;
/** 邮件主题 */
private String mailSubject;
/** 邮件发件人地址 */
private String mailFromAddress;
public Integer getSendStatus() {
return sendStatus;
@@ -5,10 +5,32 @@ import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord;
import java.util.List;
public interface SendMailRecordMapper {
/**
* 新增发送邮件记录
*
* @param sendMailRecord 发送邮件记录
* @return 结果
*/
int saveSendMailRecord(SendMailRecord sendMailRecord);
/**
* 查询发送邮件记录
*
* @param sendMailRecord 发送邮件记录
* @return 结果
*/
List<SendMailRecord> selectSendMailRecord(SendMailRecord sendMailRecord);
/**
* 修改发送邮件记录
*
* @param sendMailRecord 发送邮件记录
* @return 结果
*/
int updateSendMailRecord(SendMailRecord sendMailRecord);
/**
* 根据id查询发送邮件记录
* @param id
*/
SendMailRecord querySendMailRecordById(Long id);
}
@@ -1,15 +1,32 @@
package com.ruoyi.wisdomarbitrate.service.sendrecord;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord;
import java.util.List;
public interface ISendMailRecordService {
/**
* 查询邮件发送记录
*
* @param sendMailRecord
* @return
*/
List<SendMailRecord> selectSendMailRecordList(SendMailRecord sendMailRecord);
/**
* 编辑邮件记录
*
* @param sendMailRecord
*/
AjaxResult updateSendMailRecord(SendMailRecord sendMailRecord);
/**
* 重新发送邮件
*
* @param sendMailRecord
* @return
*/
Boolean reSendMailRecord(SendMailRecord sendMailRecord);
}
@@ -1,11 +1,19 @@
package com.ruoyi.wisdomarbitrate.service.sendrecord.impl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.EmailOutUtil;
import com.ruoyi.system.domain.entity.shortmessage.MsSendMailHistoryRecord;
import com.ruoyi.system.mapper.shortmessage.MsSendMailHistoryRecordMapper;
import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord;
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach;
import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseAttachMapper;
import com.ruoyi.wisdomarbitrate.mapper.sendrecord.SendMailRecordMapper;
import com.ruoyi.wisdomarbitrate.service.sendrecord.ISendMailRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.List;
@Service
@@ -20,6 +28,77 @@ public class SendMailRecordServiceImpl implements ISendMailRecordService {
return records;
}
@Autowired
MsSendMailHistoryRecordMapper msSendMailHistoryRecordMapper;
/**
* 编辑邮件记录
*
* @param sendMailRecord
*/
@Override
public AjaxResult updateSendMailRecord(SendMailRecord sendMailRecord) {
try {
if (sendMailRecord != null && sendMailRecord.getId() != null) {
SendMailRecord old = sendMailRecordMapper.querySendMailRecordById(sendMailRecord.getId());
MsSendMailHistoryRecord msSendMailHistoryRecord = new MsSendMailHistoryRecord();
BeanUtils.copyProperties(old, msSendMailHistoryRecord);
msSendMailHistoryRecord.setParentId(old.getId());
msSendMailHistoryRecord.setId(null);
msSendMailHistoryRecordMapper.insertSelective(msSendMailHistoryRecord);
sendMailRecordMapper.updateSendMailRecord(sendMailRecord);
return AjaxResult.success("编辑成功");
} else {
return AjaxResult.error("编辑失败");
}
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.error("编辑失败");
}
}
@Autowired
private EmailOutUtil emailOutUtil;
@Autowired
MsCaseAttachMapper msCaseAttachMapper;
/**
* 重新发送邮件
*
* @param sendMailRecord
* @return
*/
@Override
public Boolean reSendMailRecord(SendMailRecord sendMailRecord) {
List<File> fileList = null;
if (sendMailRecord.getFileIds() != null && sendMailRecord.getFileIds() != "") {
String[] fileIds = sendMailRecord.getFileIds().split(",");
for (int i = 0; i < fileIds.length; i++) {
String fileId = fileIds[i];
try {
Long id = Long.parseLong(fileId);
MsCaseAttach msCaseAttach = msCaseAttachMapper.queryAnnexById(id);
String annexPath = msCaseAttach.getAnnexPath();
if (annexPath != null && annexPath != "") {
String prefix = "/profile";
int startIndex = prefix.length();
String path = "/home/ruoyi/uploadPath/" + annexPath.substring(startIndex + 1);
File file = new File(path);
fileList.add(file);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Boolean flag = emailOutUtil.sendEmil(sendMailRecord.getMailAddress(), sendMailRecord.getMailContent(), sendMailRecord.getMailSubject(), fileList, null);
//发送成功后更细邮件记录的发送时间和发送状态
if (flag) {
sendMailRecord.setSendStatus(1);
sendMailRecord.setSendTime(new java.util.Date());
sendMailRecord.setUpdateTime(new java.util.Date());
sendMailRecordMapper.updateSendMailRecord(sendMailRecord);
}
return flag;
}
}