Merge remote-tracking branch 'refs/remotes/origin/dev'
# Conflicts: # schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java
This commit is contained in:
@@ -13,8 +13,11 @@ import com.schisandra.oss.application.oss.model.OssInfo;
|
||||
import com.schisandra.oss.common.entity.Result;
|
||||
import com.schisandra.oss.common.utils.CaffeineUtil;
|
||||
import com.schisandra.oss.domain.bo.SchisandraOssMinioBO;
|
||||
import com.schisandra.oss.domain.bo.SchisandraUserOssBO;
|
||||
import com.schisandra.oss.domain.redis.RedisUtil;
|
||||
import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService;
|
||||
import com.schisandra.oss.domain.service.SchisandraUserOssDomainService;
|
||||
import com.schisandra.oss.infra.basic.entity.SchisandraUserOss;
|
||||
import io.minio.errors.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.MediaType;
|
||||
@@ -53,6 +56,9 @@ public class SchisandraOssMinioController {
|
||||
|
||||
@Resource
|
||||
private SchisandraOssMinioDomainService schisandraOssMinioDomainService;
|
||||
|
||||
@Resource
|
||||
SchisandraUserOssDomainService schisandraUserOssDomainService;
|
||||
@Resource
|
||||
MinioOssConfiguration minioOssConfiguration;
|
||||
private final String USER_OSS_PREFIX = "oss:user:heat";
|
||||
@@ -118,7 +124,7 @@ public class SchisandraOssMinioController {
|
||||
* @date: 2024/5/15 13:34
|
||||
*/
|
||||
@PostMapping("init")
|
||||
public Result<Object> initMinio(@RequestParam String userId, @RequestParam String Id) {
|
||||
public Result<Object> initMinio(@RequestParam String userId, @RequestParam String Id) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("SchisandraOssMinioController.init.userId:{}", userId);
|
||||
}
|
||||
@@ -127,15 +133,27 @@ public class SchisandraOssMinioController {
|
||||
if (list.size() != 0) {
|
||||
return Result.fail(list);
|
||||
}
|
||||
|
||||
SchisandraOssMinioBO bo = new SchisandraOssMinioBO();
|
||||
bo.setId(Id);
|
||||
bo.setStatus(String.valueOf(true));
|
||||
if (schisandraOssMinioDomainService.update(bo)) {
|
||||
return minioOssConfiguration.minioOssClient(userId);
|
||||
if (minioOssConfiguration.minioOssClient(userId).getSuccess()){
|
||||
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
|
||||
int count=bean.selectAllBucket().size();
|
||||
SchisandraUserOssBO schisandraUserOssBO=new SchisandraUserOssBO();
|
||||
schisandraUserOssBO.setUserId(userId);
|
||||
schisandraUserOssBO.setOssType(OssConstant.OssType.MINIO);
|
||||
schisandraUserOssBO.setBucketCount(count);
|
||||
if (schisandraUserOssDomainService.updateByUserAndType(schisandraUserOssBO)){
|
||||
return Result.ok();
|
||||
}else {
|
||||
return Result.fail();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return Result.fail();
|
||||
}
|
||||
return Result.fail();
|
||||
}
|
||||
|
||||
@PostMapping("shutdown")
|
||||
@@ -169,8 +187,9 @@ public class SchisandraOssMinioController {
|
||||
Preconditions.checkNotNull(userId, "不能为空");
|
||||
String path=dirName;
|
||||
if ((dirName==null)||(dirName.equals(""))){
|
||||
path = "/";
|
||||
path="/";
|
||||
}
|
||||
|
||||
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
|
||||
bean.getMinioOssConfig().setBucketName(bucket);
|
||||
List<OssInfo> object = (List<OssInfo>) caffeineUtil.caffeineBuild().getIfPresent("MinioListDir" + userId + bucket + path);
|
||||
@@ -462,7 +481,14 @@ public class SchisandraOssMinioController {
|
||||
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
|
||||
bean.getMinioOssConfig().setBucketName(bucket);
|
||||
caffeineUtil.caffeineBuild().invalidate("MinioBucket" + userId);
|
||||
return Result.ok(bean.createBucket(bucket));
|
||||
if (bean.createBucket(bucket).equals(bucket)){
|
||||
SchisandraUserOssBO schisandraUserOssBO=new SchisandraUserOssBO();
|
||||
schisandraUserOssBO.setUserId(userId);
|
||||
schisandraUserOssBO.setOssType(OssConstant.OssType.MINIO);
|
||||
schisandraUserOssDomainService.increatByUserAndType(schisandraUserOssBO);
|
||||
return Result.ok();
|
||||
}
|
||||
return Result.fail("创建失败");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -480,7 +506,14 @@ public class SchisandraOssMinioController {
|
||||
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
|
||||
bean.getMinioOssConfig().setBucketName(bucket);
|
||||
caffeineUtil.caffeineBuild().invalidate("MinioBucket" + userId);
|
||||
return Result.ok(bean.deleteBucket(bucket));
|
||||
if (bean.deleteBucket(bucket).equals(bucket)){
|
||||
SchisandraUserOssBO schisandraUserOssBO=new SchisandraUserOssBO();
|
||||
schisandraUserOssBO.setUserId(userId);
|
||||
schisandraUserOssBO.setOssType(OssConstant.OssType.MINIO);
|
||||
schisandraUserOssDomainService.deleteByUserAndType(schisandraUserOssBO);
|
||||
return Result.ok();
|
||||
}
|
||||
return Result.fail("删除失败");
|
||||
}
|
||||
|
||||
@PostMapping("get")
|
||||
|
@@ -21,7 +21,9 @@ public interface SchisandraUserOssDomainService {
|
||||
* 更新 用户对象存储映射表 信息
|
||||
*/
|
||||
Boolean update(SchisandraUserOssBO schisandraUserOssBO);
|
||||
|
||||
Boolean updateByUserAndType(SchisandraUserOssBO schisandraUserOssBO);
|
||||
Boolean increatByUserAndType(SchisandraUserOssBO schisandraUserOssBO);
|
||||
Boolean deleteByUserAndType(SchisandraUserOssBO schisandraUserOssBO);
|
||||
/**
|
||||
* 删除 用户对象存储映射表 信息
|
||||
*/
|
||||
@@ -29,5 +31,6 @@ public interface SchisandraUserOssDomainService {
|
||||
|
||||
List<SchisandraUserOssBO> queryOSSByUserId(String userId);
|
||||
|
||||
|
||||
SchisandraUserOssBO queryOSSByTypeAndUserId(String userId,String type);
|
||||
}
|
||||
|
@@ -39,6 +39,22 @@ public class SchisandraUserOssDomainServiceImpl implements SchisandraUserOssDoma
|
||||
return schisandraUserOssService.update(schisandraUserOss) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateByUserAndType(SchisandraUserOssBO schisandraUserOssBO) {
|
||||
SchisandraUserOss schisandraUserOss = SchisandraUserOssBOConverter.INSTANCE.convertBOToEntity(schisandraUserOssBO);
|
||||
return schisandraUserOssService.updateByUserIdAndType(schisandraUserOss) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean increatByUserAndType(SchisandraUserOssBO schisandraUserOssBO) {
|
||||
SchisandraUserOss schisandraUserOss = SchisandraUserOssBOConverter.INSTANCE.convertBOToEntity(schisandraUserOssBO);
|
||||
return schisandraUserOssService.increatByUserIdAndType(schisandraUserOss)>0;
|
||||
}
|
||||
public Boolean deleteByUserAndType(SchisandraUserOssBO schisandraUserOssBO) {
|
||||
SchisandraUserOss schisandraUserOss = SchisandraUserOssBOConverter.INSTANCE.convertBOToEntity(schisandraUserOssBO);
|
||||
return schisandraUserOssService.deleteByUserAndType(schisandraUserOss)>0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(SchisandraUserOssBO schisandraUserOssBO) {
|
||||
SchisandraUserOss schisandraUserOss = new SchisandraUserOss();
|
||||
|
@@ -12,6 +12,10 @@ import java.util.function.Predicate;
|
||||
* @since 2024-07-10 16:14:33
|
||||
*/
|
||||
public interface SchisandraUserOssService {
|
||||
int updateByUserIdAndType(SchisandraUserOss schisandraUserOss);
|
||||
|
||||
int increatByUserIdAndType(SchisandraUserOss schisandraUserOss);
|
||||
int deleteByUserAndType(SchisandraUserOss schisandraUserOss);
|
||||
|
||||
/**
|
||||
* 通过ID查询单条数据
|
||||
|
@@ -1,6 +1,9 @@
|
||||
package com.schisandra.oss.infra.basic.service.impl;
|
||||
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.core.update.UpdateChain;
|
||||
import com.mybatisflex.core.update.UpdateWrapper;
|
||||
import com.mybatisflex.core.util.UpdateEntity;
|
||||
import com.schisandra.oss.infra.basic.entity.SchisandraUserOss;
|
||||
import com.schisandra.oss.infra.basic.dao.SchisandraUserOssDao;
|
||||
import com.schisandra.oss.infra.basic.entity.table.SchisandraUserOssTableDef;
|
||||
@@ -22,6 +25,35 @@ public class SchisandraUserOssServiceImpl implements SchisandraUserOssService {
|
||||
@Resource
|
||||
private SchisandraUserOssDao schisandraUserOssDao;
|
||||
|
||||
@Override
|
||||
public int updateByUserIdAndType(SchisandraUserOss schisandraUserOss) {
|
||||
return this.schisandraUserOssDao.updateByCondition(schisandraUserOss, SchisandraUserOssTableDef.SCHISANDRA_USER_OSS.USER_ID.eq(schisandraUserOss.getUserId()).and(SchisandraUserOssTableDef.SCHISANDRA_USER_OSS.OSS_TYPE.eq(schisandraUserOss.getOssType())));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int increatByUserIdAndType(SchisandraUserOss schisandraUserOss) {
|
||||
if (UpdateChain.of(SchisandraUserOss.class)
|
||||
.setRaw(SchisandraUserOss::getBucketCount, "bucket_count + 1")
|
||||
.where(SchisandraUserOss::getOssType).eq(schisandraUserOss.getOssType()).and(SchisandraUserOss::getUserId).eq(schisandraUserOss.getUserId())
|
||||
.update()){
|
||||
return 1;
|
||||
}else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByUserAndType(SchisandraUserOss schisandraUserOss) {
|
||||
if (UpdateChain.of(SchisandraUserOss.class)
|
||||
.setRaw(SchisandraUserOss::getBucketCount, "bucket_count - 1")
|
||||
.where(SchisandraUserOss::getOssType).eq(schisandraUserOss.getOssType()).and(SchisandraUserOss::getUserId).eq(schisandraUserOss.getUserId())
|
||||
.update()){
|
||||
return 1;
|
||||
}else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过ID查询单条数据
|
||||
*
|
||||
|
Reference in New Issue
Block a user