[update] 服務地區恢復成用字串的方式給,並因匹配度改由後端做,因此把給全部顧問的api移除,繼續使用原快速篩選與嚴選配對的功能
| | |
| | | (å·²æ£ç¨ï¼å å¹é
度éä¿èæ¹å°ææé¡§åè³æçµ¦å端) |
| | | http post: http://localhost:8080/api/consultant/strictQuery |
| | | |
| | | request body: |
| | |
| | | (å·²æ£ç¨ï¼å å¹é
度éä¿èæ¹å°ææé¡§åè³æçµ¦å端) |
| | | http post: http://localhost:8080/api/consultant/fastQuery |
| | | |
| | | request body: |
| | |
| | | "avgScore" : 3.1, |
| | | "title" : "èç¶ç(DM)", |
| | | "phoneNumber" : "0987168787", |
| | | "serveArea" : ["æ°åå¸","å°åå¸"], |
| | | "serveArea" : "åæç¸£ãé«éå¸ã屿±ç¸£", |
| | | "companyAddress" : "è±è®ç¸£çéé®ä¸æ£è·¯30è9æ¨", |
| | | "latestLoginTime" : "2021-12-24T08:48:21.497Z", |
| | | "seniority" : "38 å¹´ ", |
| | |
| | | response body: |
| | | [ |
| | | { |
| | | "name": "å´å¯¨", |
| | | "agentNo": "R221444250", |
| | | "agentNo": "12345", |
| | | "name": "測試æ¨è¦æ¥åå¡", |
| | | "img": "", |
| | | "expertise": [ |
| | | "財åè¦å", |
| | | "è³ç¢è½ç§»" |
| | | ], |
| | | "avgScore": 4.7, |
| | | "contactStatus": null, |
| | | "updateTime": null, |
| | | "seniority": "4å¹´2åæ", |
| | | "role": "å°åä¿éªç¶ç´äºº", |
| | | "avgScore": 3.3, |
| | | "serveArea": [ |
| | | "å
¨å°" |
| | | ], |
| | | "seniority_year": 38, |
| | | "seniority_month": 0, |
| | | "expertise": [ |
| | | "å¥åº·èä¿é", |
| | | "å女æè²", |
| | | "è³ç¢è¦å", |
| | | "æ¨æ´»éä¼", |
| | | "ä¿å®å¥æª¢/è¦å", |
| | | "åç´
ä¿å®" |
| | | ], |
| | | "gender": "female", |
| | | "communicationStyle": "謹æ
å實ãæå¿«ä¸»åãèå¿å¾è½ãå¥è«é¢¨è¶£" |
| | | }, |
| | | { |
| | | "name": "å¬å¦¹", |
| | | "agentNo": "B282677963", |
| | | "role": "é åµä¿éªç¶ç´äºº", |
| | | "avgScore": 3.4, |
| | | "serveArea": [ |
| | | "åæç¸£", |
| | | "é«éå¸", |
| | | "屿±ç¸£" |
| | | ], |
| | | "seniority_year": 30, |
| | | "seniority_month": 8, |
| | | "expertise": [ |
| | | "å¥åº·èä¿é", |
| | | "å女æè²", |
| | | "è³ç¢è¦å", |
| | | "æ¨æ´»éä¼", |
| | | "ä¿å®å¥æª¢/è¦å", |
| | | "åç´
ä¿å®" |
| | | ], |
| | | "gender": "female", |
| | | "communicationStyle": "謹æ
å實ãæå¿«ä¸»åãèå¿å¾è½ãå¥è«é¢¨è¶£" |
| | | }, |
| | | { |
| | | "name": "ä¼å¤ å", |
| | | "agentNo": "Z152717443", |
| | | "role": "åæ³°ä¿éªç¶ç´äºº", |
| | | "avgScore": 3.7, |
| | | "serveArea": [ |
| | | "æ°åå¸", |
| | | "å®è縣", |
| | | "å°ä¸å¸" |
| | | ], |
| | | "seniority_year": 17, |
| | | "seniority_month": 1, |
| | | "expertise": [ |
| | | "å¥åº·èä¿é", |
| | | "å女æè²", |
| | | "è³ç¢è¦å", |
| | | "æ¨æ´»éä¼", |
| | | "ä¿å®å¥æª¢/è¦å", |
| | | "åç´
ä¿å®" |
| | | ], |
| | | "gender": "male", |
| | | "communicationStyle": "謹æ
å實ãèå¿å¾è½ãå¥è«é¢¨è¶£" |
| | | }, |
| | | { |
| | | "name": "å®éæ©", |
| | | "agentNo": "J149388015", |
| | | "role": "å¨çä¿éªç¶ç´äºº", |
| | | "avgScore": 4.6, |
| | | "serveArea": [ |
| | | "å°åå¸", |
| | | "屿±ç¸£" |
| | | ], |
| | | "seniority_year": 22, |
| | | "seniority_month": 8, |
| | | "expertise": [ |
| | | "å¥åº·èä¿é", |
| | | "å女æè²", |
| | | "è³ç¢è¦å", |
| | | "æ¨æ´»éä¼", |
| | | "ä¿å®å¥æª¢/è¦å", |
| | | "åç´
ä¿å®" |
| | | ], |
| | | "gender": "male", |
| | | "communicationStyle": "謹æ
å實ãæå¿«ä¸»åãèå¿å¾è½ãå¥è«é¢¨è¶£" |
| | | "new": false, |
| | | "latestAppointmentId": null |
| | | } |
| | | ] |
| | |
| | | "expertise":["å¥åº·èä¿é","å女æè²"], |
| | | "title":"æ¥åå°å¡ (SC)", |
| | | "role":"å°åä¿éªç¶ç´äºº", |
| | | "serveArea":["å°åå¸","屿±ç¸£"], |
| | | "serveArea":"å°åå¸ã屿±ç¸£", |
| | | "gender":"male", |
| | | "phoneNumber":"09123456789", |
| | | "companyAddress":"å®è縣äºçµéä¸èè·¯3è3æ¨", |
| | |
| | | .antMatchers("/api/eService/authenticate").permitAll() |
| | | .antMatchers("/api/account/reset-password/init").permitAll() |
| | | .antMatchers("/api/account/reset-password/finish").permitAll() |
| | | .antMatchers("/api/consultant/all").permitAll() |
| | | .antMatchers("/api/consultant/recommend").permitAll() |
| | | .antMatchers("/api/consultant/detail").permitAll() |
| | | .antMatchers("/api/consultant/fastQuery").permitAll() |
| | |
| | | .collect(Collectors.toList()); |
| | | } |
| | | |
| | | public List<ConsultantDTO> getAllConsultantList() { |
| | | return consultantRepository.findAll() |
| | | .stream() |
| | | .map(consultantMapper::toDto) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | |
| | | @Deprecated |
| | | public List<ConsultantDTO> strictQueryConsultant(StrictQueryConsultantParam param) { |
| | | return consultantRepository.findAll(ConsultantQuerySpec.getStrictQuerySpec(param)) |
| | | .stream() |
| | |
| | | .collect(Collectors.toList()); |
| | | } |
| | | |
| | | @Deprecated |
| | | public List<ConsultantDTO> fastQueryConsultant(FastQueryConsultantParam param) { |
| | | return consultantRepository.findAll(ConsultantQuerySpec.getFastQuerySpec(param)) |
| | | .stream() |
| | |
| | | package com.pollex.pam.service.dto; |
| | | |
| | | import com.pollex.pam.enums.GenderEnum; |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.pollex.pam.enums.ContactStatusEnum; |
| | | |
| | | import java.time.Instant; |
| | | import java.time.temporal.ChronoUnit; |
| | | import java.util.List; |
| | | |
| | | public class ConsultantDTO { |
| | | |
| | | private String name; |
| | | @JsonProperty("new") |
| | | private boolean newConsultant; |
| | | private String agentNo; |
| | | private String role; |
| | | private Float avgScore; |
| | | private List<String> serveArea; |
| | | private Long seniority_year; |
| | | private Long seniority_month; |
| | | private String name; |
| | | private String img; |
| | | private List<String> expertise; |
| | | private GenderEnum gender; |
| | | private String communicationStyle; |
| | | private Float avgScore; |
| | | private ContactStatusEnum contactStatus; |
| | | private Instant updateTime; |
| | | private String role; |
| | | private String seniority; |
| | | |
| | | public String getName() { |
| | | return name; |
| | | public boolean isNewConsultant() { |
| | | if(updateTime != null){ |
| | | Instant nowTimestamp = Instant.now(); |
| | | return ChronoUnit.DAYS.between(updateTime, nowTimestamp) < 3; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | return false; |
| | | } |
| | | |
| | | public String getAgentNo() { |
| | |
| | | this.agentNo = agentNo; |
| | | } |
| | | |
| | | public String getRole() { |
| | | return role; |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setRole(String role) { |
| | | this.role = role; |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public Float getAvgScore() { |
| | | return avgScore; |
| | | public String getImg() { |
| | | return img; |
| | | } |
| | | |
| | | public void setAvgScore(Float avgScore) { |
| | | this.avgScore = avgScore; |
| | | } |
| | | |
| | | public List<String> getServeArea() { |
| | | return serveArea; |
| | | } |
| | | |
| | | public void setServeArea(List<String> serveArea) { |
| | | this.serveArea = serveArea; |
| | | } |
| | | |
| | | public Long getSeniority_year() { |
| | | return seniority_year; |
| | | } |
| | | |
| | | public void setSeniority_year(Long seniority_year) { |
| | | this.seniority_year = seniority_year; |
| | | } |
| | | |
| | | public Long getSeniority_month() { |
| | | return seniority_month; |
| | | } |
| | | |
| | | public void setSeniority_month(Long seniority_month) { |
| | | this.seniority_month = seniority_month; |
| | | public void setImg(String img) { |
| | | this.img = img; |
| | | } |
| | | |
| | | public List<String> getExpertise() { |
| | |
| | | this.expertise = expertise; |
| | | } |
| | | |
| | | public GenderEnum getGender() { |
| | | return gender; |
| | | public Float getAvgScore() { |
| | | return avgScore; |
| | | } |
| | | |
| | | public void setGender(GenderEnum gender) { |
| | | this.gender = gender; |
| | | public void setAvgScore(Float avgScore) { |
| | | this.avgScore = avgScore; |
| | | } |
| | | |
| | | public String getCommunicationStyle() { |
| | | return communicationStyle; |
| | | public ContactStatusEnum getContactStatus() { |
| | | return contactStatus; |
| | | } |
| | | |
| | | public void setCommunicationStyle(String communicationStyle) { |
| | | this.communicationStyle = communicationStyle; |
| | | public void setContactStatus(ContactStatusEnum contactStatus) { |
| | | this.contactStatus = contactStatus; |
| | | } |
| | | |
| | | public Instant getUpdateTime() { |
| | | return updateTime; |
| | | } |
| | | |
| | | public void setUpdateTime(Instant updateTime) { |
| | | this.updateTime = updateTime; |
| | | } |
| | | |
| | | public String getRole() { |
| | | return role; |
| | | } |
| | | |
| | | public void setRole(String role) { |
| | | this.role = role; |
| | | } |
| | | |
| | | public String getSeniority() { |
| | | return seniority; |
| | | } |
| | | |
| | | public void setSeniority(String seniority) { |
| | | this.seniority = seniority; |
| | | } |
| | | |
| | | public void setNewConsultant(boolean newConsultant) { |
| | | this.newConsultant = newConsultant; |
| | | } |
| | | } |
| | |
| | | private String name; |
| | | private String agentNo; |
| | | private String role; |
| | | private String img; |
| | | private Float avgScore; |
| | | private String title; |
| | | private String phoneNumber; |
| | | private List<String> serveArea; |
| | | private String serveArea; |
| | | private String companyAddress; |
| | | private Instant latestLoginTime; |
| | | private String seniority; |
| | |
| | | this.role = role; |
| | | } |
| | | |
| | | public String getImg() { |
| | | return img; |
| | | } |
| | | |
| | | public void setImg(String img) { |
| | | this.img = img; |
| | | } |
| | | |
| | | public Float getAvgScore() { |
| | | return avgScore; |
| | | } |
| | |
| | | this.phoneNumber = phoneNumber; |
| | | } |
| | | |
| | | public List<String> getServeArea() { |
| | | public String getServeArea() { |
| | | return serveArea; |
| | | } |
| | | |
| | | public void setServeArea(List<String> serveArea) { |
| | | public void setServeArea(String serveArea) { |
| | | this.serveArea = serveArea; |
| | | } |
| | | |
| | |
| | | private List<String> expertise; |
| | | private String title; |
| | | private String role; |
| | | private List<String> serveArea; |
| | | private String serveArea; |
| | | private GenderEnum gender; |
| | | private String phoneNumber; |
| | | private String companyAddress; |
| | |
| | | public void setRole(String role) { |
| | | this.role = role; |
| | | } |
| | | public List<String> getServeArea() { |
| | | public String getServeArea() { |
| | | return serveArea; |
| | | } |
| | | public void setServeArea(List<String> serveArea) { |
| | | public void setServeArea(String serveArea) { |
| | | this.serveArea = serveArea; |
| | | } |
| | | public GenderEnum getGender() { |
| | |
| | | public void setAgentNo(String agentNo) { |
| | | this.agentNo = agentNo; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | target.setPhotoPath(FileUtil.toPath(source.getPhotoFileName(), applicationProperty.getFileFolderPath())); |
| | | String expertise = StringUtils.convertToString(source.getExpertise(), ","); |
| | | target.setExpertise(expertise); |
| | | |
| | | String serveArea = StringUtils.convertToString(source.getServeArea(), ","); |
| | | target.setServeArea(serveArea); |
| | | |
| | | target.setAward(source.getAwards()); |
| | | target.setExperience(source.getExperiences()); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | ConsultantDTO consultantDTO = new ConsultantDTO(); |
| | | consultantDTO.setAgentNo(source.getAgentNo()); |
| | | consultantDTO.setName(source.getName()); |
| | | consultantDTO.setRole(source.getRole()); |
| | | consultantDTO.setAvgScore(source.getAvgScore()); |
| | | consultantDTO.setServeArea(splitStringWithChar(source.getServeArea())); |
| | | consultantDTO.setSeniority_year(source.getSeniorityYear()); |
| | | consultantDTO.setSeniority_month(source.getSeniorityMonth()); |
| | | consultantDTO.setSeniority(source.getSeniorityDTOString()); |
| | | consultantDTO.setExpertise(splitStringWithChar(source.getExpertise())); |
| | | consultantDTO.setGender(source.getGender()); |
| | | consultantDTO.setCommunicationStyle(source.getCommunicationStyle()); |
| | | consultantDTO.setImg(source.getPhotoPath()); |
| | | consultantDTO.setRole(source.getRole()); |
| | | |
| | | consultantDTO.setContactStatus(null); |
| | | consultantDTO.setUpdateTime(null); |
| | | // consultantDTO.setLatestAppointmentId(null); |
| | | |
| | | return consultantDTO; |
| | | } |
| | |
| | | consultantDetailDTO.setAvgScore(source.getAvgScore()); |
| | | consultantDetailDTO.setTitle(source.getTitle()); |
| | | consultantDetailDTO.setPhoneNumber(source.getPhoneNumber()); |
| | | consultantDetailDTO.setServeArea(splitStringWithChar(source.getServeArea())); |
| | | 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()); |
| | | |
| | |
| | | return new ResponseEntity<>(myConsultants, HttpStatus.OK); |
| | | } |
| | | |
| | | @GetMapping("/all") |
| | | public ResponseEntity<List<ConsultantDTO>> getAllConsultantList() { |
| | | List<ConsultantDTO> myConsultants = consultantService.getAllConsultantList(); |
| | | return new ResponseEntity<>(myConsultants, HttpStatus.OK); |
| | | } |
| | | |
| | | @PostMapping("/favorite/view") |
| | | public ResponseEntity<Void> recordMyConsultantListView() { |
| | | consultantService.recordMyConsultantListView(); |
| | |
| | | return new ResponseEntity<>(HttpStatus.OK); |
| | | } |
| | | |
| | | @Deprecated |
| | | |
| | | @PostMapping("/strictQuery") |
| | | public ResponseEntity<List<ConsultantDTO>> strictQueryConsultant(@RequestBody StrictQueryConsultantParam param) { |
| | | List<ConsultantDTO> queryResult = consultantService.strictQueryConsultant(param); |
| | | return new ResponseEntity<>(queryResult, HttpStatus.OK); |
| | | } |
| | | @Deprecated |
| | | |
| | | @PostMapping("/fastQuery") |
| | | public ResponseEntity<List<ConsultantDTO>> fastQueryConsultant(@RequestBody FastQueryConsultantParam param) { |
| | | List<ConsultantDTO> queryResult = consultantService.fastQueryConsultant(param); |