|
@@ -66,13 +66,17 @@ public class EvaluateServiceImpl extends ServiceImpl<EvaluateMapper, Evaluate> i
|
|
|
IPage<FindEvaluateResponseDTO> findEvaluateResponseDTOIPage=page;
|
|
|
List<String> coursesIds = new ArrayList<>();
|
|
|
BigDecimal averageScore =BigDecimal.valueOf(0).setScale(1 , RoundingMode.DOWN);
|
|
|
- Long scoreNum =0L;
|
|
|
- Long scoreSum =0L;
|
|
|
+ Long scoreNum =0L;//评论数
|
|
|
+ Long scoreSum =0L;//总评分
|
|
|
+ Long goodScoreNum =0L;//好评数
|
|
|
+ long applauseRate = 0L;
|
|
|
if (StringUtils.isNotEmpty(findEvaluateDTO.getSiteId())){
|
|
|
findEvaluateResponseDTOIPage = evaluateMapper.findBySiteId(page,findEvaluateDTO.getSiteId());
|
|
|
scoreSum = evaluateMapper.findByAverageScore(findEvaluateDTO.getSiteId());
|
|
|
scoreNum = evaluateMapper.findByScoreNum(findEvaluateDTO.getSiteId());
|
|
|
+ goodScoreNum = evaluateMapper.findByGoodScoreNum(findEvaluateDTO.getSiteId());
|
|
|
averageScore=calculateAverage(scoreSum,scoreNum);
|
|
|
+ applauseRate = goodScoreNumRate(goodScoreNum, scoreNum);
|
|
|
} else if (StringUtils.isNotEmpty(findEvaluateDTO.getInstructorId())) {
|
|
|
coursesIds = appCoursesMapper.findByInstructorId(findEvaluateDTO.getInstructorId());
|
|
|
} else if (StringUtils.isNotEmpty(findEvaluateDTO.getCoursesId())) {
|
|
@@ -82,10 +86,12 @@ public class EvaluateServiceImpl extends ServiceImpl<EvaluateMapper, Evaluate> i
|
|
|
findEvaluateResponseDTOIPage = evaluateMapper.findByCoursesId(page,coursesIds);
|
|
|
scoreSum = evaluateMapper.findByAverageScoreByCoursesId(coursesIds);
|
|
|
scoreNum = evaluateMapper.findByScoreNumByCoursesId(coursesIds);
|
|
|
+ goodScoreNum = evaluateMapper.findByGoodScoreNumByCoursesId(coursesIds);
|
|
|
averageScore=calculateAverage(scoreSum,scoreNum);
|
|
|
+ applauseRate = goodScoreNumRate(goodScoreNum, scoreNum);
|
|
|
}
|
|
|
|
|
|
- return FindEvaluatePage.build(findEvaluateResponseDTOIPage, averageScore, scoreNum);
|
|
|
+ return FindEvaluatePage.build(findEvaluateResponseDTOIPage, averageScore, scoreNum,applauseRate);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -105,4 +111,10 @@ public class EvaluateServiceImpl extends ServiceImpl<EvaluateMapper, Evaluate> i
|
|
|
// 计算平均数,保留1位小数并四舍五入
|
|
|
return sum.divide(num, 1, RoundingMode.HALF_UP);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public static long goodScoreNumRate(Long goodScoreNum, Long scoreNum) {
|
|
|
+ // 计算平均数
|
|
|
+ return scoreNum == 0 ? 0 : (long) (goodScoreNum * 100.00 / scoreNum);
|
|
|
+ }
|
|
|
}
|