feat(AI资源广场): 模型和数据集资源相关功能开发

调整模型/数据集编辑接口逻辑,支持修改模型/数据集的介绍内容(README.md),将覆盖模型/数据集extendData中的content字段
This commit is contained in:
otto 2026-05-25 16:24:35 +08:00
parent 7b112fab92
commit 5459afcf7a
3 changed files with 43 additions and 6 deletions

View File

@ -1,5 +1,8 @@
package com.microservices.zone.resource.domain.vo;
import com.alibaba.fastjson2.JSONObject;
import com.microservices.zone.resource.domain.ZoneResource;
import com.microservices.zone.resource.utils.ResourceExtendDataUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -35,13 +38,26 @@ public class AiDatasetUpdateVo {
@ApiModelProperty(value = "资源领域Id")
private Long domainId;
public ZoneResourceUpdateVo toZoneResourceUpdateVo(){
@ApiModelProperty(value = "README.md内容")
private String readmeContent;
public ZoneResourceUpdateVo toZoneResourceUpdateVo(ZoneResource existing){
ZoneResourceUpdateVo zoneResourceUpdateVo = new ZoneResourceUpdateVo();
zoneResourceUpdateVo.setId(this.getId());
zoneResourceUpdateVo.setName(this.getName());
zoneResourceUpdateVo.setSummary(this.getSummary());
zoneResourceUpdateVo.setKeywords(this.getKeywords());
zoneResourceUpdateVo.setDomainId(this.getDomainId());
if (readmeContent != null) {
JSONObject extendData = existing.getExtendData();
if (extendData == null) {
extendData = new JSONObject();
}
extendData = ResourceExtendDataUtils.updateModelOrDatasetReadmeContent(existing.getResourceCategory(), extendData, readmeContent);
zoneResourceUpdateVo.setExtendData(extendData.toJSONString());
}
return zoneResourceUpdateVo;
}
}

View File

@ -1,5 +1,8 @@
package com.microservices.zone.resource.domain.vo;
import com.alibaba.fastjson2.JSONObject;
import com.microservices.zone.resource.domain.ZoneResource;
import com.microservices.zone.resource.utils.ResourceExtendDataUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -35,13 +38,26 @@ public class AiModelUpdateVo {
@ApiModelProperty(value = "资源领域Id")
private Long domainId;
public ZoneResourceUpdateVo toZoneResourceUpdateVo(){
@ApiModelProperty(value = "README.md内容")
private String readmeContent;
public ZoneResourceUpdateVo toZoneResourceUpdateVo(ZoneResource existing){
ZoneResourceUpdateVo zoneResourceUpdateVo = new ZoneResourceUpdateVo();
zoneResourceUpdateVo.setId(this.getId());
zoneResourceUpdateVo.setName(this.getName());
zoneResourceUpdateVo.setSummary(this.getSummary());
zoneResourceUpdateVo.setKeywords(this.getKeywords());
zoneResourceUpdateVo.setDomainId(this.getDomainId());
if (readmeContent != null) {
JSONObject extendData = existing.getExtendData();
if (extendData == null) {
extendData = new JSONObject();
}
extendData = ResourceExtendDataUtils.updateModelOrDatasetReadmeContent(existing.getResourceCategory(), extendData, readmeContent);
zoneResourceUpdateVo.setExtendData(extendData.toJSONString());
}
return zoneResourceUpdateVo;
}
}

View File

@ -762,14 +762,19 @@ public class ZoneResourceServiceImpl implements IZoneResourceService {
}
}
return updateModelOrDatasetResource(oldResource, updateVo.toZoneResourceUpdateVo(), updateVo.getFileId());
return updateModelOrDatasetResource(oldResource, updateVo.toZoneResourceUpdateVo(oldResource), updateVo.getFileId());
}
private ZoneResourceDataVo updateModelOrDatasetResource(ZoneResource oldResource, ZoneResourceUpdateVo updateVo, Long fileId) {
// 4. 获取现有 extendData
JSONObject extendData = oldResource.getExtendData();
// 4. 获取 VO 层已合并的 extendData可能包含 readmeContent或使用旧的
JSONObject extendData;
if (updateVo.getExtendData() != null) {
extendData = JSONObject.parseObject(updateVo.getExtendData());
} else {
extendData = oldResource.getExtendData();
}
if (extendData == null) {
extendData = new JSONObject();
}
@ -866,7 +871,7 @@ public class ZoneResourceServiceImpl implements IZoneResourceService {
}
}
return updateModelOrDatasetResource(oldResource, updateVo.toZoneResourceUpdateVo(), updateVo.getFileId());
return updateModelOrDatasetResource(oldResource, updateVo.toZoneResourceUpdateVo(oldResource), updateVo.getFileId());
}
@Override