保誠-保戶業務員媒合平台
wayne
2021-11-30 6dd264601727f2e7ae70e5caa99f137fdad6546c
[add] 【todo 131189】新增嚴選配對年資篩選功能

修改5個檔案
新增2個檔案
82 ■■■■ 已變更過的檔案
pamapi/src/doc/sql/20211130_w.sql 16 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/doc/顧問API/嚴選配對.txt 2 ●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/domain/Consultant.java 33 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/enums/SeniorityQueryEnum.java 7 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java 11 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java 7 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java 6 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/doc/sql/20211130_w.sql
¤ñ¹ï·sÀÉ®×
@@ -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;
pamapi/src/doc/ÅU°ÝAPI/ÄY¿ï°t¹ï.txt
@@ -8,7 +8,7 @@
    "area":"桃園",
    "requirements": ["健康與保障","保單健檢/規劃"],
    "otherRequirement": "長照險",
    "seniority":"資深",
    "seniority":        // "資深"帶"SENIOR"、"年輕"帶"YOUNG"、"不限"帶"UNLIMITED"
    "popularTags":["防疫","失能","防癌"],
    "otherPopularTags":"旅行險",
}
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 + '\'' +
pamapi/src/main/java/com/pollex/pam/enums/SeniorityQueryEnum.java
¤ñ¹ï·sÀÉ®×
@@ -0,0 +1,7 @@
package com.pollex.pam.enums;
public enum SeniorityQueryEnum {
    SENIOR,
    YOUNG,
    UNLIMITED
}
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"), "%全台%");
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;
    }
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());