Prechádzať zdrojové kódy

feat:分红数据来源增加系统计算

chenjianhua 1 mesiac pred
rodič
commit
5eeb7109ec

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

@@ -171,7 +171,7 @@ public class CompanyContactInformationController{
      */
     @SystemLog(value = "发送邮件", type = SystemLog.Type.UPLOAD_OR_IMPORT)
     @PostMapping("send-email")
-    public ResultVo sendEmail(@RequestPart(value = "files") List<MultipartFile> files,@RequestParam("contractId") String contractId,@RequestParam("emailTitle") String emailTitle,
+    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);
         return vo;

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

@@ -19,6 +19,7 @@ import java.util.List;
  */
 public interface CompanyEmailSendHistoryService {
     MybatisPage<CompanyEmailPageVO> searchCompanyEmail(CompanyEmailPageQuery companyEmailPageQuery);
+
     MybatisPage<CompanyEmailSendHistoryVO> searchEmailHistory(CompanyEmailHistoryPageQuery companyEmailHistoryPageQuery);
 
     ResultVo deleteEmail(List<Integer> idList);

+ 25 - 8
service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyEmailConfigServiceImpl.java

@@ -54,6 +54,9 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
     private DeletionTaskLogInfoMapper deletionTaskLogInfoMapper;
 
     @Autowired
+    private EmailTemplateMapper emailTemplateMapper;
+
+    @Autowired
     private SysConfigMapper sysConfigMapper;
 
     private static Logger logger = LoggerFactory.getLogger(CompanyEmailConfigServiceImpl.class);
@@ -67,6 +70,12 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
     @Autowired
     private AssetMapper assetMapper;
 
+    private static final String DELETION_TEMPLATE_CODE = "DATA_MISS";
+    private static final String DISTRIBUTION_DELETION_TEMPLATE_CODE = "DISTRIBUTION_MISS";
+
+    @Autowired
+    private ContactInformationServiceImpl contactInformationServiceImpl;
+
     @Override
     public ResultVo saveCompanyEmailConfig(List<CompanyEmailConfigVO> companyEmailConfigVOS) {
         ResultVo vo = new ResultVo(com.smppw.common.pojo.enums.status.ResultCode.SAVE_SUCCESS);
@@ -163,8 +172,12 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             getAssetDeletion(fundId,emailDeletionInfoDOS);
         }
         if(emailDeletionInfoDOS.size() > 0){
-            String htmlText = sysConfigMapper.selectConfigByKey("deletion_email_body");
-            String emailTitle = sysConfigMapper.selectConfigByKey("deletion_email_title");
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DELETION_TEMPLATE_CODE);
+            if(emailTemplateDO == null){
+                return;
+            }
+            String emailTitle = emailTemplateDO.getEmailTitle();
+            String emailBody = emailTemplateDO.getEmailBody().replaceAll("\r\n", "<br/>").replaceAll("\n", "<br/>");
             try {
             //将数据写入excel文件
             File file = writeExcelFile(emailDeletionInfoDOS);
@@ -173,11 +186,11 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             file.setExecutable(true);
             MailboxInfoDTO dto = getFromEmailInfo();
             try{
-                EmailUtil.senEmail(dto,emails,List.of(file),htmlText,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
+                EmailUtil.senEmail(dto,emails,List.of(file),emailBody,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
             }catch (Exception e){
                 //有些是因为被识别为垃圾邮件导致的报错,需要在发送一次
                 logger.error(e.getMessage(),e);
-                EmailUtil.senEmail(dto,emails,List.of(file),htmlText,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
+                EmailUtil.senEmail(dto,emails,List.of(file),emailBody,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
             }
             //发送成功之后修改数据为已发送
             deletionInfoMapper.updateSendStatusByFundId(fundIdList);
@@ -401,8 +414,12 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             emailDeletionInfoDOS.addAll(distributeDeletionList);
         }
         if(emailDeletionInfoDOS.size() > 0){
-            String htmlText = sysConfigMapper.selectConfigByKey("deletion_distribute_email_body");
-            String emailTitle = sysConfigMapper.selectConfigByKey("deletion_distribute_email_title");
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(DISTRIBUTION_DELETION_TEMPLATE_CODE);
+            if(emailTemplateDO == null){
+                return;
+            }
+            String emailTitle = emailTemplateDO.getEmailTitle();
+            String emailBody = emailTemplateDO.getEmailBody().replaceAll("\r\n", "<br/>").replaceAll("\n", "<br/>");
             try {
                 //将数据写入excel文件
                 File file = writeExcelFile(emailDeletionInfoDOS);
@@ -411,10 +428,10 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
                 file.setExecutable(true);
                 MailboxInfoDTO dto = getFromEmailInfo();
                 try{
-                    EmailUtil.senEmail(dto,emails,List.of(file),htmlText,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
+                    EmailUtil.senEmail(dto,emails,List.of(file),emailBody,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
                 }catch (Exception e){
                     logger.error(e.getMessage(),e);
-                    EmailUtil.senEmail(dto,emails,List.of(file),htmlText,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
+                    EmailUtil.senEmail(dto,emails,List.of(file),emailBody,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
                 }
                 //发送成功之后修改数据为已发送
                 deletionInfoMapper.updateSendStatusByFundId(fundIdList);

+ 15 - 4
service-manage/src/main/java/com/simuwang/manage/service/impl/ContactInformationServiceImpl.java

@@ -53,8 +53,6 @@ public class ContactInformationServiceImpl implements ContactInformationService
 
     @Autowired
     private CompanyInformationService companyInformationService;
-    @Autowired
-    private CompanyEmailConfigService companyEmailConfigService;
 
     @Autowired
     private CompanyEmailSendHistoryMapper companyEmailSendHistoryMapper;
@@ -163,7 +161,7 @@ public class ContactInformationServiceImpl implements ContactInformationService
         sendEmailInfoDO.setCreatorId(UserUtils.getLoginUser().getUserId());
         sendEmailInfoDO.setUpdaterId(UserUtils.getLoginUser().getUserId());
         List<File> fileList = new ArrayList<>();
-        if(!files.isEmpty()){
+        if(files != null && !files.isEmpty()){
             StringBuilder filePath = new StringBuilder();
             StringBuilder fileName = new StringBuilder();
             for (MultipartFile file : files) {
@@ -184,11 +182,12 @@ public class ContactInformationServiceImpl implements ContactInformationService
             sendEmailInfoDO.setFileName(fileName.toString());
             sendEmailInfoDO.setFilePath(filePath.toString());
         }
-        MailboxInfoDTO mailboxInfoDTO = companyEmailConfigService.getFromEmailInfo();
+        MailboxInfoDTO mailboxInfoDTO = getFromEmailInfo();
         ContactInformationDO contactInformationDO = contactInformationMapper.selectById(contractId);
         vo.setData(true);
         try {
             String host = sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host");
+            emailBody = emailBody.replaceAll("\r\n","<br/>").replaceAll("\n","<br/>");
             try{
                 EmailUtil.senEmail(mailboxInfoDTO,contactInformationDO.getContactEmail(),fileList,emailBody,host,emailTitle);
             }catch (Exception e){
@@ -206,6 +205,18 @@ public class ContactInformationServiceImpl implements ContactInformationService
         return vo;
     }
 
+
+    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);

+ 12 - 3
service-manage/src/main/java/com/simuwang/manage/task/SendDeletionEmailTask.java

@@ -10,6 +10,7 @@ import com.simuwang.base.common.util.ExcelUtil;
 import com.simuwang.base.common.util.StringUtil;
 import com.simuwang.base.mapper.daq.ContactInformationMapper;
 import com.simuwang.base.mapper.daq.EmailTaskInfoMapper;
+import com.simuwang.base.mapper.daq.EmailTemplateMapper;
 import com.simuwang.base.mapper.daq.FundInfoMapper;
 import com.simuwang.base.mapper.daq.system.SysConfigMapper;
 import com.simuwang.base.pojo.dos.*;
@@ -48,8 +49,12 @@ public class SendDeletionEmailTask {
     private EmailTaskInfoMapper emailTaskInfoMapper;
 
     @Autowired
+    private EmailTemplateMapper emailTemplateMapper;
+    @Autowired
     private SysConfigMapper sysConfigMapper;
 
+    private static final String PAIPAI_EMAIL="PAIPAI";
+
     @Value("${email.file.path}")
     private String path;
 
@@ -90,15 +95,19 @@ public class SendDeletionEmailTask {
             fundDeletionFile.setReadable(true);
             fundDeletionFile.setExecutable(true);
             MailboxInfoDTO dto = getFromEmailInfo();
-            String htmlText = sysConfigMapper.selectConfigByKey("deletion_email_body");
-            String emailTitle = sysConfigMapper.selectConfigByKey("deletion_email_title");
+            EmailTemplateDO emailTemplateDO = emailTemplateMapper.selectByCode(PAIPAI_EMAIL);
+            if(emailTemplateDO == null){
+                return;
+            }
+            String emailTitle = emailTemplateDO.getEmailTitle();
+            String emailBody = emailTemplateDO.getEmailBody().replaceAll("\r\n", "<br/>").replaceAll("\n", "<br/>");
             String emails = sysConfigMapper.selectConfigByKey("ppw_email");
             if(StringUtil.isEmpty(emails)){
                 return;
             }
             fileList.add(fundDeletionFile);
             fileList.add(fundBaseInfoFile);
-            EmailUtil.senEmail(dto,emails,fileList,htmlText,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
+            EmailUtil.senEmail(dto,emails,fileList,emailBody,sysConfigMapper.selectConfigByKey("email.host")==null?"":sysConfigMapper.selectConfigByKey("email.host"),emailTitle);
         }catch (Exception e){
             log.error(e.getMessage(),e);
             endEmailTask(emailTaskInfoDO.getId(),-1);