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.properties.Boundary; 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.dromara.system.uitil.HttpUtils; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.List; import java.util.stream.Collectors; /** * 初始化 system 模块对应业务数据 * * @author Lion Li */ @Slf4j @RequiredArgsConstructor @Component public class SystemApplicationRunner implements ApplicationRunner { private final Boundary boundary; 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)); // try { // HttpUtils.sendDeleteRequest(boundary.getVideo() + "/resource/synchronization/delete",ossId); // } catch (IOException e) { // throw new RuntimeException(e); // } // }); } }