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 splitStringWithChar(String source) { return Arrays.stream(StringUtils.split(source, SPLIT_MASK)) .map(String::trim) .collect(Collectors.toList()); } }