保誠-保戶業務員媒合平台
wayne
2021-12-03 60c22a257f18ed9e482de8434850ec4688fd6707
Merge remote-tracking branch 'origin/master'

修改6個檔案
53 ■■■■■ 已變更過的檔案
PAMapp/assets/scss/vendors/elementUI/_messageBox.scss 5 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/assets/ts/api/share.ts 2 ●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/assets/ts/errorService.ts 7 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/pages/consultantLogin/index.vue 2 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/repository/SatisfactionRepository.java 7 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java 30 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
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);