рефактиринг рассылки.v++
This commit is contained in:
@@ -80,12 +80,12 @@ public class AppendBugReportField extends ComponentsRepositoryPass<BugReport> {
|
||||
message_text = target.comment;
|
||||
break;
|
||||
}
|
||||
Global.mainModule.getPass(PassCode.CheckedEmail).Do(
|
||||
new EmailMessage(
|
||||
message_header + " " + Utils_.Brackets(Global.mainModule.getAccount().name),
|
||||
message_text,
|
||||
target.getRecipients()
|
||||
)
|
||||
EmailMessage message= new EmailMessage(
|
||||
message_header + " " + Utils_.Brackets(Global.mainModule.getAccount().name),
|
||||
message_text
|
||||
);
|
||||
for (String address: target.getRecipients()) {
|
||||
Global.mainModule.getPass(PassCode.CheckedEmail).Do(message, address);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,53 +1,19 @@
|
||||
package _VisualDVM.Passes.All;
|
||||
import _VisualDVM.Passes.Server.ComponentsRepositoryPass;
|
||||
import _VisualDVM.Repository.EmailMessage;
|
||||
import _VisualDVM.Repository.Server.ServerCode;
|
||||
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
|
||||
import _VisualDVM.Repository.Subscribes.Subscriber;
|
||||
import _VisualDVM.Utils;
|
||||
|
||||
import java.util.Vector;
|
||||
//http://java-online.ru/javax-mail.xhtml
|
||||
//https://javarush.ru/groups/posts/1226-kak-otpravitjh-pisjhmo-iz-java-prilozhenija-s-primerom
|
||||
public class CheckedEmail extends ComponentsRepositoryPass<EmailMessage> {
|
||||
//этот емейл только для клиента. все что он делает отправляет на сервер то. что нужно отправить.
|
||||
public class CheckedEmail extends Email {
|
||||
//отправляет с учетом включения рассылки у подписчика.
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
target = (EmailMessage) args[0];
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected int getTimeout() {
|
||||
return 0;
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
Vector<String> targetsNames = new Vector<>();
|
||||
for (String target : target.targets) {
|
||||
if (server.db.subscribers.containsKey(target)) {
|
||||
Subscriber subscriber = server.db.subscribers.get(target);
|
||||
if (super.canStart(args)) {
|
||||
if (server.db.subscribers.containsKey(address)) {
|
||||
Subscriber subscriber = server.db.subscribers.get(address);
|
||||
if (subscriber.mailOn != 0) {
|
||||
String[] data = target.split("@");
|
||||
if (data.length > 0) {
|
||||
String tname = data[0];
|
||||
targetsNames.add(tname);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Utils.addDefaultMails(target.targets);
|
||||
String text_ =
|
||||
"Адресаты: " + String.join(", ", targetsNames) + "\n" +
|
||||
target.text;
|
||||
//нужно разделить сообщение на несколько одинаковых, по числу адресатов.
|
||||
for (String recipient : target.targets) {
|
||||
System.out.println(recipient);
|
||||
EmailMessage part = new EmailMessage();
|
||||
part.subject = target.subject;
|
||||
part.text = text_;
|
||||
part.targets.add(recipient);
|
||||
part.files.putAll(target.files);
|
||||
Command(new ServerExchangeUnit_2021(ServerCode.Email, "", part));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import _VisualDVM.Repository.Subscribes.Subscriber;
|
||||
import _VisualDVM.Repository.Subscribes.UI.SubscriberDialog;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Vector;
|
||||
public class EditAccount extends Email {
|
||||
public String name;
|
||||
public String email;
|
||||
@@ -29,10 +28,11 @@ public class EditAccount extends Email {
|
||||
}
|
||||
name = res.name;
|
||||
email = res.address;
|
||||
Vector<String> rec = new Vector<>();
|
||||
rec.add(email);
|
||||
password = String.valueOf(getRandomIntegerBetweenRange(1111, 9999));
|
||||
return super.canStart(new EmailMessage("Код подтверждения визуализатора для: " + Utils_.Brackets(name), password, rec));
|
||||
return super.canStart(
|
||||
new EmailMessage("Код подтверждения визуализатора для: " + Utils_.Brackets(name), password),
|
||||
email
|
||||
);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -4,10 +4,11 @@ import _VisualDVM.Repository.EmailMessage;
|
||||
import _VisualDVM.Repository.Server.ServerCode;
|
||||
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
|
||||
public class Email extends ComponentsRepositoryPass<EmailMessage> {
|
||||
//этот емейл только для клиента. все что он делает отправляет на сервер то. что нужно отправить.
|
||||
protected String address;
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
target = (EmailMessage) args[0];
|
||||
address = (String) args[1];
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
@@ -16,6 +17,6 @@ public class Email extends ComponentsRepositoryPass<EmailMessage> {
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
Command(new ServerExchangeUnit_2021(ServerCode.Email, "", target));
|
||||
Command(new ServerExchangeUnit_2021(ServerCode.Email, address, target));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,9 +52,10 @@ public class PublishBugReport extends Pass<BugReport> {
|
||||
Global.mainModule.getPass(PassCode.SendBugReport).Do();
|
||||
Global.componentsServer.db.Update(target);
|
||||
//3- рассылка
|
||||
EmailMessage message = new EmailMessage("Обнаружена ошибка " + Utils_.Brackets(target.id),
|
||||
target.getNewMailText(),
|
||||
target.getRecipients());
|
||||
EmailMessage message = new EmailMessage(
|
||||
"Обнаружена ошибка " + Utils_.Brackets(target.id),
|
||||
target.getNewMailText()
|
||||
);
|
||||
if (!target.project_version.isEmpty()) {
|
||||
message.addAttachement(target.getArchiveFile());
|
||||
//со скринами будет небольшой трабл. потому что теретически возможна ситуация,
|
||||
@@ -64,7 +65,9 @@ public class PublishBugReport extends Pass<BugReport> {
|
||||
message.addAttachement(screen);
|
||||
}
|
||||
}
|
||||
Global.mainModule.getPass(PassCode.CheckedEmail).Do(message);
|
||||
for (String address: target.getRecipients()) {
|
||||
Global.mainModule.getPass(PassCode.CheckedEmail).Do(message, address);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void showDone() throws Exception {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package _VisualDVM.Passes.All;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.Constants;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.GlobalData.Account.AccountRole;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
@@ -11,6 +12,7 @@ import _VisualDVM.Repository.EmailMessage;
|
||||
import _VisualDVM.Repository.RepositoryServer;
|
||||
import _VisualDVM.Repository.Server.ServerCode;
|
||||
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
|
||||
import _VisualDVM.Repository.Subscribes.Subscriber;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Vector;
|
||||
@@ -104,11 +106,25 @@ public class PublishComponent extends ComponentsRepositoryPass<Component> {
|
||||
Utils_.DQuotes(target.getComponentType().getDescription()));
|
||||
EmailMessage message =
|
||||
new EmailMessage(version_mail_header,
|
||||
f.Result,
|
||||
new Vector<>(Global.componentsServer.db.subscribers.Data.keySet()));
|
||||
f.Result
|
||||
);
|
||||
if (f.fields.cbForceMail.isSelected())
|
||||
message.addAttachement(target.getFile());
|
||||
Global.mainModule.getPass(PassCode.CheckedEmail).Do(message);
|
||||
//--
|
||||
Vector<String> mails = new Vector<>();
|
||||
//--
|
||||
for (Subscriber subscriber : Global.componentsServer.db.subscribers.Data.values()) {
|
||||
if ((subscriber.mailOn != 0) && !mails.contains(subscriber.address))
|
||||
mails.add(subscriber.address);
|
||||
}
|
||||
for (String admin_mail : Constants.admins_mails) {
|
||||
if (!mails.contains(admin_mail))
|
||||
mails.add(admin_mail);
|
||||
}
|
||||
//--
|
||||
for (String mail : mails) {
|
||||
Global.mainModule.getPass(PassCode.Email).Do(message, mail);
|
||||
}
|
||||
//---
|
||||
if (target.getComponentType().equals(ComponentType.Sapfor_F) && f.fields.cbAssemblyOnServer.isSelected()) {
|
||||
Global.mainModule.getUI().getMainWindow().FocusTesting();
|
||||
|
||||
@@ -121,11 +121,13 @@ public class UpdateBugReportField extends ComponentsRepositoryPass<BugReport> {
|
||||
message_header += "состояние изменилось на " + Utils_.Brackets(target.state.getDescription());
|
||||
break;
|
||||
}
|
||||
Global.mainModule.getPass(PassCode.CheckedEmail).Do(
|
||||
new EmailMessage(message_header,
|
||||
message_text,
|
||||
target.getRecipients())
|
||||
EmailMessage message = new EmailMessage(
|
||||
message_header + " " + Utils_.Brackets(Global.mainModule.getAccount().name),
|
||||
message_text
|
||||
);
|
||||
for (String address : target.getRecipients()) {
|
||||
Global.mainModule.getPass(PassCode.CheckedEmail).Do(message, address);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user