PAMapp/assets/scss/vendors/elementUI/_messageBox.scss | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/api/share.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/errorService.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/pages/consultantLogin/index.vue | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
pamapi/src/main/java/com/pollex/pam/repository/SatisfactionRepository.java | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 |
PAMapp/assets/scss/vendors/elementUI/_messageBox.scss
@@ -18,7 +18,9 @@ } .message-content{ max-height: 150px; overflow: auto; max-width: 100%; word-wrap: break-word; overflow-y: auto; margin-top: 10px; color: $PRIMARY_BLACK; letter-spacing: 2px; @@ -27,6 +29,7 @@ text-align: center; font-size: 20px; font-weight: bolder; line-height: 1.5; color: $PRIMARY_BLACK; } } PAMapp/assets/ts/api/share.ts
@@ -48,7 +48,7 @@ switch (error.response.status) { case 401: Promise.all([ErrorMessageBox('登入逾時'),window.$nuxt.$store.dispatch('localStorage/actionStorageClear')]).then(()=>{ location.href='/'; _.isEqual(window.$nuxt.$route.name, 'index') ? location.reload() : window.$nuxt.$router.push('/'); }); break; PAMapp/assets/ts/errorService.ts
@@ -1,5 +1,6 @@ import { MessageBox } from 'element-ui'; import { MessageBoxData } from 'element-ui/types/message-box'; import * as _ from 'lodash'; export default function ErrorMessageBox(errorMsg?:string, errorObj?: any):Promise<MessageBoxData>{ errorMsg && console.info('Error: ', errorMsg); @@ -7,7 +8,7 @@ return MessageBox({ message: errorMsg ? errorMsg ? `${breakTextByComma(errorMsg)}` : `<div class="message-header"> 系統發生錯誤: ${errorObj?.response?.status} </div> <div class="message-content">${errorObj?.response?.data?.detail}</div>`, dangerouslyUseHTMLString: true, @@ -18,3 +19,7 @@ closeOnClickModal:false, }); } // 暫時用逗號去斷行 function breakTextByComma(errorMsg:string):string{ return _.split(errorMsg,",").join('<br>'); } PAMapp/pages/consultantLogin/index.vue
@@ -117,6 +117,7 @@ this.loginWithConsultant() }else{ this.clearValue(); this.regenerateImgOfVerification(); ErrorMessageBox('驗證碼輸入錯誤'); } }); @@ -135,6 +136,7 @@ } private checkHttpErrorStatus(error:any):void{ this.clearValue(); this.regenerateImgOfVerification(); switch (error.response.status) { case 401: const errorMsg = error.response.data.detail; pamapi/src/main/java/com/pollex/pam/repository/SatisfactionRepository.java
@@ -4,6 +4,8 @@ import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import com.pollex.pam.domain.Satisfaction; @@ -16,4 +18,9 @@ List<Satisfaction> findByCustomerId(Long customerId); Optional<Satisfaction> findOneByAppointmentId(Long appointmentId); @Query(value = "SELECT avg(score) FROM satisfaction where agent_no=:agent_no" , nativeQuery = true) Float getAgentScoreAvg(@Param("agent_no") String agentNo); } pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java
@@ -1,5 +1,6 @@ package com.pollex.pam.service; import java.math.BigDecimal; import java.util.List; import java.util.Optional; @@ -8,7 +9,9 @@ import org.springframework.transaction.annotation.Transactional; import com.pollex.pam.domain.Appointment; import com.pollex.pam.domain.Consultant; import com.pollex.pam.domain.Satisfaction; import com.pollex.pam.repository.ConsultantRepository; import com.pollex.pam.repository.CustomerRepository; import com.pollex.pam.repository.SatisfactionRepository; import com.pollex.pam.service.dto.SatisfactionCustomerCreateDTO; @@ -35,11 +38,36 @@ @Autowired CustomerRepository customerRepository; @Autowired ConsultantRepository consultantRepository; public Satisfaction createSatisfaction(Satisfaction satisfaction) { return satisfactionRepository.save(satisfaction); satisfaction = satisfactionRepository.save(satisfaction); setConsultantAvgScore(satisfaction); return satisfaction; } private void setConsultantAvgScore(Satisfaction satisfaction) { float avgScore = getAgentAvgScore(satisfaction); Consultant consultant = consultantRepository.findOneByAgentNo(satisfaction.getAgentNo()) .get(); consultant.setAvgScore(avgScore); consultantRepository.save(consultant); } private float getAgentAvgScore(Satisfaction satisfaction) { Float avgScore = satisfactionRepository.getAgentScoreAvg(satisfaction.getAgentNo()); BigDecimal bigDecimal = new BigDecimal(avgScore); return avgScore = bigDecimal.setScale(1,BigDecimal.ROUND_HALF_UP).floatValue(); } public Satisfaction createSatisfaction(Appointment appointment) { Satisfaction satisfaction = appointmentMapper.toSatisfaction(appointment); return createSatisfaction(satisfaction);