From dda268997ca8f8a364f7c19b45d7a43a50a98efe Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 25 十月 2022 18:00:11 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java |  193 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 143 insertions(+), 50 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
index b98e853..bcd20e8 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
@@ -1,14 +1,16 @@
 package com.sandu.ximon.admin.service;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
-import com.sandu.ximon.admin.config.MinIoConstant;
+import com.sandu.ximon.admin.minio.entity.MinIoConstant;
 import com.sandu.ximon.admin.param.IpVolumeMissionParam;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.admin.utils.TaskAPIUtils;
 import com.sandu.ximon.admin.vo.TaskMediaFileVO;
 import com.sandu.ximon.admin.vo.TaskTerminalVO;
@@ -18,6 +20,7 @@
 import com.sandu.ximon.dao.domain.BroadcastV2TaskTerminal;
 import com.sandu.ximon.dao.domain.IpVolumeFile;
 import com.sandu.ximon.dao.domain.IpVolumeMission;
+import com.sandu.ximon.dao.enums.OrderByEnums;
 import com.sandu.ximon.dao.mapper.IpVolumeMissionMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.beans.BeanUtils;
@@ -44,10 +47,19 @@
     private final BroadcastV2TaskTerminalService broadcastV2TaskTerminalService;
 
 
-    /*public boolean add1() {
-      return   broadcastV2TaskTerminalService.save();
-    }*/
     public boolean addMission(IpVolumeMissionParam missionparam) {
+
+        List<Integer> fileIds = missionparam.getFileIds();
+        List<IpVolumeFile> ipVolumeFiles = ipVolumeFileService.listByIds(fileIds);
+        ipVolumeFiles.forEach(file -> {
+            if (SecurityUtils.getClientId() != null) {
+                //闈炶秴绠$敤鎴�
+                if (!SecurityUtils.getUserId().equals(file.getClientId()) && !SecurityUtils.getUserId().equals(file.getUserId())) {
+                    //鐢ㄦ埛id鍜屽鎴穒d閮戒笉鍖归厤
+                    throw new BusinessException("鏂囦欢褰掑睘寮傚父,鍒涘缓浠诲姟澶辫触");
+                }
+            }
+        });
 
         String taskName = missionparam.getMissionName();
 
@@ -95,10 +107,6 @@
             if (fileEntity == null) {
                 throw new BusinessException("fileId涓�" + fileId + "鐨勬枃浠朵笉瀛樺湪");
             }
-//            String absolutePath = MinIoConstant.getAbsolutePath(
-//                    MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(),
-//                    fileEntity.getFileName()
-//            );
 
             taskMediaFileVO.setI(i);
             i++;
@@ -118,6 +126,7 @@
         Integer taskId = TaskAPIUtils.addTask(missionparam);
 //        Integer taskId = 1111;
 
+        boolean flag;
         if (null != taskId && taskId != 0) {
             IpVolumeMission byId = getById(taskId);
             for (BroadcastV2TaskTerminal v2TaskTerminal : taskTerminalEntityList) {
@@ -164,11 +173,25 @@
             broadcastV2TaskTerminalService.deleteByTaskId(taskId);
             broadcastV2TaskTerminalService.saveTaskTerminal(taskTerminalEntityList);
             broadcastV2TaskFileService.saveBatch(taskFileEntityList);
-            return true;
+            flag = true;
         } else {
-            return false;
+            flag = false;
         }
 
+        /**
+         * IP闊虫煴浠诲姟娣诲姞鏃ュ織璁板綍寮�濮�
+         */
+        String content = "{浠诲姟ID锛�" + taskId
+                + "锛屼换鍔″悕锛�" + taskName
+                + "锛岃澶嘔D闆嗗悎锛�" + missionparam.getTerminalIds()
+                + " }";
+        StoreOperationRecordsUtils.storeOperationData(missionparam.getTerminalIds(), null, "IP闊虫煴浠诲姟娣诲姞", content);
+        /**
+         * IP闊虫煴浠诲姟娣诲姞鏃ュ織璁板綍缁撴潫
+         */
+
+
+        return flag;
     }
 
     public Integer updateMission(Integer taskId, IpVolumeMissionParam missionparam) {
@@ -214,15 +237,11 @@
             taskFileEntity.setFileId(fileId);
 
             IpVolumeFile fileEntity = ipVolumeFileService.getById(fileId);
-            String absolutePath = MinIoConstant.getAbsolutePath(
-                    MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(),
-                    fileEntity.getFileName()
-            );
 
             taskMediaFileVO.setI(i);
             i++;
             taskMediaFileVO.setT(0);
-            taskMediaFileVO.setN(absolutePath);
+            taskMediaFileVO.setN(fileEntity.getFileUrl());
             taskMediaFileVO.setS(BigInteger.valueOf(fileEntity.getOriginSize()));
 
             taskMediaFileVOS.add(taskMediaFileVO);
@@ -232,7 +251,6 @@
 
         missionparam.setFiles(taskMediaFileVOS.toArray(new TaskMediaFileVO[taskMediaFileVOS.size()]));
         missionparam.setTerminals(taskTerminalVOList.toArray(new TaskTerminalVO[taskTerminalVOList.size()]));
-        System.out.println("---------------------------");
 
         //  鍚慖P闊虫煴鏈嶅姟鍣ㄦ洿鏂颁换鍔�
         Integer result = TaskAPIUtils.updateTask(taskId, missionparam);
@@ -284,11 +302,21 @@
             broadcastV2TaskTerminalService.deleteByTaskId(taskId);
             broadcastV2TaskTerminalService.saveBatch(taskTerminalEntityList);
             broadcastV2TaskFileService.saveBatch(taskFileEntityList);
-            return 0;
-
-        } else {
-            return result;
         }
+        /**
+         * IP闊虫煴浠诲姟淇敼 鏃ュ織璁板綍寮�濮�
+         */
+        String content = "{浠诲姟ID锛�" + taskId
+                + "锛屼换鍔″悕锛�" + taskName
+                + "锛岃澶嘔D闆嗗悎锛�" + missionparam.getTerminalIds()
+                + "锛屼换鍔$紪杈戠粨鏋滐細" + result
+                + " }";
+        StoreOperationRecordsUtils.storeOperationData(missionparam.getTerminalIds(), null, "IP闊虫煴浠诲姟淇敼", content);
+        /**
+         * IP闊虫煴浠诲姟淇敼 鏃ュ織璁板綍缁撴潫
+         */
+        return result;
+
     }
 
     /**
@@ -308,34 +336,71 @@
             broadcastV2TaskFileService.deleteByTaskId(taskId);
             broadcastV2TaskTerminalService.deleteByTaskId(taskId);
 //            broadcastV2TaskTerminalService.removeById(taskId);
-            return 0;
-        } else {
-            return del;
         }
 
+        /**
+         * IP闊虫煴浠诲姟鍒犻櫎 鏃ュ織璁板綍寮�濮�
+         */
+        String content = "{鍒犻櫎鐨勪换鍔D锛�" + taskId
+                + "锛屼换鍔″垹闄ょ粨鏋滐細" + del
+                + " }";
+        StoreOperationRecordsUtils.storeOperationData(null, null, "IP闊虫煴浠诲姟鍒犻櫎", content);
+        /**
+         * IP闊虫煴浠诲姟鍒犻櫎 鏃ュ織璁板綍缁撴潫
+         */
+
+
+        return del;
     }
 
 
-    public List<IpVolumeMissionBo> missionList(BaseConditionVO baseConditionVO, String keyword) {
-        //  PageHelper.startPage(baseConditionVO.getPageNo(),baseConditionVO.getPageSize());
-        boolean r = clientService.findClientId();  //ture浠h〃鏈変笂绾у鎴�  鏌ヨ閫氳繃userID
+    public List<IpVolumeMissionBo> missionList(BaseConditionVO baseConditionVO, String keyword, Integer order, Integer seq) {
+
+
+        //鎺掑簭瀛楁
+        String orderByResult = "task_id";
+        //姝e簭銆佸�掑彊
+        String orderBySeq = "ASC";
+        if (order != null) {
+            switch (order) {
+                case 1:
+                    orderByResult = OrderByEnums.IP_VOLUME_MISSION_CREATE_TIME.getCode();
+                    break;
+                default:
+            }
+        }
+        if (seq != null) {
+            switch (seq) {
+                case 1:
+                    orderBySeq = " ASC";
+                    break;
+                case 2:
+                    orderBySeq = " DESC";
+                    break;
+                default:
+                    break;
+            }
+        }
+        //鎺掑簭鏂瑰紡
+        String orderBy = orderByResult + " " + orderBySeq;
+        if (baseConditionVO != null) {
+            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), orderBy);
+        }
 
         List<IpVolumeMissionBo> ipVolumeMissionBos = new ArrayList<>();
-        LambdaQueryWrapper<IpVolumeMission> eq = new LambdaQueryWrapper<>();
+        LambdaQueryWrapper<IpVolumeMission> eq = Wrappers.lambdaQuery(IpVolumeMission.class);
 
-        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
-        if (r) {
-            eq = Wrappers.lambdaQuery(IpVolumeMission.class).eq(IpVolumeMission::getUserId, SecurityUtils.getUserId());
-        } else {
-            eq = Wrappers.lambdaQuery(IpVolumeMission.class).eq(IpVolumeMission::getClientId, SecurityUtils.getUserId());
+
+        //涓嶆槸瓒呯
+        if (SecurityUtils.getClientId() != null) {
+            eq = eq.eq(IpVolumeMission::getUserId, SecurityUtils.getUserId()).or(w -> {
+                w.eq(IpVolumeMission::getClientId, SecurityUtils.getUserId());
+            });
         }
-        if (!keyword.isEmpty()) {
+        if (keyword != null && !keyword.isEmpty()) {
             eq.like(IpVolumeMission::getMissionName, keyword);
         }
         List<IpVolumeMission> list = list(eq);
-
-
-        //  ipVolumeMissionBos = ipVolumeMissionMapper.listAllByClientId();
 
         for (IpVolumeMission mission : list) {
             List<String> fileName = broadcastV2TaskFileService.findByTaskid(mission.getTaskId());
@@ -343,16 +408,9 @@
             BeanUtils.copyProperties(mission, bo);
             bo.setFileNames(fileName);
             ipVolumeMissionBos.add(bo);
-
         }
 
-//        for (IpVolumeMissionBo missionBo: ipVolumeMissionBos) {
-//            missionBo.setFileNames(broadcastV2TaskFileService.findByTaskid(missionBo.getTaskId()));
-//
-//        }
-
         return ipVolumeMissionBos;
-        //return new ArrayList<>();
     }
 
     public TaskVO getByTaskId(Integer taskId) {
@@ -367,30 +425,27 @@
         }
         if (SecurityUtils.getClientId() != null) {
             if (clientService.findClientId()) {
-                if (byId.getUserId() != SecurityUtils.getUserId()) {
+                if (!byId.getUserId().equals(SecurityUtils.getUserId())) {
                     throw new BusinessException("浠诲姟褰掑睘閿欒");
                 }
 
             } else {
-                if (byId.getClientId() != SecurityUtils.getUserId()) {
+                if (!byId.getClientId().equals(SecurityUtils.getUserId()) && !byId.getUserId().equals(SecurityUtils.getUserId())) {
                     throw new BusinessException("浠诲姟褰掑睘閿欒");
                 }
             }
 
 
         }
-        task.setWeeks("0" + Integer.toBinaryString(byId.getWeek()));
+        task.setWeeks("0" + Integer.toBinaryString(task.getWeek()));
 //        byId.setWeeks("0" + Integer.toBinaryString(byId.getWeek()));
 
-//        IpVolumeMissionBo bo = new IpVolumeMissionBo();
         List<BroadcastV2TaskFile> taskFiles = broadcastV2TaskFileService.list(Wrappers.lambdaQuery(BroadcastV2TaskFile.class)
                 .eq(BroadcastV2TaskFile::getTaskId, taskId));
         List<BroadcastV2TaskTerminal> taskTerminals = broadcastV2TaskTerminalService.list(Wrappers.lambdaQuery(BroadcastV2TaskTerminal.class)
                 .eq(BroadcastV2TaskTerminal::getTaskId, taskId));
 
-//        if(taskFiles.isEmpty()||taskTerminals.isEmpty()){
-//            throw new BusinessException("");
-//        }
+
         if (!taskFiles.isEmpty()) {
             taskFiles.forEach(
                     fileId -> {
@@ -417,14 +472,52 @@
             );
         }
 
+
+        System.out.println(JSON.toJSONString(task));
+        System.out.println(task);
         return task;
 
 
     }
 
+    /**
+     * 鎺ㄩ��
+     *
+     * @param taskId
+     * @return
+     */
     public boolean playTask(Integer taskId) {
         return TaskAPIUtils.playTask(taskId);
     }
 
 
+    /**
+     * 鍋滄
+     *
+     * @param taskId
+     * @return
+     */
+    public boolean stopTask(Integer taskId) {
+        return TaskAPIUtils.stopTask(taskId);
+    }
+
+    /**
+     * 鏆傚仠
+     *
+     * @param taskId
+     * @return
+     */
+    public boolean pauseTask(Integer taskId) {
+        return TaskAPIUtils.pauseTask(taskId);
+    }
+
+    /**
+     * 缁х画
+     *
+     * @param taskId
+     * @return
+     */
+    public boolean continueTask(Integer taskId) {
+        return TaskAPIUtils.continueTask(taskId);
+    }
 }

--
Gitblit v1.9.3