|
@@ -37,6 +37,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
@@ -71,17 +72,34 @@ public class DetailServiceImpl implements IDetailService {
|
|
|
@Resource
|
|
|
private SysDictMapper sysDictMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private EvaluateMapper evaluateMapper;
|
|
|
+
|
|
|
@Autowired
|
|
|
private AppInsureMapper appInsureMapper;
|
|
|
@Autowired
|
|
|
InsurePriceMapper insurePriceMapper;
|
|
|
|
|
|
+ public static BigDecimal calculateAverage(Long scoreSum, Long scoreNum) {
|
|
|
+ if (scoreNum == 0L) {
|
|
|
+ return BigDecimal.valueOf(0).setScale(1 , RoundingMode.DOWN);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将分子和分母都转换为BigDecimal
|
|
|
+ BigDecimal sum = new BigDecimal(scoreSum);
|
|
|
+ BigDecimal num = new BigDecimal(scoreNum);
|
|
|
+
|
|
|
+ // 计算平均数,保留1位小数并四舍五入
|
|
|
+ return sum.divide(num, 1, RoundingMode.HALF_UP);
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public PlaceInfoVO getPlaceInfo(String id) {
|
|
|
AppSite appSite = appSiteMapper.selectById(id);
|
|
|
PlaceInfoVO placeInfo = appSiteMapper.getPlaceInfo(id);
|
|
|
-
|
|
|
+ long scoreNum = evaluateMapper.findByScoreNum(id);
|
|
|
+ long scoreSum = evaluateMapper.findByAverageScore(id);//评论总评分
|
|
|
+ placeInfo.setGoodRate(calculateAverage(scoreSum, scoreNum));
|
|
|
List<DictModel> dictModels = sysDictMapper.queryDictItemsByCode(FACILITY_INFO);
|
|
|
List<String> facilityInfo = new ArrayList<>();
|
|
|
if(null != placeInfo.getFacility()){
|