diff --git a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/controller/FileController.java b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/controller/FileController.java new file mode 100644 index 00000000..fe89c9c9 --- /dev/null +++ b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/controller/FileController.java @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright 卫志强 QQ:598748873@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); + } + +} diff --git a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/entity/File.java b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/entity/File.java index 4b6928ed..ee6e930c 100644 --- a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/entity/File.java +++ b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/entity/File.java @@ -42,6 +42,6 @@ public class File extends BaseGeneralInfo { @TableField(value = "size") @ApiModelProperty(value = "文件大小") - private Integer size; + private long size; } diff --git a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/FileService.java b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/FileService.java index e2e33003..d1876371 100644 --- a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/FileService.java +++ b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/FileService.java @@ -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 queryByPath(String path); + void queryFileListByPath(InputObject inputObject, OutputObject outputObject); } diff --git a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/impl/FileServiceImpl.java b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/impl/FileServiceImpl.java index 10ab9ff5..85155f2a 100644 --- a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/impl/FileServiceImpl.java +++ b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/impl/FileServiceImpl.java @@ -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 im return file; } + @Override + public void queryFileListByPath(InputObject inputObject, OutputObject outputObject) { + String path = inputObject.getParams().get("path").toString(); + if (StrUtil.isEmpty(path)) { + return; + } + List pathList = Arrays.asList(path.split(CommonCharConstants.COMMA_MARK)).stream() + .filter(StrUtil::isNotEmpty).distinct().collect(Collectors.toList()); + if (CollectionUtil.isEmpty(pathList)) { + return; + } + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in(MybatisPlusUtil.toColumns(File::getPath), path); + List fileList = list(wrapper); + outputObject.setBeans(fileList); + outputObject.settotal(fileList.size()); + } + } diff --git a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/impl/UploadServiceImpl.java b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/impl/UploadServiceImpl.java index 56618a6e..2dd52e57 100644 --- a/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/impl/UploadServiceImpl.java +++ b/skyeye-promote/skyeye-common/src/main/java/com/skyeye/upload/service/impl/UploadServiceImpl.java @@ -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 *