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