[add] 【todo 131189】新增嚴選配對年資篩選功能
¤ñ¹ï·sÀÉ®× |
| | |
| | | ALTER TABLE omo.consultant ADD seniority_year int4 NULL; |
| | | ALTER TABLE omo.consultant ADD seniority_month int4 NULL; |
| | | |
| | | -- Auto-generated SQL script #202111301732 |
| | | UPDATE omo.consultant SET seniority_year=10,seniority_month=0 WHERE agent_no='AGAM11249699'; |
| | | UPDATE omo.consultant SET seniority_year=22,seniority_month=8 WHERE agent_no='J149388015'; |
| | | UPDATE omo.consultant SET seniority_year=15,seniority_month=9 WHERE agent_no='X147309614'; |
| | | UPDATE omo.consultant SET seniority_year=3,seniority_month=0 WHERE agent_no='A183619275'; |
| | | UPDATE omo.consultant SET seniority_year=1,seniority_month=0 WHERE agent_no='AG0101234567'; |
| | | UPDATE omo.consultant SET seniority_year=30,seniority_month=8 WHERE agent_no='B282677963'; |
| | | UPDATE omo.consultant SET seniority_year=20,seniority_month=3 WHERE agent_no='D265260662'; |
| | | UPDATE omo.consultant SET seniority_year=38,seniority_month=0 WHERE agent_no='R221444250'; |
| | | UPDATE omo.consultant SET seniority_year=26,seniority_month=10 WHERE agent_no='AG0109051204'; |
| | | UPDATE omo.consultant SET seniority_year=17,seniority_month=1 WHERE agent_no='Z152717443'; |
| | | |
| | | ALTER TABLE omo.consultant DROP COLUMN seniority; |
| | |
| | | "area":"æ¡å", |
| | | "requirements": ["å¥åº·èä¿é","ä¿å®å¥æª¢/è¦å"], |
| | | "otherRequirement": "é·ç
§éª", |
| | | "seniority":"è³æ·±", |
| | | "seniority": // "è³æ·±"帶"SENIOR"ã"å¹´è¼"帶"YOUNG"ã"ä¸é"帶"UNLIMITED" |
| | | "popularTags":["é²ç«","失è½","é²ç"], |
| | | "otherPopularTags":"æ
è¡éª", |
| | | } |
| | |
| | | @Column(name = "company_address") |
| | | private String companyAddress; |
| | | |
| | | @Column(name = "seniority") |
| | | private String seniority; |
| | | @Column(name = "seniority_year") |
| | | private Long seniorityYear; |
| | | |
| | | @Column(name = "seniority_month") |
| | | private Long seniorityMonth; |
| | | |
| | | @Column(name = "concept") |
| | | private String concept; |
| | |
| | | companyAddress = companyAddress; |
| | | } |
| | | |
| | | public String getSeniority() { |
| | | return seniority; |
| | | public Long getSeniorityYear() { |
| | | return seniorityYear; |
| | | } |
| | | |
| | | public void setSeniority(String seniority) { |
| | | this.seniority = seniority; |
| | | public void setSeniorityYear(Long seniorityYear) { |
| | | this.seniorityYear = seniorityYear; |
| | | } |
| | | |
| | | public Long getSeniorityMonth() { |
| | | return seniorityMonth; |
| | | } |
| | | |
| | | public void setSeniorityMonth(Long seniorityMonth) { |
| | | this.seniorityMonth = seniorityMonth; |
| | | } |
| | | |
| | | public String getSeniorityDTOString() { |
| | | final String seniorityYearString = this.seniorityYear != 0 ? this.seniorityYear + " å¹´ " : ""; |
| | | final String seniorityMonthString = this.seniorityMonth != 0 ? this.seniorityMonth + " æ" : ""; |
| | | |
| | | return seniorityYearString + seniorityMonthString; |
| | | } |
| | | |
| | | public String getConcept() { |
| | |
| | | ", gender=" + gender + |
| | | ", phoneNumber='" + phoneNumber + '\'' + |
| | | ", companyAddress='" + companyAddress + '\'' + |
| | | ", seniority='" + seniority + '\'' + |
| | | ", seniorityYear='" + seniorityYear + '\'' + |
| | | ", seniorityMonth='" + seniorityMonth + '\'' + |
| | | ", concept='" + concept + '\'' + |
| | | ", experience='" + experience + '\'' + |
| | | ", award='" + award + '\'' + |
¤ñ¹ï·sÀÉ®× |
| | |
| | | package com.pollex.pam.enums; |
| | | |
| | | public enum SeniorityQueryEnum { |
| | | SENIOR, |
| | | YOUNG, |
| | | UNLIMITED |
| | | } |
| | |
| | | import javax.persistence.criteria.*; |
| | | import java.util.*; |
| | | |
| | | import static com.pollex.pam.enums.SeniorityQueryEnum.*; |
| | | |
| | | public class ConsultantQuerySpec { |
| | | private ConsultantQuerySpec() { |
| | | } |
| | |
| | | set.add(criteriaBuilder.greaterThanOrEqualTo(root.get("avgScore"), param.getAvgScore().intValue())); |
| | | } |
| | | |
| | | if(Objects.nonNull(param.getSeniority()) && param.getSeniority() != UNLIMITED) { |
| | | if(param.getSeniority() == YOUNG) { |
| | | set.add(criteriaBuilder.lessThanOrEqualTo(root.get("seniorityYear"), 5)); |
| | | } |
| | | else if(param.getSeniority() == SENIOR) { |
| | | set.add(criteriaBuilder.greaterThan(root.get("seniorityYear"), 5)); |
| | | } |
| | | } |
| | | |
| | | if(StringUtils.isNotEmpty(param.getArea())) { |
| | | Predicate predicate1 = criteriaBuilder.like(root.get("serveArea"), "%" + param.getArea() + "%"); |
| | | Predicate predicate2 = criteriaBuilder.like(root.get("serveArea"), "%å
¨å°%"); |
| | |
| | | package com.pollex.pam.service.dto; |
| | | |
| | | import com.pollex.pam.enums.GenderEnum; |
| | | import com.pollex.pam.enums.SeniorityQueryEnum; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | private String area; |
| | | private List<String> requirements; |
| | | private String otherRequirement; |
| | | private String seniority; |
| | | private SeniorityQueryEnum seniority; |
| | | private List<String> popularTags; |
| | | private String otherPopularTags; |
| | | |
| | |
| | | this.otherRequirement = otherRequirement; |
| | | } |
| | | |
| | | public String getSeniority() { |
| | | public SeniorityQueryEnum getSeniority() { |
| | | return seniority; |
| | | } |
| | | |
| | | public void setSeniority(String seniority) { |
| | | public void setSeniority(SeniorityQueryEnum seniority) { |
| | | this.seniority = seniority; |
| | | } |
| | | |
| | |
| | | @Service |
| | | public class ConsultantMapper { |
| | | |
| | | private final static Character SPLIT_MASK = ','; |
| | | private static final Character SPLIT_MASK = ','; |
| | | |
| | | @Autowired |
| | | AppointmentService appointmentService; |
| | |
| | | consultantDTO.setAgentNo(source.getAgentNo()); |
| | | consultantDTO.setName(source.getName()); |
| | | consultantDTO.setAvgScore(source.getAvgScore()); |
| | | consultantDTO.setSeniority(source.getSeniority()); |
| | | consultantDTO.setSeniority(source.getSeniorityDTOString()); |
| | | consultantDTO.setExpertise(splitStringWithChar(source.getExpertise())); |
| | | consultantDTO.setImg(source.getPhotoPath()); |
| | | consultantDTO.setRole(source.getRole()); |
| | |
| | | consultantDetailDTO.setPhoneNumber(source.getPhoneNumber()); |
| | | consultantDetailDTO.setServeArea(source.getServeArea()); |
| | | consultantDetailDTO.setCompanyAddress(source.getCompanyAddress()); |
| | | consultantDetailDTO.setSeniority(source.getSeniority()); |
| | | consultantDetailDTO.setSeniority(source.getSeniorityDTOString()); |
| | | consultantDetailDTO.setConcept(source.getConcept()); |
| | | consultantDetailDTO.setAwards(source.getAward()); |
| | | consultantDetailDTO.setImage(source.getPhotoPath()); |