package com.nuvole.util;
|
|
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.StrUtil;
|
|
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<String, Long> getDiscount(long totalMoney, String discount) {
|
if (StrUtil.isBlank(discount)) {
|
return null;
|
}
|
HashMap<String, Long> 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;
|
}
|
|
}
|