diff --git a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java index 4d56343..52039c8 100644 --- a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java +++ b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailResponse.java @@ -9,6 +9,8 @@ public class SystemEmailResponse { private String username; + private String mailFrom; + private String smtpHost; private Integer smtpPort; diff --git a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java index 3094e16..a47fa1f 100644 --- a/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java +++ b/core/src/main/java/com/databasir/core/domain/system/data/SystemEmailUpdateRequest.java @@ -8,11 +8,13 @@ import javax.validation.constraints.*; public class SystemEmailUpdateRequest { @NotBlank - @Email private String username; private String password; + @Email + private String mailFrom; + @NotBlank private String smtpHost; diff --git a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java index 236c2ce..1c92d52 100644 --- a/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java +++ b/core/src/main/java/com/databasir/core/domain/system/service/SystemService.java @@ -24,15 +24,16 @@ public class SystemService { public Optional getEmailSetting() { return sysMailDao.selectOptionTopOne() - .map(mail -> { - SystemEmailResponse response = new SystemEmailResponse(); - response.setSmtpHost(mail.getSmtpHost()); - response.setSmtpPort(mail.getSmtpPort()); - response.setUsername(mail.getUsername()); - response.setCreateAt(mail.getCreateAt()); - response.setUseSSL(mail.getUseSsl()); - return response; - }); + .map(mail -> { + SystemEmailResponse response = new SystemEmailResponse(); + response.setSmtpHost(mail.getSmtpHost()); + response.setSmtpPort(mail.getSmtpPort()); + response.setUsername(mail.getUsername()); + response.setCreateAt(mail.getCreateAt()); + response.setMailFrom(mail.getMailFrom()); + response.setUseSSL(mail.getUseSsl()); + return response; + }); } public void deleteSystemEmail() { @@ -42,12 +43,12 @@ public class SystemService { } @Transactional - public void updateEmailSetting(SystemEmailUpdateRequest request) { SysMail sysMail = new SysMail(); sysMail.setSmtpHost(request.getSmtpHost()); sysMail.setSmtpPort(request.getSmtpPort()); sysMail.setUsername(request.getUsername()); + sysMail.setMailFrom(request.getMailFrom()); sysMail.setUseSsl(request.getUseSSL()); Optional idOpt = sysMailDao.selectOptionTopOne().map(SysMail::getId); diff --git a/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java b/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java index b832e4a..3a88777 100644 --- a/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java +++ b/core/src/main/java/com/databasir/core/infrastructure/mail/MailSender.java @@ -2,6 +2,7 @@ package com.databasir.core.infrastructure.mail; import com.databasir.common.SystemException; import com.databasir.dao.tables.pojos.SysMail; +import org.apache.commons.lang3.StringUtils; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; @@ -31,7 +32,11 @@ public class MailSender { MimeMessage mimeMessage = sender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); - helper.setFrom(mail.getUsername()); + if (StringUtils.isNotBlank(mail.getMailFrom())) { + helper.setFrom(mail.getMailFrom()); + } else { + helper.setFrom(mail.getUsername()); + } helper.setTo(to.toArray(new String[0])); helper.setSubject(subject); helper.setText(content, true); diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMailTable.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMailTable.java index a373d5c..b305d0c 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMailTable.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/SysMailTable.java @@ -15,7 +15,7 @@ import org.jooq.ForeignKey; import org.jooq.Identity; import org.jooq.Name; import org.jooq.Record; -import org.jooq.Row8; +import org.jooq.Row9; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -87,6 +87,11 @@ public class SysMailTable extends TableImpl { */ public final TableField CREATE_AT = createField(DSL.name("create_at"), SQLDataType.LOCALDATETIME(0).nullable(false).defaultValue(DSL.field("CURRENT_TIMESTAMP", SQLDataType.LOCALDATETIME)), this, ""); + /** + * The column databasir.sys_mail.mail_from. + */ + public final TableField MAIL_FROM = createField(DSL.name("mail_from"), SQLDataType.VARCHAR(512), this, ""); + private SysMailTable(Name alias, Table aliased) { this(alias, aliased, null); } @@ -162,11 +167,11 @@ public class SysMailTable extends TableImpl { } // ------------------------------------------------------------------------- - // Row8 type methods + // Row9 type methods // ------------------------------------------------------------------------- @Override - public Row8 fieldsRow() { - return (Row8) super.fieldsRow(); + public Row9 fieldsRow() { + return (Row9) super.fieldsRow(); } } diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMail.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMail.java index e7a6c6a..b15b8ce 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMail.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/SysMail.java @@ -24,6 +24,7 @@ public class SysMail implements Serializable { private Boolean useSsl; private LocalDateTime updateAt; private LocalDateTime createAt; + private String mailFrom; public SysMail() {} @@ -36,6 +37,7 @@ public class SysMail implements Serializable { this.useSsl = value.useSsl; this.updateAt = value.updateAt; this.createAt = value.createAt; + this.mailFrom = value.mailFrom; } public SysMail( @@ -46,7 +48,8 @@ public class SysMail implements Serializable { Integer smtpPort, Boolean useSsl, LocalDateTime updateAt, - LocalDateTime createAt + LocalDateTime createAt, + String mailFrom ) { this.id = id; this.username = username; @@ -56,6 +59,7 @@ public class SysMail implements Serializable { this.useSsl = useSsl; this.updateAt = updateAt; this.createAt = createAt; + this.mailFrom = mailFrom; } /** @@ -170,6 +174,20 @@ public class SysMail implements Serializable { this.createAt = createAt; } + /** + * Getter for databasir.sys_mail.mail_from. + */ + public String getMailFrom() { + return this.mailFrom; + } + + /** + * Setter for databasir.sys_mail.mail_from. + */ + public void setMailFrom(String mailFrom) { + this.mailFrom = mailFrom; + } + @Override public String toString() { StringBuilder sb = new StringBuilder("SysMail ("); @@ -182,6 +200,7 @@ public class SysMail implements Serializable { sb.append(", ").append(useSsl); sb.append(", ").append(updateAt); sb.append(", ").append(createAt); + sb.append(", ").append(mailFrom); sb.append(")"); return sb.toString(); diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java index 1490e36..82bd2e5 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/SysMailRecord.java @@ -11,8 +11,8 @@ import java.time.LocalDateTime; import org.jooq.Field; import org.jooq.Record1; -import org.jooq.Record8; -import org.jooq.Row8; +import org.jooq.Record9; +import org.jooq.Row9; import org.jooq.impl.UpdatableRecordImpl; @@ -20,7 +20,7 @@ import org.jooq.impl.UpdatableRecordImpl; * This class is generated by jOOQ. */ @SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class SysMailRecord extends UpdatableRecordImpl implements Record8 { +public class SysMailRecord extends UpdatableRecordImpl implements Record9 { private static final long serialVersionUID = 1L; @@ -136,6 +136,20 @@ public class SysMailRecord extends UpdatableRecordImpl implements return (LocalDateTime) get(7); } + /** + * Setter for databasir.sys_mail.mail_from. + */ + public void setMailFrom(String value) { + set(8, value); + } + + /** + * Getter for databasir.sys_mail.mail_from. + */ + public String getMailFrom() { + return (String) get(8); + } + // ------------------------------------------------------------------------- // Primary key information // ------------------------------------------------------------------------- @@ -146,17 +160,17 @@ public class SysMailRecord extends UpdatableRecordImpl implements } // ------------------------------------------------------------------------- - // Record8 type implementation + // Record9 type implementation // ------------------------------------------------------------------------- @Override - public Row8 fieldsRow() { - return (Row8) super.fieldsRow(); + public Row9 fieldsRow() { + return (Row9) super.fieldsRow(); } @Override - public Row8 valuesRow() { - return (Row8) super.valuesRow(); + public Row9 valuesRow() { + return (Row9) super.valuesRow(); } @Override @@ -199,6 +213,11 @@ public class SysMailRecord extends UpdatableRecordImpl implements return SysMailTable.SYS_MAIL.CREATE_AT; } + @Override + public Field field9() { + return SysMailTable.SYS_MAIL.MAIL_FROM; + } + @Override public Integer component1() { return getId(); @@ -239,6 +258,11 @@ public class SysMailRecord extends UpdatableRecordImpl implements return getCreateAt(); } + @Override + public String component9() { + return getMailFrom(); + } + @Override public Integer value1() { return getId(); @@ -279,6 +303,11 @@ public class SysMailRecord extends UpdatableRecordImpl implements return getCreateAt(); } + @Override + public String value9() { + return getMailFrom(); + } + @Override public SysMailRecord value1(Integer value) { setId(value); @@ -328,7 +357,13 @@ public class SysMailRecord extends UpdatableRecordImpl implements } @Override - public SysMailRecord values(Integer value1, String value2, String value3, String value4, Integer value5, Boolean value6, LocalDateTime value7, LocalDateTime value8) { + public SysMailRecord value9(String value) { + setMailFrom(value); + return this; + } + + @Override + public SysMailRecord values(Integer value1, String value2, String value3, String value4, Integer value5, Boolean value6, LocalDateTime value7, LocalDateTime value8, String value9) { value1(value1); value2(value2); value3(value3); @@ -337,6 +372,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements value6(value6); value7(value7); value8(value8); + value9(value9); return this; } @@ -354,7 +390,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements /** * Create a detached, initialised SysMailRecord */ - public SysMailRecord(Integer id, String username, String password, String smtpHost, Integer smtpPort, Boolean useSsl, LocalDateTime updateAt, LocalDateTime createAt) { + public SysMailRecord(Integer id, String username, String password, String smtpHost, Integer smtpPort, Boolean useSsl, LocalDateTime updateAt, LocalDateTime createAt, String mailFrom) { super(SysMailTable.SYS_MAIL); setId(id); @@ -365,6 +401,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements setUseSsl(useSsl); setUpdateAt(updateAt); setCreateAt(createAt); + setMailFrom(mailFrom); } /** @@ -382,6 +419,7 @@ public class SysMailRecord extends UpdatableRecordImpl implements setUseSsl(value.getUseSsl()); setUpdateAt(value.getUpdateAt()); setCreateAt(value.getCreateAt()); + setMailFrom(value.getMailFrom()); } } } diff --git a/dao/src/main/resources/db/migration/V1.4.7__sys_mail.sql b/dao/src/main/resources/db/migration/V1.4.7__sys_mail.sql new file mode 100644 index 0000000..2a3a532 --- /dev/null +++ b/dao/src/main/resources/db/migration/V1.4.7__sys_mail.sql @@ -0,0 +1,2 @@ +alter table sys_mail + add column `mail_from` varchar(512) null; \ No newline at end of file diff --git a/databasir-frontend b/databasir-frontend index 41661fa..03b1d36 160000 --- a/databasir-frontend +++ b/databasir-frontend @@ -1 +1 @@ -Subproject commit 41661faad8eceb7d76df84d204d86977dcac5c95 +Subproject commit 03b1d36965188e7010a55a2a661dcce6003289fe diff --git a/settings.gradle b/settings.gradle index 473c4e1..dcab8a8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,16 +1,6 @@ -pluginManagement { - repositories { - maven { url 'https://repo.spring.io/release' } - maven { url 'https://repo.spring.io/milestone' } - maven { url 'https://repo.spring.io/snapshot' } - gradlePluginPortal() - } -} - rootProject.name = 'databasir' include 'meta' include 'api' include 'common' include 'dao' include 'core' -