2025-05-12 13:28:44 +08:00

145 lines
3.9 KiB
Java

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<StatsCaseClinicalHospitalDto> GetListDto(List<StatsCaseClinicalHospitalModel> 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;
}
}