package com.liquidnet.service.order.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 收钱吧参数转换工具类
 * <p>商城侧 SKU 单价、订单总价等使用「元」；调用收钱吧结算/退款等接口时需转为「分」。</p>
 * <p>收钱吧 queryMallProducts 等接口返回的 sku.price（Long）为「分」，落库/写 Redis 为「元」时请用 {@code com.liquidnet.common.third.sqb.util.SqbAmountUtils.fenToYuan}。</p>
 */

public class GoblinSqbConvertUtils {


    /**
     * 元转分 (BigDecimal -> Long)，用于结算条目、扩展单 {@code amount} 等与收钱吧对齐
     *
     * @param amount 元
     * @return 分
     */
    public static Long yuanToFen(BigDecimal amount) {
        if (amount == null) {
            return 0L;
        }
        // 乘以 100 并设置四舍五入，确保转换后的精度
        return amount.multiply(new BigDecimal("100"))
                .setScale(0, RoundingMode.HALF_UP)
                .longValue();
    }

}
