package com.ruoyi.ss.vip.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.ss.vipLevel.domain.enums.VipLevelLimitType;

/**
 * @author wjh
 * 2025/1/18
 */
public class VipUtil {

    /**
     * 获取从当前时间算起的下次重置时间
     */
    public static LocalDateTime getNextResetTime(LocalDateTime time, String limitType) {
        if (limitType == null || VipLevelLimitType.NONE.getType().equals(limitType)) {
            return null;
        }
        if (VipLevelLimitType.WEEK.getType().equals(limitType)) {
            // 获取下一个星期一
            return DateUtils.nextMonday(time);
        } else if (VipLevelLimitType.DAYS_30.getType().equals(limitType)) {
            // 获取30天后
            return time.plusDays(30);
        }
        return null;
    }


    /**
     * 计算折扣后的价格
     */
    public static BigDecimal calcDiscountAmount(BigDecimal discount, BigDecimal originalPrice) {
        if (discount == null || originalPrice == null) {
            return originalPrice;
        }
        return originalPrice.multiply(discount).divide(BigDecimal.valueOf(10), 2, RoundingMode.HALF_DOWN);
    }
}

