From 64fe243e5a223a09bb07c90958ecfd436ed018ea Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Thu, 09 Nov 2023 16:50:07 +0800
Subject: [PATCH] 无人机 - 新增统计飞行记录、收藏媒体任务接口

---
 src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
index c149023..e86e4c6 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -2,6 +2,8 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dji.sample.common.error.CommonErrorEnum;
 import com.dji.sample.common.model.CustomClaim;
@@ -689,6 +691,32 @@
        return waylineJobEntity;
     }
 
+    @Override
+    public WaylineJobCountDTO patrolStatistics(String workspaceId) {
+        WaylineJobCountDTO waylineJobCountDTO = new WaylineJobCountDTO();
+        List<WaylineJobEntity> list = new LambdaQueryChainWrapper<>(mapper).eq(WaylineJobEntity::getStatus, 3).list();
+        if (!CollectionUtils.isEmpty(list)){
+            waylineJobCountDTO.setTotalNumber(list.size());
+            long totalTime = list.stream().mapToLong(s -> s.getEndTime() - s.getBeginTime()).sum() / 1000;
+            StringBuffer buffer = new StringBuffer();
+            long h = totalTime / 3600;
+            long m = (totalTime % 3600) / 60;
+            buffer.append(h).append(" h ");
+            buffer.append(m).append(" min");
+            waylineJobCountDTO.setTotalDuration(buffer.toString());
+        }
+        return waylineJobCountDTO;
+    }
+
+    @Override
+    public void updateJobCollect(WaylineJobEntity waylineJob) {
+        new LambdaUpdateChainWrapper<>(mapper)
+                .eq(WaylineJobEntity::getJobId,waylineJob.getJobId())
+                .set(WaylineJobEntity::getCollectStatus,waylineJob.getCollectStatus())
+                .set(WaylineJobEntity::getUserId,waylineJob.getUserId())
+                .update();
+    }
+
     private void pauseJob(String workspaceId, String dockSn, String jobId, WaylineJobStatusEnum statusEnum) {
         if (WaylineJobStatusEnum.PAUSED == statusEnum && jobId.equals(waylineRedisService.getPausedWaylineJobId(dockSn))) {
             waylineRedisService.setPausedWaylineJob(dockSn, jobId);

--
Gitblit v1.9.3