145 lines
3.9 KiB
Java
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;
|
|
}
|
|
} |