feat: update

This commit is contained in:
landaiqing
2024-07-19 11:29:00 +08:00
parent 5512cde877
commit b1dcbe2d64
7 changed files with 25 additions and 42 deletions

View File

@@ -3,22 +3,15 @@ package com.schisandra.oss.application.controller;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.gson.Gson;
import com.mybatisflex.annotation.RelationOneToMany;
import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter; import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter;
import com.schisandra.oss.application.convert.SchisandraOssQiniuDTOConverter;
import com.schisandra.oss.application.dto.SchisandraOssMinioDTO; import com.schisandra.oss.application.dto.SchisandraOssMinioDTO;
import com.schisandra.oss.application.dto.SchisandraOssQiniuDTO;
import com.schisandra.oss.application.oss.constant.OssConstant; import com.schisandra.oss.application.oss.constant.OssConstant;
import com.schisandra.oss.application.oss.core.minio.MinioOssClient; import com.schisandra.oss.application.oss.core.minio.MinioOssClient;
import com.schisandra.oss.application.oss.core.minio.MinioOssConfiguration; import com.schisandra.oss.application.oss.core.minio.MinioOssConfiguration;
import com.schisandra.oss.application.oss.model.OssInfo; import com.schisandra.oss.application.oss.model.OssInfo;
import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.common.entity.Result;
import com.schisandra.oss.common.utils.CaffeineUtil; import com.schisandra.oss.common.utils.CaffeineUtil;
import com.schisandra.oss.domain.bo.SchisandraOssAliBO;
import com.schisandra.oss.domain.bo.SchisandraOssMinioBO; import com.schisandra.oss.domain.bo.SchisandraOssMinioBO;
import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.redis.RedisUtil;
import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService; import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService;
@@ -42,7 +35,6 @@ import java.net.URLEncoder;
import java.security.InvalidKeyException; import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -81,23 +73,23 @@ public class SchisandraOssMinioController {
public Result returnOneById(String Id) { public Result returnOneById(String Id) {
SchisandraOssMinioBO bo = schisandraOssMinioDomainService.selectOneById(Id); SchisandraOssMinioBO bo = schisandraOssMinioDomainService.selectOneById(Id);
SchisandraOssMinioDTO dto = SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(bo); SchisandraOssMinioDTO dto = SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(bo);
if(dto == null){ if (dto == null) {
return Result.fail("查询失败"); return Result.fail("查询失败");
} }
return Result.ok(dto); return Result.ok(dto);
} }
/** /**
* 返回当前用户minio表所有数据 * 返回当前用户minio表所有数据
*
* @param userId * @param userId
* @return * @return
*/ */
@GetMapping("return_online") @GetMapping("return_online")
public Result returnOnline(String userId) { public Result returnOnline(String userId) {
List<SchisandraOssMinioBO> list = schisandraOssMinioDomainService.selectAllPresent(userId); List<SchisandraOssMinioBO> list = schisandraOssMinioDomainService.selectAllPresent(userId);
if(list.isEmpty()){ if (list.isEmpty()) {
return Result.fail(); return Result.fail();
} }
return Result.ok(SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTOList(list)); return Result.ok(SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTOList(list));
@@ -178,12 +170,12 @@ public class SchisandraOssMinioController {
Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(userId, "不能为空");
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId); MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
bean.getMinioOssConfig().setBucketName(bucket); bean.getMinioOssConfig().setBucketName(bucket);
List<OssInfo> object= (List<OssInfo>) caffeineUtil.caffeineBuild().getIfPresent(userId+bucket+dirName); List<OssInfo> object = (List<OssInfo>) caffeineUtil.caffeineBuild().getIfPresent(userId + bucket + dirName);
if (object != null) { if (object != null) {
return Result.ok(object); return Result.ok(object);
}else { } else {
List<OssInfo> list=bean.listDir(bucket,dirName); List<OssInfo> list = bean.listDir(bucket, dirName);
caffeineUtil.caffeineBuild().put(userId+bucket+dirName, list); caffeineUtil.caffeineBuild().put(userId + bucket + dirName, list);
return Result.ok(list); return Result.ok(list);
} }
@@ -240,13 +232,13 @@ public class SchisandraOssMinioController {
* @author zlg * @author zlg
* @date: 2024/6/26 14:34 * @date: 2024/6/26 14:34
*/ */
@CacheEvict(value = "MinioListDir", key = "#userId+#bucket+#filePath.substring(filePath.lastIndexOf('/'))" ) @CacheEvict(value = "MinioListDir", key = "#userId+#bucket+#filePath.substring(filePath.lastIndexOf('/'))")
@PostMapping("deleteFile") @PostMapping("deleteFile")
public Result deleteMinioFile(@RequestParam String bucket, @RequestParam String userId, @RequestParam String filePath) { public Result deleteMinioFile(@RequestParam String bucket, @RequestParam String userId, @RequestParam String filePath) {
Preconditions.checkNotNull(bucket, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空");
Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(userId, "不能为空");
Preconditions.checkNotNull(filePath, "不能为空"); Preconditions.checkNotNull(filePath, "不能为空");
int index=filePath.lastIndexOf("/"); int index = filePath.lastIndexOf("/");
String fileName = filePath.substring(index + 1); String fileName = filePath.substring(index + 1);
caffeineUtil.caffeineBuild().invalidate("MinioListDir" + userId + bucket + fileName); caffeineUtil.caffeineBuild().invalidate("MinioListDir" + userId + bucket + fileName);
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId); MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
@@ -263,19 +255,18 @@ public class SchisandraOssMinioController {
* @date: 2024/6/26 14:34 * @date: 2024/6/26 14:34
*/ */
@PostMapping(value = "uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result<Object> uploadMinioFile(SchisandraOssMinioDTO schisandraOssMinioDTO) throws IOException { public Result<Object> uploadMinioFile(@RequestPart("file") MultipartFile file,SchisandraOssMinioDTO schisandraOssMinioDTO) throws IOException {
String path=schisandraOssMinioDTO.getPath(); String path = schisandraOssMinioDTO.getPath();
MultipartFile file=schisandraOssMinioDTO.getMultipartFile(); String bucket = schisandraOssMinioDTO.getBucketName();
String bucket=schisandraOssMinioDTO.getBucketName(); String userId = schisandraOssMinioDTO.getUserId();
String userId=schisandraOssMinioDTO.getUserId();
Preconditions.checkNotNull(path, "path不能为空"); Preconditions.checkNotNull(path, "path不能为空");
Preconditions.checkNotNull(file, "file不能为空"); Preconditions.checkNotNull(file, "file不能为空");
Preconditions.checkNotNull(bucket, "bucket不能为空"); Preconditions.checkNotNull(bucket, "bucket不能为空");
Preconditions.checkNotNull(userId, "userId不能为空"); Preconditions.checkNotNull(userId, "userId不能为空");
if (path.lastIndexOf("") == path.length() - 1) { if (path.lastIndexOf("") == path.length() - 1) {
path=path+file.getName(); path = path + file.getName();
}else{ } else {
path=path+"/"+file.getOriginalFilename(); path = path + "/" + file.getOriginalFilename();
} }
// 获取文件输入流 // 获取文件输入流
InputStream is = file.getInputStream(); InputStream is = file.getInputStream();
@@ -410,18 +401,19 @@ public class SchisandraOssMinioController {
* @author zlg * @author zlg
* @date: 2024/6/26 17:37 * @date: 2024/6/26 17:37
*/ */
@Cacheable(value = "minioBucket", key = "#userId",unless = "#result==null") @Cacheable(value = "minioBucket", key = "#userId", unless = "#result==null")
@PostMapping("seleteBucket") @PostMapping("seleteBucket")
public Result<String> seleteBucket(@RequestParam String userId) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { public Result<String> seleteBucket(@RequestParam String userId) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(userId, "不能为空");
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId); MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
return Result.ok(bean.selectAllBucket()); return Result.ok(bean.selectAllBucket());
} }
@Cacheable(value = "minioBucket", key = "#userId+#bucket",unless = "#result==null")
@Cacheable(value = "minioBucket", key = "#userId+#bucket", unless = "#result==null")
@PostMapping("getBucketSize") @PostMapping("getBucketSize")
public Result<String> getBucketSize(@RequestParam String userId, @RequestParam String bucket) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { public Result<String> getBucketSize(@RequestParam String userId, @RequestParam String bucket) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(userId, "不能为空");
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO+userId); MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
return Result.ok(bean.getMinioBucketSize(bucket)); return Result.ok(bean.getMinioBucketSize(bucket));
} }

View File

@@ -16,7 +16,6 @@ import java.util.Date;
@Data @Data
public class SchisandraOssMinioDTO implements Serializable { public class SchisandraOssMinioDTO implements Serializable {
private MultipartFile multipartFile;
private String path; private String path;
/** /**

View File

@@ -40,16 +40,6 @@ public class MinioOssConfiguration {
@Resource @Resource
private SchisandraOssMinioDomainService schisandraOssMinioDomainService; private SchisandraOssMinioDomainService schisandraOssMinioDomainService;
public List<SchisandraOssMinioDTO> selectAll(){
List<SchisandraOssMinioBO> schisandraOssMinioBO_list = schisandraOssMinioDomainService.selectAll();
List<SchisandraOssMinioDTO> schisandraOssAliDTO_list = new ArrayList<>();
for (SchisandraOssMinioBO schisandraOssMinioBO : schisandraOssMinioBO_list ){
SchisandraOssMinioDTO schisandraOssMinioDTO = SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(schisandraOssMinioBO);
schisandraOssAliDTO_list.add(schisandraOssMinioDTO);
}
return schisandraOssAliDTO_list;
}
public Result minioOssClient(String userId) { public Result minioOssClient(String userId) {
try { try {
SchisandraOssMinioDTO minio = minioOssConfiguration.getSchisandraOssMinioDTO(userId); SchisandraOssMinioDTO minio = minioOssConfiguration.getSchisandraOssMinioDTO(userId);

View File

@@ -51,7 +51,7 @@ public class SchisandraShareCircleController {
/** /**
* 分享圈列表返回 * 分享圈列表返回
*/ */
@Cacheable(value = "sharelist",key = "sharelist") @Cacheable(value = "sharelist",key = "'sharelist'")
@GetMapping("sharelist") @GetMapping("sharelist")
public Result<List<SchisandraShareCircleDTO>> getShareList() { public Result<List<SchisandraShareCircleDTO>> getShareList() {
try { try {

View File

@@ -56,7 +56,6 @@ public class SchisandraShareDetailController {
/** /**
* 查询分享详细信息 * 查询分享详细信息
*/ */
@PostMapping("get_detail") @PostMapping("get_detail")
public Result selectDetail(@RequestParam("Id") String Id){ public Result selectDetail(@RequestParam("Id") String Id){
try{ try{

View File

@@ -4,13 +4,15 @@ package com.schisandra.share.common.entity;
import com.schisandra.share.common.enums.ResultCodeEnum; import com.schisandra.share.common.enums.ResultCodeEnum;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
/** /**
* @description: 返回结果泛型类 * @description: 返回结果泛型类
* @author: schisandra * @author: schisandra
* @date: 2024/3/22 13:09 * @date: 2024/3/22 13:09
*/ */
@Data @Data
public class Result<T> { public class Result<T> implements Serializable {
private Boolean success; private Boolean success;

View File

@@ -81,6 +81,7 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
schisandraShareDetailBO.setViews(shareDetailBO.getViews()); schisandraShareDetailBO.setViews(shareDetailBO.getViews());
schisandraShareDetailBO.setAvatar(userInfo.getAvatar()); schisandraShareDetailBO.setAvatar(userInfo.getAvatar());
schisandraShareDetailBO.setNickname(userInfo.getNickName()); schisandraShareDetailBO.setNickname(userInfo.getNickName());
schisandraShareDetailBO.setCommentCount(shareDetailBO.getCommentCount());
List<SchisandraShareDetailTag> schisandraShareDetailTags = schisandraShareDetailTagService.queryTagIdsByDetailId(shareDetailBO.getId()); List<SchisandraShareDetailTag> schisandraShareDetailTags = schisandraShareDetailTagService.queryTagIdsByDetailId(shareDetailBO.getId());
List<SchisandraShareDetailTagBO> shareDetailTagBOList = SchisandraShareDetailTagBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetailTags); List<SchisandraShareDetailTagBO> shareDetailTagBOList = SchisandraShareDetailTagBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetailTags);