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.entity.Result;
|
||||||
import com.schisandra.oss.common.utils.CaffeineUtil;
|
import com.schisandra.oss.common.utils.CaffeineUtil;
|
||||||
import com.schisandra.oss.domain.bo.SchisandraOssMinioBO;
|
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.redis.RedisUtil;
|
||||||
import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService;
|
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 io.minio.errors.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@@ -53,6 +56,9 @@ public class SchisandraOssMinioController {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private SchisandraOssMinioDomainService schisandraOssMinioDomainService;
|
private SchisandraOssMinioDomainService schisandraOssMinioDomainService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
SchisandraUserOssDomainService schisandraUserOssDomainService;
|
||||||
@Resource
|
@Resource
|
||||||
MinioOssConfiguration minioOssConfiguration;
|
MinioOssConfiguration minioOssConfiguration;
|
||||||
private final String USER_OSS_PREFIX = "oss:user:heat";
|
private final String USER_OSS_PREFIX = "oss:user:heat";
|
||||||
@@ -118,7 +124,7 @@ public class SchisandraOssMinioController {
|
|||||||
* @date: 2024/5/15 13:34
|
* @date: 2024/5/15 13:34
|
||||||
*/
|
*/
|
||||||
@PostMapping("init")
|
@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()) {
|
if (log.isInfoEnabled()) {
|
||||||
log.info("SchisandraOssMinioController.init.userId:{}", userId);
|
log.info("SchisandraOssMinioController.init.userId:{}", userId);
|
||||||
}
|
}
|
||||||
@@ -127,15 +133,27 @@ public class SchisandraOssMinioController {
|
|||||||
if (list.size() != 0) {
|
if (list.size() != 0) {
|
||||||
return Result.fail(list);
|
return Result.fail(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
SchisandraOssMinioBO bo = new SchisandraOssMinioBO();
|
SchisandraOssMinioBO bo = new SchisandraOssMinioBO();
|
||||||
bo.setId(Id);
|
bo.setId(Id);
|
||||||
bo.setStatus(String.valueOf(true));
|
bo.setStatus(String.valueOf(true));
|
||||||
if (schisandraOssMinioDomainService.update(bo)) {
|
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 {
|
} else {
|
||||||
return Result.fail();
|
return Result.fail();
|
||||||
}
|
}
|
||||||
|
return Result.fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("shutdown")
|
@PostMapping("shutdown")
|
||||||
@@ -169,8 +187,9 @@ public class SchisandraOssMinioController {
|
|||||||
Preconditions.checkNotNull(userId, "不能为空");
|
Preconditions.checkNotNull(userId, "不能为空");
|
||||||
String path=dirName;
|
String path=dirName;
|
||||||
if ((dirName==null)||(dirName.equals(""))){
|
if ((dirName==null)||(dirName.equals(""))){
|
||||||
path = "/";
|
path="/";
|
||||||
}
|
}
|
||||||
|
|
||||||
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("MinioListDir" + userId + bucket + path);
|
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);
|
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
|
||||||
bean.getMinioOssConfig().setBucketName(bucket);
|
bean.getMinioOssConfig().setBucketName(bucket);
|
||||||
caffeineUtil.caffeineBuild().invalidate("MinioBucket" + userId);
|
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);
|
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
|
||||||
bean.getMinioOssConfig().setBucketName(bucket);
|
bean.getMinioOssConfig().setBucketName(bucket);
|
||||||
caffeineUtil.caffeineBuild().invalidate("MinioBucket" + userId);
|
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")
|
@PostMapping("get")
|
||||||
|
@@ -21,7 +21,9 @@ public interface SchisandraUserOssDomainService {
|
|||||||
* 更新 用户对象存储映射表 信息
|
* 更新 用户对象存储映射表 信息
|
||||||
*/
|
*/
|
||||||
Boolean update(SchisandraUserOssBO schisandraUserOssBO);
|
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);
|
List<SchisandraUserOssBO> queryOSSByUserId(String userId);
|
||||||
|
|
||||||
|
|
||||||
SchisandraUserOssBO queryOSSByTypeAndUserId(String userId,String type);
|
SchisandraUserOssBO queryOSSByTypeAndUserId(String userId,String type);
|
||||||
}
|
}
|
||||||
|
@@ -39,6 +39,22 @@ public class SchisandraUserOssDomainServiceImpl implements SchisandraUserOssDoma
|
|||||||
return schisandraUserOssService.update(schisandraUserOss) > 0;
|
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
|
@Override
|
||||||
public Boolean delete(SchisandraUserOssBO schisandraUserOssBO) {
|
public Boolean delete(SchisandraUserOssBO schisandraUserOssBO) {
|
||||||
SchisandraUserOss schisandraUserOss = new SchisandraUserOss();
|
SchisandraUserOss schisandraUserOss = new SchisandraUserOss();
|
||||||
|
@@ -12,6 +12,10 @@ import java.util.function.Predicate;
|
|||||||
* @since 2024-07-10 16:14:33
|
* @since 2024-07-10 16:14:33
|
||||||
*/
|
*/
|
||||||
public interface SchisandraUserOssService {
|
public interface SchisandraUserOssService {
|
||||||
|
int updateByUserIdAndType(SchisandraUserOss schisandraUserOss);
|
||||||
|
|
||||||
|
int increatByUserIdAndType(SchisandraUserOss schisandraUserOss);
|
||||||
|
int deleteByUserAndType(SchisandraUserOss schisandraUserOss);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过ID查询单条数据
|
* 通过ID查询单条数据
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
package com.schisandra.oss.infra.basic.service.impl;
|
package com.schisandra.oss.infra.basic.service.impl;
|
||||||
|
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
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.entity.SchisandraUserOss;
|
||||||
import com.schisandra.oss.infra.basic.dao.SchisandraUserOssDao;
|
import com.schisandra.oss.infra.basic.dao.SchisandraUserOssDao;
|
||||||
import com.schisandra.oss.infra.basic.entity.table.SchisandraUserOssTableDef;
|
import com.schisandra.oss.infra.basic.entity.table.SchisandraUserOssTableDef;
|
||||||
@@ -22,6 +25,35 @@ public class SchisandraUserOssServiceImpl implements SchisandraUserOssService {
|
|||||||
@Resource
|
@Resource
|
||||||
private SchisandraUserOssDao schisandraUserOssDao;
|
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查询单条数据
|
* 通过ID查询单条数据
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user