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<SysOssConfig> 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));
|
});
|
}
|
|
}
|