package com.example.caseData.dto.caseClinicalVideo; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.example.caseData.dto.caseClinicalVideo.CaseClinicalVideoDto; import com.example.caseData.dto.caseClinicalVideoAuthor.CaseClinicalVideoAuthorDto; import com.example.caseData.dto.caseClinicalVideoAuthor.CaseClinicalVideoAuthorDto; import com.example.caseData.model.CaseClinicalVideoModel; 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 CaseClinicalVideoDto { /** * 主键id */ @JsonProperty("video_id") private String videoId; /** * 标题 */ @JsonProperty("video_title") private String videoTitle; /** * 状态(1:正常 2:禁用) */ @JsonProperty("video_status") private Integer videoStatus; /** * 阅读量 */ @JsonProperty("read_num") private Integer readNum; /** * 收藏量 */ @JsonProperty("collect_num") private Integer collectNum; /** * 视频编号(保利) */ @JsonProperty("video_no") private String videoNo; /** * 发表时间 */ @JsonProperty("push_date") private LocalDateTime pushDate; /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) @JsonProperty("created_at") private LocalDateTime createdAt; /** * 修改时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) @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 -> { CaseClinicalVideoDto dto = BeanUtil.copyProperties(model, CaseClinicalVideoDto.class); // 示例:手动处理字段类型不一致 if (model.getVideoId() != null) { dto.setVideoId(String.valueOf(model.getVideoId())); // Long -> String } // 作者 if (model.getAuthor() != null && !model.getAuthor().isEmpty()) { List caseClinicalVideoAuthorListDto = CaseClinicalVideoAuthorDto.GetListDto(model.getAuthor()); dto.setAuthor(caseClinicalVideoAuthorListDto); } dto.setVideoNo(""); return dto; }) .collect(Collectors.toList()); } /** * 详情 */ public static CaseClinicalVideoDto GetDto(CaseClinicalVideoModel model) { if (model == null) { return null; } CaseClinicalVideoDto dto = BeanUtil.copyProperties(model, CaseClinicalVideoDto.class); // 类型转换示例 if (model.getVideoId() != null) { dto.setVideoId(String.valueOf(model.getVideoId())); // Long -> String } // 作者 if (model.getAuthor() != null && !model.getAuthor().isEmpty()) { List caseClinicalVideoAuthorListDto = CaseClinicalVideoAuthorDto.GetListDto(model.getAuthor()); dto.setAuthor(caseClinicalVideoAuthorListDto); } return dto; } }