133 lines
3.7 KiB
Java
133 lines
3.7 KiB
Java
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<CaseClinicalVideoAuthorDto> author;
|
||
|
||
/**
|
||
* 列表
|
||
*/
|
||
public static List<CaseClinicalVideoDto> GetListDto(List<CaseClinicalVideoModel> 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<CaseClinicalVideoAuthorDto> 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<CaseClinicalVideoAuthorDto> caseClinicalVideoAuthorListDto = CaseClinicalVideoAuthorDto.GetListDto(model.getAuthor());
|
||
dto.setAuthor(caseClinicalVideoAuthorListDto);
|
||
}
|
||
|
||
return dto;
|
||
}
|
||
} |