From 6dd264601727f2e7ae70e5caa99f137fdad6546c Mon Sep 17 00:00:00 2001 From: wayne <wayne8692wayne8692@gmail.com> Date: 星期二, 30 十一月 2021 19:45:31 +0800 Subject: [PATCH] [add] 【todo 131189】新增嚴選配對年資篩選功能 --- pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java | 11 +++++ pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java | 6 +- pamapi/src/doc/顧問API/嚴選配對.txt | 2 pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java | 7 ++- pamapi/src/main/java/com/pollex/pam/enums/SeniorityQueryEnum.java | 7 +++ pamapi/src/doc/sql/20211130_w.sql | 16 ++++++++ pamapi/src/main/java/com/pollex/pam/domain/Consultant.java | 33 +++++++++++++--- 7 files changed, 68 insertions(+), 14 deletions(-) diff --git a/pamapi/src/doc/sql/20211130_w.sql b/pamapi/src/doc/sql/20211130_w.sql new file mode 100644 index 0000000..2fe4809 --- /dev/null +++ b/pamapi/src/doc/sql/20211130_w.sql @@ -0,0 +1,16 @@ +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; diff --git "a/pamapi/src/doc/\351\241\247\345\225\217API/\345\232\264\351\201\270\351\205\215\345\260\215.txt" "b/pamapi/src/doc/\351\241\247\345\225\217API/\345\232\264\351\201\270\351\205\215\345\260\215.txt" index aad2277..9401136 100644 --- "a/pamapi/src/doc/\351\241\247\345\225\217API/\345\232\264\351\201\270\351\205\215\345\260\215.txt" +++ "b/pamapi/src/doc/\351\241\247\345\225\217API/\345\232\264\351\201\270\351\205\215\345\260\215.txt" @@ -8,7 +8,7 @@ "area":"獢��", "requirements": ["�摨瑁����","靽�瑼�/閬��"], "otherRequirement": "���", - "seniority":"鞈楛", + "seniority": // "鞈楛"撣�"SENIOR"��"撟渲��"撣�"YOUNG"��"銝��"撣�"UNLIMITED" "popularTags":["��","憭梯","����"], "otherPopularTags":"���", } diff --git a/pamapi/src/main/java/com/pollex/pam/domain/Consultant.java b/pamapi/src/main/java/com/pollex/pam/domain/Consultant.java index 890a849..60fcbf9 100644 --- a/pamapi/src/main/java/com/pollex/pam/domain/Consultant.java +++ b/pamapi/src/main/java/com/pollex/pam/domain/Consultant.java @@ -50,8 +50,11 @@ @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; @@ -164,12 +167,27 @@ 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() { @@ -227,7 +245,8 @@ ", gender=" + gender + ", phoneNumber='" + phoneNumber + '\'' + ", companyAddress='" + companyAddress + '\'' + - ", seniority='" + seniority + '\'' + + ", seniorityYear='" + seniorityYear + '\'' + + ", seniorityMonth='" + seniorityMonth + '\'' + ", concept='" + concept + '\'' + ", experience='" + experience + '\'' + ", award='" + award + '\'' + diff --git a/pamapi/src/main/java/com/pollex/pam/enums/SeniorityQueryEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/SeniorityQueryEnum.java new file mode 100644 index 0000000..8cf8576 --- /dev/null +++ b/pamapi/src/main/java/com/pollex/pam/enums/SeniorityQueryEnum.java @@ -0,0 +1,7 @@ +package com.pollex.pam.enums; + +public enum SeniorityQueryEnum { + SENIOR, + YOUNG, + UNLIMITED +} diff --git a/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java b/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java index 33ac5cf..3163411 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java +++ b/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java @@ -9,6 +9,8 @@ import javax.persistence.criteria.*; import java.util.*; +import static com.pollex.pam.enums.SeniorityQueryEnum.*; + public class ConsultantQuerySpec { private ConsultantQuerySpec() { } @@ -58,6 +60,15 @@ 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"), "%��%"); diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java b/pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java index a62c19d..fc83599 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java +++ b/pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java @@ -1,6 +1,7 @@ package com.pollex.pam.service.dto; import com.pollex.pam.enums.GenderEnum; +import com.pollex.pam.enums.SeniorityQueryEnum; import java.util.List; @@ -12,7 +13,7 @@ private String area; private List<String> requirements; private String otherRequirement; - private String seniority; + private SeniorityQueryEnum seniority; private List<String> popularTags; private String otherPopularTags; @@ -64,11 +65,11 @@ this.otherRequirement = otherRequirement; } - public String getSeniority() { + public SeniorityQueryEnum getSeniority() { return seniority; } - public void setSeniority(String seniority) { + public void setSeniority(SeniorityQueryEnum seniority) { this.seniority = seniority; } diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java index ea9842b..8a8d485 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java +++ b/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java @@ -17,7 +17,7 @@ @Service public class ConsultantMapper { - private final static Character SPLIT_MASK = ','; + private static final Character SPLIT_MASK = ','; @Autowired AppointmentService appointmentService; @@ -27,7 +27,7 @@ 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()); @@ -72,7 +72,7 @@ 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()); -- Gitblit v1.8.0