|
@@ -131,11 +131,20 @@ public class OrderServiceImpl implements IOrderService {
|
|
|
List<String> list = Arrays.asList(rulesId.split(","));
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
OrderVO.PreviewOrderPlaceGymnasiumChartered result = new OrderVO.PreviewOrderPlaceGymnasiumChartered();
|
|
|
- List<AppSitePriceRules> priceRules = appSitePriceRulesMapper.selectList(Wrappers.<AppSitePriceRules>lambdaQuery()
|
|
|
- .in(AppSitePriceRules::getId, rulesId));
|
|
|
+ List<AppSitePriceRules> priceRules = new ArrayList<>();
|
|
|
+ list.forEach(priceRule -> {
|
|
|
+ AppSitePriceRules appSitePriceRule = appSitePriceRulesMapper.selectById(priceRule);
|
|
|
+ priceRules.add(appSitePriceRule);
|
|
|
+ });
|
|
|
BigDecimal totalPrice = priceRules.stream()
|
|
|
.map(AppSitePriceRules::getSellingPrice)
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ // 格式化 totalPrice 和 subtotal 为两位小数
|
|
|
+ totalPrice = totalPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ String formattedTotalPrice = totalPrice.toString(); // 直接使用 toString() 保留两位小数
|
|
|
+ String formattedSubtotal = totalPrice.toString(); // 小计与总价相同
|
|
|
+ result.setTotalPrice(new BigDecimal(formattedTotalPrice)); // 设置格式化后的 totalPrice
|
|
|
+ result.setSubtotal(new BigDecimal(formattedSubtotal));
|
|
|
if (priceRules.isEmpty()) {
|
|
|
throw new IllegalArgumentException("未找到对应的价格规则");
|
|
|
}
|