Explorar o código

资源容量代码添加

pans hai 8 meses
pai
achega
531c765876
Modificáronse 16 ficheiros con 997 adicións e 12 borrados
  1. 38 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceFileController.java
  2. 147 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/StorageReController.java
  3. 63 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CapacityReAuditInfo.java
  4. 44 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/StorageReBean.java
  5. 39 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CapacityReAuditInfoMapper.java
  6. 2 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ResourceUserFileMapper.java
  7. 30 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/StorageReMapper.java
  8. 48 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CapacityReAuditInfoMapper.xml
  9. 9 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ResourceUserFileMapper.xml
  10. 28 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/StorageReMapper.xml
  11. 98 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/IStorageReService.java
  12. 1 5
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ResourceFileService.java
  13. 7 5
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ResourceFileServiceImpl.java
  14. 308 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/StorageReService.java
  15. 82 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/storage/CapacityReAuditInfoVo.java
  16. 53 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/storage/StorageReBeanVO.java

+ 38 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceFileController.java

@@ -10,7 +10,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.disk.domain.StorageBean;
 import vip.xiaonuo.disk.dto.file.UploadFileDTO;
+import vip.xiaonuo.disk.service.IStorageReService;
 import vip.xiaonuo.disk.service.ResourceFileService;
 import vip.xiaonuo.disk.vo.file.UploadFileVo;
 
