2024 / 7 / 19
帮我用java写个工具类
入参:Float unitPrice 、VehicleGoodsInfo对象、儿童票折扣 childrenTicketDiscount
要求:计算商品单价 goodUnitPrice,计算商品总价goodTotalPrice
规则:
如果childTicket为true的时候,goodUnitPrice为 unitPrice 乘以 childrenTicketDiscount,然后总价为goodUnitPrice乘以goodQuantity
如果childTicket为false的时候,goodUnitPrice为unitPrice,总价为goodUnitPrice 乘以 (goodQuantity-freeTicketPassengerList.size())
工具类,必须写清楚注释
帮我生成完善的测试用例,也添加好注释
package com.beaman.ablog.web.entity.wj.chain.vehicle.req; import java.math.BigDecimal; /** * 计算商品单价和总价的工具类 */ public class GoodsPriceCalculator { /** * 根据儿童票折扣规则计算商品单价和总价 * * @param unitPrice 商品的基础单价 * @param vehicleGoodsInfo 包含商品详情的 VehicleGoodsInfo 对象 * @param childrenTicketDiscount 儿童票折扣率 */ public static void calculatePrices(Float unitPrice, VehicleGoodsInfo vehicleGoodsInfo, Float childrenTicketDiscount) { BigDecimal goodUnitPrice; BigDecimal goodTotalPrice; // 如果是儿童票,则商品单价为基础单价乘以儿童票折扣率 if (vehicleGoodsInfo.getChildTicket()) { goodUnitPrice = BigDecimal.valueOf(unitPrice * childrenTicketDiscount); } else { // 如果不是儿童票,则商品单价为基础单价 goodUnitPrice = BigDecimal.valueOf(unitPrice); } int quantity = vehicleGoodsInfo.getGoodQuantity(); // 计算需支付的商品数量,即总数量减去免票乘客数量 int nonFreeQuantity = quantity - vehicleGoodsInfo.getNumberToFree(); // 计算商品总价 goodTotalPrice = goodUnitPrice.multiply(BigDecimal.valueOf(nonFreeQuantity)); // 设置商品单价和总价 vehicleGoodsInfo.setGoodUnitPrice(goodUnitPrice); vehicleGoodsInfo.setGoodTotalPrice(goodTotalPrice); } }