From eb2be90e74adfa06ee251f80c08243d0301ce467 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期三, 28 七月 2021 10:49:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' --- ruoyi-oss/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java | 90 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 90 insertions(+), 0 deletions(-) diff --git a/ruoyi-oss/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java b/ruoyi-oss/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java new file mode 100644 index 0000000..5c34a5c --- /dev/null +++ b/ruoyi-oss/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java @@ -0,0 +1,90 @@ +package com.ruoyi.system.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; +import com.ruoyi.common.core.page.PagePlus; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.exception.CustomException; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.oss.entity.UploadResult; +import com.ruoyi.oss.factory.OssFactory; +import com.ruoyi.oss.service.ICloudStorageService; +import com.ruoyi.system.domain.bo.SysOssBo; +import com.ruoyi.system.domain.SysOss; +import com.ruoyi.system.mapper.SysOssMapper; +import com.ruoyi.system.service.ISysOssService; +import com.ruoyi.system.domain.vo.SysOssVo; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 鏂囦欢涓婁紶 鏈嶅姟灞傚疄鐜� + * + * @author Lion Li + */ +@Service +public class SysOssServiceImpl extends ServicePlusImpl<SysOssMapper, SysOss, SysOssVo> implements ISysOssService { + + @Override + public TableDataInfo<SysOssVo> queryPageList(SysOssBo bo) { + PagePlus<SysOss, SysOssVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo)); + return PageUtils.buildDataInfo(result); + } + + private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) { + Map<String, Object> params = bo.getParams(); + LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery(); + lqw.like(StrUtil.isNotBlank(bo.getFileName()), SysOss::getFileName, bo.getFileName()); + lqw.like(StrUtil.isNotBlank(bo.getOriginalName()), SysOss::getOriginalName, bo.getOriginalName()); + lqw.eq(StrUtil.isNotBlank(bo.getFileSuffix()), SysOss::getFileSuffix, bo.getFileSuffix()); + lqw.eq(StrUtil.isNotBlank(bo.getUrl()), SysOss::getUrl, bo.getUrl()); + lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, + SysOss::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")); + lqw.eq(StrUtil.isNotBlank(bo.getCreateBy()), SysOss::getCreateBy, bo.getCreateBy()); + lqw.eq(StrUtil.isNotBlank(bo.getService()), SysOss::getService, bo.getService()); + return lqw; + } + + @Override + public SysOss upload(MultipartFile file) { + String originalfileName = file.getOriginalFilename(); + String suffix = StrUtil.sub(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); + ICloudStorageService storage = OssFactory.instance(); + UploadResult uploadResult; + try { + uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType()); + } catch (IOException e) { + throw new CustomException("鏂囦欢璇诲彇寮傚父!!!", e); + } + // 淇濆瓨鏂囦欢淇℃伅 + SysOss oss = new SysOss() + .setUrl(uploadResult.getUrl()) + .setFileSuffix(suffix) + .setFileName(uploadResult.getFilename()) + .setOriginalName(originalfileName) + .setService(storage.getServiceType()); + save(oss); + return oss; + } + + @Override + public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { + if (isValid) { + // 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠� + } + List<SysOss> list = listByIds(ids); + for (SysOss sysOss : list) { + ICloudStorageService storage = OssFactory.instance(sysOss.getService()); + storage.delete(sysOss.getUrl()); + } + return removeByIds(ids); + } + +} -- Gitblit v1.9.3