镜像管理接口框架搭建

This commit is contained in:
西大锐 2024-03-05 15:53:19 +08:00
parent 97330a8e8b
commit 210e993a74
16 changed files with 1327 additions and 5 deletions

View File

@ -0,0 +1,84 @@
package com.ruoyi.platform.controller;
import com.ruoyi.platform.domain.ImageVersion;
import com.ruoyi.platform.service.ImageVersionService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* (ImageVersion)表控制层
*
* @author Xidaray
* @since 2024-03-05 15:00:02
*/
@RestController
@RequestMapping("imageVersion")
public class ImageVersionController {
/**
* 服务对象
*/
@Resource
private ImageVersionService imageVersionService;
/**
* 分页查询
*
* @param imageVersion 筛选条件
* @param pageRequest 分页对象
* @return 查询结果
*/
@GetMapping
public ResponseEntity<Page<ImageVersion>> queryByPage(ImageVersion imageVersion, PageRequest pageRequest) {
return ResponseEntity.ok(this.imageVersionService.queryByPage(imageVersion, pageRequest));
}
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("{id}")
public ResponseEntity<ImageVersion> queryById(@PathVariable("id") Integer id) {
return ResponseEntity.ok(this.imageVersionService.queryById(id));
}
/**
* 新增数据
*
* @param imageVersion 实体
* @return 新增结果
*/
@PostMapping
public ResponseEntity<ImageVersion> add(ImageVersion imageVersion) {
return ResponseEntity.ok(this.imageVersionService.insert(imageVersion));
}
/**
* 编辑数据
*
* @param imageVersion 实体
* @return 编辑结果
*/
@PutMapping
public ResponseEntity<ImageVersion> edit(ImageVersion imageVersion) {
return ResponseEntity.ok(this.imageVersionService.update(imageVersion));
}
/**
* 删除数据
*
* @param id 主键
* @return 删除是否成功
*/
@DeleteMapping
public ResponseEntity<Boolean> deleteById(Integer id) {
return ResponseEntity.ok(this.imageVersionService.deleteById(id));
}
}

View File

