|
@@ -10,7 +10,6 @@ import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.file.entity.FileInfo;
|
|
|
import com.fjhx.file.entity.FileInfoSelectDto;
|
|
@@ -29,11 +28,10 @@ import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -135,38 +133,27 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
|
@DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
public Map<Long, List<FileInfoVo>> getList(FileInfoSelectDto dto) {
|
|
|
-
|
|
|
if (ObjectUtil.isEmpty(dto.getBusinessIdList())) {
|
|
|
- return new HashMap<>();
|
|
|
+ return Collections.emptyMap();
|
|
|
}
|
|
|
-
|
|
|
IWrapper<Object> wrapper = IWrapper.getWrapper();
|
|
|
wrapper.in("fi", FileInfo::getBusinessId, dto.getBusinessIdList());
|
|
|
wrapper.eq("fi", FileInfo::getBusinessType, dto.getFileType());
|
|
|
List<FileInfoVo> list = this.baseMapper.getList(wrapper);
|
|
|
-
|
|
|
- if (list.size() == 0) {
|
|
|
- return new HashMap<>();
|
|
|
+ if (list.isEmpty()) {
|
|
|
+ return Collections.emptyMap();
|
|
|
}
|
|
|
-
|
|
|
return list.stream()
|
|
|
.peek(fileInfoVo -> fileInfoVo.setFileUrl(url + fileInfoVo.getFileUrl()))
|
|
|
.collect(Collectors.groupingBy(FileInfoVo::getBusinessId));
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * @param obsFileList 文件列表
|
|
|
- * @param businessId 业务id
|
|
|
- * @param businessType 业务文件类型
|
|
|
- */
|
|
|
@DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
public void saveFile(List<ObsFile> obsFileList, Long businessId, Integer businessType) {
|
|
|
- // 切换到从库
|
|
|
- if (obsFileList == null || obsFileList.size() == 0) {
|
|
|
+ if (ObjectUtil.isEmpty(obsFileList)) {
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
List<FileInfo> fileInfoList = BeanUtil.copyToList(obsFileList, FileInfo.class);
|
|
|
for (FileInfo fileInfo : fileInfoList) {
|
|
|
fileInfo.setFileUrl(null);
|
|
@@ -176,17 +163,10 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
|
this.updateBatchById(fileInfoList);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 保存文件--直接插入
|
|
|
- *
|
|
|
- * @param obsFileList 文件列表
|
|
|
- * @param businessId 业务id
|
|
|
- * @param businessType 业务文件类型
|
|
|
- */
|
|
|
@DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
public void saveAllFile(List<ObsFile> obsFileList, Long businessId, Integer businessType) {
|
|
|
- if (obsFileList == null || obsFileList.size() == 0) {
|
|
|
+ if (ObjectUtil.isEmpty(obsFileList)) {
|
|
|
return;
|
|
|
}
|
|
|
List<FileInfo> fileInfoList = BeanUtil.copyToList(obsFileList, FileInfo.class);
|
|
@@ -198,36 +178,25 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
|
this.saveBatch(fileInfoList);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 编辑文件
|
|
|
- *
|
|
|
- * @param obsFileList 文件列表
|
|
|
- * @param businessId 业务id
|
|
|
- * @param businessType 业务文件类型
|
|
|
- */
|
|
|
@DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
public void editFile(List<ObsFile> obsFileList, Long businessId, Integer businessType) {
|
|
|
- if (obsFileList == null || obsFileList.size() == 0) {
|
|
|
+ if (obsFileList == null || obsFileList.isEmpty()) {
|
|
|
this.remove(q -> q.eq(FileInfo::getBusinessId, businessId).eq(FileInfo::getBusinessType, businessType));
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// 删除不包含在此列表的业务id文件
|
|
|
List<Long> obsFileId = obsFileList.stream().map(ObsFile::getId).collect(Collectors.toList());
|
|
|
- this.remove(q -> q.notIn(ObjectUtil.isNotEmpty(obsFileId), BaseIdPo::getId, obsFileId)
|
|
|
- .eq(FileInfo::getBusinessId, businessId).eq(FileInfo::getBusinessType, businessType));
|
|
|
+ this.remove(q -> q
|
|
|
+ .notIn(ObjectUtil.isNotEmpty(obsFileId), BaseIdPo::getId, obsFileId)
|
|
|
+ .eq(FileInfo::getBusinessId, businessId)
|
|
|
+ .eq(FileInfo::getBusinessType, businessType));
|
|
|
|
|
|
// 更新在此列表的文件
|
|
|
saveFile(obsFileList, businessId, businessType);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 删除文件
|
|
|
- *
|
|
|
- * @param businessId 业务id
|
|
|
- * @param businessType 业务文件类型
|
|
|
- */
|
|
|
@DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
public void removeFile(Long businessId, Integer businessType) {
|
|
@@ -236,58 +205,36 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
|
.eq(FileInfo::getBusinessType, businessType));
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * !!!必须加上Transactional 更改事务传播行为,否则数据源将被缓存,造成数据源切换失败
|
|
|
- *
|
|
|
- * @param businessId 业务id
|
|
|
- */
|
|
|
@DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
public void removeFile(Long businessId) {
|
|
|
this.remove(q -> q.eq(FileInfo::getBusinessId, businessId));
|
|
|
}
|
|
|
|
|
|
+ @DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
public void removeFile(List<Long> businessIdList) {
|
|
|
+ if (ObjectUtil.isEmpty(businessIdList)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
this.remove(q -> q.in(FileInfo::getBusinessId, businessIdList));
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 交换业务ID
|
|
|
- *
|
|
|
- * @param oldBusinessId 旧业务id
|
|
|
- * @param newBusinessId 新业务id
|
|
|
- */
|
|
|
@DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
public void exchangeBusinessId(Long oldBusinessId, Long newBusinessId) {
|
|
|
- List<FileInfo> oldFile = this.list(Wrappers.<FileInfo>query().lambda().select(FileInfo::getId).eq(FileInfo::getBusinessId, oldBusinessId));
|
|
|
- List<FileInfo> newFile = this.list(Wrappers.<FileInfo>query().lambda().select(FileInfo::getId).eq(FileInfo::getBusinessId, newBusinessId));
|
|
|
+ List<FileInfo> oldFile = this.list(q -> q.select(FileInfo::getId).eq(FileInfo::getBusinessId, oldBusinessId));
|
|
|
+ List<FileInfo> newFile = this.list(q -> q.select(FileInfo::getId).eq(FileInfo::getBusinessId, newBusinessId));
|
|
|
if (CollectionUtils.isNotEmpty(oldFile)) {
|
|
|
List<Long> ids = oldFile.stream().map(FileInfo::getId).collect(Collectors.toList());
|
|
|
- this.update(Wrappers.<FileInfo>update().lambda().set(FileInfo::getBusinessId, newBusinessId).in(FileInfo::getId, ids));
|
|
|
+ this.update(q -> q.set(FileInfo::getBusinessId, newBusinessId).in(FileInfo::getId, ids));
|
|
|
}
|
|
|
if (CollectionUtils.isNotEmpty(newFile)) {
|
|
|
List<Long> ids = newFile.stream().map(FileInfo::getId).collect(Collectors.toList());
|
|
|
- this.update(Wrappers.<FileInfo>update().lambda().set(FileInfo::getBusinessId, oldBusinessId).in(FileInfo::getId, ids));
|
|
|
+ this.update(q -> q.set(FileInfo::getBusinessId, oldBusinessId).in(FileInfo::getId, ids));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取oss链接客户端
|
|
|
- */
|
|
|
- private ObsClient getObsClient() {
|
|
|
- return new ObsClient(ak, sk, endPoint);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 判断文件是否已经绑定业务 是将文件复制一份并保存
|
|
|
- *
|
|
|
- * @param fileList 文件列表
|
|
|
- * @param businessId 业务id
|
|
|
- * @param businessType 业务文件类型
|
|
|
- */
|
|
|
@DS(BaseSourceConstant.BASE)
|
|
|
@Override
|
|
|
public void copyFileAndSave(List<ObsFile> fileList, Long businessId, Integer businessType) {
|
|
@@ -314,4 +261,11 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
|
|
|
saveFile(fileList, businessId, businessType);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取oss链接客户端
|
|
|
+ */
|
|
|
+ private ObsClient getObsClient() {
|
|
|
+ return new ObsClient(ak, sk, endPoint);
|
|
|
+ }
|
|
|
+
|
|
|
}
|