diff --git a/pom.xml b/pom.xml index 3fcaa2c..bdff4cc 100644 --- a/pom.xml +++ b/pom.xml @@ -143,6 +143,7 @@ 1.18.36 provided + diff --git a/src/main/java/org/ccalm/main/SendWarning.java b/src/main/java/org/ccalm/main/SendWarning.java index 0e1cb98..3387adc 100644 --- a/src/main/java/org/ccalm/main/SendWarning.java +++ b/src/main/java/org/ccalm/main/SendWarning.java @@ -110,6 +110,7 @@ public class SendWarning { return result; } + //https://ccalm.test/api/locust/v01/SendWarning @RequestMapping(value = {"/api/locust/v01/SendWarning"},method = RequestMethod.GET,produces = "application/json;charset=UTF-8") @ResponseBody public ResponseEntity send() { @@ -143,128 +144,118 @@ public class SendWarning { for (String jsonString : ret) { JSONObject obj = new JSONObject(jsonString); - JSONObject tmp_soil = getSoilTemperature(obj.getDouble("lat"),obj.getDouble("lon")); JSONObject tmp_air = getAirTemperature(obj.getDouble("lat"),obj.getDouble("lon")); + JSONObject tmp_soil = getSoilTemperature(obj.getDouble("lat"),obj.getDouble("lon")); if(tmp_air!=null) { Translation trt=new Translation(obj.getString("short_name"),jdbcTemplate); - double value = obj.getDouble("value"); + double value = obj.getDouble("temperature_air"); if (value < tmp_air.getDouble("value")) { String email = obj.getString("email"); - if(email.equals("irigm@mail.ru") || email.equals("ivanov.i@istt.kz")){ //TODO для тестирования потом удалить + StringBuilder html = new StringBuilder(1024); + html.append("") + .append("") + .append("") + .append("") + .append("") + .append("
") + .append("

").append(trt.trt(true,"Warning")).append("

") + .append("

").append(trt.trt(true,"The_soil_temperature_has_exceeded_the_set_value")).append(": ").append(value).append("

") + .append("") + .append("") + .append("") + .append("
").append(trt.trt(true,"Date")).append("").append(tmp_air.getString("date")).append("
").append(trt.trt(true,"Value")).append("").append(tmp_air.getDouble("value")).append(" °C
") + .append(trt.trt(true,"To_resume_monitoring_please_set_the_warn_field_to_true")) + .append("
") // Закрываем контейнер + .append("") + .append(""); - StringBuilder html = new StringBuilder(1024); - html.append("") - .append("") - .append("") - .append("") - .append("") - .append("
") - .append("") // Логотип - .append("

").append(trt.trt(true,"Warning")).append("

") - .append("

").append(trt.trt(true,"The_soil_temperature_has_exceeded_the_set_value")).append(": ").append(value).append("

