Commit da3ce69a by zhangxingmin

测试发送邮件

parent 67927463
......@@ -4,11 +4,14 @@ import com.yd.common.result.Result;
import com.yd.email.api.service.ApiEmailFileService;
import com.yd.email.feign.client.ApiEmailFileFeignClient;
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.ApiImportVariableExcelResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/**
* 邮件文件信息
......@@ -33,4 +36,16 @@ public class ApiEmailFileController implements ApiEmailFileFeignClient {
public Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest 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;
import com.yd.common.result.Result;
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.ApiImportVariableExcelResponse;
import org.springframework.web.multipart.MultipartFile;
public interface ApiEmailFileService {
Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest request);
Result<ApiImportVariableExcelResponse> importVariableExcel(MultipartFile file,
ApiImportVariableExcelRequest request);
}
......@@ -59,7 +59,7 @@ public class ApiEmailContactImportServiceImpl implements ApiEmailContactImportSe
@Override
public Result<ApiEmailContactImportSelectAddResponse> add(ApiEmailContactImportSelectAddRequest request) {
ApiEmailContactImportSelectAddResponse response = new ApiEmailContactImportSelectAddResponse();
String sessionId = "";
String sessionId = request.getSessionId();
if (StringUtils.isBlank(request.getSessionId())) {
//当前会话id(前端缓存有值就传,没有值后端生成返回给前端存入前端缓存)
......@@ -75,7 +75,7 @@ public class ApiEmailContactImportServiceImpl implements ApiEmailContactImportSe
emailContactImport.setImportBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_EMAIL_CONTACT_IMPORT.getCode()));
emailContactImport.setContactBizId(dto.getContactBizId());
emailContactImport.setCcEmail(dto.getCcEmails());
emailContactImport.setReceiveEmail(dto.getContactEmail());
emailContactImport.setReceiveEmail(dto.getEmail());
emailContactImport.setSessionId(finalSessionId);
emailContactImport.setSource(0);
return emailContactImport;
......
......@@ -5,8 +5,10 @@ import com.yd.email.api.service.ApiEmailFileService;
import com.yd.email.api.service.ApiEmailVariableGroupService;
import com.yd.email.feign.dto.ApiEmailVariableDto;
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.ApiExportVariableExcelResponse;
import com.yd.email.feign.response.ApiImportVariableExcelResponse;
import com.yd.oss.feign.client.ApiExcelFeignClient;
import com.yd.oss.feign.dto.ExportParam;
import com.yd.oss.feign.dto.ExportResult;
......@@ -15,6 +17,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
......@@ -62,5 +66,16 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
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 {
EmailTask mailTask = buildEmailTask(request);
//邮件任务唯一业务ID
String taskBizId = mailTask.getTaskBizId();
//变量分组唯一业务ID不为空,来源是1-excel导入联系人 为空是0-选择联系人导入
Integer source = StringUtils.isNotBlank(request.getVariableGroupBizId()) ? 1 : 0;
// 保存收件人信息
//根据当前当前会话id和数据来源查询导入数据
Result<List<EmailTaskRecipients>> result = apiEmailTaskRecipientsService
.queryEmailTaskRecipientsBySessionId(taskBizId,mailTask.getStatus(),request.getSessionId(),source);
List<EmailTaskRecipients> recipientsList = result.getData();
//立即发送
sendImmediatelyEmail(mailTask,recipientsList);
//TODO 变量
//立即发送->发送给自己。发件人和收件人都是自己
//调用邮件服务发送邮件入参DTO
ApiSendMailDto apiSendMailDto = new ApiSendMailDto();
BeanUtils.copyProperties(mailTask,apiSendMailDto);
//根据发件人唯一业务ID获取发件人信息和发件人绑定的服务商信息
Result<ApiEmailSenderConfigDto> result = apiEmailSenderConfigService.getApiEmailSenderConfigDto(mailTask.getSenderBizId());
ApiEmailSenderConfigDto apiEmailSenderConfigDto = result.getData();
BeanUtils.copyProperties(apiEmailSenderConfigDto,apiSendMailDto);
//收件人邮箱(单个)
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.setTaskBizId(taskBizId);
return Result.success(response);
}
/**
* 构造邮箱任务对象
* @param request
......
......@@ -3,11 +3,16 @@ package com.yd.email.feign.client;
import com.yd.common.result.Result;
import com.yd.email.feign.fallback.ApiEmailFileFeignFallbackFactory;
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.ApiImportVariableExcelResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
/**
* 邮箱服务-邮件文件信息Feign客户端
......@@ -22,4 +27,14 @@ public interface ApiEmailFileFeignClient {
*/
@PostMapping("/export/excel/variable")
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 {
/**
* 收件人邮箱(单个邮箱)
*/
private String contactEmail;
private String email;
/**
* 抄送人邮箱(多个邮箱,分号分隔)
......
......@@ -3,10 +3,13 @@ package com.yd.email.feign.fallback;
import com.yd.common.result.Result;
import com.yd.email.feign.client.ApiEmailFileFeignClient;
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.ApiImportVariableExcelResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
/**
* 邮箱服务-邮件文件信息Feign降级处理
......@@ -21,6 +24,12 @@ public class ApiEmailFileFeignFallbackFactory implements FallbackFactory<ApiEmai
public Result<ApiExportVariableExcelResponse> exportVariableExcel(ApiExportVariableExcelRequest request) {
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 {
/**
* 发件人唯一业务ID
*/
@NotBlank(message = "发件人唯一业务ID不能为空")
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