纪新园 7 months ago
parent
commit
28045b1b6f

+ 5 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/vo/GenerateMailVo.java

@@ -51,4 +51,9 @@ public class GenerateMailVo {
 	 */
 	private String mailContent;
 
+	/**
+	 * 文件内容
+	 */
+	private String fileContentStr;
+
 }

+ 11 - 2
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java

@@ -29,6 +29,7 @@ import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.los.Util.BigDecimalUtils;
 import org.springblade.los.Util.CurrencyUtils;
 import org.springblade.los.Util.MagicValues;
@@ -3490,6 +3491,10 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 
 	@Override
 	public R<String> generateMailFileAndSend(GenerateMailVo generateMailVo) {
+		String sendMailType = sysClient.getParamService("send.mail.type");
+		if (!StringUtils.hasText(sendMailType)) {
+			return R.fail("请配置邮件发送方式");
+		}
 		String baseFilePath = sysClient.getParamService("stimulsoft.send.mail.path");
 		if (!StringUtils.hasText(baseFilePath)) {
 			return R.fail("请配置发送邮件文件路径");
@@ -3533,7 +3538,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		String realFileName = generateMailVo.getFileName() + "." + generateMailVo.getFileType().toLowerCase();
 		String filePath = baseFilePath + "/" + realFileName;
 		try {
-			Files.write(Paths.get(filePath), generateMailVo.getFileContent());
+			if (Objects.nonNull(generateMailVo.getFileContent())) {
+				Files.write(Paths.get(filePath), generateMailVo.getFileContent());
+			} else {
+				FileUtil.writeToFile(new File(filePath), generateMailVo.getFileContentStr());
+			}
 		} catch (Exception e) {
 			log.error(e.toString());
 			return R.fail("文件写入失败");
@@ -3542,7 +3551,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		mailDto.setMailFrom(userMail);
 		mailDto.setMailUserName(userMail);
 		mailDto.setMailPassword(userMailAuthorization);
-		mailDto.setMailType(MailTypeEnum.QQ.mailType);
+		mailDto.setMailType(Integer.parseInt(sendMailType));
 		mailDto.setMailTo(generateMailVo.getSendTo());
 		mailDto.setMailCc(generateMailVo.getSendCc());
 		mailDto.setMailBcc(generateMailVo.getSendBcc());