//查询卡列表
List<UmsCardTemp> cardList = umsCardTempMapper.list(null);
Map<Integer, BigDecimal> cardListMap = cardList.stream().collect(Collectors.toMap(UmsCardTemp::getId, UmsCardTemp::getPrice));
//查询券列表
List<UmsCouponTemp> couponList = umsCouponTempMapper.list(null);
Map<Integer, BigDecimal> couponListMap = couponList.stream().collect(Collectors.toMap(UmsCouponTemp::getId, UmsCouponTemp::getPrice));
//查询套餐列表
List<UmsPackageTemp> packageList = umsPackageTempMapper.list(null);
Map<Integer, BigDecimal> packageListMap = packageList.stream().collect(Collectors.toMap(UmsPackageTemp::getId, UmsPackageTemp::getPrice));
//查询点列表
List<UmsPointTemp> pointList = umsPointTempMapper.list(null);
Map<Integer, BigDecimal> pointListMap = pointList.stream().collect(Collectors.toMap(UmsPointTemp::getId, UmsPointTemp::getRate));
for (UmsGiveLogVo umsGiveLogVo : listVo) {
//类型 0余额,1卡,2券,3点,4套餐
Short optionType = umsGiveLogVo.getOptionType();
//余额
if (optionType.equals(Constants.ZERO.shortValue())) {
umsGiveLogVo.setPrice(umsGiveLogVo.getQuantity());
}
//卡
if (optionType.equals(Constants.ONE.shortValue())){
umsGiveLogVo.setPrice(cardListMap.getOrDefault(umsGiveLogVo.getTargetId(),BigDecimal.ZERO));
}
//券
if (optionType.equals(Constants.TWO.shortValue())){
umsGiveLogVo.setPrice(couponListMap.getOrDefault(umsGiveLogVo.getTargetId(),BigDecimal.ZERO));
}
//点
if (optionType.equals(Constants.THREE.shortValue())){
umsGiveLogVo.setPrice(pointListMap.getOrDefault(umsGiveLogVo.getTargetId(),BigDecimal.ZERO).multiply(umsGiveLogVo.getQuantity()));
}
//套餐
if (optionType.equals(Constants.FOUR.shortValue())){
umsGiveLogVo.setPrice(packageListMap.getOrDefault(umsGiveLogVo.getTargetId(),BigDecimal.ZERO));
}
}
set多表的值为什么不尝试一下map呢?
于 2023-08-15 17:48:06 首次发布