Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

S0025136190 vor 1 Jahr
Ursprung
Commit
7ea4e37a35

+ 3 - 1
Backend/sample/src/main/java/com/dji/sample/media/dao/IFileMapper.java

@@ -24,6 +24,8 @@ public interface IFileMapper extends BaseMapper<MediaFileEntity> {
             ",MF.size fileSize " +
             ",MF.picture_time pictureTime " +
             ",MF.picture_type pictureType " +
+            ",MF.object_key fileUrl " +
+            ",MF.file_name fileName " +
             "FROM MEDIA_FILE MF " +
             "LEFT JOIN MEDIA_DIR MD ON MF.DIR_ID = MD.ID " +
             "LEFT JOIN MANAGE_DEVICE DE ON MF.DRONE = DE.DEVICE_SN " +
@@ -41,7 +43,7 @@ public interface IFileMapper extends BaseMapper<MediaFileEntity> {
             "<if test= 'endTime != null' >" +
             "    AND MF.create_time &lt; #{endTime}  " +
             "</if>" +
-            "LIMIT #{page},#{pageSize} " +
+            "order by pictureTime desc LIMIT #{page},#{pageSize} " +
             "</script>")
     List<UpstreamMediaFileDTO> getMediaFiles(@Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("workspaceName") String workspaceName,@Param("page") long page,@Param("pageSize") long pageSize,@Param("workspaceId") String workspaceId);
     @Select("<script> " +

+ 4 - 0
Backend/sample/src/main/java/com/dji/sample/media/model/UpstreamMediaFileDTO.java

@@ -37,6 +37,10 @@ public class UpstreamMediaFileDTO {
 
     private String dirName;
 
+    private String fileUrl;
+
+    private String fileName;
+
 
 
 

+ 8 - 0
Backend/sample/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java

@@ -853,6 +853,14 @@ public class FileServiceImpl implements IFileService {
     @Override
     public PaginationData<UpstreamMediaFileDTO> getMediaFilesPagination(String workspaceName, Long startTime, Long endTime, long page, long pageSize,String workspaceId) {
         List<UpstreamMediaFileDTO> respData = mapper.getMediaFiles(startTime,endTime,workspaceName, page-1,  pageSize,workspaceId);
+        if(respData != null) {
+            for(UpstreamMediaFileDTO mf : respData) {
+                if(StringUtils.hasText(mf.getFileUrl())) {
+                    String url = ossService.getObjectUrl(OssConfiguration.bucket, mf.getFileUrl()).toString();
+                    mf.setFileUrl(url);
+                }
+            }
+        }
         long total = mapper.getMediaFilesCount(startTime,endTime,workspaceName,workspaceId);
         return new PaginationData<UpstreamMediaFileDTO>(respData, new Pagination(page, pageSize, total));
     }

+ 6 - 1
Backend/sample/src/main/java/com/dji/sample/storage/service/impl/StorageServiceImpl.java

@@ -9,6 +9,7 @@ import com.dji.sdk.cloudapi.storage.StsCredentialsResponse;
 import com.dji.sdk.mqtt.MqttReply;
 import com.dji.sdk.mqtt.requests.TopicRequestsRequest;
 import com.dji.sdk.mqtt.requests.TopicRequestsResponse;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.messaging.MessageHeaders;
 import org.springframework.stereotype.Service;
@@ -18,6 +19,7 @@ import org.springframework.stereotype.Service;
  * @version 0.3
  * @date 2022/3/9
  */
+@Slf4j
 @Service
 public class StorageServiceImpl extends AbstractMediaService implements IStorageService {
 
@@ -37,6 +39,9 @@ public class StorageServiceImpl extends AbstractMediaService implements IStorage
 
     @Override
     public TopicRequestsResponse<MqttReply<StsCredentialsResponse>> storageConfigGet(TopicRequestsRequest<StorageConfigGet> response, MessageHeaders headers) {
-        return new TopicRequestsResponse<MqttReply<StsCredentialsResponse>>().setData(MqttReply.success(getSTSCredentials()));
+
+        StsCredentialsResponse stsCredentials = getSTSCredentials();
+        log.info("========机场上传图片获取临时凭证======storageConfigGet==,===stsCredentials:" + stsCredentials.toString());
+        return new TopicRequestsResponse<MqttReply<StsCredentialsResponse>>().setData(MqttReply.success(stsCredentials));
     }
 }

+ 15 - 12
Web/src/pages/page-web/projects/media/detail/index.vue

@@ -27,9 +27,8 @@
             </div>
           </div>
         </div>
-        <a-table :scroll="{ x: '100%', y: 500 }"  rowKey="file_id"
-          :loading="state.listLoading" :columns="columns" :dataSource="state.list" :rowClassName="rowClassName"
-          :pagination="paginationConfig"
+        <a-table :scroll="{ x: '100%', y: 500 }" rowKey="file_id" :loading="state.listLoading" :columns="columns"
+          :dataSource="state.list" :rowClassName="rowClassName" :pagination="paginationConfig"
           :rowSelection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }">
           <!-- 文件夹名称 -->
           <template #file_name="{ record }">
@@ -74,7 +73,7 @@
               <a-tooltip title="重命名" v-else-if="record.media_type === 4">
                 <EditOutlined style="margin-right: 10px;" @click="onClickRechristen(record)" />
               </a-tooltip>
-              <a-tooltip title="删除" >
+              <a-tooltip title="删除">
                 <DeleteOutlined style="margin-right: 10px;" @click="onClickDelete(record)" />
               </a-tooltip>
               <a-tooltip title="压缩下载">
@@ -92,7 +91,7 @@
 
 <script lang="ts" setup>
 import { reactive, onMounted } from 'vue';
-import { message ,Modal} from 'ant-design-vue';
+import { message, Modal } from 'ant-design-vue';
 import { EditOutlined, DeleteOutlined, DownloadOutlined, AimOutlined, CheckOutlined, CloseOutlined } from '@ant-design/icons-vue';
 import Search from './components/Search.vue';
 import FileInfo from './components/FileInfo.vue';
@@ -263,9 +262,11 @@ const onClickBatchDelete = async () => {
     okType: 'danger',
     onOk: async () => {
       try {
-        await apis.batchDeletePicture(data);
-        message.success('删除成功');
-        await fetchList();
+        const res = await apis.batchDeletePicture(data);
+        if (res.code === 0) {
+          await fetchList();
+          message.success('删除成功');
+        }
       } catch (error) {
         message.error('删除失败: ' + error);
       }
@@ -344,7 +345,7 @@ const onClickSave = async (record: any) => {
 
 // 点击删除
 const onClickDelete = async (record: any) => {
-  console.log(record,"record");
+  console.log(record, "record");
   const data = {
     id: record.file_id
   }
@@ -354,9 +355,11 @@ const onClickDelete = async (record: any) => {
     okType: 'danger',
     onOk: async () => {
       try {
-        await apis.batchDeletePicture(data);
-        message.success('删除成功');
-        await fetchList();
+        const res = await apis.batchDeletePicture(data);
+        if (res.code === 0) {
+          await fetchList();
+          message.success('删除成功');
+        }
       } catch (error) {
         message.error('删除失败: ' + error);
       }

+ 5 - 3
Web/src/pages/page-web/projects/media/index/index.vue

@@ -305,9 +305,11 @@ const onClickDelete = async (record: any) => {
     okType: 'danger',
     onOk: async () => {
       try {
-        await apis.deleteDir(data);
-        message.success('删除成功');
-        fetchList();
+        const res = await apis.deleteDir(data);
+        if (res.code === 0) {
+          await fetchList();
+          message.success('删除成功');
+        }
       } catch (error) {
         message.error('删除失败: ' + error);
       }

+ 5 - 3
Web/src/pages/page-web/projects/task/taskList/index.vue

@@ -430,9 +430,11 @@ const onClickDelete = (id: string, name: string) => {
     okType: 'danger',
     onOk: async () => {
       try {
-        await apis.deleteJob({ job_id: id });
-        await fetchList();
-        message.success('删除成功');
+        const res = await apis.deleteJob({ job_id: id });
+        if (res.code === 0) {
+          await fetchList();
+          message.success('删除成功');
+        }
       } catch (error) {
         message.error('删除失败: ' + error);
       }

+ 5 - 3
Web/src/pages/page-web/projects/task/waylineList/index.vue

@@ -223,9 +223,11 @@ const onClickDelete = (id: string, name: string) => {
     okType: 'danger',
     onOk: async () => {
       try {
-        await deleteWaylineFile(getWorkspaceId(), id);
-        await fetchList();
-        message.success('删除成功');
+        const res = await deleteWaylineFile(getWorkspaceId(), id);
+        if (res.code === 0) {
+          await fetchList();
+          message.success('删除成功');
+        }
       } catch (error) {
         message.error('删除失败: ' + error);
       }