Commit da3ce69a by zhangxingmin

测试发送邮件

parent 67927463
...@@ -4,11 +4,14 @@ import com.yd.common.result.Result; ...@@ -4,11 +4,14 @@ import com.yd.common.result.Result;
import com.yd.email.api.service.ApiEmailFileService; import com.yd.email.api.service.ApiEmailFileService;
import com.yd.email.feign.client.ApiEmailFileFeignClient; import com.yd.email.feign.client.ApiEmailFileFeignClient;
import com.yd.email.feign.request.ApiExportVariableExcelRequest; import com.yd.email.feign.request.ApiExportVariableExcelRequest;
import com.yd.email.feign.request.ApiImportVariableExcelRequest;
import com.yd.email.feign.response.ApiExportVariableExcelResponse; import com.yd.email.feign.response.ApiExportVariableExcelResponse;
import com.yd.email.feign.response.ApiImportVariableExcelResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 邮件文件信息 * 邮件文件信息
...@@ -33,4 +36,16 @@ public class ApiEmailFileController implements ApiEmailFileFeignClient { ...@@ -33,4 +36,16 @@ public class ApiEmailFileController implements ApiEmailFileFeignClient {
public Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest request) { public Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest request) {
return apiEmailFileService.exportVariableExcel(request); return apiEmailFileService.exportVariableExcel(request);
} }
/**
* 导入-变量excel
* @param file
* @param request
* @return
*/
@Override
public Result<ApiImportVariableExcelResponse> importVariableExcel(MultipartFile file,
ApiImportVariableExcelRequest request) {
return apiEmailFileService.importVariableExcel(file,request);
}
} }
...@@ -3,8 +3,14 @@ package com.yd.email.api.service; ...@@ -3,8 +3,14 @@ package com.yd.email.api.service;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.email.feign.request.ApiExportVariableExcelRequest; import com.yd.email.feign.request.ApiExportVariableExcelRequest;
import com.yd.email.feign.request.ApiImportVariableExcelRequest;
import com.yd.email.feign.response.ApiExportVariableExcelResponse; import com.yd.email.feign.response.ApiExportVariableExcelResponse;
import com.yd.email.feign.response.ApiImportVariableExcelResponse;
import org.springframework.web.multipart.MultipartFile;
public interface ApiEmailFileService { public interface ApiEmailFileService {
Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest request); Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest request);
Result<ApiImportVariableExcelResponse> importVariableExcel(MultipartFile file,
ApiImportVariableExcelRequest request);
} }
...@@ -59,7 +59,7 @@ public class ApiEmailContactImportServiceImpl implements ApiEmailContactImportSe ...@@ -59,7 +59,7 @@ public class ApiEmailContactImportServiceImpl implements ApiEmailContactImportSe
@Override @Override
public Result<ApiEmailContactImportSelectAddResponse> add(ApiEmailContactImportSelectAddRequest request) { public Result<ApiEmailContactImportSelectAddResponse> add(ApiEmailContactImportSelectAddRequest request) {
ApiEmailContactImportSelectAddResponse response = new ApiEmailContactImportSelectAddResponse(); ApiEmailContactImportSelectAddResponse response = new ApiEmailContactImportSelectAddResponse();
String sessionId = ""; String sessionId = request.getSessionId();
if (StringUtils.isBlank(request.getSessionId())) { if (StringUtils.isBlank(request.getSessionId())) {
//当前会话id(前端缓存有值就传,没有值后端生成返回给前端存入前端缓存) //当前会话id(前端缓存有值就传,没有值后端生成返回给前端存入前端缓存)
...@@ -75,7 +75,7 @@ public class ApiEmailContactImportServiceImpl implements ApiEmailContactImportSe ...@@ -75,7 +75,7 @@ public class ApiEmailContactImportServiceImpl implements ApiEmailContactImportSe
emailContactImport.setImportBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_EMAIL_CONTACT_IMPORT.getCode())); emailContactImport.setImportBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_EMAIL_CONTACT_IMPORT.getCode()));
emailContactImport.setContactBizId(dto.getContactBizId()); emailContactImport.setContactBizId(dto.getContactBizId());
emailContactImport.setCcEmail(dto.getCcEmails()); emailContactImport.setCcEmail(dto.getCcEmails());
emailContactImport.setReceiveEmail(dto.getContactEmail()); emailContactImport.setReceiveEmail(dto.getEmail());
emailContactImport.setSessionId(finalSessionId); emailContactImport.setSessionId(finalSessionId);
emailContactImport.setSource(0); emailContactImport.setSource(0);
return emailContactImport; return emailContactImport;
......
...@@ -5,8 +5,10 @@ import com.yd.email.api.service.ApiEmailFileService; ...@@ -5,8 +5,10 @@ import com.yd.email.api.service.ApiEmailFileService;
import com.yd.email.api.service.ApiEmailVariableGroupService; import com.yd.email.api.service.ApiEmailVariableGroupService;
import com.yd.email.feign.dto.ApiEmailVariableDto; import com.yd.email.feign.dto.ApiEmailVariableDto;
import com.yd.email.feign.request.ApiExportVariableExcelRequest; import com.yd.email.feign.request.ApiExportVariableExcelRequest;
import com.yd.email.feign.request.ApiImportVariableExcelRequest;
import com.yd.email.feign.response.ApiEmailVariableGroupDetailResponse; import com.yd.email.feign.response.ApiEmailVariableGroupDetailResponse;
import com.yd.email.feign.response.ApiExportVariableExcelResponse; import com.yd.email.feign.response.ApiExportVariableExcelResponse;
import com.yd.email.feign.response.ApiImportVariableExcelResponse;
import com.yd.oss.feign.client.ApiExcelFeignClient; import com.yd.oss.feign.client.ApiExcelFeignClient;
import com.yd.oss.feign.dto.ExportParam; import com.yd.oss.feign.dto.ExportParam;
import com.yd.oss.feign.dto.ExportResult; import com.yd.oss.feign.dto.ExportResult;
...@@ -15,6 +17,8 @@ import lombok.extern.slf4j.Slf4j; ...@@ -15,6 +17,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -62,5 +66,16 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService { ...@@ -62,5 +66,16 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
return Result.success(response1); return Result.success(response1);
} }
/**
* 导入-变量excel
* @param file
* @param request
* @return
*/
@Override
public Result<ApiImportVariableExcelResponse> importVariableExcel(MultipartFile file,
ApiImportVariableExcelRequest request) {
return null;
}
} }
...@@ -196,21 +196,37 @@ public class ApiEmailSendServiceImpl implements ApiEmailSendService { ...@@ -196,21 +196,37 @@ public class ApiEmailSendServiceImpl implements ApiEmailSendService {
EmailTask mailTask = buildEmailTask(request); EmailTask mailTask = buildEmailTask(request);
//邮件任务唯一业务ID //邮件任务唯一业务ID
String taskBizId = mailTask.getTaskBizId(); String taskBizId = mailTask.getTaskBizId();
//变量分组唯一业务ID不为空,来源是1-excel导入联系人 为空是0-选择联系人导入 //TODO 变量
Integer source = StringUtils.isNotBlank(request.getVariableGroupBizId()) ? 1 : 0; //立即发送->发送给自己。发件人和收件人都是自己
//调用邮件服务发送邮件入参DTO
// 保存收件人信息 ApiSendMailDto apiSendMailDto = new ApiSendMailDto();
//根据当前当前会话id和数据来源查询导入数据 BeanUtils.copyProperties(mailTask,apiSendMailDto);
Result<List<EmailTaskRecipients>> result = apiEmailTaskRecipientsService //根据发件人唯一业务ID获取发件人信息和发件人绑定的服务商信息
.queryEmailTaskRecipientsBySessionId(taskBizId,mailTask.getStatus(),request.getSessionId(),source); Result<ApiEmailSenderConfigDto> result = apiEmailSenderConfigService.getApiEmailSenderConfigDto(mailTask.getSenderBizId());
List<EmailTaskRecipients> recipientsList = result.getData(); ApiEmailSenderConfigDto apiEmailSenderConfigDto = result.getData();
//立即发送 BeanUtils.copyProperties(apiEmailSenderConfigDto,apiSendMailDto);
sendImmediatelyEmail(mailTask,recipientsList); //收件人邮箱(单个)
apiSendMailDto.setReceiveEmail(mailTask.getSendEmail());
//抄送人邮箱列表
// apiSendMailDto.setCcEmailList(ccEmailList);
//邮件内容
if (StringUtil.hasPlaceholdersSimple(apiSendMailDto.getContent())) {
//检测内容是否有占位符,有占位符就替换具体内容,每收件人的占位符内容是不一样的。
// apiSendMailDto.setContent(StringUtil.replacePlaceholders(apiSendMailDto.getContent(),
// recipient.getVariables()));
}
// 调用邮件服务发送邮件
try {
apiEmailService.sendMail(apiSendMailDto);
} catch (Exception e) {
e.printStackTrace();
}
response.setScheduleTime(request.getScheduleTime()); response.setScheduleTime(request.getScheduleTime());
response.setTaskBizId(taskBizId); response.setTaskBizId(taskBizId);
return Result.success(response); return Result.success(response);
} }
/** /**
* 构造邮箱任务对象 * 构造邮箱任务对象
* @param request * @param request
......
...@@ -3,11 +3,16 @@ package com.yd.email.feign.client; ...@@ -3,11 +3,16 @@ package com.yd.email.feign.client;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.email.feign.fallback.ApiEmailFileFeignFallbackFactory; import com.yd.email.feign.fallback.ApiEmailFileFeignFallbackFactory;
import com.yd.email.feign.request.ApiExportVariableExcelRequest; import com.yd.email.feign.request.ApiExportVariableExcelRequest;
import com.yd.email.feign.request.ApiImportVariableExcelRequest;
import com.yd.email.feign.response.ApiExportVariableExcelResponse; import com.yd.email.feign.response.ApiExportVariableExcelResponse;
import com.yd.email.feign.response.ApiImportVariableExcelResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 邮箱服务-邮件文件信息Feign客户端 * 邮箱服务-邮件文件信息Feign客户端
...@@ -22,4 +27,14 @@ public interface ApiEmailFileFeignClient { ...@@ -22,4 +27,14 @@ public interface ApiEmailFileFeignClient {
*/ */
@PostMapping("/export/excel/variable") @PostMapping("/export/excel/variable")
Result<ApiExportVariableExcelResponse> exportVariableExcel(@Validated @RequestBody ApiExportVariableExcelRequest request); Result<ApiExportVariableExcelResponse> exportVariableExcel(@Validated @RequestBody ApiExportVariableExcelRequest request);
/**
* 导入-变量excel
* @param file
* @param request
* @return
*/
@PostMapping(value = "/import/excel/variable", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<ApiImportVariableExcelResponse> importVariableExcel(@RequestParam("file") MultipartFile file,
@Validated ApiImportVariableExcelRequest request);
} }
...@@ -13,7 +13,7 @@ public class ApiEmailContactDto { ...@@ -13,7 +13,7 @@ public class ApiEmailContactDto {
/** /**
* 收件人邮箱(单个邮箱) * 收件人邮箱(单个邮箱)
*/ */
private String contactEmail; private String email;
/** /**
* 抄送人邮箱(多个邮箱,分号分隔) * 抄送人邮箱(多个邮箱,分号分隔)
......
...@@ -3,10 +3,13 @@ package com.yd.email.feign.fallback; ...@@ -3,10 +3,13 @@ package com.yd.email.feign.fallback;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.email.feign.client.ApiEmailFileFeignClient; import com.yd.email.feign.client.ApiEmailFileFeignClient;
import com.yd.email.feign.request.ApiExportVariableExcelRequest; import com.yd.email.feign.request.ApiExportVariableExcelRequest;
import com.yd.email.feign.request.ApiImportVariableExcelRequest;
import com.yd.email.feign.response.ApiExportVariableExcelResponse; import com.yd.email.feign.response.ApiExportVariableExcelResponse;
import com.yd.email.feign.response.ApiImportVariableExcelResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 邮箱服务-邮件文件信息Feign降级处理 * 邮箱服务-邮件文件信息Feign降级处理
...@@ -21,6 +24,12 @@ public class ApiEmailFileFeignFallbackFactory implements FallbackFactory<ApiEmai ...@@ -21,6 +24,12 @@ public class ApiEmailFileFeignFallbackFactory implements FallbackFactory<ApiEmai
public Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest request) { public Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest request) {
return null; return null;
} }
@Override
public Result<ApiImportVariableExcelResponse> importVariableExcel(MultipartFile file,
ApiImportVariableExcelRequest request) {
return null;
}
}; };
} }
} }
package com.yd.email.feign.request;
import lombok.Data;
@Data
public class ApiImportVariableExcelRequest {
/**
* 当前会话id(前端缓存有值就传,没有值后端生成返回给前端存入前端缓存)
*/
private String sessionId;
}
...@@ -10,6 +10,7 @@ public class ApiSendEmailRequest { ...@@ -10,6 +10,7 @@ public class ApiSendEmailRequest {
/** /**
* 发件人唯一业务ID * 发件人唯一业务ID
*/ */
@NotBlank(message = "发件人唯一业务ID不能为空")
private String senderBizId; private String senderBizId;
/** /**
......
package com.yd.email.feign.response;
import lombok.Data;
@Data
public class ApiImportVariableExcelResponse {
/**
* 当前会话id(前端缓存有值就传,没有值后端生成返回给前端存入前端缓存)
*/
private String sessionId;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment