From 52eb3f0befcb397d2fdd645c8d7471d6ee477f87 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期一, 09 五月 2022 16:36:38 +0800
Subject: [PATCH] 权限

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java |  166 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 124 insertions(+), 42 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 a2f0616..89a7f60 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,12 +1,13 @@
 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.TaskAPIUtils;
@@ -25,7 +26,6 @@
 
 import java.math.BigInteger;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 
@@ -39,6 +39,7 @@
 public class IpVolumeMissionService extends BaseServiceImpl<IpVolumeMissionMapper, IpVolumeMission> {
     private final IpVolumeMissionMapper ipVolumeMissionMapper;
     private final ClientService clientService;
+    private final IpVolumeService ipVolumeService;
     private final IpVolumeFileService ipVolumeFileService;
     private final BroadcastV2TaskFileService broadcastV2TaskFileService;
     private final BroadcastV2TaskTerminalService broadcastV2TaskTerminalService;
@@ -92,18 +93,27 @@
             taskFileEntity.setFileId(fileId);
 
             IpVolumeFile fileEntity = ipVolumeFileService.getById(fileId);
-            if(fileEntity==null){
-                throw new BusinessException("fileId涓�"+fileId+"鐨勬枃浠朵笉瀛樺湪");
+            if (fileEntity == null) {
+                throw new BusinessException("fileId涓�" + fileId + "鐨勬枃浠朵笉瀛樺湪");
             }
-//            String absolutePath = MinIoConstant.getAbsolutePath(
-//                    MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(),
-//                    fileEntity.getFileName()
-//            );
-
+            if (fileEntity.getUserId() == null && fileEntity.getClientId() != null) {
+                fileEntity.setUserId(fileEntity.getClientId());
+            }
+            String absolutePath;
+            absolutePath = MinIoConstant.getAbsolutePath(
+                    MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(),
+                    fileEntity.getFileName()
+            );
+            if (fileEntity.getUserId() == null && fileEntity.getClientId() == null) {
+                absolutePath = MinIoConstant.getAbsolutePath(
+                        MinIoConstant.ADMIN_BROADCAST_FILE.getBucketName(),
+                        fileEntity.getFileName()
+                );
+            }
             taskMediaFileVO.setI(i);
             i++;
             taskMediaFileVO.setT(0);
-            taskMediaFileVO.setN(fileEntity.getFileUrl());
+            taskMediaFileVO.setN(absolutePath);
             taskMediaFileVO.setS(BigInteger.valueOf(fileEntity.getOriginSize()));
 
             taskMediaFileVOS.add(taskMediaFileVO);
@@ -141,9 +151,8 @@
                 mission.setOffDate(missionparam.getOffDate());
                 mission.setWeek(Integer.parseInt(missionparam.getWeek(), 2));//鏃堕棿鐢变簩杩涘埗瀛楃涓茶浆鎹负鍗佽繘鍒�
                 mission.setMissionVolume(missionparam.getMissionVolume());
-                //mission.setMissionFileUrl(missionparam.getFiles().toString());
                 mission.setNumberInPlay(missionparam.getTerminals().length);
-                /*TaskTerminalVO[] terminals = missionparam.getTerminals();*/
+
 
                 System.out.println(save(mission));
                 System.out.println("----------------------------------------------------------");
@@ -160,18 +169,11 @@
                 mission.setMissionVolume(missionparam.getMissionVolume());
                 mission.setMissionFileUrl(missionparam.getFiles().toString());
                 mission.setNumberInPlay(missionparam.getTerminals().length);
-             /*   System.out.println(updateById(mission));
-                System.out.println("----------------------------------------------------------");*/
             }
             broadcastV2TaskFileService.deleteByTaskId(taskId);
             broadcastV2TaskTerminalService.deleteByTaskId(taskId);
-//            broadcastV2TaskTerminalService.deleteByTaskId(taskId);
-//            broadcastV2TaskTerminalService.removeById(taskId);
             broadcastV2TaskTerminalService.saveTaskTerminal(taskTerminalEntityList);
             broadcastV2TaskFileService.saveBatch(taskFileEntityList);
-//            broadcastV2TaskTerminalService.saveBatch(taskTerminalEntityList);
-//            broadcastV2TaskTerminalService.insertTaskTerminal(taskTerminalEntityList);
-
             return true;
         } else {
             return false;
@@ -222,10 +224,17 @@
             taskFileEntity.setFileId(fileId);
 
             IpVolumeFile fileEntity = ipVolumeFileService.getById(fileId);
-            String absolutePath = MinIoConstant.getAbsolutePath(
+            String absolutePath;
+            absolutePath = MinIoConstant.getAbsolutePath(
                     MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(),
                     fileEntity.getFileName()
             );
+            if (fileEntity.getUserId() == null && fileEntity.getClientId() == null) {
+                absolutePath = MinIoConstant.getAbsolutePath(
+                        MinIoConstant.ADMIN_BROADCAST_FILE.getBucketName(),
+                        fileEntity.getFileName()
+                );
+            }
 
             taskMediaFileVO.setI(i);
             i++;
@@ -240,7 +249,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);
@@ -325,25 +333,22 @@
 
 
     public List<IpVolumeMissionBo> missionList(BaseConditionVO baseConditionVO, String keyword) {
-        //  PageHelper.startPage(baseConditionVO.getPageNo(),baseConditionVO.getPageSize());
-        boolean r = clientService.findClientId();  //ture浠h〃鏈変笂绾у鎴�  鏌ヨ閫氳繃userID
+        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
 
         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());
@@ -351,19 +356,12 @@
             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 IpVolumeMission getByTaskId(Integer taskId) {
+    public TaskVO getByTaskId(Integer taskId) {
         TaskVO task = TaskAPIUtils.getTask(taskId);
         if (task == null) {
             throw new BusinessException("鏈嶅姟鍣ㄦ湭鎵惧埌璇ヤ换鍔�");
@@ -373,17 +371,101 @@
         if (byId == null) {
             throw new BusinessException("鏈湴鏈壘鍒拌浠诲姟");
         }
+        if (SecurityUtils.getClientId() != null) {
+            if (clientService.findClientId()) {
+                if (byId.getUserId().equals(SecurityUtils.getUserId())) {
+                    throw new BusinessException("浠诲姟褰掑睘閿欒");
+                }
 
-        byId.setWeeks("0" + Integer.toBinaryString(byId.getWeek()));
+            } else {
+                if (byId.getClientId().equals(SecurityUtils.getUserId())) {
+                    throw new BusinessException("浠诲姟褰掑睘閿欒");
+                }
+            }
 
-        return byId;
+
+        }
+        task.setWeeks("0" + Integer.toBinaryString(task.getWeek()));
+//        byId.setWeeks("0" + Integer.toBinaryString(byId.getWeek()));
+
+        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()) {
+            taskFiles.forEach(
+                    fileId -> {
+//                           IpVolumeFile volumeFile = ipVolumeFileService.getById(fileId.getFileId());
+//                           if(volumeFile==null){
+//                               throw new BusinessException("浠诲姟鏂囦欢涓嶅瓨鍦�");
+//                           }
+                        task.getFileIds().add(fileId.getFileId());
+//                           byId.getFileIds().add(fileId.getFileId());
+                    }
+            );
+
+        }
+        if (!taskTerminals.isEmpty()) {
+            taskTerminals.forEach(
+                    terminalId -> {
+//                        BroadcastTerminalV2Entity v2Entity = ipVolumeService.getById(terminalId.getTerminalId());
+//                        if(v2Entity==null){
+//                            throw new BusinessException("璇ヤ换鍔℃殏鏃犺澶囦娇鐢�");
+//                        }
+                        task.getTerminalIds().add(terminalId.getTerminalId());
+//                        byId.getTerminalIds().add(terminalId.getTerminalId());
+                    }
+            );
+        }
+
+
+        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