From 75af3a8e8feed0d0ed4617f3df0b08ae8b553ba8 Mon Sep 17 00:00:00 2001 From: cjw Date: Tue, 25 Jun 2024 18:10:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B5=84=E6=BA=90=E5=AE=B9?= =?UTF-8?q?=E9=87=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/file/FileController.java | 40 ---------------- .../file/SysOssPersonController.java | 15 +++--- .../file/SysOssResourceController.java | 15 +++--- .../file/SysOssTextbookController.java | 15 +++--- .../controller/system/SysOssController.java | 7 +++ .../org/dromara/system/domain/SysOss.java | 2 + .../dromara/system/domain/SysOssPerson.java | 4 +- .../dromara/system/domain/SysOssResource.java | 4 ++ .../dromara/system/domain/SysOssTextbook.java | 4 ++ .../dromara/system/domain/SysOssVolume.java | 46 +++++++++++++++++++ .../system/domain/bo/SysOssVolumeBo.java | 41 +++++++++++++++++ .../dromara/system/domain/vo/SysOssVo.java | 2 + .../system/domain/vo/SysOssVolumeVo.java | 44 ++++++++++++++++++ .../system/mapper/SysOssVolumeMapper.java | 19 ++++++++ .../system/service/ISysOssService.java | 7 +++ .../service/impl/SysOssPersonServiceImpl.java | 14 +++++- .../impl/SysOssResourceServiceImpl.java | 14 +++++- .../service/impl/SysOssServiceImpl.java | 43 ++++++++++------- .../impl/SysOssTextbookServiceImpl.java | 11 ++++- .../mapper/system/SysOssVolumeMapper.xml | 17 +++++++ 20 files changed, 277 insertions(+), 87 deletions(-) delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/FileController.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssVolume.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssVolumeBo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVolumeVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssVolumeMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssVolumeMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/FileController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/FileController.java deleted file mode 100644 index f7e2d3b..0000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/FileController.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.dromara.system.controller.file; - -import jakarta.servlet.http.HttpServletResponse; -import lombok.RequiredArgsConstructor; -import org.dromara.system.service.IFileService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -/** - *

TODO

- * - * @author cjw - * @version V1.0.0 - * @date 2024/5/31 14:22 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/file") -public class FileController { - - private final IFileService fileService; - - /** - * 预览OSS对象 - * - * @param ossId OSS对象ID - */ - //@SaCheckPermission("oss:file:preview") - @PostMapping("/preview/{ossId}") - public void preview(@PathVariable Long ossId, HttpServletResponse response) throws Exception { - fileService.preview(ossId, response); - } - - - - - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssPersonController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssPersonController.java index ae856e1..fc09f87 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssPersonController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssPersonController.java @@ -7,7 +7,6 @@ import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; @@ -83,13 +82,13 @@ public class SysOssPersonController extends BaseController { /** * 修改资源-我的空间 */ - @SaCheckPermission("oss:person:edit") - @Log(title = "资源-我的空间", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysOssPersonBo bo) { - return toAjax(sysOssPersonService.updateByBo(bo)); - } +// @SaCheckPermission("oss:person:edit") +// @Log(title = "资源-我的空间", businessType = BusinessType.UPDATE) +// @RepeatSubmit() +// @PutMapping() +// public R edit(@Validated(EditGroup.class) @RequestBody SysOssPersonBo bo) { +// return toAjax(sysOssPersonService.updateByBo(bo)); +// } /** * 删除资源-我的空间 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssResourceController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssResourceController.java index 25eb6f1..5d08e0d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssResourceController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssResourceController.java @@ -7,7 +7,6 @@ import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; @@ -80,13 +79,13 @@ public class SysOssResourceController extends BaseController { /** * 修改专题资源文件 */ - @SaCheckPermission("file:resource:edit") - @Log(title = "【更新专题资源】", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysOssResourceBo bo) { - return toAjax(sysOssResourceService.updateByBo(bo)); - } +// @SaCheckPermission("file:resource:edit") +// @Log(title = "【更新专题资源】", businessType = BusinessType.UPDATE) +// @RepeatSubmit() +// @PutMapping() +// public R edit(@Validated(EditGroup.class) @RequestBody SysOssResourceBo bo) { +// return toAjax(sysOssResourceService.updateByBo(bo)); +// } /** * 删除专题资源文件 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssTextbookController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssTextbookController.java index 4ef05ec..2798c6c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssTextbookController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssTextbookController.java @@ -7,7 +7,6 @@ import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; @@ -81,13 +80,13 @@ public class SysOssTextbookController extends BaseController { /** * 修改同步教材的文件 */ - @SaCheckPermission("file:textbook:edit") - @Log(title = "【更新同步教材】", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysOssTextbookBo bo) { - return toAjax(sysOssTextbookService.updateByBo(bo)); - } +// @SaCheckPermission("file:textbook:edit") +// @Log(title = "【更新同步教材】", businessType = BusinessType.UPDATE) +// @RepeatSubmit() +// @PutMapping() +// public R edit(@Validated(EditGroup.class) @RequestBody SysOssTextbookBo bo) { +// return toAjax(sysOssTextbookService.updateByBo(bo)); +// } /** * 删除同步教材的文件 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java index 3de8457..3a4a117 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java @@ -4,6 +4,7 @@ package org.dromara.system.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.ObjectUtil; import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.QueryGroup; @@ -15,6 +16,7 @@ import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.bo.SysOssBo; import org.dromara.system.domain.vo.SysOssUploadVo; import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.domain.vo.SysOssVolumeVo; import org.dromara.system.service.ISysOssService; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; @@ -119,7 +121,12 @@ public class SysOssController extends BaseController { uploadVo.setOssId(oss.getOssId().toString()); } return R.ok(uploadVo); + } + @GetMapping("/volume") + public R volume(@NotNull(message = "类型不能为空") Integer type) { + SysOssVolumeVo oss = ossService.getVolumeVoByType(type); + return R.ok(oss); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOss.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOss.java index f1ff196..6af39ff 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOss.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOss.java @@ -42,6 +42,8 @@ public class SysOss extends BaseEntity { */ private String url; + private Long size; + /** * 容量 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssPerson.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssPerson.java index cd10711..b9fb13f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssPerson.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssPerson.java @@ -1,5 +1,6 @@ package org.dromara.system.domain; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -58,5 +59,6 @@ public class SysOssPerson extends TenantEntity { */ private String fileSuffix; - + @TableField(exist = false) + private Long use; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssResource.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssResource.java index 3dcd4ac..dec2a0e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssResource.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssResource.java @@ -1,5 +1,6 @@ package org.dromara.system.domain; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -51,7 +52,10 @@ public class SysOssResource extends TenantEntity { private Integer status; private Long downloadNum; + private Long previewNum; + @TableField(exist = false) + private Long use; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java index 0d537cf..abbc1fd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java @@ -1,5 +1,6 @@ package org.dromara.system.domain; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -55,6 +56,9 @@ public class SysOssTextbook extends TenantEntity { private Integer status; private Long downloadNum; + private Long previewNum; + @TableField(exist = false) + private Long use; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssVolume.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssVolume.java new file mode 100644 index 0000000..541972f --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssVolume.java @@ -0,0 +1,46 @@ +package org.dromara.system.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 资源容量对象 sys_oss_volume + * + * @author cjw + * @date 2024-06-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_oss_volume") +public class SysOssVolume extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 空间类型,1学校,2个人 + */ + private Integer type; + + /** + * 总大小 + */ + private Long totalVolume; + + /** + * 已使用 + */ + private Long useVolume; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssVolumeBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssVolumeBo.java new file mode 100644 index 0000000..5fe027b --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOssVolumeBo.java @@ -0,0 +1,41 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysOssVolume; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 资源容量业务对象 sys_oss_volume + * + * @author cjw + * @date 2024-06-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysOssVolume.class, reverseConvertGenerate = false) +public class SysOssVolumeBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 空间类型,1学校,2个人 + */ + @NotNull(message = "空间类型,1学校,2个人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer type; + + /** + * 总大小 + */ + @NotNull(message = "总大小不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long total; + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java index 4157641..18b8b80 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java @@ -47,6 +47,8 @@ public class SysOssVo implements Serializable { */ private String url; + private Long size; + /** * 容量 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVolumeVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVolumeVo.java new file mode 100644 index 0000000..45234e8 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVolumeVo.java @@ -0,0 +1,44 @@ +package org.dromara.system.domain.vo; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.system.domain.SysOssVolume; + +import java.io.Serial; +import java.io.Serializable; + + + +/** + * 资源容量视图对象 sys_oss_volume + * + * @author cjw + * @date 2024-06-25 + */ +@Data +@AutoMapper(target = SysOssVolume.class) +public class SysOssVolumeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + private Long id; + + /** + * 空间类型,1学校,2个人 + */ + private Integer type; + + /** + * 总大小 + */ + private Long totalVolume; + + /** + * 已使用 + */ + private Long useVolume; +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssVolumeMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssVolumeMapper.java new file mode 100644 index 0000000..9ebb87e --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssVolumeMapper.java @@ -0,0 +1,19 @@ +package org.dromara.system.mapper; + +import org.apache.ibatis.annotations.Param; +import org.dromara.system.domain.SysOssVolume; +import org.dromara.system.domain.vo.SysOssVolumeVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 资源容量Mapper接口 + * + * @author cjw + * @date 2024-06-25 + */ +public interface SysOssVolumeMapper extends BaseMapperPlus { + + int increaseUse(@Param("id") Long id, @Param("use")Long use); + int decreaseUse(@Param("id") Long id, @Param("use")Long use); + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java index 71944e3..0adbe52 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java @@ -5,6 +5,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.system.domain.bo.SysOssBo; import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.domain.vo.SysOssVolumeVo; import org.springframework.web.multipart.MultipartFile; import java.io.File; @@ -95,4 +96,10 @@ public interface ISysOssService { */ void preview(Long ossId, HttpServletResponse response) throws Exception; + SysOssVolumeVo getVolumeVoByType(Integer type); + + Boolean increase(int type ,Long use); + + Boolean decrease(int type ,Long use); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssPersonServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssPersonServiceImpl.java index 44701f3..ba11117 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssPersonServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssPersonServiceImpl.java @@ -120,6 +120,7 @@ public class SysOssPersonServiceImpl implements ISysOssPersonService { if (flag) { bo.setId(add.getId()); } + ossService.increase(2, add.getUse()); return flag; } @@ -144,6 +145,7 @@ public class SysOssPersonServiceImpl implements ISysOssPersonService { if (ObjectUtil.isNull(ossVo)) { throw new ServiceException("文件不存在"); } + entity.setUse(ossVo.getSize()); SysCatalogPersonVo ossResource = catalogService.selectCatalogById(entity.getCatalogId()); if (ObjectUtil.isNull(ossResource)) { throw new ServiceException("空间目录不存在"); @@ -162,6 +164,11 @@ public class SysOssPersonServiceImpl implements ISysOssPersonService { if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } + for(Long id :ids){ + SysOssPersonVo ossPersonVo = baseMapper.selectVoById(id); + SysOssVo ossVo = ossService.getById(ossPersonVo.getOssId()); + ossService.decrease(2, ossVo.getSize()); + } return baseMapper.deleteBatchIds(ids) > 0; } @@ -169,7 +176,9 @@ public class SysOssPersonServiceImpl implements ISysOssPersonService { public Boolean copyByBo(SysOssPersonBo bo) { SysOssPerson copy = processDate(bo); validEntityBeforeSave(copy); - return baseMapper.insert(copy) > 0; + int i = baseMapper.insert(copy); + ossService.increase(2, copy.getUse()); + return i > 0; } @Override @@ -177,7 +186,8 @@ public class SysOssPersonServiceImpl implements ISysOssPersonService { SysOssPerson move = processDate(bo); baseMapper.insert(move); validEntityBeforeSave(move); - return baseMapper.deleteById(bo.getId()) > 0; + int i = baseMapper.deleteById(bo.getId()); + return i > 0; } private SysOssPerson processDate(SysOssPersonBo bo) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssResourceServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssResourceServiceImpl.java index 9728952..1434d50 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssResourceServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssResourceServiceImpl.java @@ -158,6 +158,7 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService { if (flag) { bo.setOssId(add.getOssId()); } + ossService.increase(1, add.getUse()); return flag; } @@ -182,6 +183,7 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService { if (ObjectUtil.isNull(ossVo)) { throw new ServiceException("文件不存在"); } + entity.setUse(ossVo.getSize()); SysCatalogResourceVo ossResource = catalogService.selectCatalogById(entity.getCatalogId()); if (ObjectUtil.isNull(ossResource)) { throw new ServiceException("资源目录不存在"); @@ -201,6 +203,11 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService { if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } + for(Long id :ids){ + SysOssResourceVo ossResourceVo = baseMapper.selectVoById(id); + SysOssVo ossVo = ossService.getById(ossResourceVo.getOssId()); + ossService.decrease(1, ossVo.getSize()); + } return baseMapper.deleteBatchIds(ids) > 0; } @@ -216,7 +223,9 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService { public Boolean copyByBo(SysOssResourceBo bo) { SysOssResource copy = processDate(bo); validEntityBeforeSave(copy); - return baseMapper.insert(copy) > 0; + int i = baseMapper.insert(copy); + ossService.increase(1, copy.getUse()); + return i > 0; } @Override @@ -224,7 +233,8 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService { SysOssResource move = processDate(bo); baseMapper.insert(move); validEntityBeforeSave(move); - return baseMapper.deleteById(bo.getId()) > 0; + int i = baseMapper.deleteById(bo.getId()); + return i>0; } private SysOssResource processDate(SysOssResourceBo bo) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java index 3928714..3995aaf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java @@ -29,9 +29,12 @@ import org.dromara.common.oss.entity.UploadResult; import org.dromara.common.oss.enumd.AccessPolicyType; import org.dromara.common.oss.factory.OssFactory; import org.dromara.system.domain.SysOss; +import org.dromara.system.domain.SysOssVolume; import org.dromara.system.domain.bo.SysOssBo; import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.domain.vo.SysOssVolumeVo; import org.dromara.system.mapper.SysOssMapper; +import org.dromara.system.mapper.SysOssVolumeMapper; import org.dromara.system.service.ISysOssService; import org.jetbrains.annotations.NotNull; import org.springframework.cache.annotation.Cacheable; @@ -56,6 +59,8 @@ public class SysOssServiceImpl implements ISysOssService, OssService { private final SysOssMapper baseMapper; + private final SysOssVolumeMapper volumeMapper; + /** * 查询OSS对象存储列表 * @@ -199,7 +204,6 @@ public class SysOssServiceImpl implements ISysOssService, OssService { if (size > 1024 * 1024 * 1024) { throw new ServiceException("上传的文件限制为1G以下"); } - String format = DataSizeUtil.format(size); String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); OssClient storage = OssFactory.instance(); UploadResult uploadResult; @@ -216,7 +220,7 @@ public class SysOssServiceImpl implements ISysOssService, OssService { throw new ServiceException(e.getMessage()); } // 保存文件信息 - return buildResultEntity(originalfileName, md5, format, suffix, storage.getConfigKey(), uploadResult); + return buildResultEntity(originalfileName, md5, size, suffix, storage.getConfigKey(), uploadResult); } /** @@ -235,7 +239,7 @@ public class SysOssServiceImpl implements ISysOssService, OssService { if (size > 1024 * 1024 * 1024) { throw new ServiceException("上传的文件限制为1G以下"); } - String format = DataSizeUtil.format(size); + String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); OssClient storage = OssFactory.instance(); String md5; @@ -251,17 +255,19 @@ public class SysOssServiceImpl implements ISysOssService, OssService { } UploadResult uploadResult = storage.uploadSuffix(file, suffix); // 保存文件信息 - return buildResultEntity(originalfileName, md5, format, suffix, storage.getConfigKey(), uploadResult); + return buildResultEntity(originalfileName, md5, size, suffix, storage.getConfigKey(), uploadResult); } @NotNull - private SysOssVo buildResultEntity(String originalfileName, String md5, String format, String suffix, String configKey, UploadResult uploadResult) { + private SysOssVo buildResultEntity(String originalfileName, String md5, Long size, String suffix, String configKey, UploadResult uploadResult) { + String format = DataSizeUtil.format(size); SysOss oss = new SysOss(); oss.setUrl(uploadResult.getUrl()); oss.setFileSuffix(suffix); oss.setFileName(uploadResult.getFilename()); oss.setService(configKey); oss.setFileMd5(md5); + oss.setSize(size); oss.setVolume(format); baseMapper.insert(oss); SysOssVo sysOssVo = MapstructUtils.convert(oss, SysOssVo.class); @@ -368,19 +374,22 @@ public class SysOssServiceImpl implements ISysOssService, OssService { } } - public static void main(String[] args) { - - // 验证License - try { - FileInputStream fileInput = new FileInputStream("D:/test.ppt"); - Presentation pres = new Presentation(fileInput); - FileOutputStream out = new FileOutputStream(new File("D:/test.pdf")); - pres.save(out, com.aspose.slides.SaveFormat.Pdf); - out.close(); - } catch (Exception e) { - System.out.println(e.getMessage()); - } + @Override + public SysOssVolumeVo getVolumeVoByType(Integer type) { + return volumeMapper.selectVoOne(new LambdaQueryWrapper().eq(SysOssVolume::getType, type)); + } + @Override + public Boolean increase(int type, Long use) { + SysOssVolume sysOssVolume = volumeMapper.selectOne(new LambdaQueryWrapper().eq(SysOssVolume::getType, type)); + int i = volumeMapper.increaseUse(sysOssVolume.getId(), use); + return i > 0; + } + @Override + public Boolean decrease(int type, Long use) { + SysOssVolume sysOssVolume = volumeMapper.selectOne(new LambdaQueryWrapper().eq(SysOssVolume::getType, type)); + int i = volumeMapper.decreaseUse(sysOssVolume.getId(), use); + return i > 0; } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java index bd1538e..b98a121 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java @@ -158,6 +158,7 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService { if (flag) { bo.setOssId(add.getOssId()); } + ossService.increase(1, add.getUse()); return flag; } @@ -182,6 +183,7 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService { if (ObjectUtil.isNull(ossVo)) { throw new ServiceException("文件不存在"); } + entity.setUse(ossVo.getSize()); SysCatalogTextbookVo ossTextbook = catalogService.selectCatalogById(entity.getCatalogId()); if (ObjectUtil.isNull(ossTextbook)) { throw new ServiceException("教材目录不存在"); @@ -200,6 +202,11 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService { if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } + for (Long id : ids) { + SysOssTextbookVo ossTextbookVo = baseMapper.selectVoById(id); + SysOssVo ossVo = ossService.getById(ossTextbookVo.getOssId()); + ossService.decrease(1, ossVo.getSize()); + } return baseMapper.deleteBatchIds(ids) > 0; } @@ -215,7 +222,9 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService { public Boolean copyByBo(SysOssTextbookBo bo) { SysOssTextbook copy = processDate(bo); validEntityBeforeSave(copy); - return baseMapper.insert(copy) > 0; + int i = baseMapper.insert(copy); + ossService.increase(1, copy.getUse()); + return i > 0; } @Override diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssVolumeMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssVolumeMapper.xml new file mode 100644 index 0000000..16e75f7 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssVolumeMapper.xml @@ -0,0 +1,17 @@ + + + + + update sys_oss_volume + set `use_volume` = `use_volume` + #{use} + where id = #{id} + + + + update sys_oss_volume + set `use_volume` = `use_volume` - #{use} + where id = #{id} + +