package com.pollex.pam.service.mapper;
|
|
import com.pollex.pam.domain.Consultant;
|
import com.pollex.pam.service.dto.ConsultantDTO;
|
import com.pollex.pam.service.dto.ConsultantDetailDTO;
|
import com.pollex.pam.service.dto.CustomerFavoriteConsultantDTO;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class ConsultantMapper {
|
|
private static final Character SPLIT_MASK = ',';
|
|
public CustomerFavoriteConsultantDTO toCustomerFavoriteConsultantDto(Consultant source) {
|
CustomerFavoriteConsultantDTO consultantDTO = new CustomerFavoriteConsultantDTO();
|
consultantDTO.setAgentNo(source.getAgentNo());
|
consultantDTO.setName(source.getName());
|
consultantDTO.setAvgScore(source.getAvgScore());
|
consultantDTO.setSeniority(source.getSeniorityDTOString());
|
consultantDTO.setExpertise(splitStringWithChar(source.getExpertise()));
|
consultantDTO.setImg(source.getPhotoPath());
|
consultantDTO.setRole(source.getRole());
|
|
consultantDTO.setContactStatus(null);
|
consultantDTO.setUpdateTime(null);
|
|
return consultantDTO;
|
}
|
|
public ConsultantDTO toDto(Consultant source) {
|
ConsultantDTO consultantDTO = new ConsultantDTO();
|
consultantDTO.setAgentNo(source.getAgentNo());
|
consultantDTO.setName(source.getName());
|
consultantDTO.setAvgScore(source.getAvgScore());
|
consultantDTO.setSeniority(source.getSeniorityDTOString());
|
consultantDTO.setExpertise(splitStringWithChar(source.getExpertise()));
|
consultantDTO.setImg(source.getPhotoPath());
|
consultantDTO.setRole(source.getRole());
|
|
consultantDTO.setContactStatus(null);
|
consultantDTO.setUpdateTime(null);
|
// consultantDTO.setLatestAppointmentId(null);
|
|
return consultantDTO;
|
}
|
|
public ConsultantDetailDTO toDetailDto(Consultant source) {
|
ConsultantDetailDTO consultantDetailDTO = new ConsultantDetailDTO();
|
BeanUtils.copyProperties(source, 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.setSeniority(source.getSeniorityDTOString());
|
consultantDetailDTO.setConcept(source.getConcept());
|
consultantDetailDTO.setAwards(source.getAward());
|
consultantDetailDTO.setImg(source.getPhotoPath());
|
consultantDetailDTO.setExpertise(splitStringWithChar(source.getExpertise()));
|
consultantDetailDTO.setExperiences(source.getExperience());
|
|
// todo 決定匹配程度
|
consultantDetailDTO.setSuitability(50);
|
consultantDetailDTO.setEvaluation(50);
|
|
return consultantDetailDTO;
|
}
|
|
private List<String> splitStringWithChar(String source) {
|
return Arrays.stream(StringUtils.split(source, SPLIT_MASK))
|
.map(String::trim)
|
.collect(Collectors.toList());
|
}
|
}
|