@@ -26,6 +28,11 @@ public class ResourceFileController {
     @Resource
     private ResourceFileService resourceFileService;
 
+
+
+    @Resource
+    private IStorageReService storageReService;
+
     public static final String SUCCESS = "操作成功";
 
     public static final String CURRENT_MODULE = "文件传输接口";
@@ -42,6 +49,10 @@ public class ResourceFileController {
     public RestResult<UploadFileVo> uploadFileSpeed(HttpServletRequest request, UploadFileDTO uploadFileDto) {
         String userId = StpLoginUserUtil.getLoginUser().getId();
 
+        boolean isCheckSuccess = storageReService.checkStorage(userId, uploadFileDto.getTotalSize());
+        if (!isCheckSuccess) {
+            return RestResult.fail().message("存储空间不足");
+        }
         UploadFileVo uploadFileVo = resourceFileService.uploadFileSpeed(request,userId,uploadFileDto);
         return RestResult.success().data(uploadFileVo);
 
@@ -54,7 +65,10 @@ public class ResourceFileController {
     @ResponseBody
     public RestResult<UploadFileVo> uploadFile(HttpServletRequest request, UploadFileDTO uploadFileDto) {
         String userId = StpLoginUserUtil.getLoginUser().getId();
-
+        boolean isCheckSuccess = storageReService.checkStorage(userId, uploadFileDto.getTotalSize());
+        if (!isCheckSuccess) {
+            return RestResult.fail().message("存储空间不足");
+        }
         resourceFileService.uploadFile(request, uploadFileDto, userId);
 
         UploadFileVo uploadFileVo = new UploadFileVo();
@@ -64,4 +78,27 @@ public class ResourceFileController {
 
     }
 
+
+    @Operation(summary = "获取存储信息", description = "获取存储信息", tags = {"filetransfer"})
+    @RequestMapping(value = "/getstorage", method = RequestMethod.GET)
+    @ResponseBody
+    public RestResult<StorageBean> getStorage(HttpServletRequest httpServletRequest) {
+
+//        JwtUser sessionUserBean = SessionUtil.getSession();
+        String userId = StpLoginUserUtil.getLoginUser().getId();
+        StorageBean storageBean = new StorageBean();
+
+        storageBean.setUserId(userId);
+
+
+        Long storageSize = resourceFileService.selectStorageSizeByUserId(userId);
+        StorageBean storage = new StorageBean();
+        storage.setUserId(userId);
+        storage.setStorageSize(storageSize);
+        Long totalStorageSize = storageReService.getTotalStorageSize(userId);
+        storage.setTotalStorageSize(totalStorageSize);
+        return RestResult.success().data(storage);
+
+    }
+
 }

+ 147 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/StorageReController.java

@@ -0,0 +1,147 @@
+package vip.xiaonuo.disk.controller;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.disk.domain.CapacityReAuditInfo;
+import vip.xiaonuo.disk.dto.storage.GetUserStorageDTO;
+import vip.xiaonuo.disk.service.IStorageReService;
+import vip.xiaonuo.disk.util.TableDataInfo;
+import vip.xiaonuo.disk.vo.storage.CapacityReAuditInfoVo;
+import vip.xiaonuo.disk.vo.storage.StorageReBeanVO;
+
+import javax.annotation.Resource;
+@RestController
+@Slf4j
+public class StorageReController {
+
+    @Resource
+    private IStorageReService storageReService;
+
+
+    /**
+     * 查询当前默认创建空间大小 单位MB
+     *
+     * @return 默认创建空间大小
+     */
+    @GetMapping("/storage/getDefaultStorage")
+    public CommonResult<Long> getDefaultStorage() {
+        return storageReService.getDefaultStorage();
+    }
+
+    /**
+     * 修改当前默认创建空间大小 单位MB
+     *
+     * @return 修改结果
+     */
+    @GetMapping("/storage/updateDefaultStorage")
+    public CommonResult<String> updateDefaultStorage(@RequestParam(value = "size") Long size) {
+        return storageReService.updateDefaultStorage(size);
+    }
+
+
+    /**
+     * 查询所有用户的存储空间大小 单位MB
+     *
+     * @param getUserStorageDTO 查询条件
+     * @return 所有用户的存储空间大小
+     */
+    @PostMapping("/storage/getUserStorageList")
+    public CommonResult<TableDataInfo<StorageReBeanVO>> getUserStorageList(@RequestBody GetUserStorageDTO getUserStorageDTO) {
+        return storageReService.getUserStorageList(getUserStorageDTO);
+    }
+
+    /**
+     * 更改用户的存储空间大小 单位MB
+     *
+     * @param getUserStorageDTO 更改条件
+     * @return 更改结果
+     */
+    @PostMapping("/storage/updateUserStorage")
+    public CommonResult<String> updateUserStorage(@RequestBody GetUserStorageDTO getUserStorageDTO) {
+        return storageReService.updateUserStorage(getUserStorageDTO);
+    }
+
+
+    /**
+     * 用户查看自己的存储空间大小 单位MB
+     *
+     * @return 用户存储空间大小
+     */
+    @GetMapping("/storage/getUserStorage")
+    public CommonResult<Long> getUserStorage() {
+        return storageReService.getUserStorage();
+    }
+
+
+    /**
+     * 提交改变存储空间大小的申请
+     *
+     * @param capacityAuditInfo 申请信息
+     * @return 提交结果
+     */
+    @PostMapping("/storage/applyChangeStorage")
+    public CommonResult<String> applyChangeStorage(@RequestBody CapacityReAuditInfo capacityReAuditInfo) {
+        return storageReService.applyChangeStorage(capacityReAuditInfo);
+    }
+
+    /**
+     * 查询存储空间大小变更申请列表
+     *
+     * @param auditState         申请状态 0待审核 1审核通过 2拒绝
+     * @param pageNum            页码
+     * @param pageSize           页大小
+     * @param usernameOrNickname 用户名或昵称
+     * @return 存储空间大小变更申请列表
+     */
+    @GetMapping("/storage/getCapacityAuditList")
+    public CommonResult<TableDataInfo<CapacityReAuditInfoVo>> getCapacityAuditList(@RequestParam(value = "pageNum") Integer pageNum,
+                                                                                   @RequestParam(value = "pageSize") Integer pageSize,
+                                                                                   @RequestParam(value = "auditState", required = false) Integer auditState,
+                                                                                   @RequestParam(value = "usernameOrNickname", required = false) String usernameOrNickname) {
+        return storageReService.getCapacityAuditList(pageNum, pageSize, auditState, usernameOrNickname);
+    }
+
+    /**
+     * 查询存储空间大小变更申请详情
+     *
+     * @param id 申请ID
+     * @return 申请详情
+     */
+    @GetMapping("/storage/getCapacityAuditDetail")
+    public CommonResult<CapacityReAuditInfoVo> getCapacityAuditDetail(@RequestParam(value = "id") String id) {
+        return storageReService.getCapacityAuditDetail(id);
+    }
+
+
+    /**
+     * 审核扩容申请
+     *
+     * @param id           申请ID
+     * @param auditState   审核状态
+     * @param rejectReason 拒绝原因
+     * @return 审核结果
+     */
+    @GetMapping("/storage/auditCapacityAudit")
+    public CommonResult<String> auditCapacityAudit(@RequestParam(value = "id") String id,
+                                                   @RequestParam(value = "auditState") Integer auditState,
+                                                   @RequestParam(value = "rejectReason", required = false) String rejectReason) {
+        return storageReService.auditCapacityAudit(id, auditState, rejectReason);
+    }
+
+
+    /**
+     * 用户查看自己申请记录列表
+     *
+     * @param pageNum    页码
+     * @param pageSize   页大小
+     * @param auditState 申请状态 0待审核 1审核通过 2拒绝
+     * @return 申请记录列表
+     */
+    @GetMapping("/storage/getUserCapacityAuditList")
+    public CommonResult<TableDataInfo<CapacityReAuditInfoVo>> getUserCapacityAuditList(@RequestParam(value = "pageNum") Integer pageNum,
+                                                                                     @RequestParam(value = "pageSize") Integer pageSize,
+                                                                                     @RequestParam(value = "auditState", required = false) Integer auditState) {
+        return storageReService.getUserCapacityAuditList(pageNum, pageSize, auditState);
+    }
+}

+ 63 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/CapacityReAuditInfo.java

@@ -0,0 +1,63 @@
+package vip.xiaonuo.disk.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import vip.xiaonuo.common.pojo.CommonEntity;
+
+import java.util.Date;
+@Data
+@TableName(value = "CAPACITYRE_AUDIT_INFO", autoResultMap = true)
+public class CapacityReAuditInfo extends CommonEntity {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /**
+     * 申请人用户ID
+     */
+    private String applicantUserId;
+
+    /**
+     * 审核状态 0待审核 1审核通过 2审核拒绝
+     */
+    private Integer auditState;
+
+    /**
+     * 审核拒绝原因
+     */
+    private String rejectReason;
+
+    /**
+     * 申请后容量 单位MB
+     */
+    private Long applicantAfterCapacity;
+
+    /**
+     * 申请时间
+     */
+    private Date applicantTime;
+
+    /**
+     * 审核时间
+     */
+    private Date auditTime;
+
+    /**
+     * 审核人用户ID
+     */
+    private String auditUserId;
+
+    /**
+     * 扩容申请事由
+     */
+    private String applicantReason;
+
+    /**
+     * 申请前容量 单位MB
+     */
+    private Long applicantBeforeCapacity;
+}

+ 44 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/StorageReBean.java

@@ -0,0 +1,44 @@
+package vip.xiaonuo.disk.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import javax.persistence.*;
+
+@Data
+@Table(name = "STORAGE_RE", uniqueConstraints = {
+        @UniqueConstraint(name = "userid_index", columnNames = {"userId"})
+})
+@Entity
+@TableName("STORAGE_RE")
+public class StorageReBean {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(columnDefinition="bigint(20)")
+    @TableId(type = IdType.AUTO)
+    private Long storageId;
+
+    @Column(columnDefinition="varchar(20)")
+    private String userId;
+
+    @Column(columnDefinition="bigint(20) comment '占用存储大小'")
+    private Long storageSize;
+
+    @Column(columnDefinition="bigint(20) comment '总存储大小'")
+    private Long totalStorageSize;
+
+    @Column(columnDefinition="varchar(25) comment '修改时间'")
+    private String modifyTime;
+    @Column(columnDefinition="bigint(20) comment '修改用户id'")
+    private Long modifyUserId;
+
+    public StorageReBean() {
+
+    }
+
+    public StorageReBean(String userId) {
+        this.userId = userId;
+    }
+}

+ 39 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CapacityReAuditInfoMapper.java

@@ -0,0 +1,39 @@
+package vip.xiaonuo.disk.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.disk.domain.CapacityReAuditInfo;
+import vip.xiaonuo.disk.vo.storage.CapacityReAuditInfoVo;
+
+public interface CapacityReAuditInfoMapper extends BaseMapper<CapacityReAuditInfo> {
+
+    /**
+     * 获取容量审核信息列表
+     *
+     * @param page 分页对象
+     * @param auditState 审核状态
+     * @param usernameOrNickname 用户名或昵称
+     * @return 容量审核信息列表
+     */
+    Page<CapacityReAuditInfoVo> getCapacityAuditList(@Param("page") Page<?> page, @Param("auditState") Integer auditState, @Param("usernameOrNickname") String usernameOrNickname);
+
+    /**
+     * 查询存储空间大小变更申请详情
+     *
+     * @param id 申请ID
+     * @return 申请详情
+     */
+    CapacityReAuditInfoVo getCapacityAuditById(@Param("id") String id);
+
+    /**
+     * 查询用户的申请记录列表
+     *
+     * @param page 分页对象
+     * @param auditState 审核状态
+     * @param id 用户ID
+     *
+     * @return 申请记录列表
+     */
+    Page<CapacityReAuditInfoVo> getUserCapacityAuditList(@Param("page") Page<?> page, @Param("auditState") Integer auditState, @Param("id") String id);
+}

+ 2 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ResourceUserFileMapper.java

@@ -15,7 +15,6 @@ package vip.xiaonuo.disk.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import vip.xiaonuo.disk.domain.ResourceUserFile;
-import vip.xiaonuo.disk.domain.UserFile;
 
 import java.util.List;
 
@@ -28,4 +27,6 @@ import java.util.List;
 public interface ResourceUserFileMapper extends BaseMapper<ResourceUserFile> {
 
     List<ResourceUserFile> selectUserFileByLikeRightFilePath(@Param("filePath") String filePath, @Param("userId") String userId);
+
+    Long selectStorageSizeByUserId(@Param("userId") String userId);
 }

+ 30 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/StorageReMapper.java

@@ -0,0 +1,30 @@
+package vip.xiaonuo.disk.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.disk.domain.StorageReBean;
+import vip.xiaonuo.disk.dto.storage.GetUserStorageDTO;
+import vip.xiaonuo.disk.vo.storage.StorageReBeanVO;
+
+import java.util.List;
+
+public interface StorageReMapper extends BaseMapper<StorageReBean> {
+    /**
+     * 获取用户存储列表
+     *
+     * @param getUserStorageDTO 查询条件
+     * @return 用户存储列表
+     */
+    Page<StorageReBeanVO> getUserStorageList(@Param("page") Page<?> page, @Param("getUserStorageDTO") GetUserStorageDTO getUserStorageDTO);
+
+    /**
+     * 根据用户ID获取角色名称列表
+     *
+     * @param userId 用户ID
+     * @return 角色名称列表
+     */
+    List<String> getUserRoleNameListById(@Param("userId") String userId);
+
+
+}

+ 48 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CapacityReAuditInfoMapper.xml

@@ -0,0 +1,48 @@
+<?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="vip.xiaonuo.disk.mapper.CapacityReAuditInfoMapper">
+
+
+    <select id="getCapacityAuditList" resultType="vip.xiaonuo.disk.vo.storage.CapacityReAuditInfoVo">
+        select ca.*,
+               us.ACCOUNT as username,
+               us.NAME as nickName
+        from CAPACITYRE_AUDIT_INFO as ca left join SYS_USER as us on ca.APPLICANT_USER_ID = us.ID
+        <where>
+            us.DELETE_FLAG = 'NOT_DELETE'
+            <if test="auditState != null">
+                AND ca.AUDIT_STATE = #{auditState}
+            </if>
+            <if test="usernameOrNickname != null and usernameOrNickname != ''">
+                and (us.NAME LIKE CONCAT('%', #{usernameOrNickname}, '%') OR us.ACCOUNT LIKE CONCAT('%', #{usernameOrNickname}, '%'))
+            </if>
+        </where>
+        order by ca.CREATE_TIME desc
+    </select>
+
+    <select id="getCapacityAuditById" resultType="vip.xiaonuo.disk.vo.storage.CapacityReAuditInfoVo">
+        select ca.*,
+               us.ACCOUNT as username,
+               us.NAME as nickName
+        from CAPACITYRE_AUDIT_INFO as ca left join SYS_USER as us on ca.APPLICANT_USER_ID = us.ID
+        where us.DELETE_FLAG = 'NOT_DELETE' and ca.ID = #{id}
+    </select>
+
+    <select id="getUserCapacityAuditList" resultType="vip.xiaonuo.disk.vo.storage.CapacityReAuditInfoVo">
+        select ca.*,
+               us.ACCOUNT as username,
+               us.NAME as nickName
+        from CAPACITYRE_AUDIT_INFO as ca left join SYS_USER as us on ca.APPLICANT_USER_ID = us.ID
+        <where>
+            us.DELETE_FLAG = 'NOT_DELETE' and us.ID = #{id}
+            <if test="auditState != null">
+                AND ca.AUDIT_STATE = #{auditState}
+            </if>
+        </where>
+    </select>
+
+</mapper>

+ 9 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ResourceUserFileMapper.xml

@@ -6,4 +6,13 @@
         select * from RESOURCE_USERFILE
         where (FILE_PATH = #{filePath} or FILE_PATH like concat(#{filePath},'/%')) and USER_ID = #{userId} and DELETE_FLAG = 0
     </select>
+
+
+    <select id="selectStorageSizeByUserId" resultType="java.lang.Long" parameterType="java.lang.String">
+        SELECT SUM(FILE_SIZE) FROM RESOURCE_USERFILE
+                                       LEFT JOIN RESOURCE_FILE ON file.FILE_ID = userfile.FILE_ID
+        WHERE RESOURCE_USERFILE.USER_ID = #{userId}
+    </select>
+
+
 </mapper>

+ 28 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/StorageReMapper.xml

@@ -0,0 +1,28 @@
+<?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="vip.xiaonuo.disk.mapper.StorageReMapper">
+
+
+    <select id="getUserStorageList" resultType="vip.xiaonuo.disk.vo.storage.StorageReBeanVO">
+        select us.ID as userId, us.ACCOUNT as userName, us.NAME as nickName, st.TOTAL_STORAGE_SIZE as totalStorageSize  from STORAGE as st left join SYS_USER as us on st.USER_ID = us.ID
+        <where>
+                us.DELETE_FLAG = 'NOT_DELETE'
+            <if test="getUserStorageDTO.usernameOrNickname != null and getUserStorageDTO.usernameOrNickname != ''">
+                and (us.NAME LIKE CONCAT('%', #{getUserStorageDTO.usernameOrNickname}, '%') OR us.ACCOUNT LIKE CONCAT('%', #{getUserStorageDTO.usernameOrNickname}, '%'))
+            </if>
+            <if test="getUserStorageDTO.roleId != null">
+                and us.ID in (select re.OBJECT_ID from SYS_RELATION as re where re.CATEGORY = 'SYS_USER_HAS_ROLE' and re.TARGET_ID = #{getUserStorageDTO.roleId})
+            </if>
+        </where>
+    </select>
+
+    <select id="getUserRoleNameListById" resultType="java.lang.String">
+        select ro.NAME from SYS_ROLE as ro left join  SYS_RELATION as re on ro.ID = re.TARGET_ID where re.OBJECT_ID = #{userId}
+    </select>
+
+
+</mapper>

+ 98 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/IStorageReService.java

@@ -0,0 +1,98 @@
+package vip.xiaonuo.disk.service;
+
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.disk.domain.CapacityReAuditInfo;
+import vip.xiaonuo.disk.dto.storage.GetUserStorageDTO;
+import vip.xiaonuo.disk.util.TableDataInfo;
+import vip.xiaonuo.disk.vo.storage.CapacityReAuditInfoVo;
+import vip.xiaonuo.disk.vo.storage.StorageReBeanVO;
+
+public interface IStorageReService {
+    Long getTotalStorageSize(String userId);
+
+    boolean checkStorage(String userId, Long fileSize);
+
+    /**
+     * 查询当前默认创建空间大小 单位MB
+     *
+     * @return 默认创建空间大小
+     */
+    CommonResult<Long> getDefaultStorage();
+
+    /**
+     * 修改当前默认创建空间大小 单位MB
+     *
+     * @return 修改结果
+     */
+    CommonResult<String> updateDefaultStorage(Long size);
+
+    /**
+     * 查询所有用户的存储空间大小 单位MB
+     *
+     * @return 所有用户的存储空间大小
+     */
+    CommonResult<TableDataInfo<StorageReBeanVO>> getUserStorageList(GetUserStorageDTO getUserStorageDTO);
+
+    /**
+     * 更改用户的存储空间大小 单位MB
+     *
+     * @param getUserStorageDTO 更改条件
+     *
+     * @return 更改结果
+     */
+    CommonResult<String> updateUserStorage(GetUserStorageDTO getUserStorageDTO);
+
+    /**
+     * 用户查看自己的存储空间大小 单位MB
+     *
+     * @return 用户存储空间大小
+     */
+    CommonResult<Long> getUserStorage();
+
+    /**
+     * 提交改变存储空间大小的申请
+     *
+     * @param capacityAuditInfo 申请信息
+     *
+     * @return 提交结果
+     */
+    CommonResult<String> applyChangeStorage(CapacityReAuditInfo capacityReAuditInfo);
+
+    /**
+     * 查看申请扩容审核列表
+     *
+     * @param objectPage 分页参数
+     * @param auditState 审核状态
+     * @param usernameOrNickname 用户名或昵称
+     * @return 审核列表信息
+     */
+    CommonResult<TableDataInfo<CapacityReAuditInfoVo>> getCapacityAuditList(Integer pageNum, Integer pageSize, Integer auditState, String usernameOrNickname);
+
+    /**
+     * 查询存储空间大小变更申请详情
+     *
+     * @param id 申请ID
+     * @return 申请详情
+     */
+    CommonResult<CapacityReAuditInfoVo> getCapacityAuditDetail(String id);
+
+    /**
+     * 审核扩容申请
+     *
+     * @param id 申请ID
+     * @param auditState 审核状态
+     * @param rejectReason 拒绝原因
+     * @return 审核结果
+     */
+    CommonResult<String> auditCapacityAudit(String id, Integer auditState, String rejectReason);
+
+    /**
+     * 用户查看自己申请记录列表
+     *
+     * @param objectPage 分页参数
+     * @param auditState 申请状态 0待审核 1审核通过 2拒绝
+     *
+     * @return 申请记录列表
+     */
+    CommonResult<TableDataInfo<CapacityReAuditInfoVo>> getUserCapacityAuditList(Integer pageNum, Integer pageSize, Integer auditState);
+}

+ 1 - 5
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ResourceFileService.java

@@ -1,14 +1,9 @@
 package vip.xiaonuo.disk.service;
 
-import vip.xiaonuo.disk.domain.FileBean;
-import vip.xiaonuo.disk.dto.file.DownloadFileDTO;
-import vip.xiaonuo.disk.dto.file.PreviewDTO;
 import vip.xiaonuo.disk.dto.file.UploadFileDTO;
 import vip.xiaonuo.disk.vo.file.UploadFileVo;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
 
 public interface ResourceFileService {
 
@@ -16,4 +11,5 @@ public interface ResourceFileService {
 
     void uploadFile(HttpServletRequest request, UploadFileDTO UploadFileDto, String userId);
 
+    Long selectStorageSizeByUserId(String userId);
 }

+ 7 - 5
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ResourceFileServiceImpl.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.qiwenshare.common.result.RestResult;
 import com.qiwenshare.common.util.DateUtil;
 import com.qiwenshare.ufop.constant.UploadFileStatusEnum;
 import com.qiwenshare.ufop.exception.operation.UploadException;
@@ -14,12 +13,9 @@ import com.qiwenshare.ufop.operation.upload.domain.UploadFile;
 import com.qiwenshare.ufop.operation.upload.domain.UploadFileResult;
 import com.qiwenshare.ufop.util.UFOPUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
-import vip.xiaonuo.disk.component.FileDealComp;
 import vip.xiaonuo.disk.component.ResourceFileDealComp;
 import vip.xiaonuo.disk.domain.*;
 import vip.xiaonuo.disk.dto.file.UploadFileDTO;
@@ -32,7 +28,9 @@ import vip.xiaonuo.disk.vo.file.UploadFileVo;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.awt.image.BufferedImage;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 
@@ -261,6 +259,10 @@ public class ResourceFileServiceImpl implements ResourceFileService {
 
     }
 
+    @Override
+    public Long selectStorageSizeByUserId(String userId) {
+        return resourceUserFileMapper.selectStorageSizeByUserId(userId);
+    }
 
 
 }

+ 308 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/StorageReService.java

@@ -0,0 +1,308 @@
+package vip.xiaonuo.disk.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.disk.domain.CapacityReAuditInfo;
+import vip.xiaonuo.disk.domain.StorageReBean;
+import vip.xiaonuo.disk.domain.SysParam;
+import vip.xiaonuo.disk.dto.storage.GetUserStorageDTO;
+import vip.xiaonuo.disk.mapper.CapacityReAuditInfoMapper;
+import vip.xiaonuo.disk.mapper.ResourceUserFileMapper;
+import vip.xiaonuo.disk.mapper.StorageReMapper;
+import vip.xiaonuo.disk.mapper.SysParamMapper;
+import vip.xiaonuo.disk.service.IStorageReService;
+import vip.xiaonuo.disk.util.PageQuery;
+import vip.xiaonuo.disk.util.TableDataInfo;
+import vip.xiaonuo.disk.vo.storage.CapacityReAuditInfoVo;
+import vip.xiaonuo.disk.vo.storage.StorageReBeanVO;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+@Slf4j
+@Service
+@Transactional(rollbackFor=Exception.class)
+public class StorageReService implements IStorageReService {
+    @Resource
+    StorageReMapper storageReMapper;
+    @Resource
+    SysParamMapper sysParamMapper;
+    @Resource
+    ResourceUserFileMapper resourceUserFileMapper;
+
+    @Resource
+    private CapacityReAuditInfoMapper capacityReAuditInfoMapper;
+
+
+    public Long getTotalStorageSize(String userId) {
+        LambdaQueryWrapper<StorageReBean> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(StorageReBean::getUserId, userId);
+
+        StorageReBean storageReBean = storageReMapper.selectOne(lambdaQueryWrapper);
+        Long totalStorageSize = null;
+        if (storageReBean == null || storageReBean.getTotalStorageSize() == null) {
+            LambdaQueryWrapper<SysParam> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper1.eq(SysParam::getSysParamKey, "totalStorageSize");
+            SysParam sysParam = sysParamMapper.selectOne(lambdaQueryWrapper1);
+            totalStorageSize = Long.parseLong(sysParam.getSysParamValue());
+            storageReBean = new StorageReBean();
+            storageReBean.setUserId(userId);
+            storageReBean.setTotalStorageSize(totalStorageSize);
+            storageReMapper.insert(storageReBean);
+        } else  {
+            totalStorageSize = storageReBean.getTotalStorageSize();
+        }
+
+        if (totalStorageSize != null) {
+            totalStorageSize = totalStorageSize * 1024 * 1024;
+        }
+        return totalStorageSize;
+    }
+
+    public boolean checkStorage(String userId, Long fileSize) {
+        LambdaQueryWrapper<StorageReBean> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(StorageReBean::getUserId, userId);
+
+        StorageReBean storageReBean = storageReMapper.selectOne(lambdaQueryWrapper);
+        Long totalStorageSize = null;
+        if (storageReBean == null || storageReBean.getTotalStorageSize() == null) {
+            LambdaQueryWrapper<SysParam> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper1.eq(SysParam::getSysParamKey, "totalStorageSize");
+            SysParam sysParam = sysParamMapper.selectOne(lambdaQueryWrapper1);
+            totalStorageSize = Long.parseLong(sysParam.getSysParamValue());
+            storageReBean = new StorageReBean();
+            storageReBean.setUserId(userId);
+            storageReBean.setTotalStorageSize(totalStorageSize);
+            storageReMapper.insert(storageReBean);
+        } else  {
+            totalStorageSize = storageReBean.getTotalStorageSize();
+        }
+
+        if (totalStorageSize != null) {
+            totalStorageSize = totalStorageSize * 1024 * 1024;
+        }
+
+        Long storageSize = resourceUserFileMapper.selectStorageSizeByUserId(userId);
+        if (storageSize == null ){
+            storageSize = 0L;
+        }
+        if (storageSize + fileSize > totalStorageSize) {
+            return false;
+        }
+        return true;
+
+    }
+
+    @Override
+    public CommonResult<Long> getDefaultStorage() {
+        // 查询sysparam表,根据totalStorageSize标识查询
+        LambdaQueryWrapper<SysParam> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper1.eq(SysParam::getSysParamKey, "totalStorageSize");
+        SysParam sysParam = sysParamMapper.selectOne(lambdaQueryWrapper1);
+        return CommonResult.data(Long.parseLong(sysParam.getSysParamValue()));
+    }
+
+    @Override
+    public CommonResult<String> updateDefaultStorage(Long size) {
+        // 查询sysparam表,根据totalStorageSize标识查询
+        LambdaQueryWrapper<SysParam> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper1.eq(SysParam::getSysParamKey, "totalStorageSize");
+        SysParam sysParam = sysParamMapper.selectOne(lambdaQueryWrapper1);
+        // 进行修改空间大小
+        sysParam.setSysParamValue(String.valueOf(size));
+        int i = sysParamMapper.updateById(sysParam);
+        if (i > 0) {
+            return CommonResult.data("修改成功");
+        }
+        return CommonResult.error("修改失败");
+    }
+
+    @Override
+    public CommonResult<TableDataInfo<StorageReBeanVO>> getUserStorageList(GetUserStorageDTO getUserStorageDTO) {
+        PageQuery pageQuery = new PageQuery();
+        pageQuery.setPageNum(getUserStorageDTO.getPageNum());
+        pageQuery.setPageSize(getUserStorageDTO.getPageSize());
+        Page<StorageReBeanVO> StorageReBeanList = storageReMapper.getUserStorageList(pageQuery.build(), getUserStorageDTO);
+        if (StorageReBeanList.getRecords() != null && StorageReBeanList.getSize() > 0) {
+            // 如果查出的数据不为空,关联用户的角色
+            for (StorageReBeanVO StorageReBean : StorageReBeanList.getRecords()) {
+                String userId = StorageReBean.getUserId();
+                List<String> roleNameList = storageReMapper.getUserRoleNameListById(userId);
+                if (roleNameList != null && roleNameList.size() > 0) {
+                    StorageReBean.setRoleName(roleNameList);
+                }
+            }
+        }
+        return CommonResult.data(TableDataInfo.build(StorageReBeanList));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public CommonResult<String> updateUserStorage(GetUserStorageDTO getUserStorageDTO) {
+        // 校验是否有此用户的存储空间
+        List<Long> userIdList = getUserStorageDTO.getUserIdList();
+        if (userIdList == null || userIdList.size() == 0) {
+            return CommonResult.error("用户ID不能为空");
+        }
+        try {
+            for (Long userId : userIdList) {
+                QueryWrapper<StorageReBean> queryWrapper = new QueryWrapper<>();
+                queryWrapper.lambda().eq(StorageReBean::getUserId, userId);
+                StorageReBean StorageReBean = storageReMapper.selectOne(queryWrapper);
+                if (StorageReBean != null) {
+                    StorageReBean.setTotalStorageSize(getUserStorageDTO.getTotalStorageSize());
+                    storageReMapper.updateById(StorageReBean);
+                }
+            }
+        } catch (Exception ex) {
+            log.error("更新用户存储空间失败", ex);
+        }
+        return CommonResult.ok("更新成功");
+    }
+
+    @Override
+    public CommonResult<Long> getUserStorage() {
+        // 获取当前用户id
+        String userId = StpLoginUserUtil.getLoginUser().getId();
+        QueryWrapper<StorageReBean> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(StorageReBean::getUserId, userId);
+        StorageReBean StorageReBean = storageReMapper.selectOne(queryWrapper);
+        if (StorageReBean != null) {
+            return CommonResult.data(StorageReBean.getTotalStorageSize());
+        } else {
+            return CommonResult.error("未查询到用户存储空间");
+        }
+    }
+
+    @Override
+    public CommonResult<String> applyChangeStorage(CapacityReAuditInfo capacityReAuditInfo) {
+        String userId = StpLoginUserUtil.getLoginUser().getId();
+        // 校验是否有此用户的存储空间
+        QueryWrapper<StorageReBean> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(StorageReBean::getUserId, userId);
+        StorageReBean StorageReBean = storageReMapper.selectOne(queryWrapper);
+        if (StorageReBean == null) {
+            return CommonResult.error("未查询到用户存储空间");
+        }
+        // 校验是否已经提交过扩容申请
+        QueryWrapper<CapacityReAuditInfo> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.lambda().eq(CapacityReAuditInfo::getApplicantUserId, userId).eq(CapacityReAuditInfo::getAuditState, 0);
+        List<CapacityReAuditInfo> capacityAuditInfos = capacityReAuditInfoMapper.selectList(queryWrapper1);
+        if (capacityAuditInfos != null && capacityAuditInfos.size() > 0) {
+            return CommonResult.error("您已经提交过扩容申请,请耐心等待审核");
+        }
+        // 保存扩容申请信息
+        capacityReAuditInfo.setId(IdUtil.simpleUUID()); // 主键id
+        capacityReAuditInfo.setApplicantBeforeCapacity(StorageReBean.getTotalStorageSize()); // 扩容前容量
+        capacityReAuditInfo.setApplicantUserId(userId); // 申请人id
+        capacityReAuditInfo.setApplicantTime(new Date()); // 申请时间
+        int insert = capacityReAuditInfoMapper.insert(capacityReAuditInfo);
+        if (insert > 0) {
+            return CommonResult.ok("扩容申请提交成功,请耐心等待审核");
+        } else {
+            return CommonResult.error("扩容申请提交失败");
+        }
+    }
+
+    @Override
+    public CommonResult<TableDataInfo<CapacityReAuditInfoVo>> getCapacityAuditList(Integer pageNum, Integer pageSize, Integer auditState, String usernameOrNickname) {
+        // 查询审核列表
+        PageQuery pageQuery = new PageQuery();
+        pageQuery.setPageNum(pageNum);
+        pageQuery.setPageSize(pageSize);
+        Page<CapacityReAuditInfoVo> capacityAuditInfos = capacityReAuditInfoMapper.getCapacityAuditList(pageQuery.build(), auditState, usernameOrNickname);
+        // 关联申请人的角色
+        if (capacityAuditInfos.getRecords().size() > 0) {
+            for (CapacityReAuditInfoVo record : capacityAuditInfos.getRecords()) {
+                String userId = record.getApplicantUserId();
+                List<String> roleNameList = storageReMapper.getUserRoleNameListById(userId);
+                if (roleNameList != null && roleNameList.size() > 0) {
+                    record.setRoles(roleNameList);
+                }
+            }
+        }
+        return CommonResult.data(TableDataInfo.build(capacityAuditInfos));
+    }
+
+    @Override
+    public CommonResult<CapacityReAuditInfoVo> getCapacityAuditDetail(String id) {
+        // 查询审核详情
+        CapacityReAuditInfoVo capacityAuditInfo = capacityReAuditInfoMapper.getCapacityAuditById(id);
+        if (capacityAuditInfo != null) {
+            String userId = capacityAuditInfo.getApplicantUserId();
+            List<String> roleNameList = storageReMapper.getUserRoleNameListById(userId);
+            if (roleNameList != null && roleNameList.size() > 0) {
+                capacityAuditInfo.setRoles(roleNameList);
+            }
+            return CommonResult.data(capacityAuditInfo);
+        }
+        return null;
+    }
+
+    @Override
+    public CommonResult<String> auditCapacityAudit(String id, Integer auditState, String rejectReason) {
+        // 校验申请单
+        CapacityReAuditInfo capacityAuditInfo = capacityReAuditInfoMapper.selectById(id);
+        if (capacityAuditInfo == null) {
+            return CommonResult.error("扩容申请单不存在");
+        }
+        // 审核扩容申请
+        capacityAuditInfo.setAuditState(auditState);
+        if (auditState == 1) { // 通过审核
+            // 更新用户存储空间
+            QueryWrapper<StorageReBean> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(StorageReBean::getUserId, capacityAuditInfo.getApplicantUserId());
+            StorageReBean StorageReBean = storageReMapper.selectOne(queryWrapper);
+            StorageReBean.setTotalStorageSize(capacityAuditInfo.getApplicantAfterCapacity());
+            int update = storageReMapper.updateById(StorageReBean);
+            if (update > 0) {
+                // 修改审核状态
+                capacityAuditInfo.setAuditTime(new Date());
+                capacityAuditInfo.setAuditUserId(StpLoginUserUtil.getLoginUser().getId());
+                capacityReAuditInfoMapper.updateById(capacityAuditInfo);
+                return CommonResult.ok("扩容申请通过,已更新用户存储空间");
+            } else {
+                return CommonResult.error("扩容申请通过失败");
+            }
+        } else if (auditState == 2) { // 拒绝审核
+            capacityAuditInfo.setRejectReason(rejectReason); // 拒绝原因
+            int update = capacityReAuditInfoMapper.updateById(capacityAuditInfo);
+            if (update > 0) {
+                return CommonResult.ok("扩容申请驳回成功");
+            } else {
+                return CommonResult.error("扩容申请驳回失败");
+            }
+        } else {
+            return CommonResult.error("审核状态不正确,请重新选择");
+        }
+    }
+
+    @Override
+    public CommonResult<TableDataInfo<CapacityReAuditInfoVo>> getUserCapacityAuditList(Integer pageNum, Integer pageSize, Integer auditState) {
+        // 查询审核列表
+        PageQuery pageQuery = new PageQuery();
+        pageQuery.setPageNum(pageNum);
+        pageQuery.setPageSize(pageSize);
+        String id = StpLoginUserUtil.getLoginUser().getId();
+        Page<CapacityReAuditInfoVo> capacityAuditInfos = capacityReAuditInfoMapper.getUserCapacityAuditList(pageQuery.build(), auditState, id);
+        // 关联申请人的角色
+        if (capacityAuditInfos.getRecords().size() > 0) {
+            for (CapacityReAuditInfoVo record : capacityAuditInfos.getRecords()) {
+                String userId = record.getApplicantUserId();
+                List<String> roleNameList = storageReMapper.getUserRoleNameListById(userId);
+                if (roleNameList != null && roleNameList.size() > 0) {
+                    record.setRoles(roleNameList);
+                }
+            }
+        }
+        return CommonResult.data(TableDataInfo.build(capacityAuditInfos));
+    }
+
+}

+ 82 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/storage/CapacityReAuditInfoVo.java

@@ -0,0 +1,82 @@
+package vip.xiaonuo.disk.vo.storage;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+@Data
+public class CapacityReAuditInfoVo {
+    /** id */
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    /**
+     * 申请人用户ID
+     */
+    @ApiModelProperty(value = "申请人用户ID")
+    private String applicantUserId;
+
+    /**
+     * 审核状态 0待审核 1审核通过 2审核拒绝
+     */
+    @ApiModelProperty(value = "审核状态")
+    private Integer auditState;
+
+    /**
+     * 审核拒绝原因
+     */
+    @ApiModelProperty(value = "审核拒绝原因")
+    private String rejectReason;
+
+    /**
+     * 申请后容量 单位MB
+     */
+    @ApiModelProperty(value = "申请后容量")
+    private Long applicantAfterCapacity;
+
+    /**
+     * 申请时间
+     */
+    @ApiModelProperty(value = "申请时间")
+    private Date applicantTime;
+
+    /**
+     * 审核时间
+     */
+    @ApiModelProperty(value = "审核时间")
+    private Date auditTime;
+
+    /**
+     * 审核人用户ID
+     */
+    @ApiModelProperty(value = "审核人用户ID")
+    private String auditUserId;
+
+    /**
+     * 扩容申请事由
+     */
+    @ApiModelProperty(value = "扩容申请事由")
+    private String applicantReason;
+
+    /**
+     * 申请前容量 单位MB
+     */
+    @ApiModelProperty(value = "申请前容量")
+    private Long applicantBeforeCapacity;
+
+    /**
+     * 申请人账号
+     */
+    private String username;
+
+    /**
+     * 申请人昵称
+     */
+    private String nickName;
+
+    /**
+     * 申请人角色
+     */
+    private List<String> roles;
+}

+ 53 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/storage/StorageReBeanVO.java

@@ -0,0 +1,53 @@
+package vip.xiaonuo.disk.vo.storage;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class StorageReBeanVO {
+    /**
+     * 主键id
+     */
+    private Long storageId;
+
+    /**
+     * 用户id
+     */
+    private String userId;
+
+    /**
+     * 用户的账号
+     */
+    private String userName;
+
+    /**
+     * 用户的昵称
+     */
+    private String nickName;
+
+    /**
+     * 用户的角色名称
+     */
+    private List<String> roleName;
+
+    /**
+     * 占用存储大小
+     */
+    private Long storageSize;
+
+    /**
+     * 总存储大小
+     */
+    private Long totalStorageSize;
+
+    /**
+     * 修改时间
+     */
+    private String modifyTime;
+
+    /**
+     * 修改用户id
+     */
+    private Long modifyUserId;
+}