添加资源容量功能
This commit is contained in:
parent
288fc89bd6
commit
75af3a8e8f
|
@ -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.*;
|
||||
|
||||
/**
|
||||
* <p>TODO<p>
|
||||
*
|
||||
* @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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -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<Void> 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<Void> edit(@Validated(EditGroup.class) @RequestBody SysOssPersonBo bo) {
|
||||
// return toAjax(sysOssPersonService.updateByBo(bo));
|
||||
// }
|
||||
|
||||
/**
|
||||
* 删除资源-我的空间
|
||||
|
|
|
@ -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<Void> 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<Void> edit(@Validated(EditGroup.class) @RequestBody SysOssResourceBo bo) {
|
||||
// return toAjax(sysOssResourceService.updateByBo(bo));
|
||||
// }
|
||||
|
||||
/**
|
||||
* 删除专题资源文件
|
||||
|
|
|
@ -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<Void> 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<Void> edit(@Validated(EditGroup.class) @RequestBody SysOssTextbookBo bo) {
|
||||
// return toAjax(sysOssTextbookService.updateByBo(bo));
|
||||
// }
|
||||
|
||||
/**
|
||||
* 删除同步教材的文件
|
||||
|
|
|
@ -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<SysOssVolumeVo> volume(@NotNull(message = "类型不能为空") Integer type) {
|
||||
SysOssVolumeVo oss = ossService.getVolumeVoByType(type);
|
||||
return R.ok(oss);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -42,6 +42,8 @@ public class SysOss extends BaseEntity {
|
|||
*/
|
||||
private String url;
|
||||
|
||||
private Long size;
|
||||
|
||||
/**
|
||||
* 容量
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -47,6 +47,8 @@ public class SysOssVo implements Serializable {
|
|||
*/
|
||||
private String url;
|
||||
|
||||
private Long size;
|
||||
|
||||
/**
|
||||
* 容量
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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<SysOssVolume, SysOssVolumeVo> {
|
||||
|
||||
int increaseUse(@Param("id") Long id, @Param("use")Long use);
|
||||
int decreaseUse(@Param("id") Long id, @Param("use")Long use);
|
||||
|
||||
}
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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<SysOssVolume>().eq(SysOssVolume::getType, type));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean increase(int type, Long use) {
|
||||
SysOssVolume sysOssVolume = volumeMapper.selectOne(new LambdaQueryWrapper<SysOssVolume>().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<SysOssVolume>().eq(SysOssVolume::getType, type));
|
||||
int i = volumeMapper.decreaseUse(sysOssVolume.getId(), use);
|
||||
return i > 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
<?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="org.dromara.system.mapper.SysOssVolumeMapper">
|
||||
<update id="increaseUse">
|
||||
update sys_oss_volume
|
||||
set `use_volume` = `use_volume` + #{use}
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="decreaseUse">
|
||||
update sys_oss_volume
|
||||
set `use_volume` = `use_volume` - #{use}
|
||||
where id = #{id}
|
||||
</update>
|
||||
</mapper>
|
Loading…
Reference in New Issue