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