") - .append("") - .append("") - .append("") - .append("
").append(trt.trt(true,"Date")).append("").append(tmp_air.getString("date")).append("
").append(trt.trt(true,"Value")).append("").append(tmp_air.getDouble("value")).append(" °C
") - .append(trt.trt(true,"To_resume_monitoring_please_set_the_warn_field_to_true")) - .append("
") // Закрываем контейнер - .append("") - .append(""); - - boolean send = false; - try { - EmailUtility.sendEmail(mail_host, mail_port, mail_login, mail_password, email, trt.trt(true,"Soil temperature"), html.toString()); - send = true; - } catch (Exception e) { - e.printStackTrace(); - } - if(send) { - sql= """ - update - main.frmcheckpoints - set - warn=true - where uid=:uid - """; - MapSqlParameterSource param = new MapSqlParameterSource(); - param.addValue("uid", obj.getString("uid"), Types.INTEGER); - int rowsUpdated = jdbcTemplate.update(sql, param); - System.out.println("rowsUpdated = "+String.valueOf(rowsUpdated)); - } + boolean send = false; + try { + EmailUtility.sendEmail(mail_host, mail_port, mail_login, mail_password, email, trt.trt(true,"Soil temperature"), html.toString()); + send = true; + } catch (Exception e) { + e.printStackTrace(); + } + if(send) { + sql= """ + update + main.frmcheckpoints + set + warn_air=true + where uid=CAST(:uid AS uuid) + """; + MapSqlParameterSource param = new MapSqlParameterSource(); + param.addValue("uid", obj.getString("uid"), Types.VARCHAR); + int rowsUpdated = jdbcTemplate.update(sql, param); + System.out.println("rowsUpdated = "+String.valueOf(rowsUpdated)); } } } if(tmp_soil!=null) { Translation trt=new Translation(obj.getString("short_name"),jdbcTemplate); - double value = obj.getDouble("value"); + double value = obj.getDouble("temperature_soil"); if (value < tmp_soil.getDouble("value")) { String email = obj.getString("email"); - if(email.equals("irigm@mail.ru") || email.equals("ivanov.i@istt.kz")){ //TODO для тестирования потом удалить + StringBuilder html = new StringBuilder(1024); + html.append("") + .append("") + .append("") + .append("") + .append("") + .append("
") + .append("

").append(trt.trt(true,"Warning")).append("

") + .append("

").append(trt.trt(true,"The_soil_temperature_has_exceeded_the_set_value")).append(": ").append(value).append("

") + .append("") + .append("") + .append("") + .append("
").append(trt.trt(true,"Date")).append("").append(tmp_soil.getString("date")).append("
").append(trt.trt(true,"Value")).append("").append(tmp_soil.getDouble("value")).append(" °C
") + .append(trt.trt(true,"To_resume_monitoring_please_set_the_warn_field_to_true")) + .append("
") // Закрываем контейнер + .append("") + .append(""); - StringBuilder html = new StringBuilder(1024); - html.append("") - .append("") - .append("") - .append("") - .append("") - .append("
") - .append("") // Логотип - .append("

").append(trt.trt(true,"Warning")).append("

") - .append("

").append(trt.trt(true,"The_soil_temperature_has_exceeded_the_set_value")).append(": ").append(value).append("

") - .append("") - .append("") - .append("") - .append("
").append(trt.trt(true,"Date")).append("").append(tmp_soil.getString("date")).append("
").append(trt.trt(true,"Value")).append("").append(tmp_soil.getDouble("value")).append(" °C
") - .append(trt.trt(true,"To_resume_monitoring_please_set_the_warn_field_to_true")) - .append("
") // Закрываем контейнер - .append("") - .append(""); - - boolean send = false; - try { - EmailUtility.sendEmail(mail_host, mail_port, mail_login, mail_password, email, trt.trt(true,"Soil temperature"), html.toString()); - send = true; - } catch (Exception e) { - e.printStackTrace(); - } - if(send) { - sql= """ - update - main.frmcheckpoints - set - warn=true - where uid=:uid - """; - MapSqlParameterSource param = new MapSqlParameterSource(); - param.addValue("uid", obj.getString("uid"), Types.INTEGER); - int rowsUpdated = jdbcTemplate.update(sql, param); - System.out.println("rowsUpdated = "+String.valueOf(rowsUpdated)); - } + boolean send = false; + try { + EmailUtility.sendEmail(mail_host, mail_port, mail_login, mail_password, email, trt.trt(true,"Soil temperature"), html.toString()); + send = true; + } catch (Exception e) { + e.printStackTrace(); + } + if(send) { + sql= """ + update + main.frmcheckpoints + set + warn_soil=true + where uid=CAST(:uid AS uuid) + """; + MapSqlParameterSource param = new MapSqlParameterSource(); + param.addValue("uid", obj.getString("uid"), Types.VARCHAR); + int rowsUpdated = jdbcTemplate.update(sql, param); + System.out.println("rowsUpdated = "+String.valueOf(rowsUpdated)); } } } - - } } catch (Exception ex) { String uuid = UUID.randomUUID().toString(); diff --git a/src/main/java/tools/EmailUtility.java b/src/main/java/tools/EmailUtility.java index 6c15565..1cd2ca4 100644 --- a/src/main/java/tools/EmailUtility.java +++ b/src/main/java/tools/EmailUtility.java @@ -13,54 +13,49 @@ import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; - -/** - * A utility class for sending e-mail messages - * @author www.codejava.net - * - */ + public class EmailUtility { public static void sendEmail(String host, String port, - final String userName, final String password, String toAddress, - String subject, String message) throws AddressException, + final String userName, final String password, String toAddress, + String subject, String message) throws AddressException, MessagingException { + // sets SMTP server properties + Properties properties = new Properties(); - // sets SMTP server properties - Properties properties = new Properties(); - - properties.put("mail.smtp.host", host); - properties.put("mail.smtp.port", port); - properties.put("mail.smtp.auth", "true"); - //properties.put("mail.smtp.starttls.enable","true"); STARTTLS requested but already using SSL - properties.put("mail.smtp.EnableSSL.enable","true"); - properties.put("mail.smtp.socketFactory.port", port); - properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); - //properties.put("mail.debug", "true"); - + properties.put("mail.smtp.host", host); + properties.put("mail.smtp.port", port); + properties.put("mail.smtp.auth", "true"); + //properties.put("mail.smtp.starttls.enable","true"); STARTTLS requested but already using SSL + properties.put("mail.smtp.EnableSSL.enable","true"); + properties.put("mail.smtp.socketFactory.port", port); + properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); + //properties.put("mail.debug", "true"); - // creates a new session with an authenticator - Authenticator auth = new Authenticator() { - public PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(userName, password); - } - }; - - Session session = Session.getInstance(properties, auth); - - //creates a new e-mail message - Message msg = new MimeMessage(session); - - msg.setFrom(new InternetAddress(userName)); - InternetAddress[] toAddresses = { new InternetAddress(toAddress) }; - msg.setRecipients(Message.RecipientType.TO, toAddresses); - msg.setSubject(subject); - msg.setSentDate(new Date()); - //msg.setText(message); - msg.setContent(message, "text/html; charset=utf-8"); - - // sends the e-mail - Transport.send(msg); + + // creates a new session with an authenticator + Authenticator auth = new Authenticator() { + public PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(userName, password); + } + }; + + Session session = Session.getInstance(properties, auth); + + //creates a new e-mail message + Message msg = new MimeMessage(session); + + msg.setFrom(new InternetAddress(userName)); + InternetAddress[] toAddresses = { new InternetAddress(toAddress) }; + msg.setRecipients(Message.RecipientType.TO, toAddresses); + msg.setSubject(subject); + msg.setSentDate(new Date()); + //msg.setText(message); + msg.setContent(message, "text/html; charset=utf-8"); + + // sends the e-mail + Transport.send(msg); } + } \ No newline at end of file diff --git a/src/main/resources/templates/engine/index.html b/src/main/resources/templates/engine/index.html index daa2bfe..4aa4bde 100644 --- a/src/main/resources/templates/engine/index.html +++ b/src/main/resources/templates/engine/index.html @@ -1171,8 +1171,21 @@ new Calendar({ Year