Browse Source

邮件配置修改 log列表接口修改

S0025136190 1 year ago
parent
commit
7d8c12b6d5

+ 1 - 0
Backend/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsRouter.java

@@ -38,6 +38,7 @@ public class EventsRouter {
                     try {
                         TopicEventsRequest data = Common.getObjectMapper().readValue((byte[]) source.getPayload(), TopicEventsRequest.class);
                         String topic = String.valueOf(source.getHeaders().get(MqttHeaders.RECEIVED_TOPIC));
+                        System.out.println(data.getMethod());
                         return data.setFrom(topic.substring((THING_MODEL_PRE + PRODUCT).length(), topic.indexOf(EVENTS_SUF)))
                                 .setData(Common.getObjectMapper().convertValue(data.getData(), EventsMethodEnum.find(data.getMethod()).getClassType()));
                     } catch (IOException e) {

+ 37 - 29
Backend/sample/src/main/java/com/dji/sample/common/util/EmailUtil.java

@@ -9,8 +9,13 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 /**
  * @description:发送邮件
@@ -19,36 +24,39 @@ import java.util.List;
 @Component
 public class EmailUtil {
 
+    private static final String djEmail = "ryuiso@qq.com";
+
+    private static final String title = "设备异常反馈";
+
+    private static final String fj = "附件";
+
+    private static final String jcRz = "机场日志";
+
+    private static final String fxqRz = "飞行器日志";
+
+    static ExecutorService executorService = Executors.newFixedThreadPool(10);
+
     public static void sendHtmlDj(String url , String fjurl,String jcUrl, DeviceLogsEntity contnet) {
-        MailAccount mailAccount = createAccount();
-        // 编写 HTML 内容
-        String htmlContent = createContent(url,fjurl,jcUrl,contnet);
-        MailUtil.send(mailAccount,"243151224@qq.com","设备异常反馈",htmlContent,true,null);
+        executorService.submit(() -> {
+            MailAccount mailAccount = createAccount();
+            // 编写 HTML 内容
+            String htmlContent = createContent(url,fjurl,jcUrl,contnet);
+            MailUtil.send(mailAccount,djEmail,title,htmlContent,true,null);
+        });
     }
 
     private static MailAccount createAccount(){
         MailAccount mailAccount = new MailAccount();
-//        mailAccount.setHost(MailConfiguration.host);
-//        mailAccount.setUser(MailConfiguration.user);
-//        mailAccount.setPass(MailConfiguration.pass);
-//        mailAccount.setSslEnable(MailConfiguration.sslEnable);
-//        mailAccount.setPort(MailConfiguration.port);
-//        mailAccount.setAuth(MailConfiguration.auth);
-//        mailAccount.setFrom(MailConfiguration.from);
-//        mailAccount.setStarttlsEnable(MailConfiguration.starttlsEnable);
-//        mailAccount.setTimeout(MailConfiguration.timeout);
-//        mailAccount.setConnectionTimeout(MailConfiguration.connectionTimeout);
-
-        mailAccount.setHost("smtp.exmail.qq.com");
-        mailAccount.setUser("takai@takai-china.com");
-        mailAccount.setPass("T@kai2021");
-        mailAccount.setSslEnable(true);
-        mailAccount.setPort(465);
-        mailAccount.setAuth(true);
-        mailAccount.setFrom("takai@takai-china.com");
-        mailAccount.setStarttlsEnable(true);
-        mailAccount.setTimeout(0);
-        mailAccount.setConnectionTimeout(0);
+        mailAccount.setHost(MailConfiguration.host);
+        mailAccount.setUser(MailConfiguration.user);
+        mailAccount.setPass(MailConfiguration.pass);
+        mailAccount.setSslEnable(MailConfiguration.sslEnable);
+        mailAccount.setPort(MailConfiguration.port);
+        mailAccount.setAuth(MailConfiguration.auth);
+        mailAccount.setFrom(MailConfiguration.from);
+        mailAccount.setStarttlsEnable(MailConfiguration.starttlsEnable);
+        mailAccount.setTimeout(MailConfiguration.timeout);
+        mailAccount.setConnectionTimeout(MailConfiguration.connectionTimeout);
         return mailAccount;
     }
 
@@ -57,15 +65,15 @@ public class EmailUtil {
         List<String> urls = new ArrayList<>();
 
         if (!StrUtil.isBlank(ossurl)) {
-            urls.add("附件");
+            urls.add(fj);
             urls.addAll(StrUtil.split(ossurl, ','));
         }
         if (!StrUtil.isBlank(jcUrl)) {
-            urls.add("机场日志");
+            urls.add(jcRz);
             urls.addAll(StrUtil.split(jcUrl, ','));
         }
         if (!StrUtil.isBlank(fjurl)) {
-            urls.add("飞行器日志");
+            urls.add(fxqRz);
             urls.addAll(StrUtil.split(fjurl, ','));
         }
 
@@ -73,7 +81,7 @@ public class EmailUtil {
         StringBuilder htmlContent = new StringBuilder("<html><body>");
         htmlContent.append("<h1>无人机异常邮件</h1>")
                 .append("<p>异常描述:"+content.getLogsInfo()+"</p>")
-                .append("<p>发生时间:"+content.getHappenTime()+"</p>")
+                .append("<p>发生时间:"+ LocalDateTime.ofInstant(Instant.ofEpochMilli(content.getHappenTime()), ZoneId.systemDefault())+"</p>")
                 .append("<p>联系电话:"+content.getContactNumber()+"</p>")
                 .append("<p>联系邮箱:"+content.getContactEmail()+"</p>")
                 .append("<ul>");

+ 1 - 0
Backend/sample/src/main/java/com/dji/sample/configuration/CustomConfiguration.java

@@ -69,6 +69,7 @@ public class CustomConfiguration {
     public static String parentSysClientId;
 
     public void setFrequency(int frequency) {
+
         CustomConfiguration.frequency = frequency;
     }
 

+ 15 - 13
Backend/sample/src/main/java/com/dji/sample/configuration/MailConfiguration.java

@@ -8,11 +8,11 @@ import org.springframework.stereotype.Component;
  * @version 0.1
  * @date 2024/9/11
  */
-@ConfigurationProperties(prefix = "mail")
+@ConfigurationProperties(prefix = "mail-info")
 @Component
 public class MailConfiguration {
 
-    public String enabled;
+    public static String enabled;
 
     public static String host;
 
@@ -20,46 +20,48 @@ public class MailConfiguration {
     public static Integer port;
 
     public void setEnabled(String enabled) {
-        this.enabled = enabled;
+        MailConfiguration.enabled = enabled;
     }
 
-    public static void setHost(String host) {
+    public void setHost(String host) {
+
         MailConfiguration.host = host;
     }
 
-    public static void setPort(Integer port) {
+    public void setPort(Integer port) {
         MailConfiguration.port = port;
     }
 
-    public static void setAuth(Boolean auth) {
+    public void setAuth(Boolean auth) {
+
         MailConfiguration.auth = auth;
     }
 
-    public static void setFrom(String from) {
+    public void setFrom(String from) {
         MailConfiguration.from = from;
     }
 
-    public static void setUser(String user) {
+    public void setUser(String user) {
         MailConfiguration.user = user;
     }
 
-    public static void setPass(String pass) {
+    public void setPass(String pass) {
         MailConfiguration.pass = pass;
     }
 
-    public static void setStarttlsEnable(Boolean starttlsEnable) {
+    public void setStarttlsEnable(Boolean starttlsEnable) {
         MailConfiguration.starttlsEnable = starttlsEnable;
     }
 
-    public static void setSslEnable(Boolean sslEnable) {
+    public void setSslEnable(Boolean sslEnable) {
         MailConfiguration.sslEnable = sslEnable;
     }
 
-    public static void setTimeout(long timeout) {
+    public void setTimeout(long timeout) {
         MailConfiguration.timeout = timeout;
     }
 
-    public static void setConnectionTimeout(long connectionTimeout) {
+    public void setConnectionTimeout(long connectionTimeout) {
         MailConfiguration.connectionTimeout = connectionTimeout;
     }
 

+ 1 - 1
Backend/sample/src/main/java/com/dji/sample/manage/model/param/DeviceLogsParam.java

@@ -15,7 +15,7 @@ public class DeviceLogsParam {
 
     private String logsInfo;
 
-    private Long happenTime;
+    private String happenTime;
 
     private String status;
 

+ 28 - 10
Backend/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceLogsServiceImpl.java

@@ -53,6 +53,8 @@ import java.net.URL;
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -314,12 +316,12 @@ public class DeviceLogsServiceImpl extends AbstractLogService implements IDevice
         DeviceLogsEntity entity = DeviceLogsEntity.builder()
                 .deviceSn(deviceSn)
                 .username(username)
-                .happenTime(param.getHappenTime())
-                .logsInfo(Objects.requireNonNullElse(param.getLogsInfo(), ""))
+                .happenTime(Long.parseLong(param.getHappenTime()))
+                .logsInfo(param.getLogsInfo())
                 .logsId(UUID.randomUUID().toString())
-                .contactEmail(Objects.requireNonNullElse(param.getContactEmail(), ""))
-                .contactNumber(Objects.requireNonNullElse(param.getContactNumber(), ""))
-                .ossIds(Objects.requireNonNullElse(param.getOssIds(), ""))
+                .contactEmail(param.getContactEmail())
+                .contactNumber(param.getContactNumber())
+                .ossIds(param.getOssIds())
                 .status(DeviceLogsStatusEnum.UPLOADING.getVal())
                 .build();
         mapper.insert(entity);
@@ -347,10 +349,11 @@ public class DeviceLogsServiceImpl extends AbstractLogService implements IDevice
             if (!response.getData().getResult().isSuccess()) {
                 return HttpResultResponse.error(response.getData().getResult());
             }
-
+            entity.setLogsId(response.getBid());
+            mapper.updateById(entity);
             for (FileUploadStartFile file : files) {
                 String url = ossService.getObjectUrl(OssConfiguration.bucketLogs, file.getObjectKey()).toString();
-                if(file.getModule().getDomain().equals("0")) {
+                if(file.getModule().getDomain().equals(LogModuleEnum.DRONE.getDomain())) {
                     if (fjUrl == null) {
                         fjUrl = url;
                     } else  {
@@ -363,10 +366,8 @@ public class DeviceLogsServiceImpl extends AbstractLogService implements IDevice
                         jcUrl = jcUrl + "," + url;
                     }
                 }
-
                 logsFileService.insertFile(file, entity.getLogsId());
             }
-
             // Save the status of the log upload.
             RedisOpsUtils.hashSet(RedisConst.LOGS_FILE_PREFIX + deviceSn, response.getBid(), LogsOutputProgressDTO.builder().logsId(response.getBid()).build());
         }
@@ -394,7 +395,7 @@ public class DeviceLogsServiceImpl extends AbstractLogService implements IDevice
                 .between(Objects.nonNull(param.getBeginTime()) && Objects.nonNull(param.getEndTime()),
                         DeviceLogsEntity::getCreateTime, param.getBeginTime(), param.getEndTime())
                 .eq(Objects.nonNull(param.getStatus()), DeviceLogsEntity::getStatus, param.getStatus())
-                .eq(Objects.nonNull(param.getUsername()), DeviceLogsEntity::getUsername, param.getUsername())
+                .like(Objects.nonNull(param.getUsername()), DeviceLogsEntity::getUsername, param.getUsername())
                 .eq(Objects.nonNull(param.getStatus()), DeviceLogsEntity::getStatus, param.getStatus())
                 .and(StringUtils.hasText(param.getSearchInfo()),
                         wrapper -> wrapper.like( DeviceLogsEntity::getDeviceSn, param.getSearchInfo())
@@ -503,4 +504,21 @@ public class DeviceLogsServiceImpl extends AbstractLogService implements IDevice
                 .build();
     }
 
+    private long strToSjc(String str) {
+
+        // 定义日期时间格式
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
+
+        // 解析日期时间字符串
+        LocalDateTime localDateTime = LocalDateTime.parse(str, formatter);
+
+        // 转换为 Instant 对象
+        Instant instant = localDateTime.atZone(ZoneOffset.UTC).toInstant();
+
+        // 获取时间戳(毫秒数)
+        long timestamp = instant.toEpochMilli();
+
+        return timestamp;
+}
+
 }

+ 1 - 0
Backend/sample/src/main/resources/application-prd.yml

@@ -119,6 +119,7 @@ oss:
   access-key: admin
   secret-key: Qwer~123.
   bucket: dji-cloudapi
+  bucket-logs: log-files
   expire: 3600
   region: us-east-1
   object-dir-prefix: wayline

+ 1 - 1
Backend/sample/src/main/resources/application.yml

@@ -198,7 +198,7 @@ custom-config:
 
 
 --- # mail 邮件发送
-mail:
+mail-info:
   enabled: true
   host: smtp.exmail.qq.com
   port: 465