build模式

该代码定义了一个名为EmailReqBodyBuilder的类,用于构建电子邮件请求的参数。它从`config/email.properties`加载配置,包括系统ID、邮件标题、发件人等信息,并提供了链式设置方法。最后,将构建的请求体转换为JSON字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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; }
            /** * 必填 * 邮件调用方系统名称,邮件调用需先申请系统调用白名单,提供系统Id,系统中文名,系统英文名,申请人。 */ 
            private String sysId; 
            /** * 系统中文名称 */ 
            private String sysName;
             /** * 邮件标题,
              * 默认值为 上海浦东发展银行业务邮件(汉字邮件只展示33个汉字) */
              private String mailTitle;
               /** * 仅支持一个发件人,默认值为 ebank@eb.spdb.com.cn*/
                private String sendMail; 
                /** * 仅支持一个发件人,默认值为 上海浦东发展银行”、 */ 
                private String sendAlias;
                 /** * 收件人邮件地址,不同收件人之间以“;”,
                  * 收件人,抄送人,密送人地址不可同时为空。 **  */
                  private String recipients; 
                  /** * 抄送人邮件地址,不同收件人之间以“;”,
                   * 抄送人不为空时,发送人和密送人不可同时为空。 */ 
                   private String mailCc;
                    /** * 密送人邮件地址,不同收件人之间以“;” */
                     private String mailBcc; 
                     /** * 正文显示类型:0-HTML(默认) 1-原文显示 */
                      private String contentType;
                       /** * 正文文件编码类型 0-GBK(默认) 1-GB18030 2-UTF-8 */ 
                       private String contentCoding;
                        /** * 邮件内容 */ 
                        private String content;
                         /** * 附件路径,附件需先通过eftClient客户端上传 */
                          private String filePath;
                           /** * 嵌图路径,附件需先通过eftClient客户端上传 */
                            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));
                                           } 
                                           // static class JsonDealUtils extends ObjectMapper {
                                            // public JsonDealUtils() {
                                             // super();
                                              // this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() { 
                                              // @Override
                                               // public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
                                                // jsonGenerator.writeString(""); 
                                                // }
                                                 // });
                                                  // }
                                                   // } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值