diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/SendMailRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/SendMailRecordController.java index 3d7e397..ab3edd8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/SendMailRecordController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/sendrecord/SendMailRecordController.java @@ -1,19 +1,18 @@ package com.ruoyi.web.controller.wisdomarbitrate.sendrecord; import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.wisdomarbitrate.domain.dto.sendrecord.SendMailRecord; import com.ruoyi.wisdomarbitrate.service.sendrecord.ISendMailRecordService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/sendMailRecord") -public class SendMailRecordController extends BaseController { +public class SendMailRecordController extends BaseController { @Autowired private ISendMailRecordService sendMailRecordService; @@ -21,13 +20,30 @@ public class SendMailRecordController extends BaseController { * 查询发送邮件记录列表 */ @GetMapping("/list") - public TableDataInfo list(SendMailRecord sendMailRecord) - { + public TableDataInfo list(SendMailRecord sendMailRecord) { startPage(); List list = sendMailRecordService.selectSendMailRecordList(sendMailRecord); return getDataTable(list); } + /** + * 编辑邮件记录 + */ + @PostMapping("/update") + public AjaxResult update(@RequestBody SendMailRecord sendMailRecord) { + return sendMailRecordService.updateSendMailRecord(sendMailRecord); + } - + /** + * 重新发送邮件记录 + */ + @PostMapping("/reSendMailRecord") + public AjaxResult reSendMailRecord(@RequestBody SendMailRecord sendMailRecord) { + Boolean aBoolean = sendMailRecordService.reSendMailRecord(sendMailRecord); + if (aBoolean) { + return AjaxResult.success("发送成功"); + } else { + return AjaxResult.error("发送失败"); + } + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/shortmessage/MsSendMailHistoryRecord.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/shortmessage/MsSendMailHistoryRecord.java new file mode 100644 index 0000000..f951ee5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/shortmessage/MsSendMailHistoryRecord.java @@ -0,0 +1,107 @@ +package com.ruoyi.system.domain.entity.shortmessage; + +import java.util.Date; +import javax.persistence.*; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@ToString +@Table(name = "ms_send_mail_history_record") +public class MsSendMailHistoryRecord { + @Id + @GeneratedValue(generator = "JDBC") + private Long id; + + /** + * 邮件名称 + */ + @Column(name = "mail_name") + private String mailName; + + /** + * 邮件接收地址 + */ + @Column(name = "mail_address") + private String mailAddress; + + /** + * 发送时间 + */ + @Column(name = "send_time") + private Date sendTime; + + /** + * 案件编号 + */ + @Column(name = "case_num") + private String caseNum; + + /** + * 发送状态 + */ + @Column(name = "send_status") + private Long sendStatus; + + /** + * 立案申请id + */ + @Column(name = "case_id") + private Long caseId; + + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; + + /** + * 创建者 + */ + @Column(name = "create_by") + private String createBy; + + /** + * 更新者 + */ + @Column(name = "update_by") + private String updateBy; + + /** + * 更新时间 + */ + @Column(name = "update_time") + private Date updateTime; + + /** + * 附件id用英文逗号隔开 + */ + @Column(name = "file_ids") + private String fileIds; + + /** + * 邮件主题 + */ + @Column(name = "mail_subject") + private String mailSubject; + + /** + * 邮件发送地址 + */ + @Column(name = "mail_from_address") + private String mailFromAddress; + + /** + * 邮件父类id + */ + @Column(name = "parent_id") + private Long parentId; + + /** + * 邮件内容 + */ + @Column(name = "mail_content") + private String mailContent; +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/shortmessage/MsSendMailHistoryRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/shortmessage/MsSendMailHistoryRecordMapper.java new file mode 100644 index 0000000..5b62272 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/shortmessage/MsSendMailHistoryRecordMapper.java @@ -0,0 +1,7 @@ +package com.ruoyi.system.mapper.shortmessage; + +import com.ruoyi.system.domain.entity.shortmessage.MsSendMailHistoryRecord; +import tk.mybatis.mapper.common.Mapper; + +public interface MsSendMailHistoryRecordMapper extends Mapper { +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SendMailRecord.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SendMailRecord.java index 5c7e08c..3b3c9aa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SendMailRecord.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/sendrecord/SendMailRecord.java @@ -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; diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sendrecord/SendMailRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sendrecord/SendMailRecordMapper.java index 57fd469..379a771 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sendrecord/SendMailRecordMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/sendrecord/SendMailRecordMapper.java @@ -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 selectSendMailRecord(SendMailRecord sendMailRecord); +/** + * 修改发送邮件记录 + * + * @param sendMailRecord 发送邮件记录 + * @return 结果 + */ + int updateSendMailRecord(SendMailRecord sendMailRecord); - - + /** + * 根据id查询发送邮件记录 + * @param id + */ + SendMailRecord querySendMailRecordById(Long id); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/ISendMailRecordService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/ISendMailRecordService.java index 063dddc..f5a237e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/ISendMailRecordService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/ISendMailRecordService.java @@ -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 selectSendMailRecordList(SendMailRecord sendMailRecord); + /** + * 编辑邮件记录 + * + * @param sendMailRecord + */ + AjaxResult updateSendMailRecord(SendMailRecord sendMailRecord); - - + /** + * 重新发送邮件 + * + * @param sendMailRecord + * @return + */ + Boolean reSendMailRecord(SendMailRecord sendMailRecord); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/impl/SendMailRecordServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/impl/SendMailRecordServiceImpl.java index 76207f3..78ec7cb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/impl/SendMailRecordServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/sendrecord/impl/SendMailRecordServiceImpl.java @@ -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 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; + } } diff --git a/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/shortmessage/MsSendMailHistoryRecordMapper.xml b/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/shortmessage/MsSendMailHistoryRecordMapper.xml new file mode 100644 index 0000000..f6d79c1 --- /dev/null +++ b/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/shortmessage/MsSendMailHistoryRecordMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SendMailRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SendMailRecordMapper.xml index 0b38049..418f62e 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SendMailRecordMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SendMailRecordMapper.xml @@ -5,22 +5,26 @@ - - - - - - - - + + + + + + + + + + + - SELECT s.id ,s.mail_name ,s.mail_content ,s.mail_address ,s.send_time ,s.case_id ,s.create_time ,s.create_by , - s.update_by ,s.update_time , s.send_status ,c.case_num + s.update_by ,s.update_time , s.send_status ,s.file_ids ,s.mail_subject ,s.mail_from_address ,c.case_num from ms_send_mail_record s left join ms_case_application c - on s.case_id = c.id + on s.case_id = c.id AND c.case_num = #{caseNum} @@ -38,6 +42,9 @@ case_id, send_status, create_by, + file_ids, + mail_subject, + mail_from_address, create_time )values( #{mailName}, @@ -47,15 +54,23 @@ #{caseId}, #{sendStatus}, #{createBy}, + #{fileIds}, + #{mailSubject}, + #{mailFromAddress}, sysdate() ) - - - - - - - - + + update ms_send_mail_record + set mail_content= #{mailContent}, + update_time=#{updateTime}, + send_time=#{sendTime}, + send_status=#{sendStatus} + where id = #{id} + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SmsRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SmsRecordMapper.xml index e823cdd..a7a3c0e 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SmsRecordMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/sendrecord/SmsRecordMapper.xml @@ -5,20 +5,21 @@ - - - - - - - - - - - - + + + + + + + + + + + + - + insert into ms_sms_send_record( case_appli_id, @@ -47,31 +48,32 @@ insert into ms_sms_send_record( - case_appli_id, - case_num, - phone, - send_time, - send_content, - create_by, - send_status, + case_appli_id, + case_num, + phone, + send_time, + send_content, + create_by, + send_status, create_time, sid,reason )values - ( - #{item.caseId}, - #{item.caseNum}, - #{item.phone}, - #{item.sendTime}, - #{item.sendContent}, - #{item.createBy}, - #{item.sendStatus}, - sysdate(),#{sid},#{reason} - ) + ( + #{item.caseId}, + #{item.caseNum}, + #{item.phone}, + #{item.sendTime}, + #{item.sendContent}, + #{item.createBy}, + #{item.sendStatus}, + sysdate(),#{sid},#{reason} + ) - select * from ms_sms_send_record @@ -84,20 +86,28 @@ update ms_sms_send_record - set send_status= #{sendStatus} ,reason=#{reason} where sid=#{sid} + set send_status= #{sendStatus}, + reason=#{reason} + where sid = #{sid} update ms_sms_send_record - set send_content= #{sendContent} ,update_time=#{updateTime} where id=#{id} + set send_content= #{sendContent}, + update_time=#{updateTime} + where id = #{id}