feat(video): 新增模型管理与MinIO对象存储功能
- 新增算法模型实体类VModel及对应CRUD接口和实现 - 新增MinIO对象记录实体类VMinioObject及对应CRUD接口和实现 - 实现模型下载重定向功能 - 扩展MinioService支持指定文件名上传和删除对象 - 在CommonController中增加上传后持久化MinIO对象记录逻辑 - 新增ModelController用于模型管理RESTful接口- 新增VMinioObjectController用于MinIO对象记录管理接口 - 添加相关Mapper XML配置和DAO接口 - 更新pom.xml引入必要依赖
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package com.ruoyi.video.domain;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* MinIO 返回结果记录实体,对应表 v_minio_object
|
||||
*/
|
||||
public class VMinioObject extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键ID */
|
||||
private Long objectId;
|
||||
/** MinIO 对象名(Key) */
|
||||
private String objectName;
|
||||
/** 访问URL */
|
||||
private String url;
|
||||
/** 原始文件名(上传时的文件名) */
|
||||
private String originalName;
|
||||
/** 删除标志(0存在 2删除) */
|
||||
private String delFlag;
|
||||
|
||||
public Long getObjectId() { return objectId; }
|
||||
public void setObjectId(Long objectId) { this.objectId = objectId; }
|
||||
|
||||
public String getObjectName() { return objectName; }
|
||||
public void setObjectName(String objectName) { this.objectName = objectName; }
|
||||
|
||||
public String getUrl() { return url; }
|
||||
public void setUrl(String url) { this.url = url; }
|
||||
|
||||
public String getOriginalName() { return originalName; }
|
||||
public void setOriginalName(String originalName) { this.originalName = originalName; }
|
||||
|
||||
public String getDelFlag() { return delFlag; }
|
||||
public void setDelFlag(String delFlag) { this.delFlag = delFlag; }
|
||||
}
|
||||
47
ruoyi-video/src/main/java/com/ruoyi/video/domain/VModel.java
Normal file
47
ruoyi-video/src/main/java/com/ruoyi/video/domain/VModel.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package com.ruoyi.video.domain;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 算法模型(ONNX等)记录表 v_model
|
||||
*/
|
||||
public class VModel extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long modelId;
|
||||
private String modelName;
|
||||
private String version;
|
||||
private String framework; // e.g., onnx
|
||||
private String url; // OSS/MinIO 直链
|
||||
private Long fileSize; // bytes
|
||||
private String checksum; // e.g., sha256
|
||||
private Integer enabled; // 1启用 0禁用
|
||||
private String delFlag; // 0存在 2删除
|
||||
|
||||
public Long getModelId() { return modelId; }
|
||||
public void setModelId(Long modelId) { this.modelId = modelId; }
|
||||
|
||||
public String getModelName() { return modelName; }
|
||||
public void setModelName(String modelName) { this.modelName = modelName; }
|
||||
|
||||
public String getVersion() { return version; }
|
||||
public void setVersion(String version) { this.version = version; }
|
||||
|
||||
public String getFramework() { return framework; }
|
||||
public void setFramework(String framework) { this.framework = framework; }
|
||||
|
||||
public String getUrl() { return url; }
|
||||
public void setUrl(String url) { this.url = url; }
|
||||
|
||||
public Long getFileSize() { return fileSize; }
|
||||
public void setFileSize(Long fileSize) { this.fileSize = fileSize; }
|
||||
|
||||
public String getChecksum() { return checksum; }
|
||||
public void setChecksum(String checksum) { this.checksum = checksum; }
|
||||
|
||||
public Integer getEnabled() { return enabled; }
|
||||
public void setEnabled(Integer enabled) { this.enabled = enabled; }
|
||||
|
||||
public String getDelFlag() { return delFlag; }
|
||||
public void setDelFlag(String delFlag) { this.delFlag = delFlag; }
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.video.mapper;
|
||||
|
||||
import com.ruoyi.video.domain.VMinioObject;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@Mapper
|
||||
public interface VMinioObjectMapper {
|
||||
int insertVMinioObject(VMinioObject obj);
|
||||
VMinioObject selectVMinioObjectById(@Param("id") Long id);
|
||||
int deleteVMinioObjectById(@Param("id") Long id);
|
||||
|
||||
VMinioObject selectVMinioObjectByObjectName(@Param("objectName") String objectName);
|
||||
int deleteVMinioObjectByObjectName(@Param("objectName") String objectName);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.video.mapper;
|
||||
|
||||
import com.ruoyi.video.domain.VModel;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface VModelMapper {
|
||||
int insertModel(VModel model);
|
||||
VModel selectModelById(@Param("id") Long id);
|
||||
int deleteModelById(@Param("id") Long id);
|
||||
int updateEnabled(@Param("id") Long id, @Param("enabled") Integer enabled);
|
||||
|
||||
List<VModel> selectModelList(Map<String, Object> params);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.video.service;
|
||||
|
||||
|
||||
import com.ruoyi.video.domain.VMinioObject;
|
||||
|
||||
public interface IVMinioObjectService {
|
||||
int insert(VMinioObject obj);
|
||||
VMinioObject selectById(Long id);
|
||||
int deleteById(Long id);
|
||||
|
||||
VMinioObject selectByObjectName(String objectName);
|
||||
int deleteByObjectName(String objectName);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.video.service;
|
||||
|
||||
import com.ruoyi.video.domain.VModel;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface IVModelService {
|
||||
int insert(VModel model);
|
||||
VModel selectById(Long id);
|
||||
int deleteById(Long id);
|
||||
int updateEnabled(Long id, Integer enabled);
|
||||
List<VModel> selectList(Map<String, Object> params);
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.video.service.impl;
|
||||
|
||||
import com.ruoyi.video.domain.VMinioObject;
|
||||
import com.ruoyi.video.mapper.VMinioObjectMapper;
|
||||
import com.ruoyi.video.service.IVMinioObjectService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class VMinioObjectServiceImpl implements IVMinioObjectService {
|
||||
|
||||
@Autowired
|
||||
private VMinioObjectMapper mapper;
|
||||
|
||||
|
||||
@Override
|
||||
public int insert(VMinioObject obj) {
|
||||
if (obj.getDelFlag() == null) {
|
||||
obj.setDelFlag("0");
|
||||
}
|
||||
return mapper.insertVMinioObject(obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VMinioObject selectById(Long id) {
|
||||
return mapper.selectVMinioObjectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteById(Long id) {
|
||||
return mapper.deleteVMinioObjectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VMinioObject selectByObjectName(String objectName) {
|
||||
return mapper.selectVMinioObjectByObjectName(objectName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteByObjectName(String objectName) {
|
||||
return mapper.deleteVMinioObjectByObjectName(objectName);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.ruoyi.video.service.impl;
|
||||
|
||||
import com.ruoyi.video.domain.VModel;
|
||||
import com.ruoyi.video.mapper.VModelMapper;
|
||||
import com.ruoyi.video.service.IVModelService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class VModelServiceImpl implements IVModelService {
|
||||
|
||||
private final VModelMapper mapper;
|
||||
|
||||
public VModelServiceImpl(VModelMapper mapper) {
|
||||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(VModel model) {
|
||||
if (model.getEnabled() == null) model.setEnabled(1);
|
||||
if (model.getDelFlag() == null) model.setDelFlag("0");
|
||||
return mapper.insertModel(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VModel selectById(Long id) {
|
||||
return mapper.selectModelById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteById(Long id) {
|
||||
return mapper.deleteModelById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateEnabled(Long id, Integer enabled) {
|
||||
return mapper.updateEnabled(id, enabled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VModel> selectList(Map<String, Object> params) {
|
||||
return mapper.selectModelList(params);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user