package org.dromara.system.sync;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.http.HttpResponse;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.oss.core.OssClient;
|
import org.dromara.common.oss.factory.OssFactory;
|
import org.dromara.system.domain.SysOss;
|
import org.dromara.system.domain.properties.Boundary;
|
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.mapper.SysOssMapper;
|
import org.dromara.system.uitil.HttpUtils;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.io.IOException;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.Objects;
|
|
@Slf4j
|
@Component
|
public class deleteSync {
|
|
private final SysOssMapper baseMapper;
|
private final Boundary boundary;
|
|
public deleteSync(SysOssMapper baseMapper, Boundary boundary) {
|
this.baseMapper = baseMapper;
|
this.boundary = boundary;
|
}
|
|
|
@Scheduled(cron = "0 */10 * * * ?")
|
public void remove() throws IOException {
|
log.error("同步删除......");
|
List<SysOss> list = new LambdaQueryChainWrapper<>(baseMapper)
|
.le(SysOss::getCreateTime, LocalDateTime.now().minusDays(1L))
|
.list();
|
if (list.size() == 0)
|
return;
|
|
for (SysOss vo : list) {
|
OssClient storage = OssFactory.instance(vo.getService());
|
storage.delete(vo.getUrl());
|
HttpResponse httpResponse = HttpUtils.sendDeleteRequest(this.boundary.getVideo() + "/resource/synchronization/delete",
|
String.valueOf(vo.getOssId()));
|
if (httpResponse.getStatusLine().getStatusCode() == 200) {
|
baseMapper.deleteId(vo.getOssId());
|
}
|
}
|
}
|
|
}
|