package org.dromara.system.runner; import com.amazonaws.services.s3.AmazonS3; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.oss.core.OssClient; import org.dromara.common.oss.factory.OssFactory; import org.dromara.common.oss.properties.OssProperties; import org.dromara.common.redis.utils.QueueUtils; import org.dromara.system.convert.SysOssConfigClassConvert; import org.dromara.system.domain.SysOssConfig; import org.dromara.system.domain.vo.SysOssVo; import org.dromara.system.mapper.SysOssConfigMapper; import org.dromara.system.mapper.SysOssMapper; import org.dromara.system.service.ISysOssConfigService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.system.service.ISysOssService; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import java.util.List; import java.util.stream.Collectors; /** * 初始化 system 模块对应业务数据 * * @author Lion Li */ @Slf4j @RequiredArgsConstructor @Component public class SystemApplicationRunner implements ApplicationRunner { private final ISysOssConfigService ossConfigService; private final SysOssMapper ossMapper; private final SysOssConfigMapper sysOssConfigMapper; // private final AmazonS3 client; @Override public void run(ApplicationArguments args) throws Exception { ossConfigService.init(); //初始化ossclient List collect = sysOssConfigMapper.selectList().stream().filter(e -> e.getStatus().equals("0")) .collect(Collectors.toList()); OssProperties properties = SysOssConfigClassConvert.INSTANCE.sysOssConfigToossProperties(collect.get(0)); OssClient client = new OssClient("minio",properties); log.info("初始化OSS配置成功"); log.info("通道: {} 监听中......", "OSS"); // 项目初始化设置一次即可 QueueUtils.subscribeBlockingQueue("OSS", (String ossId) -> { // 观察接收时间 log.info("通道: {}, 收到数据: {}", "OSS", ossId); SysOssVo vo = ossMapper.selectVoById(ossId); client.delete( vo.getUrl()); ossMapper.deleteById(Long.valueOf(ossId)); }); } }