Browse Source

feat:发送邮件增加发件人下拉选择框

chenjianhua 1 tháng trước cách đây
mục cha
commit
02508d6d7a

+ 3 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/SendEmailInfoDO.java

@@ -14,6 +14,9 @@ public class SendEmailInfoDO {
     @TableId(type = IdType.AUTO,value = "id")
     private Integer id;
 
+    @TableField("email_id")
+    private Integer emailId;
+
     @TableField("contract_id")
     private Integer contractId;
 

+ 2 - 2
service-manage/src/main/java/com/simuwang/manage/api/company/CompanyContactInformationController.java

@@ -175,8 +175,8 @@ public class CompanyContactInformationController{
     @SystemLog(value = "发送邮件", type = SystemLog.Type.UPLOAD_OR_IMPORT)
     @PostMapping("send-email")
     public ResultVo sendEmail(@RequestPart(value = "files",required = false) List<MultipartFile> files,@RequestParam("contractId") String contractId,@RequestParam("emailTitle") String emailTitle,
-                              @RequestParam("emailBody") String emailBody,@RequestParam("templateCode") String templateCode) {
-        ResultVo vo = contactInformationService.sendEmail(files,contractId,emailTitle,templateCode,emailBody);
+                              @RequestParam("emailBody") String emailBody,@RequestParam("templateCode") String templateCode,@RequestParam("emailId") String emailId) {
+        ResultVo vo = contactInformationService.sendEmail(files,contractId,emailTitle,templateCode,emailBody,emailId);
         return vo;
     }
 

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/service/ContactInformationService.java

@@ -24,7 +24,7 @@ public interface ContactInformationService {
 
     ResultVo uploadContactInformation(MultipartFile file);
 
-    ResultVo sendEmail(List<MultipartFile> files, String contractId, String emailTitle, String templateCode, String emailBody);
+    ResultVo sendEmail(List<MultipartFile> files, String contractId, String emailTitle, String templateCode, String emailBody,String emailId);
 
     List<ContactInformationDO> selectByIdList(List<Integer> idList);
 }

+ 28 - 17
service-manage/src/main/java/com/simuwang/manage/service/impl/ContactInformationServiceImpl.java

@@ -1,6 +1,8 @@
 package com.simuwang.manage.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.read.listener.PageReadListener;
 import com.alibaba.excel.support.ExcelTypeEnum;
@@ -9,12 +11,11 @@ import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.common.util.DateUtils;
 import com.simuwang.base.common.util.EmailUtil;
 import com.simuwang.base.common.util.StringUtil;
-import com.simuwang.base.mapper.daq.CompanyContactInfoMapper;
-import com.simuwang.base.mapper.daq.CompanyEmailSendHistoryMapper;
-import com.simuwang.base.mapper.daq.ContactInformationMapper;
-import com.simuwang.base.mapper.daq.SendEmailMapper;
+import com.simuwang.base.config.DaqProperties;
+import com.simuwang.base.mapper.daq.*;
 import com.simuwang.base.mapper.daq.system.SysConfigMapper;
 import com.simuwang.base.pojo.dos.CompanyEmailSendHistoryDO;
+import com.simuwang.base.pojo.dos.MailboxInfoDO;
 import com.simuwang.base.pojo.dos.SendEmailInfoDO;
 import com.simuwang.base.pojo.dto.ContactExcelData;
 import com.simuwang.base.pojo.dos.ContactInformationDO;
@@ -61,6 +62,11 @@ public class ContactInformationServiceImpl implements ContactInformationService
     private SysConfigMapper sysConfigMapper;
     @Autowired
     private SendEmailMapper sendEmailMapper;
+    @Autowired
+    private MailboxInfoMapper emailConfigMapper;
+
+    @Autowired
+    private DaqProperties properties;
 
     @Value("${email.file.path}")
     private String path;
@@ -148,13 +154,14 @@ public class ContactInformationServiceImpl implements ContactInformationService
     }
 
     @Override
-    public ResultVo sendEmail(List<MultipartFile> files, String contractId, String emailTitle, String templateCode, String emailBody) {
+    public ResultVo sendEmail(List<MultipartFile> files, String contractId, String emailTitle, String templateCode, String emailBody,String emailId) {
         ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode());
         SendEmailInfoDO sendEmailInfoDO = new SendEmailInfoDO();
         sendEmailInfoDO.setEmailTitle(emailTitle);
         sendEmailInfoDO.setTemplateCode(templateCode);
         sendEmailInfoDO.setEmailBody(emailBody);
         sendEmailInfoDO.setContractId(Integer.parseInt(contractId));
+        sendEmailInfoDO.setEmailId(Integer.parseInt(emailId));
         sendEmailInfoDO.setCreateTime(new Date());
         sendEmailInfoDO.setUpdateTime(new Date());
         sendEmailInfoDO.setIsvalid(1);
@@ -182,7 +189,22 @@ public class ContactInformationServiceImpl implements ContactInformationService
             sendEmailInfoDO.setFileName(fileName.toString());
             sendEmailInfoDO.setFilePath(filePath.toString());
         }
-        MailboxInfoDTO mailboxInfoDTO = getFromEmailInfo();
+        MailboxInfoDO mailboxInfoDO = emailConfigMapper.searchEmailConfigById(Integer.parseInt(emailId));
+        MailboxInfoDTO mailboxInfoDTO = new MailboxInfoDTO();
+        mailboxInfoDTO.setAccount(mailboxInfoDO.getEmail());
+        String password = mailboxInfoDO.getPassword();
+        try{
+            String publicKey = this.properties.getSecurityRsa().getPublicKey();
+            String privateKey = this.properties.getSecurityRsa().getPrivateKey();
+            password = new RSA(privateKey, publicKey).decryptStr(password, KeyType.PrivateKey);
+        }catch (Exception e){
+            logger.error(e.getMessage(),e);
+        }
+        mailboxInfoDTO.setPassword(password);
+        mailboxInfoDTO.setProtocol(sysConfigMapper.selectConfigByKey("sender.protocol"));
+        mailboxInfoDTO.setPort(sysConfigMapper.selectConfigByKey("sender.port"));
+        mailboxInfoDTO.setHost(sysConfigMapper.selectConfigByKey("sender.host"));
+        mailboxInfoDTO.setSsl(sysConfigMapper.selectConfigByKey("sender.ssl"));
         ContactInformationDO contactInformationDO = contactInformationMapper.selectById(contractId);
         vo.setData(true);
         try {
@@ -211,17 +233,6 @@ public class ContactInformationServiceImpl implements ContactInformationService
     }
 
 
-    private MailboxInfoDTO getFromEmailInfo(){
-        MailboxInfoDTO dto = new MailboxInfoDTO();
-        dto.setAccount(sysConfigMapper.selectConfigByKey("sender.email"));
-        dto.setProtocol(sysConfigMapper.selectConfigByKey("sender.protocol"));
-        dto.setPassword(sysConfigMapper.selectConfigByKey("sender.password"));
-        dto.setPort(sysConfigMapper.selectConfigByKey("sender.port"));
-        dto.setHost(sysConfigMapper.selectConfigByKey("sender.host"));
-        dto.setSsl(sysConfigMapper.selectConfigByKey("sender.ssl"));
-        return dto;
-    }
-
     private void saveCompanyEmailSendHistory(String companyId, String email, String emailTitle,Integer sendStatus,String msg) {
         CompanyEmailSendHistoryDO historyDO = new CompanyEmailSendHistoryDO();
         historyDO.setCompanyId(companyId);

+ 3 - 3
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailConfigServiceImpl.java

@@ -53,6 +53,9 @@ public class EmailConfigServiceImpl implements EmailConfigService {
     private MailboxInfoMapper emailConfigMapper;
 
     @Autowired
+    private DaqProperties properties;
+
+    @Autowired
     private Scheduler scheduler;
 
     @Value("${spring.task.groupName}")
@@ -61,9 +64,6 @@ public class EmailConfigServiceImpl implements EmailConfigService {
     @Autowired
     private EmailParseApiService emailParseApiService;
 
-    @Autowired
-    private DaqProperties properties;
-
     private String JOB_CLASS="com.simuwang.manage.task.ParseSchedulerTask";
     private static final Logger logger = LoggerFactory.getLogger(EmailConfigServiceImpl.class);