package com.iformall.utils;

/**
 * 分账手续费
 * 
 * @author stormeye.wu
 * @email wuguoqiang@iformall.com
 * @date 2019年1月5月
 */
public class PayUtils {

    /**
     * getPayRate
     * @param payAmount 支付总钱数（分）
     * @param rate      万分之几
     * @return
     */
    public static int getPayRate(int payAmount, int rate, boolean isReal) {
        Double dBaseAmount = 5.0D * 1000 / rate;
        // 基础分 千分之6 83分
        if (isReal) {
            // 小于基础分，四舍五入
            Double dPayRate = 1.0D * payAmount * rate / 10000;
            long dChargeFee = Math.round(dPayRate);
            return Long.valueOf(dChargeFee).intValue();
        }
        else if(payAmount > dBaseAmount.intValue()) {
            // 大于基础分，不小于他的最小整数
            Double dChargeFee = Math.ceil(payAmount * 1.0D * rate / 10000);
            return dChargeFee.intValue();
        } else {
            // 小于基础分，四舍五入
            Double dPayRate = 1.0D * payAmount * rate / 10000;
            long dChargeFee = Math.round(dPayRate);
            return Long.valueOf(dChargeFee).intValue();
        }
    }

    /*
    public static void main(String[] args) {
        int iValue = getPayRate(600, 60, false);
        System.out.println(iValue);

        iValue = getPayRate(600, 20, true);
        System.out.println(iValue);
    }
    */

}
