package com.pollex.pam.service.mapper;
|
|
import com.pollex.pam.domain.Consultant;
|
import com.pollex.pam.domain.CustomFavoriteConsultant;
|
import com.pollex.pam.enums.ContactStatusEnum;
|
import com.pollex.pam.service.dto.ConsultantDTO;
|
import com.pollex.pam.service.dto.ConsultantDetailDTO;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.time.Instant;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class ConsultantMapper {
|
|
private final static Character SPLIT_MASK = ',';
|
|
// todo convert
|
public ConsultantDTO toDto(Consultant source) {
|
ConsultantDTO consultantDTO = new ConsultantDTO();
|
consultantDTO.setAgentNo(source.getAgentNo());
|
consultantDTO.setName(source.getName());
|
consultantDTO.setAvgScore(source.getAvgScore());
|
consultantDTO.setSeniority(source.getSeniority());
|
consultantDTO.setExpertise(splitStringWithChar(source.getExpertise()));
|
|
// todo
|
consultantDTO.setImg("");
|
consultantDTO.setContactStatus(null);
|
consultantDTO.setUpdateTime(null);
|
|
return consultantDTO;
|
}
|
|
public ConsultantDTO toDto(CustomFavoriteConsultant customFavoriteConsultant) {
|
Consultant consultant = customFavoriteConsultant.getConsultant();
|
ConsultantDTO dto = toDto(consultant);
|
|
Instant updateTime = customFavoriteConsultant.getLastModifiedDate();
|
dto.setContactStatus(customFavoriteConsultant.getContactStatus());
|
dto.setUpdateTime(updateTime);
|
|
return dto;
|
}
|
|
public ConsultantDetailDTO toDetailDto(Consultant source) {
|
ConsultantDetailDTO consultantDetailDTO = new ConsultantDetailDTO();
|
consultantDetailDTO.setName(source.getName());
|
consultantDetailDTO.setAgentNo(source.getAgentNo());
|
consultantDetailDTO.setRole(source.getRole());
|
consultantDetailDTO.setAvgScore(source.getAvgScore());
|
consultantDetailDTO.setTitle(source.getTitle());
|
consultantDetailDTO.setPhoneNumber(source.getPhoneNumber());
|
consultantDetailDTO.setServeArea(source.getServeArea());
|
consultantDetailDTO.setCompanyAddress(source.getCompanyAddress());
|
consultantDetailDTO.setLatestLoginTime(source.getLatestLoginTime());
|
consultantDetailDTO.setSeniority(source.getSeniority());
|
consultantDetailDTO.setConcept(source.getConcept());
|
consultantDetailDTO.setAwards(source.getAward());
|
|
consultantDetailDTO.setImage("");
|
consultantDetailDTO.setSuitability(50);
|
consultantDetailDTO.setEvaluation(50);
|
consultantDetailDTO.setExpertises(splitStringWithChar(source.getExpertise()));
|
consultantDetailDTO.setExperiences(splitStringWithChar(source.getExperience()));
|
|
return consultantDetailDTO;
|
}
|
|
private List<String> splitStringWithChar(String source) {
|
return Arrays.stream(StringUtils.split(source, SPLIT_MASK))
|
.map(String::trim)
|
.collect(Collectors.toList());
|
}
|
}
|