From 35aa2ac3422006d441ebb3dc75f44850d1b0cef5 Mon Sep 17 00:00:00 2001 From: liuh Date: Mon, 28 Jun 2021 10:08:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E9=82=AE=E4=BB=B6=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BizSmsEmailController.java | 7 +-- .../entity/BizSendEmailVO.java | 6 ++- .../service/BizSmsEmailService.java | 4 +- .../service/impl/BizSmsEmailServiceImpl.java | 46 +++++++++++++++++-- 4 files changed, 54 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/controller/BizSmsEmailController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/controller/BizSmsEmailController.java index 2b59dc1..426b3dc 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/controller/BizSmsEmailController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/controller/BizSmsEmailController.java @@ -13,9 +13,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.io.IOException; @RestController -@Api(tags = "短信接口") +@Api(tags = "短信邮件接口") @RequestMapping("/v1/sms") public class BizSmsEmailController { @@ -28,9 +29,9 @@ public class BizSmsEmailController { return BaseResponse.success(msgService.sendMsg(msgVO)); } - @ApiOperation("发送短信") + @ApiOperation("发送邮件") @PostMapping("/sendEmail") - public BaseResponse saveMsg(@RequestBody @Validated BizSendEmailVO emailVO) { + public BaseResponse saveMsg(@RequestBody @Validated BizSendEmailVO emailVO) throws IOException { return BaseResponse.success(msgService.sendEmail(emailVO)); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/entity/BizSendEmailVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/entity/BizSendEmailVO.java index d952811..9d23836 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/entity/BizSendEmailVO.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/entity/BizSendEmailVO.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.NotEmpty; import java.util.List; @@ -45,7 +46,10 @@ public class BizSendEmailVO { @ApiModelProperty(value = "URL方式或附件文件方式二选一:\n" + "varchar:附件URL长度不超过1000\n" + "File:附件文件(限制2M)\n") - private String file; + private String fileUrl; + + @ApiModelProperty(value = "文件流") + private MultipartFile file; @ApiModelProperty(value = "批量发送邮箱") private List sendToList; diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/service/BizSmsEmailService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/service/BizSmsEmailService.java index 449f140..918cd15 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/service/BizSmsEmailService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/service/BizSmsEmailService.java @@ -5,10 +5,12 @@ import com.chinaunicom.mall.ebtp.extend.bizshortmessageemail.entity.BizSendEmail import com.chinaunicom.mall.ebtp.extend.bizshortmessageemail.entity.BizSendMsgVO; import org.springframework.stereotype.Component; +import java.io.IOException; + @Component public interface BizSmsEmailService { Boolean sendMsg(BizSendMsgVO msgVO); - Boolean sendEmail(BizSendEmailVO emailVO); + Boolean sendEmail(BizSendEmailVO emailVO) throws IOException; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/service/impl/BizSmsEmailServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/service/impl/BizSmsEmailServiceImpl.java index e7aad03..8bf7c15 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/service/impl/BizSmsEmailServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizshortmessageemail/service/impl/BizSmsEmailServiceImpl.java @@ -1,5 +1,10 @@ package com.chinaunicom.mall.ebtp.extend.bizshortmessageemail.service.impl; +import java.io.*; +import java.nio.file.Files; import java.time.LocalDateTime; + +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.disk.DiskFileItem; import org.springframework.web.multipart.MultipartFile; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; @@ -14,6 +19,7 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.annotation.Resource; @@ -50,7 +56,7 @@ public class BizSmsEmailServiceImpl implements BizSmsEmailService { } @Override - public Boolean sendEmail(BizSendEmailVO emailVO) { + public Boolean sendEmail(BizSendEmailVO emailVO) throws IOException { EshopMailPendingPO po = new EshopMailPendingPO(); po.setSendCenter("ebtp"); @@ -62,12 +68,16 @@ public class BizSmsEmailServiceImpl implements BizSmsEmailService { } else { po.setSendTo(emailVO.getSendTo()); } - //邮件内容 + //邮件主题 po.setSubject(emailVO.getSubject()); + //邮件内容 po.setMsg(emailVO.getMsg()); - po.setFileUrl(""); - po.setFileType(emailVO.getFileType()); + if ("1".equals(emailVO.getFileType())) { + po.setFileUrl(emailVO.getFileUrl()); + } else if ("2".equals(emailVO.getFileType())){ + po.setFile(this.getFile()); + } logger.info("调用邮件发送接口入参:[{}]", po); BaseResponse baseResponse = notificationFeignClient.sendMail(po); @@ -76,4 +86,32 @@ public class BizSmsEmailServiceImpl implements BizSmsEmailService { return baseResponse.isSuccess(); } + + /** + * + * @Description 返回MultipartFile文件 + * @return org.springframework.web.multipart.MultipartFile + * @date 2019/1/5 11:08 + * @auther dell + */ + private MultipartFile getFile() throws IOException { + String filePath = "D:\\文档\\3.0能力间调用接口-通知中心.docx"; + File file = new File(filePath); + FileItem fileItem = new DiskFileItem("copyfile.txt", Files.probeContentType(file.toPath()),false,file.getName(),(int)file.length(),file.getParentFile()); + byte[] buffer = new byte[4096]; + int n; + try (InputStream inputStream = new FileInputStream(file); OutputStream os = fileItem.getOutputStream()){ + while ( (n = inputStream.read(buffer,0,4096)) != -1){ + os.write(buffer,0,n); + } + //也可以用IOUtils.copy(inputStream,os); + MultipartFile multipartFile = new CommonsMultipartFile(fileItem); + System.out.println(multipartFile.getName()); + return multipartFile; + }catch (IOException e){ + e.printStackTrace(); + } + return null; + } + }