package com.example.caseData.dto.caseClinicalArticle; import cn.hutool.core.bean.BeanUtil; import com.example.caseData.dto.caseClinicalArticleAuthor.CaseClinicalArticleAuthorDto; import com.example.caseData.model.CaseClinicalArticleModel; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.time.LocalDateTime; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @Data public class CaseClinicalArticleDto { /** * 主键id */ @JsonProperty("article_id") private String articleId; /** * 标题 */ @JsonProperty("article_title") private String articleTitle; /** * 状态(1:正常 2:禁用) */ @JsonProperty("article_status") private Integer articleStatus; /** * 阅读量 */ @JsonProperty("read_num") private Integer readNum; /** * 收藏量 */ @JsonProperty("collect_num") private Integer collectNum; /** * 发表时间 */ @JsonProperty("push_date") // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime pushDate; /** * 内容 */ @JsonProperty("article_content") private String articleContent; /** * 创建时间 */ @JsonProperty("created_at") private LocalDateTime createdAt; /** * 修改时间 */ @JsonProperty("updated_at") private LocalDateTime updatedAt; /** * 作者 */ @JsonProperty("author") private List author; /** * 列表 */ public static List GetListDto(List models) { if (models == null || models.isEmpty()) { return Collections.emptyList(); } return models.stream() .map(model -> { CaseClinicalArticleDto dto = BeanUtil.copyProperties(model, CaseClinicalArticleDto.class); // 示例:手动处理字段类型不一致 if (model.getArticleId() != null) { dto.setArticleId(String.valueOf(model.getArticleId())); // Long -> String } // 作者 if (model.getAuthor() != null && !model.getAuthor().isEmpty()) { List caseClinicalArticleAuthorListDto = CaseClinicalArticleAuthorDto.GetListDto(model.getAuthor()); dto.setAuthor(caseClinicalArticleAuthorListDto); } dto.setArticleContent(""); return dto; }) .collect(Collectors.toList()); } /** * 详情 */ public static CaseClinicalArticleDto GetDto(CaseClinicalArticleModel model) { if (model == null) { return null; } CaseClinicalArticleDto dto = BeanUtil.copyProperties(model, CaseClinicalArticleDto.class); // 类型转换示例 if (model.getArticleId() != null) { dto.setArticleId(String.valueOf(model.getArticleId())); // Long -> String } // 作者 if (model.getAuthor() != null && !model.getAuthor().isEmpty()) { List caseClinicalArticleAuthorListDto = CaseClinicalArticleAuthorDto.GetListDto(model.getAuthor()); dto.setAuthor(caseClinicalArticleAuthorListDto); } return dto; } }