package com.spdb.quality.inspection.task.domain.entity;
import cn.hutool.json.JSONUtil;
import com.spdb.quality.inspection.task.constant.Constants;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class EmailReqBodyBuilder {
private final Map<String, String> requestBody = new HashMap<>();
private EmailReqBodyBuilder() {
}
public static EmailReqBodyBuilder builder() {
EmailReqBodyBuilder emailReqBodyBuilder = new EmailReqBodyBuilder();
try {
Properties properties = PropertiesLoaderUtils.loadAllProperties("config/email.properties");
emailReqBodyBuilder = emailReqBodyBuilder.sysId(properties.getProperty("spdb.email.sysId", Constants.DEFAULT_VALUE))
.sysName(properties.getProperty("spdb.email.sysName", Constants.DEFAULT_VALUE))
.mailTitle(properties.getProperty("spdb.email.mailTitle", Constants.DEFAULT_VALUE))
.sendMail(properties.getProperty("spdb.email.sendMail", Constants.DEFAULT_VALUE))
.sendAlias(properties.getProperty("spdb.email.sendAlias", Constants.DEFAULT_VALUE))
.recipients(properties.getProperty("spdb.email.recipients", Constants.DEFAULT_VALUE))
.mailCc(properties.getProperty("spdb.email.mailCc", Constants.DEFAULT_VALUE))
.mailBcc(properties.getProperty("spdb.email.mailBcc", Constants.DEFAULT_VALUE))
.contentType(properties.getProperty("spdb.email.contentType", Constants.DEFAULT_VALUE))
.contentCoding(properties.getProperty("spdb.email.contentCoding", Constants.DEFAULT_VALUE))
.content(properties.getProperty("spdb.email.content", Constants.DEFAULT_VALUE))
.filePath(properties.getProperty("spdb.email.filePath", Constants.DEFAULT_VALUE))
.fileDepPath(properties.getProperty("spdb.email.fileDepPath", Constants.DEFAULT_VALUE));
} catch (IOException e) { e.printStackTrace(); }
return emailReqBodyBuilder; }
private String sysId;
private String sysName;
private String mailTitle;
private String sendMail;
private String sendAlias;
private String recipients;
private String mailCc;
private String mailBcc;
private String contentType;
private String contentCoding;
private String content;
private String filePath;
private String fileDepPath;
public EmailReqBodyBuilder sysId(String sysId) {
this.sysId = sysId;
return this;
}
public EmailReqBodyBuilder sysName(String sysName) {
this.sysName = sysName;
return this;
}
public EmailReqBodyBuilder mailTitle(String mailTitle) { this.mailTitle = mailTitle; return this; }
public EmailReqBodyBuilder sendMail(String sendMail) { this.sendMail = sendMail; return this; }
public EmailReqBodyBuilder sendAlias(String sendAlias) { this.sendAlias = sendAlias; return this; }
public EmailReqBodyBuilder recipients(String recipients) { this.recipients = recipients; return this; }
public EmailReqBodyBuilder mailCc(String mailCc) { this.mailCc = mailCc; return this; }
public EmailReqBodyBuilder mailBcc(String mailBcc) { this.mailBcc = mailBcc; return this; }
public EmailReqBodyBuilder contentType(String contentType) { this.contentType = contentType; return this; }
public EmailReqBodyBuilder contentCoding(String contentCoding) { this.contentCoding = contentCoding; return this; }
public EmailReqBodyBuilder content(String content) { this.content = content; return this; }
public EmailReqBodyBuilder filePath(String filePath) { this.filePath = filePath; return this; }
public EmailReqBodyBuilder fileDepPath(String fileDepPath) { this.fileDepPath = fileDepPath; return this; }
public String build() {
requestBody.put("sysId", this.sysId);
requestBody.put("sysName", this.sysName);
requestBody.put("mailTitle", this.mailTitle);
requestBody.put("sendMail", this.sendMail);
requestBody.put("sendAlias", this.sendAlias);
requestBody.put("recipients", this.recipients);
requestBody.put("mailCc", this.mailCc);
requestBody.put("mailBcc", this.mailBcc);
requestBody.put("contentType", this.contentType);
requestBody.put("contentCoding", this.contentCoding);
requestBody.put("content", this.content);
requestBody.put("filePath", this.filePath);
requestBody.put("fileDepPath", this.fileDepPath);
return JSONUtil.toJsonStr(JSONUtil.parseObj(requestBody));
}