package com.zt.life.sys.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.zt.common.constant.Constant;
|
import com.zt.common.service.BaseService;
|
import com.zt.common.utils.CacheUtils;
|
import com.zt.core.oss.service.QdISysOssService;
|
import com.zt.life.core.constant.Cache;
|
import com.zt.life.sys.dao.SysOssConfigDao;
|
import com.zt.life.sys.dto.OssDto;
|
import com.zt.life.sys.mapstruct.OssExMapper;
|
import com.zt.life.sys.model.SysOssConfig;
|
import com.zt.modules.oss.service.SysOssService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* SYS_OSS_CONFIG
|
*
|
* @author zt generator
|
* @since 1.0.0 2020-08-25
|
*/
|
@Service
|
public class QdSysOssConfigService extends BaseService<SysOssConfigDao, SysOssConfig> {
|
|
@Autowired
|
private OssExMapper ossExMapper;
|
@Autowired
|
private QdISysOssService qdISysOssService;
|
|
@Autowired
|
private SysOssService sysOssServices;
|
|
public List<OssDto> getOssConfig() {
|
// 这里手动缓存,不然在当前方法内调用缓存无效
|
List<OssDto> all = null;//(List<OssDto>) CacheUtils.get(Cache.CONFIG, "all");
|
if (all == null) {
|
all = new ArrayList<>();
|
List<SysOssConfig> configs = baseDao.selectList(new QueryWrapper<SysOssConfig>()
|
.eq(Constant.TableColumn.IS_DELETE, Constant.Bool.NO).lambda().orderByAsc(SysOssConfig::getSort));
|
if (configs.size() > 0) {
|
Map<String, OssDto> busiMap = new HashMap<>();
|
Map<String, OssDto.OssFieldGroupDto> groupMap = new HashMap<>();
|
|
for (SysOssConfig config : configs) {
|
OssDto dto = busiMap.get(config.getBusiType());
|
if (dto == null) {
|
dto = new OssDto(config.getBusiType(), config.getBusiTypeName());
|
busiMap.put(config.getBusiType(), dto);
|
all.add(dto);
|
}
|
|
String group = config.getBusiFieldGroup();
|
OssDto.OssFieldGroupDto groupDto = groupMap.get(group);
|
if (groupDto == null) {
|
groupDto = new OssDto.OssFieldGroupDto(group);
|
dto.getGroups().add(groupDto);
|
groupMap.put(group, groupDto);
|
}
|
groupDto.getFields().add(ossExMapper.toDto(config));
|
}
|
}
|
CacheUtils.put(Cache.CONFIG, "all", all);
|
}
|
return all.stream().map(ossDto -> {
|
try {
|
return ossDto.clone();
|
} catch (CloneNotSupportedException e) {
|
}
|
return null;
|
}).collect(Collectors.toList());
|
}
|
|
/**
|
* 查询附件
|
*
|
* @param busiId
|
* @param busiType
|
* @return
|
*/
|
public OssDto getOssByBusiType(Long busiId, String busiType) {
|
List<OssDto> dtos = this.getOssConfig().stream().filter(config -> config.getBusiType().equals(busiType))
|
.collect(Collectors.toList());
|
|
if (dtos.size() > 0) {
|
OssDto dto = dtos.get(0);
|
if (busiId != null && busiId > 0) {
|
for (OssDto.OssFieldGroupDto groupDto : dto.getGroups()) {
|
for (OssDto.OssFieldDto fieldDto : groupDto.getFields()) {
|
fieldDto.getFiles().addAll(qdISysOssService.getOsses(busiId, busiType, fieldDto.getBusiField()));
|
}
|
}
|
}
|
return dto;
|
}
|
return null;
|
}
|
}
|