feat: 新增文件信息的存储

This commit is contained in:
weizhiqiang 2024-12-25 16:59:27 +08:00
parent 4a087db135
commit 890ceaafff
5 changed files with 99 additions and 13 deletions

View file

@ -0,0 +1,41 @@
/*******************************************************************************
* Copyright 卫志强 QQ598748873@qq.com Inc. All rights reserved. 开源地址https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.upload.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.upload.service.FileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: FileController
* @Description: 文件控制层
* @author: skyeye云系列--卫志强
* @date: 2024/12/25 11:57
* @Copyright: 2024 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 注意本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的
*/
@RestController
@Api(value = "文件管理", tags = "文件管理", modelName = "基础模块")
public class FileController {
@Autowired
private FileService fileService;
@ApiOperation(id = "queryFileListByPath", value = "根据路径查询文件列表", method = "POST", allUse = "0")
@ApiImplicitParams({
@ApiImplicitParam(id = "path", name = "path", value = "文件路径,多个逗号隔开", required = "required")})
@RequestMapping("/post/FileController/queryFileListByPath")
public void queryFileListByPath(InputObject inputObject, OutputObject outputObject) {
fileService.queryFileListByPath(inputObject, outputObject);
}
}

View file

@ -42,6 +42,6 @@ public class File extends BaseGeneralInfo {
@TableField(value = "size")
@ApiModelProperty(value = "文件大小")
private Integer size;
private long size;
}

View file

@ -5,6 +5,8 @@
package com.skyeye.upload.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.upload.entity.File;
/**
@ -19,4 +21,5 @@ public interface FileService extends SkyeyeBusinessService<File> {
File queryByPath(String path);
void queryFileListByPath(InputObject inputObject, OutputObject outputObject);
}

View file

@ -4,15 +4,24 @@
package com.skyeye.upload.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.constans.CommonCharConstants;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
import com.skyeye.upload.dao.FileDao;
import com.skyeye.upload.entity.File;
import com.skyeye.upload.service.FileService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @ClassName: FileServiceImpl
* @Description: 文件服务层
@ -33,4 +42,22 @@ public class FileServiceImpl extends SkyeyeBusinessServiceImpl<FileDao, File> im
return file;
}
@Override
public void queryFileListByPath(InputObject inputObject, OutputObject outputObject) {
String path = inputObject.getParams().get("path").toString();
if (StrUtil.isEmpty(path)) {
return;
}
List<String> pathList = Arrays.asList(path.split(CommonCharConstants.COMMA_MARK)).stream()
.filter(StrUtil::isNotEmpty).distinct().collect(Collectors.toList());
if (CollectionUtil.isEmpty(pathList)) {
return;
}
QueryWrapper<File> wrapper = new QueryWrapper<>();
wrapper.in(MybatisPlusUtil.toColumns(File::getPath), path);
List<File> fileList = list(wrapper);
outputObject.setBeans(fileList);
outputObject.settotal(fileList.size());
}
}

View file

@ -9,10 +9,8 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
import cn.hutool.json.JSONUtil;
import com.skyeye.cache.redis.RedisCache;
import com.skyeye.common.constans.CommonCharConstants;
import com.skyeye.common.constans.CommonNumConstants;
import com.skyeye.common.constans.FileConstants;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.constans.*;
import com.skyeye.common.object.GetUserToken;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.common.object.PutObject;
@ -267,6 +265,9 @@ public class UploadServiceImpl implements UploadService {
String fileExtName = fileName.substring(fileName.lastIndexOf(".") + 1);
// 自定义的文件名称
String newFileName = String.format(Locale.ROOT, "%s.%s", System.currentTimeMillis(), fileExtName);
bean.put("fileExtName", fileExtName);
bean.put("size", file.getSize());
bean.put("fileSizeType", "bytes");
String path = basePath + "/" + newFileName;
// try {
// content = IoUtil.readBytes(file.getInputStream());
@ -288,23 +289,37 @@ public class UploadServiceImpl implements UploadService {
} else {
trueFileName.append(",").append(newFileName);
}
saveFile(file, trueFileName.toString());
break;
}
bean.put("picUrl", trueFileName.toString());
bean.put("type", type);
bean.put("fileName", fileName);
// com.skyeye.upload.entity.File file = new com.skyeye.upload.entity.File();
// file.setConfigId(client.getId());
// file.setName(fileName);
// file.setPath(trueFileName.toString());
// file.setUrl(trueFileName.toString());
// file.setType(FileUtil.getMineType(fileName));
// file.setSize(content.length);
// fileService.createEntity(file, StrUtil.EMPTY);
outputObject.setBean(bean);
}
private void saveFile(MultipartFile multipartFile, String path) {
com.skyeye.upload.entity.File file = new com.skyeye.upload.entity.File();
// file.setConfigId(client.getId());
file.setName(multipartFile.getOriginalFilename());
file.setPath(path);
file.setUrl(path);
file.setType(FileUtil.getMineType(multipartFile.getOriginalFilename()));
file.setSize(multipartFile.getSize());
String userId = StrUtil.EMPTY;
String userToken = GetUserToken.getUserToken(InputObject.getRequest());
if (StrUtil.isNotEmpty(userToken)) {
String userTokenUserId = GetUserToken.getUserTokenUserId(InputObject.getRequest());
Boolean aBoolean = SysUserAuthConstants.exitUserLoginRedisCache(userTokenUserId);
if (aBoolean) {
userId = InputObject.getLogParamsStatic().get("id").toString();
}
}
fileService.createEntity(file, userId);
}
/**
* 上传文件Base64
*