archive file

dev-tmp1
luotaiqian 2026-08-26 09:57:29 +08:00
parent 1e565706a0
commit efc34b7e21
6 changed files with 71 additions and 13 deletions

View File

@ -1,11 +1,15 @@
package org.qinan.safetyeval.app.file.convertor; package org.qinan.safetyeval.app.file.convertor;
import cn.hutool.json.JSONUtil;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.qinan.safetyeval.client.file.request.EvalProjectArchiveFileAddCmd; import org.qinan.safetyeval.client.file.request.EvalProjectArchiveFileAddCmd;
import org.qinan.safetyeval.client.file.request.EvalProjectArchiveFileUpdateCmd; import org.qinan.safetyeval.client.file.request.EvalProjectArchiveFileUpdateCmd;
import org.qinan.safetyeval.client.file.response.FilesCo;
import org.qinan.safetyeval.domain.file.model.EvalProjectArchiveFileE; import org.qinan.safetyeval.domain.file.model.EvalProjectArchiveFileE;
import java.util.List;
/** /**
* *
* *
@ -15,7 +19,7 @@ import org.qinan.safetyeval.domain.file.model.EvalProjectArchiveFileE;
@Mapper(componentModel = "spring") @Mapper(componentModel = "spring")
public interface EvalProjectArchiveFileCmdConvertor { public interface EvalProjectArchiveFileCmdConvertor {
/** /**
* cmd_add * cmd_addfiles fromFilesCo JSON
* *
* @param evalProjectArchiveFileAddCmd * @param evalProjectArchiveFileAddCmd
* @return * @return
@ -24,11 +28,21 @@ public interface EvalProjectArchiveFileCmdConvertor {
EvalProjectArchiveFileE convertCmdToE(EvalProjectArchiveFileAddCmd evalProjectArchiveFileAddCmd); EvalProjectArchiveFileE convertCmdToE(EvalProjectArchiveFileAddCmd evalProjectArchiveFileAddCmd);
/** /**
* cmd_update * cmd_updatefiles fromFilesCo JSON
* *
* @param evalProjectArchiveFileUpdateCmd * @param evalProjectArchiveFileUpdateCmd
* @return * @return
*/ */
@Mapping(target = "evalProjectArchiveFileGateway", ignore = true) @Mapping(target = "evalProjectArchiveFileGateway", ignore = true)
EvalProjectArchiveFileE convertCmdToE(EvalProjectArchiveFileUpdateCmd evalProjectArchiveFileUpdateCmd); EvalProjectArchiveFileE convertCmdToE(EvalProjectArchiveFileUpdateCmd evalProjectArchiveFileUpdateCmd);
/**
* Cmd files JSON [{"url":"...","name":"..."}]null null
*/
default String fromFilesCo(List<FilesCo> files) {
if (files == null) {
return null;
}
return JSONUtil.toJsonStr(files);
}
} }

View File

