diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/icon/AssetIconController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/icon/AssetIconController.java new file mode 100644 index 00000000..5d6d1a0c --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/icon/AssetIconController.java @@ -0,0 +1,90 @@ +package com.ruoyi.platform.controller.icon; + +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.platform.domain.AssetIcon; +import com.ruoyi.platform.domain.Models; +import com.ruoyi.platform.service.AssetIconService; +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; + +/** + * (AssetIcon)表控制层 + * + * @author Xidaray + * @since 2024-03-07 16:02:03 + */ +@RestController +@RequestMapping("assetIcon") +public class AssetIconController { + /** + * 服务对象 + */ + @Resource + private AssetIconService assetIconService; + + /** + * 分页查询 + * + * @param assetIcon 筛选条件 + * @param page 分页对象 + * @param size 分页对象 + * @return 查询结果 + */ + @GetMapping + @ApiOperation("分页查询") + public AjaxResult queryByPage(AssetIcon assetIcon, int page, int size) { + PageRequest pageRequest = PageRequest.of(page,size); + return AjaxResult.success(this.assetIconService.queryByPage(assetIcon, pageRequest)); + } + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("{id}") + public AjaxResult queryById(@PathVariable("id") Integer id) { + return AjaxResult.success(this.assetIconService.queryById(id)); + } + + /** + * 新增数据 + * + * @param assetIcon 实体 + * @return 新增结果 + */ + @PostMapping + public AjaxResult add(@RequestBody AssetIcon assetIcon) { + return AjaxResult.success(this.assetIconService.insert(assetIcon)); + } + + /** + * 编辑数据 + * + * @param assetIcon 实体 + * @return 编辑结果 + */ + @PutMapping + public AjaxResult edit(@RequestBody AssetIcon assetIcon) { + return AjaxResult.success(this.assetIconService.update(assetIcon)); + } + + /** + * 删除数据 + * + * @param id 主键 + * @return 删除是否成功 + */ + @DeleteMapping("{id}") + public AjaxResult deleteById(@PathVariable("id") Integer id) { + return AjaxResult.success(this.assetIconService.removeById(id)); + } + +} + diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/image/ImageVersionController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/image/ImageVersionController.java index 44692d3a..9d340b1e 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/image/ImageVersionController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/image/ImageVersionController.java @@ -60,7 +60,7 @@ public class ImageVersionController { * @return 新增结果 */ @PostMapping - public AjaxResult add(ImageVersion imageVersion) { + public AjaxResult add(@RequestBody ImageVersion imageVersion) { return AjaxResult.success(this.imageVersionService.insert(imageVersion)); } @@ -71,7 +71,7 @@ public class ImageVersionController { * @return 编辑结果 */ @PutMapping - public AjaxResult edit(ImageVersion imageVersion) { + public AjaxResult edit(@RequestBody ImageVersion imageVersion) { return AjaxResult.success(this.imageVersionService.update(imageVersion)); } @@ -81,8 +81,8 @@ public class ImageVersionController { * @param id 主键 * @return 删除是否成功 */ - @DeleteMapping - public AjaxResult deleteById(Integer id) { + @DeleteMapping("{id}") + public AjaxResult deleteById(@PathVariable("id") Integer id) { return AjaxResult.success(this.imageVersionService.removeById(id)); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/AssetIcon.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/AssetIcon.java new file mode 100644 index 00000000..42838f81 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/AssetIcon.java @@ -0,0 +1,139 @@ +package com.ruoyi.platform.domain; + +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import java.util.Date; +import java.io.Serializable; + +/** + * (AssetIcon)实体类 + * + * @author Xidaray + * @since 2024-03-07 16:02:04 + */ +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +public class AssetIcon implements Serializable { + private static final long serialVersionUID = 321623288300411326L; +/** + * 主键 + */ + private Integer id; +/** + * 资产图标名称 + */ + private String name; +/** + * 分类id + */ + private Integer categoryId; +/** + * 路径 + */ + private String path; +/** + * 描述 + */ + private String description; +/** + * 创建者 + */ + 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 Integer getCategoryId() { + return categoryId; + } + + public void setCategoryId(Integer categoryId) { + this.categoryId = categoryId; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + 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; + } + +} + diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Image.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Image.java index abe20b36..8888077b 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Image.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Image.java @@ -1,5 +1,7 @@ package com.ruoyi.platform.domain; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; import io.swagger.annotations.ApiModelProperty; import java.util.Date; @@ -11,6 +13,7 @@ import java.io.Serializable; * @author Xidaray * @since 2024-03-05 14:45:48 */ +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class Image implements Serializable { private static final long serialVersionUID = 179166185018853959L; /** diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ImageVersion.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ImageVersion.java index ff0a5bd3..bac09494 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ImageVersion.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/ImageVersion.java @@ -1,5 +1,7 @@ package com.ruoyi.platform.domain; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; import io.swagger.annotations.ApiModelProperty; import java.util.Date; @@ -11,6 +13,7 @@ import java.io.Serializable; * @author Xidaray * @since 2024-03-05 15:00:02 */ +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class ImageVersion implements Serializable { private static final long serialVersionUID = 251017725389874890L; /** diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/AssetIconDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/AssetIconDao.java new file mode 100644 index 00000000..4f6d8e9e --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/AssetIconDao.java @@ -0,0 +1,83 @@ +package com.ruoyi.platform.mapper; + +import com.ruoyi.platform.domain.AssetIcon; +import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.Pageable; +import java.util.List; + +/** + * (AssetIcon)表数据库访问层 + * + * @author Xidaray + * @since 2024-03-07 16:02:03 + */ +public interface AssetIconDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + AssetIcon queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param assetIcon 查询条件 + * @param pageable 分页对象 + * @return 对象列表 + */ + List queryAllByLimit(@Param("assetIcon") AssetIcon assetIcon, @Param("pageable") Pageable pageable); + + /** + * 统计总行数 + * + * @param assetIcon 查询条件 + * @return 总行数 + */ + long count(@Param("assetIcon") AssetIcon assetIcon); + + /** + * 新增数据 + * + * @param assetIcon 实例对象 + * @return 影响行数 + */ + int insert(@Param("assetIcon") AssetIcon assetIcon); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param assetIcon 实例对象 + * @return 影响行数 + */ + int update(@Param("assetIcon") AssetIcon assetIcon); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} + diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AssetIconService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AssetIconService.java new file mode 100644 index 00000000..21a43b47 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/AssetIconService.java @@ -0,0 +1,58 @@ +package com.ruoyi.platform.service; + +import com.ruoyi.platform.domain.AssetIcon; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; + +/** + * (AssetIcon)表服务接口 + * + * @author Xidaray + * @since 2024-03-07 16:02:04 + */ +public interface AssetIconService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + AssetIcon queryById(Integer id); + + /** + * 分页查询 + * + * @param assetIcon 筛选条件 + * @param pageRequest 分页对象 + * @return 查询结果 + */ + Page queryByPage(AssetIcon assetIcon, PageRequest pageRequest); + + /** + * 新增数据 + * + * @param assetIcon 实例对象 + * @return 实例对象 + */ + AssetIcon insert(AssetIcon assetIcon); + + /** + * 修改数据 + * + * @param assetIcon 实例对象 + * @return 实例对象 + */ + AssetIcon update(AssetIcon assetIcon); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + String removeById(Integer id); + +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AssetIconServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AssetIconServiceImpl.java new file mode 100644 index 00000000..f342c243 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/AssetIconServiceImpl.java @@ -0,0 +1,117 @@ +package com.ruoyi.platform.service.impl; + +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.platform.domain.AssetIcon; +import com.ruoyi.platform.domain.Models; +import com.ruoyi.platform.mapper.AssetIconDao; +import com.ruoyi.platform.service.AssetIconService; +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; +import java.util.Date; + +/** + * (AssetIcon)表服务实现类 + * + * @author Xidaray + * @since 2024-03-07 16:02:04 + */ +@Service("assetIconService") +public class AssetIconServiceImpl implements AssetIconService { + @Resource + private AssetIconDao assetIconDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public AssetIcon queryById(Integer id) { + return this.assetIconDao.queryById(id); + } + + /** + * 分页查询 + * + * @param assetIcon 筛选条件 + * @param pageRequest 分页对象 + * @return 查询结果 + */ + @Override + public Page queryByPage(AssetIcon assetIcon, PageRequest pageRequest) { + long total = this.assetIconDao.count(assetIcon); + return new PageImpl<>(this.assetIconDao.queryAllByLimit(assetIcon, pageRequest), pageRequest, total); + } + + /** + * 新增数据 + * + * @param assetIcon 实例对象 + * @return 实例对象 + */ + @Override + public AssetIcon insert(AssetIcon assetIcon) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + assetIcon.setCreateBy(loginUser.getUsername()); + assetIcon.setUpdateBy(loginUser.getUsername()); + assetIcon.setUpdateTime(new Date()); + assetIcon.setCreateTime(new Date()); + assetIcon.setState(1); + this.assetIconDao.insert(assetIcon); + return assetIcon; + } + + /** + * 修改数据 + * + * @param assetIcon 实例对象 + * @return 实例对象 + */ + @Override + public AssetIcon update(AssetIcon assetIcon) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + assetIcon.setUpdateBy(loginUser.getUsername()); + assetIcon.setUpdateTime(new Date()); + this.assetIconDao.update(assetIcon); + return this.queryById(assetIcon.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.assetIconDao.deleteById(id) > 0; + } + + @Override + public String removeById(Integer id) { + AssetIcon assetIcon = this.assetIconDao.queryById(id); + if (assetIcon == null){ + return "图标不存在"; + } + + //判断权限,只有admin和创建者本身可以删除 + LoginUser loginUser = SecurityUtils.getLoginUser(); + String username = loginUser.getUsername(); + + + String createdBy = assetIcon.getCreateBy(); + if (!(StringUtils.equals(username,"admin") || StringUtils.equals(username,createdBy))){ + return "无权限删除该图标"; + } + + assetIcon.setState(0); + return this.assetIconDao.update(assetIcon)>0?"删除成功":"删除失败"; + } +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java index 0fde2068..d4bff823 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java @@ -160,7 +160,7 @@ public class ModelsServiceImpl implements ModelsService { return "无权限删除该模型"; } if (modelsVersionService.queryByModelsId(id).size()>0){ - return "请先删除该数据集的版本文件"; + return "请先删除该模型的版本文件"; } models.setState(0); return this.modelsDao.update(models)>0?"删除成功":"删除失败"; diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/AssetIconDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/AssetIconDaoMapper.xml new file mode 100644 index 00000000..42f36db8 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/AssetIconDaoMapper.xml @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into asset_icon(name, category_id, path, description, create_by, create_time, update_by, update_time, state) + values (#{assetIcon.name}, #{assetIcon.categoryId}, #{assetIcon.path}, #{assetIcon.description}, #{assetIcon.createBy}, #{assetIcon.createTime}, #{assetIcon.updateBy}, #{assetIcon.updateTime}, #{assetIcon.state}) + + + + + insert into asset_icon(name,category_id,path,description,create_by,create_time,update_by,update_time,state) + values + + (#{entity.name}#{entity.categoryId}#{entity.path}#{entity.description}#{entity.createBy}#{entity.createTime}#{entity.updateBy}#{entity.updateTime}#{entity.state}) + + + + + insert into asset_icon(name,category_id,path,description,create_by,create_time,update_by,update_time,state) + values + + (#{entity.name}#{entity.categoryId}#{entity.path}#{entity.description}#{entity.createBy}#{entity.createTime}#{entity.updateBy}#{entity.updateTime}#{entity.state}) + + on duplicate key update +name = values(name)category_id = values(category_id)path = values(path)description = values(description)create_by = values(create_by)create_time = values(create_time)update_by = values(update_by)update_time = values(update_time)state = values(state) + + + + + update asset_icon + + + name = #{assetIcon.name}, + + + category_id = #{assetIcon.categoryId}, + + + path = #{assetIcon.path}, + + + description = #{assetIcon.description}, + + + create_by = #{assetIcon.createBy}, + + + create_time = #{assetIcon.createTime}, + + + update_by = #{assetIcon.updateBy}, + + + update_time = #{assetIcon.updateTime}, + + + state = #{assetIcon.state}, + + + where id = #{assetIcon.id} + + + + + delete from asset_icon where id = #{id} + + + +