98 lines
2.4 KiB
Java
98 lines
2.4 KiB
Java
package com.example.caseData.dto.caseExchangeVoteOption;
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import com.example.caseData.dto.caseExchangeVote.CaseExchangeVoteDto;
|
|
import com.example.caseData.model.CaseExchangeVoteModel;
|
|
import com.example.caseData.model.CaseExchangeVoteOptionModel;
|
|
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 CaseExchangeVoteOptionDto {
|
|
/**
|
|
* 主键id
|
|
*/
|
|
@JsonProperty("option_id")
|
|
private String optionId;
|
|
|
|
/**
|
|
* 投票id
|
|
*/
|
|
@JsonProperty("vote_id")
|
|
private String voteId;
|
|
|
|
/**
|
|
* 选项
|
|
*/
|
|
@JsonProperty("option_value")
|
|
private String optionValue;
|
|
|
|
/**
|
|
* 票数
|
|
*/
|
|
@JsonProperty("vote_num")
|
|
private Integer voteNum;
|
|
|
|
/**
|
|
* 被选择占比
|
|
*/
|
|
@JsonProperty("proportion")
|
|
private Integer proportion;
|
|
|
|
/**
|
|
* 创建时间
|
|
*/
|
|
@JsonProperty("created_at")
|
|
private LocalDateTime createdAt;
|
|
|
|
/**
|
|
* 修改时间
|
|
*/
|
|
@JsonProperty("updated_at")
|
|
private LocalDateTime updatedAt;
|
|
|
|
/**
|
|
* 列表
|
|
*/
|
|
public static List<CaseExchangeVoteOptionDto> GetListDto(List<CaseExchangeVoteOptionModel> models) {
|
|
if (models == null || models.isEmpty()) {
|
|
return Collections.emptyList();
|
|
}
|
|
|
|
return models.stream()
|
|
.map(model -> {
|
|
CaseExchangeVoteOptionDto dto = BeanUtil.copyProperties(model, CaseExchangeVoteOptionDto.class);
|
|
|
|
// 示例:手动处理字段类型不一致
|
|
if (model.getOptionId() != null) {
|
|
dto.setOptionId(String.valueOf(model.getOptionId())); // Long -> String
|
|
}
|
|
|
|
return dto;
|
|
})
|
|
.collect(Collectors.toList());
|
|
}
|
|
|
|
/**
|
|
* 详情
|
|
*/
|
|
public static CaseExchangeVoteOptionDto GetDto(CaseExchangeVoteOptionModel model) {
|
|
if (model == null) {
|
|
return null;
|
|
}
|
|
|
|
CaseExchangeVoteOptionDto dto = BeanUtil.copyProperties(model, CaseExchangeVoteOptionDto.class);
|
|
|
|
// 类型转换示例
|
|
if (model.getOptionId() != null) {
|
|
dto.setOptionId(String.valueOf(model.getOptionId())); // Long -> String
|
|
}
|
|
|
|
return dto;
|
|
}
|
|
} |