From aebf1df56a02c71a5e6b4a9da395c12ed66edb1b Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期三, 14 九月 2022 14:13:12 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java          |   55 ++++--
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileService.java       |  137 +++++++++++++++++
 dao/src/main/resources/mapper/PlatformFileUserMapper.xml                               |   16 ++
 dao/src/main/java/com/sandu/ximon/dao/bo/PlatformFileListBo.java                       |   24 +++
 dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileUserMapper.java               |   20 ++
 dao/src/main/resources/mapper/PlatformFileMapper.xml                                   |   39 ++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileUserService.java   |   14 +
 ximon-admin/src/main/java/com/sandu/ximon/admin/param/EditFileParam.java               |   25 +++
 dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFileUser.java                     |   35 ++++
 dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFile.java                         |   52 ++++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlatformFilePermissionParam.java |    9 +
 dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileMapper.java                   |   24 +++
 dao/src/main/resources/mapper/LightTaskPoleRelationMapper.xml                          |    3 
 13 files changed, 430 insertions(+), 23 deletions(-)

diff --git a/dao/src/main/java/com/sandu/ximon/dao/bo/PlatformFileListBo.java b/dao/src/main/java/com/sandu/ximon/dao/bo/PlatformFileListBo.java
new file mode 100644
index 0000000..3e2834a
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/bo/PlatformFileListBo.java
@@ -0,0 +1,24 @@
+package com.sandu.ximon.dao.bo;
+
+import lombok.Data;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/9/14
+ */
+@Data
+public class PlatformFileListBo {
+
+    private Long fileId;
+
+    /**
+     * 鏂囦欢鍚嶇О
+     */
+    private String fileName;
+
+    /**
+     * 鏂囦欢澶у皬
+     */
+    private Long fileSize;
+
+}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFile.java b/dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFile.java
new file mode 100644
index 0000000..04ac211
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFile.java
@@ -0,0 +1,52 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 骞冲彴鏂囦欢琛�
+ *
+ * @TableName platform_file
+ */
+@TableName(value = "platform_file")
+@Data
+public class PlatformFile implements Serializable {
+    /**
+     * 鏂囦欢id
+     */
+    @TableId
+    private Long fileId;
+
+    /**
+     * 鏂囦欢鍚嶇О
+     */
+    private String fileName;
+
+    /**
+     * 鏂囦欢澶у皬
+     */
+    private Long fileSize;
+
+    /**
+     * url
+     */
+    private String fileUrl;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date createTime;
+
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFileUser.java b/dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFileUser.java
new file mode 100644
index 0000000..51bc887
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/PlatformFileUser.java
@@ -0,0 +1,35 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 鏂囦欢鐢ㄦ埛缁戝畾琛�
+ * @TableName platform_file_user
+ */
+@TableName(value ="platform_file_user")
+@Data
+public class PlatformFileUser implements Serializable {
+    /**
+     * 
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 鏂囦欢id
+     */
+    private Long fileId;
+
+    /**
+     * 鐢ㄦ埛id
+     */
+    private Long userId;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileMapper.java
new file mode 100644
index 0000000..ca22f85
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileMapper.java
@@ -0,0 +1,24 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.bo.PlatformFileListBo;
+import com.sandu.ximon.dao.domain.PlatformFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恜latform_file(骞冲彴鏂囦欢琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2022-09-14 09:52:22
+* @Entity com.sandu.ximon.dao.domain.PlatformFile
+*/
+@Mapper
+public interface PlatformFileMapper extends BaseMapper<PlatformFile> {
+
+    List<PlatformFileListBo> fileLiet(String keyword, Long userId);
+}
+
+
+
+
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileUserMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileUserMapper.java
new file mode 100644
index 0000000..87851d6
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/PlatformFileUserMapper.java
@@ -0,0 +1,20 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.PlatformFileUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恜latform_file_user(鏂囦欢鐢ㄦ埛缁戝畾琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2022-09-14 09:52:31
+* @Entity com.sandu.ximon.dao.domain.PlatformFileUser
+*/
+@Mapper
+public interface PlatformFileUserMapper extends BaseMapper<PlatformFileUser> {
+
+}
+
+
+
+
diff --git a/dao/src/main/resources/mapper/LightTaskPoleRelationMapper.xml b/dao/src/main/resources/mapper/LightTaskPoleRelationMapper.xml
index d0cbce1..274af50 100644
--- a/dao/src/main/resources/mapper/LightTaskPoleRelationMapper.xml
+++ b/dao/src/main/resources/mapper/LightTaskPoleRelationMapper.xml
@@ -27,8 +27,9 @@
         light_task_pole_relation t1
         LEFT JOIN pole t2 ON t1.pole_id = t2.id
         <where>
-            AND t1.task_id = #{taskId}
+             t1.task_id = #{taskId}
         </where>
+        GROUP BY t2.id
     </select>
 
     <select id="test" resultType="com.sandu.ximon.dao.bo.LightTaskPoleRelationBo">
diff --git a/dao/src/main/resources/mapper/PlatformFileMapper.xml b/dao/src/main/resources/mapper/PlatformFileMapper.xml
new file mode 100644
index 0000000..a89b68f
--- /dev/null
+++ b/dao/src/main/resources/mapper/PlatformFileMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sandu.ximon.dao.mapper.PlatformFileMapper">
+
+    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PlatformFile">
+        <id property="fileId" column="file_id" jdbcType="BIGINT"/>
+        <result property="fileName" column="file_name" jdbcType="VARCHAR"/>
+        <result property="fileUrl" column="file_url" jdbcType="VARCHAR"/>
+        <result property="fileSize" column="file_size" jdbcType="BIGINT"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        file_id
+        ,file_name,file_size,
+        create_time,update_time
+    </sql>
+    <select id="fileLiet" resultType="com.sandu.ximon.dao.bo.PlatformFileListBo">
+        SELECT
+        *
+        FROM
+        platform_file t1
+        LEFT JOIN platform_file_user t2 ON t1.file_Id = t2.file_Id
+        WHERE
+        1 =1
+        <if test="userId!=null">
+            AND
+            t2.user_id = #{userId}
+        </if>
+        <if test="keyword != null and keyword != ''">
+            AND (
+            t1.file_name LIKE CONCAT('%', #{keyword},'%')
+            )
+        </if>
+    </select>
+</mapper>
diff --git a/dao/src/main/resources/mapper/PlatformFileUserMapper.xml b/dao/src/main/resources/mapper/PlatformFileUserMapper.xml
new file mode 100644
index 0000000..d14b826
--- /dev/null
+++ b/dao/src/main/resources/mapper/PlatformFileUserMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sandu.ximon.dao.mapper.PlatformFileUserMapper">
+
+    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PlatformFileUser">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="fileId" column="file_id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,file_id,user_id
+    </sql>
+</mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/EditFileParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/EditFileParam.java
new file mode 100644
index 0000000..6a1f91e
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/EditFileParam.java
@@ -0,0 +1,25 @@
+package com.sandu.ximon.admin.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/9/14
+ * 骞冲彴鏂囦欢
+ */
+@Data
+public class EditFileParam {
+
+    private Long fileId;
+
+    /**
+     * 鏂囦欢鍚嶇О
+     */
+    private String fileName;
+
+
+    private List<Long> fileIds;
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlatformFilePermissionParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlatformFilePermissionParam.java
new file mode 100644
index 0000000..5dbbf70
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlatformFilePermissionParam.java
@@ -0,0 +1,9 @@
+package com.sandu.ximon.admin.param;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/9/14
+ * 骞冲彴鏂囦欢
+ */
+public class PlatformFilePermissionParam {
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
index b4bdff6..7ffe4e2 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -105,18 +105,24 @@
             throw new BusinessException("淇濆瓨璺伅浠诲姟澶辫触");
         }
         List<String> poleCodeList = new ArrayList<>();
-        if (CollectionUtil.isNotEmpty(param.getPoleIdList())) {
-            List<Pole> poleList = SpringContextHolder.getBean(PoleService.class).listByIds(param.getPoleIdList());
+        //浼犲叆鐨勭伅鏉唅d闆嗗悎
+        List<Long> poleIdList = new ArrayList<>();
+        //鍘婚噸
+        for (Long item : param.getPoleIdList()) {
+            if (!poleIdList.contains(item)) {
+                poleIdList.add(item);
+            }
+        }
+        if (CollectionUtil.isNotEmpty(poleIdList)) {
+            List<Pole> poleList = SpringContextHolder.getBean(PoleService.class).listByIds(poleIdList);
             if (CollectionUtil.isNotEmpty(poleList)) {
                 poleCodeList = poleList.stream().map(Pole::getDeviceCode).collect(Collectors.toList());
             }
         }
-        String content = "{浠诲姟ID锛�" + newLightTask.getTaskId() + "锛� 浠诲姟鍚嶏細" + newLightTask.getTaskName() + "}锛寋鍐呭抚鎸囦护" + newLightTask.getFramePayload() + "锛� 鐏潌ID锛�" + param.getPoleIdList().toString() + "锛� 鎺у埗鐨勭伅澶村湴鍧�锛�" + param.getLightAddress() + " }";
+        String content = "{浠诲姟ID锛�" + newLightTask.getTaskId() + "锛� 浠诲姟鍚嶏細" + newLightTask.getTaskName() + "}锛寋鍐呭抚鎸囦护" + newLightTask.getFramePayload() + "锛� 鐏潌ID锛�" + poleIdList.toString() + "锛� 鎺у埗鐨勭伅澶村湴鍧�锛�" + param.getLightAddress() + " }";
         StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "鏂板璺伅浠诲姟", content);
 
 
-        //浼犲叆鐨勭伅鏉唅d闆嗗悎
-        List<Long> poleIdList = param.getPoleIdList();
         //璁板綍杩欎簺鐏潌鍘熷厛鐨勪换鍔�
         List<LightTaskPoleRelation> oldLightTaskStatusAndPoles;
         if ("FFFF".equals(param.getLightAddress())) {
@@ -156,7 +162,7 @@
          * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍寮�濮�
          */
 
-        String content1 = "{浠诲姟ID锛�" + newLightTask.getTaskId() + "锛� 浠诲姟鍚嶏細" + newLightTask.getTaskName() + "}," + " 鐏潌ID锛�" + param.getPoleIdList().toString() + " }";
+        String content1 = "{浠诲姟ID锛�" + newLightTask.getTaskId() + "锛� 浠诲姟鍚嶏細" + newLightTask.getTaskName() + "}," + " 鐏潌ID锛�" + poleIdList.toString() + " }";
         StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "涓嬪彂璺伅浠诲姟", content1);
         /**
          * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍缁撴潫
@@ -172,7 +178,7 @@
             lightTaskPoleRelationService.saveBatch(all);
         }
 
-        if (!param.getPoleIdList().isEmpty() && num == newPoleMap.size()) {
+        if (!poleIdList.isEmpty() && num == newPoleMap.size()) {
             //鎵�鏈夌伅鏉嗛兘涓嬪彂澶辫触 鏂板鐨勪换鍔′笉淇濈暀
             removeById(newLightTask);
             throw new BusinessException("鎸囦护涓嬪彂澶辫触,璇锋鏌ョ伅鏉嗙姸鎬佸悗閲嶆柊鏂板浠诲姟");
@@ -217,7 +223,13 @@
 
 
         //缂栬緫鍚庣伅鏉咺D闆嗗悎
-        List<Long> poleIdList = param.getPoleIdList();
+        List<Long> poleIdList = new ArrayList<>();
+        //鍘婚噸
+        for (Long item : param.getPoleIdList()) {
+            if (!poleIdList.contains(item)) {
+                poleIdList.add(item);
+            }
+        }
         if (poleIdList.isEmpty()) {
             throw new BusinessException("缂栬緫浠诲姟鏃惰閫夋嫨鐏潌");
         }
@@ -225,12 +237,12 @@
         List<LightTaskStatusAndPole> oldLightTaskStatusAndPoles = lightTaskPoleRelationService.listPoleAndStatusIdByTaskId(taskId);
         List<Long> oldList = oldLightTaskStatusAndPoles.stream().map(LightTaskStatusAndPole::getId).collect(Collectors.toList());
 
-        //鍒ゆ柇param.getPoleIdList()涓槸鍚︽湁鏃х殑鐏潌ID    (鐩存帴涓嬪彂)
-        List<Long> newPoleIdList = param.getPoleIdList().stream().filter(poleId -> !oldList.contains(poleId)).collect(Collectors.toList());
-        //鍒ゆ柇param.getPoleIdList()涓槸鍚︽湁鏂扮殑鐏潌ID    (瑕嗙洊鎿嶄綔)
-        List<Long> oldPoleIdList = param.getPoleIdList().stream().filter(poleId -> oldList.contains(poleId)).collect(Collectors.toList());
-        //oldList涓湁鐨勭伅鏉咺D锛屼絾鏄痯aram.getPoleIdList()涓病鏈� (鍏崇伅鎿嶄綔)
-        List<Long> closeLight = oldList.stream().filter(poleId -> !param.getPoleIdList().contains(poleId)).collect(Collectors.toList());
+        //鍒ゆ柇poleIdList涓槸鍚︽湁鏃х殑鐏潌ID    (鐩存帴涓嬪彂)
+        List<Long> newPoleIdList = poleIdList.stream().filter(poleId -> !oldList.contains(poleId)).collect(Collectors.toList());
+        //鍒ゆ柇poleIdList涓槸鍚︽湁鏂扮殑鐏潌ID    (瑕嗙洊鎿嶄綔)
+        List<Long> oldPoleIdList = poleIdList.stream().filter(poleId -> oldList.contains(poleId)).collect(Collectors.toList());
+        //oldList涓湁鐨勭伅鏉咺D锛屼絾鏄痯oleIdList涓病鏈� (鍏崇伅鎿嶄綔)
+        List<Long> closeLight = oldList.stream().filter(poleId -> !poleIdList.contains(poleId)).collect(Collectors.toList());
 
 
         //鍙栧嚭瑕嗙洊鎿嶄綔鐨勫叧绯讳俊鎭�
@@ -317,13 +329,13 @@
          * 缂栬緫璺伅浠诲姟鏃ュ織璁板綍寮�濮�
          */
         List<String> poleCodeList = new ArrayList<>();
-        if (CollectionUtil.isNotEmpty(param.getPoleIdList())) {
-            List<Pole> poleList = SpringContextHolder.getBean(PoleService.class).listByIds(param.getPoleIdList());
+        if (CollectionUtil.isNotEmpty(poleIdList)) {
+            List<Pole> poleList = SpringContextHolder.getBean(PoleService.class).listByIds(poleIdList);
             if (CollectionUtil.isNotEmpty(poleList)) {
                 poleCodeList = poleList.stream().map(Pole::getDeviceCode).collect(Collectors.toList());
             }
         }
-        String content = "{浠诲姟ID锛�" + newLightTask.getTaskId() + "锛� 浠诲姟鍚嶏細" + newLightTask.getTaskName() + "}锛寋鍐呭抚鎸囦护" + newLightTask.getFramePayload() + "锛� 鐏潌ID锛�" + param.getPoleIdList().toString() + "锛� 鎺у埗鐨勭伅澶村湴鍧�锛�" + param.getLightAddress() + " }";
+        String content = "{浠诲姟ID锛�" + newLightTask.getTaskId() + "锛� 浠诲姟鍚嶏細" + newLightTask.getTaskName() + "}锛寋鍐呭抚鎸囦护" + newLightTask.getFramePayload() + "锛� 鐏潌ID锛�" + poleIdList.toString() + "锛� 鎺у埗鐨勭伅澶村湴鍧�锛�" + param.getLightAddress() + " }";
         StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "缂栬緫璺伅浠诲姟", content);
         /**
          * 缂栬緫璺伅浠诲姟鏃ュ織璁板綍缁撴潫
@@ -348,10 +360,9 @@
 
         List<LightTaskPoleRelation> all = new ArrayList<>();
         all.addAll(newPoleSuccess);
-        all.addAll(oldPoleFail);
         all.addAll(oldPoleSuccess);
-        all.addAll(oldPoleFail);
-        all.addAll(closePoleFail);
+//        all.addAll(oldPoleFail);
+//        all.addAll(closePoleFail);
 
 
         List<Long> allPoleId = new ArrayList<>();
@@ -378,7 +389,7 @@
         /**
          * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍寮�濮�
          */
-        String content1 = "{浠诲姟ID锛�" + newLightTask.getTaskId() + "锛� 浠诲姟鍚嶏細" + newLightTask.getTaskName() + "}," + " 鐏潌ID锛�" + param.getPoleIdList().toString() + " }";
+        String content1 = "{浠诲姟ID锛�" + newLightTask.getTaskId() + "锛� 浠诲姟鍚嶏細" + newLightTask.getTaskName() + "}," + " 鐏潌ID锛�" + poleCodeList.toString() + " }";
         StoreOperationRecordsUtils.storeOperationData(poleCodeList, null, "涓嬪彂璺伅浠诲姟", content1);
         /**
          * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍缁撴潫
@@ -390,7 +401,7 @@
             throw new BusinessException("缂栬緫澶辫触,璇锋鏌ュ師鏈夎澶囧拰缂栬緫鍚庣殑璁惧鏄惁鍦ㄧ嚎!");
         } else if (!closePoleFail.isEmpty() && !newPoleSuccess.isEmpty() && !oldPoleFail.isEmpty()) {
             return "鍘熶换鍔′腑瀛樺湪涓嬪彂寮傚父锛屽師浠诲姟淇濈暀锛屽垱寤烘柊浠诲姟杩涜淇濆瓨";
-        } else if (!newPoleFail.isEmpty() && !newPoleSuccess.isEmpty()) {
+        } else if (!newPoleFail.isEmpty()) {
             return "鏂颁换鍔′腑瀛樺湪涓嬪彂寮傚父锛屽拷鐣ュ紓甯告搷浣滅殑鐏潌";
         } else {
             return "鎿嶄綔寮傚父";
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
new file mode 100644
index 0000000..ce1dbc3
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileService.java
@@ -0,0 +1,137 @@
+package com.sandu.ximon.admin.service;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.PageHelper;
+import com.sandu.common.execption.BusinessException;
+import com.sandu.common.file.FileUploadDto;
+import com.sandu.common.file.impl.AliOssFileServiceImpl;
+import com.sandu.common.object.BaseConditionVO;
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.param.EditFileParam;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.dao.bo.PlatformFileListBo;
+import com.sandu.ximon.dao.domain.PlatformFile;
+import com.sandu.ximon.dao.domain.PlatformFileUser;
+import com.sandu.ximon.dao.enums.AdministratorEnums;
+import com.sandu.ximon.dao.mapper.PlatformFileMapper;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/9/14
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class PlatformFileService extends BaseServiceImpl<PlatformFileMapper, PlatformFile> {
+
+    private final AliOssFileServiceImpl aliOssFileService;
+    private final PlatformFileUserService platformFileUserService;
+
+    /**
+     * 鏂囦欢涓婁紶
+     *
+     * @param file
+     * @return
+     */
+    public boolean addProgramFile(MultipartFile file) {
+        PermissionToCheck();
+        FileUploadDto fileUploadDto = aliOssFileService.uploadFile(file);
+        PlatformFile platformFile = new PlatformFile();
+        platformFile.setFileName(fileUploadDto.getFileName());
+        platformFile.setFileSize(fileUploadDto.getFileSize());
+        platformFile.setFileUrl(fileUploadDto.getFileUrl());
+        log.error("瓒呯杩涜鏂囦欢涓婁紶[ 鏂囦欢鍚�:" + fileUploadDto.getFileName() + ", 鏂囦欢澶у皬: " + fileUploadDto.getFileSize() + ", url: " + fileUploadDto.getFileUrl() + "]");
+        return save(platformFile);
+    }
+
+    /**
+     * 淇敼鏂囦欢鍚嶇О
+     * @param param
+     * @return
+     */
+    public boolean updateFileName(EditFileParam param) {
+        PermissionToCheck();
+        if (param.getFileId() == null || param.getFileName().isEmpty()) {
+            throw new BusinessException("缂栬緫鏃跺弬鏁颁笉鑳戒负绌�!");
+        }
+        PlatformFile byId = getById(param.getFileId());
+        if (byId == null) {
+            throw new BusinessException("鏈壘鍒版枃浠�!");
+        }
+        byId.setFileName(param.getFileName());
+        return updateById(byId);
+    }
+
+    /**
+     * 鍒犻櫎鏂囦欢
+     * @param param
+     * @return
+     */
+    public boolean deleteFile(EditFileParam param) {
+        PermissionToCheck();
+        if (param.getFileIds() == null || param.getFileIds().size() == 0) {
+            throw new BusinessException("鍒犻櫎鏃跺弬鏁颁笉鑳戒负绌�!");
+        }
+        List<PlatformFile> platformFiles = listByIds(param.getFileIds());
+        if (platformFiles == null && platformFiles.size() == 0) {
+            throw new BusinessException("鏈壘鍒版枃浠�!");
+        }
+        return removeByIds(platformFiles);
+    }
+
+
+    /**
+     * 骞冲彴鏂囦欢璧勬簮鍒楄〃
+     * @param vo
+     * @param keyword
+     * @return
+     */
+    public Object 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);
+        } else {
+            PageHelper.startPage(vo.getPageNo(), vo.getPageSize());
+            platformFileListBos = baseMapper.fileLiet(keyword, SecurityUtils.getUserId());
+        }
+        return platformFileListBos;
+    }
+
+    /**
+     * 涓嬭浇鏂囦欢
+     * @param fileId
+     * @return
+     */
+    public String downFile(Long fileId) {
+        if(!AdministratorEnums.ADMIN.getCode().equals(SecurityUtils.getUserDetails().getAdministratorType())){
+            PlatformFileUser one = platformFileUserService.getOne(Wrappers.lambdaQuery(PlatformFileUser.class)
+                    .eq(PlatformFileUser::getUserId, SecurityUtils.getUserId()).eq(PlatformFileUser::getFileId, fileId));
+            if (one == null) {
+                throw new BusinessException("鎶辨瓑,浣犳棤鏉冧笅杞� !");
+            }
+        }
+        PlatformFile byId = getById(fileId);
+        return byId.getFileUrl();
+    }
+
+
+//    public boolean  setPermission(){}
+
+
+    /**
+     * 鏉冮檺鏍¢獙
+     */
+    private void PermissionToCheck() {
+        if (!AdministratorEnums.ADMIN.getCode().equals(SecurityUtils.getUserDetails().getAdministratorType())) {
+            //瓒呯
+            throw new BusinessException("闈炶秴绠′笉鑳芥搷浣�");
+        }
+    }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileUserService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileUserService.java
new file mode 100644
index 0000000..9e6ab4b
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlatformFileUserService.java
@@ -0,0 +1,14 @@
+package com.sandu.ximon.admin.service;
+
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.dao.domain.PlatformFileUser;
+import com.sandu.ximon.dao.mapper.PlatformFileUserMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/9/14
+ */
+@Service
+public class PlatformFileUserService extends BaseServiceImpl<PlatformFileUserMapper, PlatformFileUser> {
+}

--
Gitblit v1.9.3