@ -65,7 +65,7 @@ public class ComponentController {
@GetMapping("{id}")
@ApiOperation("根据id查询")
public AjaxResult queryById(@PathVariable("id") Integer id) {
return AjaxResult.success(this.componentService.queryById(id));
return AjaxResult.success(this.componentService.queryById(id));
}
/**

View File

@ -113,6 +113,7 @@ public class DatasetController {
* @param dataset_version_id ps:这里的id是dataset_version表的主键
* @return 单条数据
*/
@GetMapping("/download/{dataset_version_id}")
@ApiOperation(value = "下载数据集", notes = "根据数据集版本表id下载数据集文件")
public ResponseEntity<InputStreamResource> downloadDataset(@PathVariable("dataset_version_id") Integer dataset_version_id) {

View File

@ -0,0 +1,90 @@
package com.ruoyi.platform.controller.image;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.platform.domain.Image;
import com.ruoyi.platform.domain.Models;
import com.ruoyi.platform.service.ImageService;
import io.swagger.annotations.ApiOperation;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* (Image)表控制层
*
* @author Xidaray
* @since 2024-03-05 14:46:47
*/
@RestController
@RequestMapping("image")
public class ImageController {
/**
* 服务对象
*/
@Resource
private ImageService imageService;
/**
* 分页查询
*
* @param image 筛选条件
* @param page 分页对象
* @param size 分页对象
* @return 查询结果
*/
@GetMapping
@ApiOperation("分页查询")
public AjaxResult queryByPage(Image image, int page, int size) {
PageRequest pageRequest = PageRequest.of(page,size);
return AjaxResult.success(this.imageService.queryByPage(image, pageRequest));
}
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("{id}")
public AjaxResult queryById(@PathVariable("id") Integer id) {
return AjaxResult.success(this.imageService.queryById(id));
}
/**
* 新增数据
*
* @param image 实体
* @return 新增结果
*/
@PostMapping
public AjaxResult add(Image image) {
return AjaxResult.success(this.imageService.insert(image));
}
/**
* 编辑数据
*
* @param image 实体
* @return 编辑结果
*/
@PutMapping
public AjaxResult edit(Image image) {
return AjaxResult.success(this.imageService.update(image));
}
/**
* 删除数据
*
* @param id 主键
* @return 删除是否成功
*/
@DeleteMapping
public AjaxResult deleteById(Integer id) {
return AjaxResult.success(this.imageService.removeById(id));
}
}

View File

@ -74,7 +74,7 @@ public class ModelsController {
@PostMapping
@ApiOperation("添加模型")
public AjaxResult add(@RequestBody Models models) {
return AjaxResult.success(this.modelsService.insert(models));
return AjaxResult.success(this.modelsService.insert(models));
}
/**
@ -106,8 +106,9 @@ public class ModelsController {
*
*
*
* @param file 文件
* @param models_version_id 模型版本表主键
* @param files 文件
* @param modelsId 模型表主键
* @param version 模型版本表主键
* @return 上传结果
*/

View File

@ -0,0 +1,125 @@
package com.ruoyi.platform.domain;
import java.util.Date;
import java.io.Serializable;
/**
* (Image)实体类
*
* @author Xidaray
* @since 2024-03-05 14:45:48
*/
public class Image implements Serializable {
private static final long serialVersionUID = 179166185018853959L;
/**
* 主键
*/
private Integer id;
/**
* 镜像名称
*/
private String name;
/**
* 镜像描述
*/
private String description;
/**
* 镜像类型
*/
private Integer imageType;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 状态0失效1生效
*/
private Integer state;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getImageType() {
return imageType;
}
public void setImageType(Integer imageType) {
this.imageType = imageType;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
}

View File

@ -0,0 +1,161 @@
package com.ruoyi.platform.domain;
import java.util.Date;
import java.io.Serializable;
/**
* (ImageVersion)实体类
*
* @author Xidaray
* @since 2024-03-05 15:00:02
*/
public class ImageVersion implements Serializable {
private static final long serialVersionUID = 251017725389874890L;
/**
* 主键
*/
private Integer id;
/**
* 对应的镜像id
*/
private Integer imageId;
/**
* 镜像版本
*/
private String version;
/**
* 镜像推送地址
*/
private String url;
/**
* 镜像tag名称
*/
private String tagName;
/**
* 镜像文件大小
*/
private String fileSize;
/**
* 镜像构建状态
*/
private String status;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 状态0失效1生效
*/
private Integer state;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getImageId() {
return imageId;
}
public void setImageId(Integer imageId) {
this.imageId = imageId;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTagName() {
return tagName;
}
public void setTagName(String tagName) {
this.tagName = tagName;
}
public String getFileSize() {
return fileSize;
}
public void setFileSize(String fileSize) {
this.fileSize = fileSize;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
}

View File

@ -0,0 +1,83 @@
package com.ruoyi.platform.mapper;
import com.ruoyi.platform.domain.Image;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* (Image)表数据库访问层
*
* @author Xidaray
* @since 2024-03-05 14:46:47
*/
public interface ImageDao {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
Image queryById(Integer id);
/**
* 查询指定行数据
*
* @param image 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<Image> queryAllByLimit(@Param("image") Image image, @Param("pageable") Pageable pageable);
/**
* 统计总行数
*
* @param image 查询条件
* @return 总行数
*/
long count(@Param("image") Image image);
/**
* 新增数据
*
* @param image 实例对象
* @return 影响行数
*/
int insert(@Param("image") Image image);
/**
* 批量新增数据MyBatis原生foreach方法
*
* @param entities List<Image> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<Image> entities);
/**
* 批量新增或按主键更新数据MyBatis原生foreach方法
*
* @param entities List<Image> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<Image> entities);
/**
* 修改数据
*
* @param image 实例对象
* @return 影响行数
*/
int update(@Param("image") Image image);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Integer id);
}

View File

@ -0,0 +1,85 @@
package com.ruoyi.platform.mapper;
import com.ruoyi.platform.domain.ImageVersion;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* (ImageVersion)表数据库访问层
*
* @author Xidaray
* @since 2024-03-05 15:00:02
*/
public interface ImageVersionDao {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
ImageVersion queryById(Integer id);
/**
* 查询指定行数据
*
* @param imageVersion 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<ImageVersion> queryAllByLimit(ImageVersion imageVersion, @Param("pageable") Pageable pageable);
/**
* 统计总行数
*
* @param imageVersion 查询条件
* @return 总行数
*/
long count(ImageVersion imageVersion);
/**
* 新增数据
*
* @param imageVersion 实例对象
* @return 影响行数
*/
int insert(ImageVersion imageVersion);
/**
* 批量新增数据MyBatis原生foreach方法
*
* @param entities List<ImageVersion> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<ImageVersion> entities);
/**
* 批量新增或按主键更新数据MyBatis原生foreach方法
*
* @param entities List<ImageVersion> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<ImageVersion> entities);
/**
* 修改数据
*
* @param imageVersion 实例对象
* @return 影响行数
*/
int update(ImageVersion imageVersion);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Integer id);
List<ImageVersion> queryByImageId(Integer imageId);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.platform.service;
import com.ruoyi.platform.domain.Image;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.Collection;
/**
* (Image)表服务接口
*
* @author Xidaray
* @since 2024-03-05 14:46:58
*/
public interface ImageService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
Image queryById(Integer id);
/**
* 分页查询
*
* @param image 筛选条件
* @param pageRequest 分页对象
* @return 查询结果
*/
Page<Image> queryByPage(Image image, PageRequest pageRequest);
/**
* 新增数据
*
* @param image 实例对象
* @return 实例对象
*/
Image insert(Image image);
/**
* 修改数据
*
* @param image 实例对象
* @return 实例对象
*/
Image update(Image image);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Integer id);
String removeById(Integer id);
}

View File

@ -0,0 +1,65 @@
package com.ruoyi.platform.service;
import com.ruoyi.platform.domain.ImageVersion;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.List;
import java.util.Map;
/**
* (ImageVersion)表服务接口
*
* @author Xidaray
* @since 2024-03-05 15:00:02
*/
public interface ImageVersionService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
ImageVersion queryById(Integer id);
/**
* 分页查询
*
* @param imageVersion 筛选条件
* @param pageRequest 分页对象
* @return 查询结果
*/
Page<ImageVersion> queryByPage(ImageVersion imageVersion, PageRequest pageRequest);
/**
* 新增数据
*
* @param imageVersion 实例对象
* @return 实例对象
*/
ImageVersion insert(ImageVersion imageVersion);
/**
* 修改数据
*
* @param imageVersion 实例对象
* @return 实例对象
*/
ImageVersion update(ImageVersion imageVersion);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Integer id);
List<ImageVersion> queryByImageId(Integer id);
}

View File

@ -0,0 +1,124 @@
package com.ruoyi.platform.service.impl;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.platform.domain.Image;
import com.ruoyi.platform.domain.ImageVersion;
import com.ruoyi.platform.domain.Models;
import com.ruoyi.platform.mapper.ImageDao;
import com.ruoyi.platform.mapper.ImageVersionDao;
import com.ruoyi.platform.service.ImageService;
import com.ruoyi.platform.service.ImageVersionService;
import com.ruoyi.system.api.model.LoginUser;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
/**
* (Image)表服务实现类
*
* @author Xidaray
* @since 2024-03-05 14:46:58
*/
@Service("imageService")
public class ImageServiceImpl implements ImageService {
@Resource
private ImageDao imageDao;
@Resource
private ImageVersionService imageVersionService;
@Resource
private ImageVersionDao imageVersionDao;
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public Image queryById(Integer id) {
return this.imageDao.queryById(id);
}
/**
* 分页查询
*
* @param image 筛选条件
* @param pageRequest 分页对象
* @return 查询结果
*/
@Override
public Page<Image> queryByPage(Image image, PageRequest pageRequest) {
long total = this.imageDao.count(image);
return new PageImpl<>(this.imageDao.queryAllByLimit(image, pageRequest), pageRequest, total);
}
/**
* 新增数据
*
* @param image 实例对象
* @return 实例对象
*/
@Override
public Image insert(Image image) {
this.imageDao.insert(image);
return image;
}
/**
* 修改数据
*
* @param image 实例对象
* @return 实例对象
*/
@Override
public Image update(Image image) {
this.imageDao.update(image);
return this.queryById(image.getId());
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Integer id) {
return this.imageDao.deleteById(id) > 0;
}
@Override
public String removeById(Integer id) {
Image image = this.imageDao.queryById(id);
if (image == null){
return "模型不存在";
}
//判断权限只有admin和创建者本身可以删除该数据集
LoginUser loginUser = SecurityUtils.getLoginUser();
String username = loginUser.getUsername();
String createdBy = image.getCreateBy();
if (!(StringUtils.equals(username,"admin") || StringUtils.equals(username,createdBy))){
return "无权限删除该镜像";
}
if (!imageVersionService.queryByImageId(id).isEmpty()){
return "请先删除该镜像下的版本文件";
}
image.setState(0);
return this.imageDao.update(image)>0?"删除成功":"删除失败";
}
}

View File

@ -0,0 +1,89 @@
package com.ruoyi.platform.service.impl;
import com.ruoyi.platform.domain.ImageVersion;
import com.ruoyi.platform.mapper.ImageVersionDao;
import com.ruoyi.platform.domain.ModelsVersion;
import com.ruoyi.platform.service.ImageVersionService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
import java.util.List;
/**
* (ImageVersion)表服务实现类
*
* @author Xidaray
* @since 2024-03-05 15:00:02
*/
@Service("imageVersionService")
public class ImageVersionServiceImpl implements ImageVersionService {
@Resource
private ImageVersionDao imageVersionDao;
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public ImageVersion queryById(Integer id) {
return this.imageVersionDao.queryById(id);
}
/**
* 分页查询
*
* @param imageVersion 筛选条件
* @param pageRequest 分页对象
* @return 查询结果
*/
@Override
public Page<ImageVersion> queryByPage(ImageVersion imageVersion, PageRequest pageRequest) {
long total = this.imageVersionDao.count(imageVersion);
return new PageImpl<>(this.imageVersionDao.queryAllByLimit(imageVersion, pageRequest), pageRequest, total);
}
@Override
public List<ImageVersion> queryByImageId(Integer imageId){
return imageVersionDao.queryByImageId(imageId);
}
/**
* 新增数据
*
* @param imageVersion 实例对象
* @return 实例对象
*/
@Override
public ImageVersion insert(ImageVersion imageVersion) {
this.imageVersionDao.insert(imageVersion);
return imageVersion;
}
/**
* 修改数据
*
* @param imageVersion 实例对象
* @return 实例对象
*/
@Override
public ImageVersion update(ImageVersion imageVersion) {
this.imageVersionDao.update(imageVersion);
return this.queryById(imageVersion.getId());
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Integer id) {
return this.imageVersionDao.deleteById(id) > 0;
}
}

View File

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.platform.mapper.ImageDao">
<resultMap type="com.ruoyi.platform.domain.Image" id="ImageMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="description" column="description" jdbcType="VARCHAR"/>
<result property="imageType" column="image_type" jdbcType="INTEGER"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="state" column="state" jdbcType="INTEGER"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="ImageMap">
select
idnamedescriptionimage_typecreate_bycreate_timeupdate_byupdate_timestate
from image
where id = #{id}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="ImageMap">
select
idnamedescriptionimage_typecreate_bycreate_timeupdate_byupdate_timestate
from image
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="description != null and description != ''">
and description = #{description}
</if>
<if test="imageType != null">
and image_type = #{imageType}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
<select id="count" resultType="java.lang.Long">
select count(1)
from image
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="description != null and description != ''">
and description = #{description}
</if>
<if test="imageType != null">
and image_type = #{imageType}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="state != null and state != ''">
and state = #{state}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into image(namedescriptionimage_typecreate_bycreate_timeupdate_byupdate_timestate)
values (#{name}#{description}#{imageType}#{createBy}#{createTime}#{updateBy}#{updateTime}#{state})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into image(namedescriptionimage_typecreate_bycreate_timeupdate_byupdate_timestate)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.name}#{entity.description}#{entity.imageType}#{entity.createBy}#{entity.createTime}#{entity.updateBy}#{entity.updateTime}#{entity.state})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
insert into image(namedescriptionimage_typecreate_bycreate_timeupdate_byupdate_timestate)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.name}#{entity.description}#{entity.imageType}#{entity.createBy}#{entity.createTime}#{entity.updateBy}#{entity.updateTime}#{entity.state})
</foreach>
on duplicate key update
name = values(name)description = values(description)image_type = values(image_type)create_by = values(create_by)create_time = values(create_time)update_by = values(update_by)update_time = values(update_time)state = values(state)
</insert>
<!--通过主键修改数据-->
<update id="update">
update image
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="description != null and description != ''">
description = #{description},
</if>
<if test="imageType != null">
image_type = #{imageType},
</if>
<if test="createBy != null and createBy != ''">
create_by = #{createBy},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateBy != null and updateBy != ''">
update_by = #{updateBy},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="state != null and state != ''">
state = #{state},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from image where id = #{id}
</delete>
</mapper>

View File

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.platform.dao.ImageVersionDao">
<resultMap type="com.ruoyi.platform.domain.ImageVersion" id="ImageVersionMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="imageId" column="image_id" jdbcType="INTEGER"/>
<result property="version" column="version" jdbcType="VARCHAR"/>
<result property="url" column="url" jdbcType="VARCHAR"/>
<result property="tagName" column="tag_name" jdbcType="VARCHAR"/>
<result property="fileSize" column="file_size" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="state" column="state" jdbcType="INTEGER"/>
</resultMap>
<!--根据模型id返回版本列表-->
<select id="queryByModelsId" resultMap="ModelsVersionMap">
select *
from image_version
where image_id = #{imageId} and state = 1
</select>
<!--查询单个-->
<select id="queryById" resultMap="ImageVersionMap">
select *
from image_version
where id = #{id}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="ImageVersionMap">
select *
from image_version
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="imageId != null">
and image_id = #{imageId}
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
<if test="url != null and url != ''">
and url = #{url}
</if>
<if test="tagName != null and tagName != ''">
and tag_name = #{tagName}
</if>
<if test="fileSize != null and fileSize != ''">
and file_size = #{fileSize}
</if>
<if test="status != null and status != ''">
and status = #{status}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="state != null">
and state = #{state}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
<select id="count" resultType="java.lang.Long">
select count(1)
from image_version
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="imageId != null">
and image_id = #{imageId}
</if>
<if test="version != null and version != ''">
and version = #{version}
</if>
<if test="url != null and url != ''">
and url = #{url}
</if>
<if test="tagName != null and tagName != ''">
and tag_name = #{tagName}
</if>
<if test="fileSize != null and fileSize != ''">
and file_size = #{fileSize}
</if>
<if test="status != null and status != ''">
and status = #{status}
</if>
<if test="createBy != null and createBy != ''">
and create_by = #{createBy}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="state != null">
and state = #{state}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into image_version(image_idversionurltag_namefile_sizestatuscreate_bycreate_timeupdate_byupdate_timestate)
values (#{imageId}#{version}#{url}#{tagName}#{fileSize}#{status}#{createBy}#{createTime}#{updateBy}#{updateTime}#{state})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into image_version(image_idversionurltag_namefile_sizestatuscreate_bycreate_timeupdate_byupdate_timestate)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.imageId}#{entity.version}#{entity.url}#{entity.tagName}#{entity.fileSize}#{entity.status}#{entity.createBy}#{entity.createTime}#{entity.updateBy}#{entity.updateTime}#{entity.state})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
insert into image_version(image_idversionurltag_namefile_sizestatuscreate_bycreate_timeupdate_byupdate_timestate)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.imageId}#{entity.version}#{entity.url}#{entity.tagName}#{entity.fileSize}#{entity.status}#{entity.createBy}#{entity.createTime}#{entity.updateBy}#{entity.updateTime}#{entity.state})
</foreach>
on duplicate key update
image_id = values(image_id)version = values(version)url = values(url)tag_name = values(tag_name)file_size = values(file_size)status = values(status)create_by = values(create_by)create_time = values(create_time)update_by = values(update_by)update_time = values(update_time)state = values(state)
</insert>
<!--通过主键修改数据-->
<update id="update">
update image_version
<set>
<if test="imageId != null">
image_id = #{imageId},
</if>
<if test="version != null and version != ''">
version = #{version},
</if>
<if test="url != null and url != ''">
url = #{url},
</if>
<if test="tagName != null and tagName != ''">
tag_name = #{tagName},
</if>
<if test="fileSize != null and fileSize != ''">
file_size = #{fileSize},
</if>
<if test="status != null and status != ''">
status = #{status},
</if>
<if test="createBy != null and createBy != ''">
create_by = #{createBy},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateBy != null and updateBy != ''">
update_by = #{updateBy},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="state != null">
state = #{state},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from image_version where id = #{id}
</delete>
</mapper>

View File

@ -17,7 +17,7 @@
<!--查询单个-->
<select id="queryById" resultMap="ModelsMap">
select
id, name, description, model_type, create_by, create_time, update_by, update_time, state
id, name, description, model_type, create_by, create_time, update_by, update_time, state
from models
where id = #{id} and state = 1
</select>