@ -2,11 +2,13 @@ package org.qinan.safetyeval.client.file.request;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.qinan.safetyeval.client.file.response.FilesCo;
import org.qinan.safetyeval.domain.constant.ArchiveTypeEnum; import org.qinan.safetyeval.domain.constant.ArchiveTypeEnum;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* Cmd * Cmd
@ -22,9 +24,8 @@ public class EvalProjectArchiveFileAddCmd implements Serializable {
@NotBlank(message = "项目ID不能为空") @NotBlank(message = "项目ID不能为空")
private String projectId; private String projectId;
@ApiModelProperty(value = "文件列表JSON 数组,如 [{\"url\":\"...\",\"name\":\"...\"}]", required = true) @ApiModelProperty(value = "文件列表")
@NotBlank(message = "文件列表不能为空") private List<FilesCo> files;
private String files;
@ApiModelProperty(value = ArchiveTypeEnum.REMARKS, required = true) @ApiModelProperty(value = ArchiveTypeEnum.REMARKS, required = true)
@NotBlank(message = ArchiveTypeEnum.REMARKS + "不能为空") @NotBlank(message = ArchiveTypeEnum.REMARKS + "不能为空")

View File

@ -3,12 +3,14 @@ package org.qinan.safetyeval.client.file.request;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.qinan.safetyeval.client.file.response.FilesCo;
import org.qinan.safetyeval.domain.constant.ArchiveTypeEnum; import org.qinan.safetyeval.domain.constant.ArchiveTypeEnum;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* Cmd * Cmd
@ -28,11 +30,10 @@ public class EvalProjectArchiveFileUpdateCmd implements Serializable {
@NotBlank(message = "项目ID不能为空") @NotBlank(message = "项目ID不能为空")
private String projectId; private String projectId;
/** /**
* JSON [{"url":"...","name":"..."}] *
*/ */
@ApiModelProperty(value = "文件列表JSON 数组,如 [{\"url\":\"...\",\"name\":\"...\"}]", required = true) @ApiModelProperty(value = "文件列表")
@NotBlank(message = "文件列表不能为空") private List<FilesCo> files;
private String files;
/** /**
* ArchiveTypeEnum.REMARKS * ArchiveTypeEnum.REMARKS
*/ */

View File

@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.qinan.safetyeval.domain.constant.ArchiveTypeEnum; import org.qinan.safetyeval.domain.constant.ArchiveTypeEnum;
import java.util.List;
/** /**
* Co * Co
* *
@ -23,10 +25,10 @@ public class EvalProjectArchiveFileCo extends ClientObject {
@ApiModelProperty(value = "项目ID") @ApiModelProperty(value = "项目ID")
private String projectId; private String projectId;
/** /**
* JSON [{"url":"...","name":"..."}] * DO JSON [{"url":"...","name":"..."}]
*/ */
@ApiModelProperty(value = "文件列表") @ApiModelProperty(value = "文件列表")
private String files; private List<FilesCo> files;
/** /**
* ArchiveTypeEnum.REMARKS * ArchiveTypeEnum.REMARKS
*/ */

View File

@ -0,0 +1,26 @@
package org.qinan.safetyeval.client.file.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* Co eval_project_archive_file.files JSON
*
* @Author: ltq
* @date 2026-08-25
*/
@Data
public class FilesCo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "文件ID")
private String id;
@ApiModelProperty(value = "文件地址")
private String url;
@ApiModelProperty(value = "文件名称")
private String name;
}

View File

@ -1,11 +1,15 @@
package org.qinan.safetyeval.infrastructure.convertor; package org.qinan.safetyeval.infrastructure.convertor;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.qinan.safetyeval.client.file.request.EvalProjectArchiveFilePageQry; import org.qinan.safetyeval.client.file.request.EvalProjectArchiveFilePageQry;
import org.qinan.safetyeval.client.file.response.EvalProjectArchiveFileCo; import org.qinan.safetyeval.client.file.response.EvalProjectArchiveFileCo;
import org.qinan.safetyeval.client.file.response.FilesCo;
import org.qinan.safetyeval.domain.file.model.EvalProjectArchiveFileE; import org.qinan.safetyeval.domain.file.model.EvalProjectArchiveFileE;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.EvalProjectArchiveFileDO; import org.qinan.safetyeval.infrastructure.persistence.domainobject.EvalProjectArchiveFileDO;
import java.util.Collections;
import java.util.List; import java.util.List;
@ -26,7 +30,7 @@ public interface EvalProjectArchiveFileDoConvertor {
EvalProjectArchiveFileDO convertEeToDo(EvalProjectArchiveFileE evalProjectArchiveFileE); EvalProjectArchiveFileDO convertEeToDo(EvalProjectArchiveFileE evalProjectArchiveFileE);
/** /**
* DOCo * DOCofiles JSON toFilesCo
* *
* @param evalProjectArchiveFileDo DO * @param evalProjectArchiveFileDo DO
* @return * @return
@ -44,10 +48,20 @@ public interface EvalProjectArchiveFileDoConvertor {
EvalProjectArchiveFileDO convertQryToDo(EvalProjectArchiveFilePageQry evalProjectArchiveFilePageQry); EvalProjectArchiveFileDO convertQryToDo(EvalProjectArchiveFilePageQry evalProjectArchiveFilePageQry);
/** /**
* DOsCos * DOsCosfiles JSON toFilesCo
* *
* @param evalProjectArchiveFileDos dos * @param evalProjectArchiveFileDos dos
* @return * @return
*/ */
List<EvalProjectArchiveFileCo> converDosToCos(List<EvalProjectArchiveFileDO> evalProjectArchiveFileDos); List<EvalProjectArchiveFileCo> converDosToCos(List<EvalProjectArchiveFileDO> evalProjectArchiveFileDos);
/**
* DO files JSON [{"url":"...","name":"..."}] FilesCo
*/
default List<FilesCo> toFilesCo(String files) {
if (StrUtil.isBlank(files)) {
return Collections.emptyList();
}
return JSONUtil.toList(files, FilesCo.class);
}
} }