package com.example.caseData.dto.statsCaseClinicalHospital; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.annotation.TableField; import com.example.caseData.dto.basicHospital.BasicHospitalDto; import com.example.caseData.model.StatsCaseClinicalHospitalModel; import com.fasterxml.jackson.annotation.JsonInclude; 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; //@JsonInclude(JsonInclude.Include.ALWAYS) // 这行是关键,强制序列化 null 值 @Data public class StatsCaseClinicalHospitalDto { /** * 主键id */ @JsonProperty("stats_id") private String statsId; /** * 医院id */ @JsonProperty("hospital_id") private String hospitalId; /** * 数量-文章 */ @JsonProperty("article_num") private Integer articleNum; /** * 总阅读量-文章 */ @JsonProperty("article_read_num") private Integer articleReadNum; /** * 总收藏量-文章 */ @JsonProperty("article_collect_num") private Integer articleCollectNum; /** * 最后一篇文章发表时间 */ @JsonProperty("last_push_date") private LocalDateTime lastPushDate; /** * 数量-视频 */ @JsonProperty("video_num") private Integer videoNum; /** * 总阅读量-视频 */ @JsonProperty("video_read_num") private Integer videoReadNum; /** * 总收藏量-视频 */ @JsonProperty("video_collect_num") private Integer videoCollectNum; /** * 创建时间 */ @JsonProperty("created_at") private LocalDateTime createdAt; /** * 修改时间 */ @JsonProperty("updated_at") private LocalDateTime updatedAt; /** * 基础数据-医院 */ @JsonProperty("basic_hospital") private BasicHospitalDto basicHospital; /** * 列表 */ public static List GetListDto(List models) { if (models == null || models.isEmpty()) { return Collections.emptyList(); } return models.stream() .map(model -> { StatsCaseClinicalHospitalDto dto = BeanUtil.copyProperties(model, StatsCaseClinicalHospitalDto.class); // 示例:手动处理字段类型不一致 if (model.getStatsId() != null) { dto.setStatsId(String.valueOf(model.getStatsId())); // Long -> String } // 基础数据-医院 if (model.getBasicHospital() != null) { BasicHospitalDto basicHospitalListDto = BasicHospitalDto.GetDto(model.getBasicHospital()); dto.setBasicHospital(basicHospitalListDto); } return dto; }) .collect(Collectors.toList()); } /** * 详情 */ public static StatsCaseClinicalHospitalDto GetDto(StatsCaseClinicalHospitalModel model) { if (model == null) { return null; } StatsCaseClinicalHospitalDto dto = BeanUtil.copyProperties(model, StatsCaseClinicalHospitalDto.class); // 示例:手动处理字段类型不一致 if (model.getStatsId() != null) { dto.setStatsId(String.valueOf(model.getStatsId())); // Long -> String } if (model.getHospitalId() != null) { dto.setHospitalId(String.valueOf(model.getHospitalId())); // Long -> String } // 基础数据-医院 if (model.getBasicHospital() != null) { BasicHospitalDto basicHospitalListDto = BasicHospitalDto.GetDto(model.getBasicHospital()); dto.setBasicHospital(basicHospitalListDto); } return dto; } }