From 089e288a6e55d2ae527ad733bbb8b8b5eaad6107 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期日, 18 七月 2021 18:20:21 +0800 Subject: [PATCH] update 使用 策略+工厂 重写OSS模块 --- ruoyi-oss/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java | 54 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 31 insertions(+), 23 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 index 729470a..1f9c764 100644 --- 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 @@ -1,63 +1,71 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.CustomException; -import com.ruoyi.oss.config.CloudStorageConfig; -import com.ruoyi.oss.service.abstractd.AbstractCloudStorageService; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.oss.factory.OssFactory; +import com.ruoyi.oss.service.ICloudStorageService; import com.ruoyi.system.domain.SysOss; -import com.ruoyi.system.factory.OSSFactory; import com.ruoyi.system.mapper.SysOssMapper; import com.ruoyi.system.service.ISysOssService; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; -import java.util.HashMap; +import java.util.Collection; import java.util.List; -import java.util.Map; /** * 鏂囦欢涓婁紶 鏈嶅姟灞傚疄鐜� * - * @author chkj - * @date 2019-07-15 + * @author Lion Li */ @Slf4j @Service public class SysOssServiceImpl extends ServiceImpl<SysOssMapper, SysOss> implements ISysOssService { - @Autowired - private CloudStorageConfig config; - @Override - public List<SysOss> list(SysOss sysOss) { - LambdaQueryWrapper<SysOss> wrapper = new LambdaQueryWrapper<>(); - return baseMapper.selectList(wrapper); + public TableDataInfo<SysOss> queryPageList(SysOss sysOss) { + LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery(); + lqw.like(StrUtil.isNotBlank(sysOss.getFileName()), SysOss::getFileName, sysOss.getFileName()); + lqw.like(StrUtil.isNotBlank(sysOss.getFileSuffix()), SysOss::getFileSuffix, sysOss.getFileSuffix()); + lqw.like(StrUtil.isNotBlank(sysOss.getUrl()), SysOss::getUrl, sysOss.getUrl()); + lqw.like(StrUtil.isNotBlank(sysOss.getService()), SysOss::getService, sysOss.getService()); + return PageUtils.buildDataInfo(page(PageUtils.buildPage(), lqw)); } @Override - public Map<String, String> upload(MultipartFile file) { + public SysOss upload(MultipartFile file) { String originalfileName = file.getOriginalFilename(); - String suffix = originalfileName.substring(originalfileName.lastIndexOf(".")); + String suffix = StrUtil.sub(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length()); try { - AbstractCloudStorageService storage = OSSFactory.build(); + ICloudStorageService storage = OssFactory.instance(); String url = storage.uploadSuffix(file.getBytes(), suffix); // 淇濆瓨鏂囦欢淇℃伅 - SysOss ossEntity = new SysOss() + SysOss oss = new SysOss() .setUrl(url).setFileSuffix(suffix) .setFileName(originalfileName) .setService(storage.getServiceType()); - save(ossEntity); - Map<String, String> map = new HashMap<>(2); - map.put("url", ossEntity.getUrl()); - map.put("fileName", ossEntity.getFileName()); - return map; + save(oss); + return oss; } catch (IOException e) { throw new CustomException("鏂囦欢璇诲彇寮傚父!!!", e); } } + @Override + public Boolean deleteByIds(Collection<Long> ids) { + 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