From 2d8ded3e77b22e44985265ca4063102662e452c1 Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Mon, 12 Dec 2022 18:32:19 +0800
Subject: [PATCH] initial v1.3.1

---
 src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
index 83b3247..77ca1cf 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
@@ -11,6 +11,7 @@
 import com.dji.sample.component.websocket.service.IWebSocketManageService;
 import com.dji.sample.manage.model.dto.DeviceDTO;
 import com.dji.sample.manage.model.enums.UserTypeEnum;
+import com.dji.sample.media.model.MediaFileCountDTO;
 import com.dji.sample.wayline.model.dto.FlightTaskProgressReceiver;
 import com.dji.sample.wayline.model.dto.WaylineJobDTO;
 import com.dji.sample.wayline.model.enums.WaylineJobStatusEnum;
@@ -53,9 +54,6 @@
     private IWebSocketManageService webSocketManageService;
 
     @Autowired
-    private RedisOpsUtils redisOps;
-
-    @Autowired
     private IWaylineJobService waylineJobService;
 
     @Override
@@ -83,17 +81,23 @@
                     .mediaCount(output.getExt().getMediaCount())
                     .build();
 
+            // record the update of the media count.
+            if (Objects.nonNull(job.getMediaCount())) {
+                RedisOpsUtils.hashSet(RedisConst.MEDIA_FILE_PREFIX + receiver.getGateway(), job.getJobId(),
+                        MediaFileCountDTO.builder().jobId(receiver.getBid()).mediaCount(job.getMediaCount()).uploadedCount(0).build());
+            }
+
             if (EventsResultStatusEnum.OK != statusEnum) {
                 job.setCode(eventsReceiver.getResult());
                 job.setStatus(WaylineJobStatusEnum.FAILED.getVal());
             }
 
             waylineJobService.updateJob(job);
-            redisOps.del(receiver.getBid());
+            RedisOpsUtils.del(receiver.getBid());
         }
-        redisOps.setWithExpire(receiver.getBid(), eventsReceiver, RedisConst.DEVICE_ALIVE_SECOND * RedisConst.DEVICE_ALIVE_SECOND);
+        RedisOpsUtils.setWithExpire(receiver.getBid(), eventsReceiver, RedisConst.DEVICE_ALIVE_SECOND * RedisConst.DEVICE_ALIVE_SECOND);
 
-        DeviceDTO device = (DeviceDTO) redisOps.get(RedisConst.DEVICE_ONLINE_PREFIX + receiver.getGateway());
+        DeviceDTO device = (DeviceDTO) RedisOpsUtils.get(RedisConst.DEVICE_ONLINE_PREFIX + receiver.getGateway());
         websocketMessageService.sendBatch(
                 webSocketManageService.getValueWithWorkspaceAndUserType(
                         device.getWorkspaceId(), UserTypeEnum.WEB.getVal()),
@@ -118,19 +122,19 @@
 
     @Scheduled(initialDelay = 10, fixedRate = 5, timeUnit = TimeUnit.SECONDS)
     private void checkScheduledJob() {
-        Object jobIdValue = redisOps.zGetMin(RedisConst.WAYLINE_JOB);
+        Object jobIdValue = RedisOpsUtils.zGetMin(RedisConst.WAYLINE_JOB);
         log.info("Check the timed jobs of the wayline. {}", jobIdValue);
         if (Objects.isNull(jobIdValue)) {
             return;
         }
         String jobId = String.valueOf(jobIdValue);
-        double time = redisOps.zScore(RedisConst.WAYLINE_JOB, jobIdValue);
+        double time = RedisOpsUtils.zScore(RedisConst.WAYLINE_JOB, jobIdValue);
         long now = System.currentTimeMillis();
         int offset = 30_000;
 
         // Expired tasks are deleted directly.
         if (time < now - offset) {
-            redisOps.zRemove(RedisConst.WAYLINE_JOB, jobId);
+            RedisOpsUtils.zRemove(RedisConst.WAYLINE_JOB, jobId);
             waylineJobService.updateJob(WaylineJobDTO.builder()
                     .jobId(jobId)
                     .status(WaylineJobStatusEnum.FAILED.getVal())
@@ -150,7 +154,7 @@
                         .endTime(LocalDateTime.now())
                         .code(HttpStatus.SC_INTERNAL_SERVER_ERROR).build());
             } finally {
-                redisOps.zRemove(RedisConst.WAYLINE_JOB, jobId);
+                RedisOpsUtils.zRemove(RedisConst.WAYLINE_JOB, jobId);
             }
         }
     }

--
Gitblit v1.9.3