feat: 添加文件上传服务实现(基础CRUD方法)
This commit is contained in:
@@ -0,0 +1,104 @@
|
|||||||
|
package com.ruoyi.ccdi.project.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.ccdi.project.domain.dto.CcdiFileUploadQueryDTO;
|
||||||
|
import com.ruoyi.ccdi.project.domain.entity.CcdiFileUploadRecord;
|
||||||
|
import com.ruoyi.ccdi.project.domain.vo.CcdiFileUploadStatisticsVO;
|
||||||
|
import com.ruoyi.ccdi.project.mapper.CcdiFileUploadRecordMapper;
|
||||||
|
import com.ruoyi.ccdi.project.service.ICcdiFileUploadService;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传服务实现
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-03-05
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CcdiFileUploadRecordMapper recordMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<CcdiFileUploadRecord> selectPage(Page<CcdiFileUploadRecord> page,
|
||||||
|
CcdiFileUploadQueryDTO queryDTO) {
|
||||||
|
LambdaQueryWrapper<CcdiFileUploadRecord> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
|
||||||
|
// 项目ID
|
||||||
|
if (queryDTO.getProjectId() != null) {
|
||||||
|
queryWrapper.eq(CcdiFileUploadRecord::getProjectId, queryDTO.getProjectId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文件状态
|
||||||
|
if (StringUtils.hasText(queryDTO.getFileStatus())) {
|
||||||
|
queryWrapper.eq(CcdiFileUploadRecord::getFileStatus, queryDTO.getFileStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文件名称(模糊查询)
|
||||||
|
if (StringUtils.hasText(queryDTO.getFileName())) {
|
||||||
|
queryWrapper.like(CcdiFileUploadRecord::getFileName, queryDTO.getFileName());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 上传人
|
||||||
|
if (StringUtils.hasText(queryDTO.getUploadUser())) {
|
||||||
|
queryWrapper.eq(CcdiFileUploadRecord::getUploadUser, queryDTO.getUploadUser());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按上传时间倒序
|
||||||
|
queryWrapper.orderByDesc(CcdiFileUploadRecord::getUploadTime);
|
||||||
|
|
||||||
|
return recordMapper.selectPage(page, queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CcdiFileUploadStatisticsVO countByStatus(Long projectId) {
|
||||||
|
// 查询统计数据
|
||||||
|
List<Map<String, Object>> statusCounts = recordMapper.countByStatus(projectId);
|
||||||
|
|
||||||
|
// 组装 VO
|
||||||
|
CcdiFileUploadStatisticsVO vo = new CcdiFileUploadStatisticsVO();
|
||||||
|
vo.setUploading(0L);
|
||||||
|
vo.setParsing(0L);
|
||||||
|
vo.setParsedSuccess(0L);
|
||||||
|
vo.setParsedFailed(0L);
|
||||||
|
|
||||||
|
long total = 0L;
|
||||||
|
for (Map<String, Object> item : statusCounts) {
|
||||||
|
String status = (String) item.get("status");
|
||||||
|
Long count = ((Number) item.get("count")).longValue();
|
||||||
|
total += count;
|
||||||
|
|
||||||
|
switch (status) {
|
||||||
|
case "uploading" -> vo.setUploading(count);
|
||||||
|
case "parsing" -> vo.setParsing(count);
|
||||||
|
case "parsed_success" -> vo.setParsedSuccess(count);
|
||||||
|
case "parsed_failed" -> vo.setParsedFailed(count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vo.setTotal(total);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CcdiFileUploadRecord getById(Long id) {
|
||||||
|
return recordMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// batchUploadFiles 方法将在下一步实现
|
||||||
|
@Override
|
||||||
|
public String batchUploadFiles(Long projectId, MultipartFile[] files, String username) {
|
||||||
|
// TODO: 将在下一步实现
|
||||||
|
throw new UnsupportedOperationException("Method not implemented yet");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user