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/PlatformFileService.java |   75 ++++++++++++++++++++++++++++++++-----
 1 files changed, 65 insertions(+), 10 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileService.java
index 9d37c17..118028c 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileService.java
@@ -1,5 +1,6 @@
 package com.sandu.ximon.admin.service;
 
+import cn.hutool.core.lang.Snowflake;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.sandu.common.execption.BusinessException;
@@ -7,6 +8,7 @@
 import com.sandu.common.file.impl.AliOssFileServiceImpl;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.common.util.SpringContextHolder;
 import com.sandu.ximon.admin.param.AllUserInfoParam;
 import com.sandu.ximon.admin.param.EditFileParam;
 import com.sandu.ximon.admin.param.PlatformFilePermissionParam;
@@ -20,12 +22,12 @@
 import com.sandu.ximon.dao.mapper.PlatformFileMapper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections.ArrayStack;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author LiuHaoNan
@@ -40,6 +42,7 @@
     private final PlatformFileUserService platformFileUserService;
     private final AdminService adminService;
     private final ClientService clientService;
+    private final Snowflake snowflake;
 
     /**
      * 鏂囦欢涓婁紶
@@ -51,7 +54,8 @@
         PermissionToCheck();
         FileUploadDto fileUploadDto = aliOssFileService.uploadFile(file);
         PlatformFile platformFile = new PlatformFile();
-        platformFile.setFileName(fileUploadDto.getFileName());
+        platformFile.setFileId(snowflake.nextId());
+        platformFile.setFileName(fileUploadDto.getOriginName());
         platformFile.setFileSize(fileUploadDto.getFileSize());
         platformFile.setFileUrl(fileUploadDto.getFileUrl());
         log.error("瓒呯杩涜鏂囦欢涓婁紶[ 鏂囦欢鍚�:" + fileUploadDto.getFileName() + ", 鏂囦欢澶у皬: " + fileUploadDto.getFileSize() + ", url: " + fileUploadDto.getFileUrl() + "]");
@@ -89,10 +93,18 @@
             throw new BusinessException("鍒犻櫎鏃跺弬鏁颁笉鑳戒负绌�!");
         }
         List<PlatformFile> platformFiles = listByIds(param.getFileIds());
-        if (platformFiles == null && platformFiles.size() == 0) {
+        if (platformFiles == null || platformFiles.size() == 0) {
             throw new BusinessException("鏈壘鍒版枃浠�!");
         }
-        return removeByIds(platformFiles);
+
+        //鑾峰彇鍏崇郴
+        List<PlatformFileUser> list = platformFileUserService.list(Wrappers.lambdaQuery(PlatformFileUser.class).in(PlatformFileUser::getFileId, param.getFileIds()));
+        if (!list.isEmpty()) {
+            //鍒犻櫎鍏崇郴
+            platformFileUserService.remove(Wrappers.lambdaQuery(PlatformFileUser.class).in(PlatformFileUser::getFileId, param.getFileIds()));
+        }
+        //鍒犻櫎鏂囦欢
+        return removeByIds(param.getFileIds());
     }
 
 
@@ -103,14 +115,22 @@
      * @param keyword
      * @return
      */
-    public Object fileList(BaseConditionVO vo, String keyword) {
+    public List<PlatformFileListBo> fileList(BaseConditionVO vo, String keyword) {
         List<PlatformFileListBo> platformFileListBos;
         if (AdministratorEnums.ADMIN.getCode().equals(SecurityUtils.getUserDetails().getAdministratorType())) {
             PageHelper.startPage(vo.getPageNo(), vo.getPageSize());
-            platformFileListBos = baseMapper.fileLiet(keyword, null);
+            platformFileListBos = baseMapper.fileList(keyword, null);
         } else {
+            List<PlatformFileUser> platformFileUsers = SpringContextHolder.getBean(PlatformFileUserService.class)
+                    .list(Wrappers.lambdaQuery(PlatformFileUser.class).eq(PlatformFileUser::getUserId, SecurityUtils.getUserId()));
+            List<Long> fileIdList = platformFileUsers.stream().map(PlatformFileUser::getFileId).collect(Collectors.toList());
+
+            if (fileIdList.size() == 0) {
+                fileIdList.add(-1L);
+            }
             PageHelper.startPage(vo.getPageNo(), vo.getPageSize());
-            platformFileListBos = baseMapper.fileLiet(keyword, SecurityUtils.getUserId());
+            platformFileListBos = baseMapper.fileList(keyword, fileIdList);
+
         }
         return platformFileListBos;
     }
@@ -141,6 +161,7 @@
      * @return
      */
     public String setPermission(PlatformFilePermissionParam platformFilePermissionParam) {
+        PermissionToCheck();
         //鍒犻櫎鏃у叧绯�
         platformFileUserService.remove(Wrappers.lambdaQuery(PlatformFileUser.class)
                 .eq(PlatformFileUser::getFileId, platformFilePermissionParam.getFileId()));
@@ -164,10 +185,12 @@
 
     /**
      * 杩斿洖鎵�鏈夌敤鎴�
+     *
      * @return
      */
     public List<AllUserInfoParam> allUserList() {
-        List<Admin> adminList = adminService.list(Wrappers.lambdaQuery(Admin.class).ne(Admin::getId, 1));
+        PermissionToCheck();
+        List<Admin> adminList = adminService.list(Wrappers.lambdaQuery(Admin.class).ne(Admin::getId, SecurityUtils.getUserId()));
         List<Client> clientList = clientService.list();
 
         List<AllUserInfoParam> list = new ArrayList<>();
@@ -193,13 +216,45 @@
     }
 
 
+    public List<AllUserInfoParam> permissionInfo(Long fileId) {
+        PermissionToCheck();
+        List<PlatformFileUser> list = platformFileUserService.list(Wrappers.lambdaQuery(PlatformFileUser.class).eq(PlatformFileUser::getFileId, fileId));
+        List<Long> userIds = list.stream().map(PlatformFileUser::getUserId).collect(Collectors.toList());
+        List<Admin> admins = adminService.list(Wrappers.lambdaQuery(Admin.class).in(Admin::getId, userIds));
+        List<Client> clients = clientService.list(Wrappers.lambdaQuery(Client.class).in(Client::getId, userIds));
+
+
+        List<AllUserInfoParam> infoList = new ArrayList<>();
+        AllUserInfoParam allUserInfoParam;
+
+        for (Admin admin : admins) {
+            allUserInfoParam = new AllUserInfoParam();
+            allUserInfoParam.setId(admin.getId());
+            allUserInfoParam.setName(admin.getUsername());
+            allUserInfoParam.setType("绠$悊鍛�");
+            infoList.add(allUserInfoParam);
+        }
+
+        for (Client client : clients) {
+            allUserInfoParam = new AllUserInfoParam();
+            allUserInfoParam.setId(client.getId());
+            allUserInfoParam.setName(client.getClientName());
+            allUserInfoParam.setType("鏅�氱敤鎴�");
+            infoList.add(allUserInfoParam);
+        }
+
+        return infoList;
+    }
+
+
     /**
-     * 鏉冮檺鏍¢獙
+     * 鏉冮檺瓒呯鏍¢獙
      */
     private void PermissionToCheck() {
         if (!AdministratorEnums.ADMIN.getCode().equals(SecurityUtils.getUserDetails().getAdministratorType())) {
-            //瓒呯
+            //闈炶秴绠�
             throw new BusinessException("闈炶秴绠′笉鑳芥搷浣�");
         }
     }
+
 }

--
Gitblit v1.9.3