package com.nuvole.util; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.NumberUtil; import org.apache.commons.lang.StringUtils; import java.util.HashMap; import java.util.Map; /** * @ClassName DiscountUtil * @Author cy * @Date 2023/5/25 * @Description * @Version 1.0 **/ public class DiscountUtil { /** * @param totalMoney 总金额 * @param discount 折扣 * @return */ public static Map getDiscount(long totalMoney, String discount) { if (StringUtils.isBlank(discount)) { return null; } HashMap map = new HashMap<>(); if ("10".equals(discount)) { map.put("disCountMoney", 0l); map.put("payMoney", totalMoney); return map; } Double disc = NumberUtil.div(Convert.toDouble(discount), Convert.toDouble(10)); //折扣 //折扣优惠后应付金额 Long payMoney = Convert.toLong(Math.ceil(NumberUtil.mul(Convert.toDouble(totalMoney), disc))); // 打折后金额(向上取整) // 优惠金额 Long disCountMoney = 0l; if (Convert.toDouble(totalMoney) >= payMoney) { disCountMoney = totalMoney - payMoney; } else { disCountMoney = totalMoney; payMoney = 0L; } // map.put("totalMoney", totalMoney); map.put("disCountMoney", disCountMoney); map.put("payMoney", payMoney); return map; } }