package com.zt.modules.oss.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.zt.common.service.BaseService;
|
import com.zt.core.oss.dto.OssDto;
|
import com.zt.core.oss.service.QdISysOssService;
|
import com.zt.modules.oss.cloud.AbstractStorageService;
|
import com.zt.modules.oss.constant.OssConstant;
|
import com.zt.modules.oss.dao.QdSysOssDao;
|
import com.zt.modules.oss.enums.CloudChannel;
|
import com.zt.modules.oss.mapstruct.QdOssMapper;
|
import com.zt.modules.oss.model.QdSysOss;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 文件上传
|
*
|
* @author hehz
|
*/
|
@Service
|
public class QdSysOssService extends BaseService<QdSysOssDao, QdSysOss> implements QdISysOssService {
|
|
@Autowired
|
private QdOssMapper ossMapper;
|
|
@Autowired
|
private AbstractStorageService AbstractStorageService;
|
|
@Override
|
public List<OssDto> getOsses(Long busiId, String busiType, String busiField) {
|
List<OssDto> list = baseDao
|
.selectList(
|
new QueryWrapper<QdSysOss>().lambda().eq(QdSysOss::getBusiType, busiType)
|
.eq(QdSysOss::getBusiId, busiId).eq(QdSysOss::getBusiField, busiField)
|
.orderByAsc(true, QdSysOss::getSort)).stream().map(d -> {
|
OssDto dto = ossMapper.toDto(d);
|
dto.setUrl(getOssUrl(d));
|
return dto;
|
}).collect(Collectors.toList());
|
return list;
|
}
|
|
private String getOssUrl(QdSysOss oss) {
|
String url = oss.getUrl();
|
String idPart = OssConstant.ID + "=" + oss.getId();
|
oss.setUrl(url + (url.indexOf("?") > 0 ? "&" : "?") + idPart);
|
if (CloudChannel.LOCAL.getValue().equals(oss.getChannel())) {// 本地
|
url = AbstractStorageService.getQdConfig().getQdLocalDomain() + "/sys/oss/qdContent";
|
}
|
return url + (url.indexOf("?") > 0 ? "&" : "?") + idPart;
|
}
|
|
public QdSysOss getById(Long id) {
|
QdSysOss oss = baseDao.selectById(id);
|
oss.setUrl(getOssUrl(oss));
|
return oss;
|
}
|
}
|