package com.kym.common.utils;

import com.alibaba.fastjson2.JSONObject;

/**
 * 互联互通平台转换工具
 *
 * @author skyline
 */
public class PlatformConvertUtil {

    public static String queryStartChargeParamsConvert(String platformName, String paramsJson, Integer balance) {
        // 如果是朗新平台，参数增加ChargingAmt（单位元），其他为amount（单位分）
        var json = JSONObject.parseObject(paramsJson);
        if ("EN_PLUS".equals(platformName)) {
            // EN+平台不做超消费控制，自行实现低于0.5元自动停止充电
            json.put("amount", balance - 50);
            return json.toJSONString();
        }
        if ("LONGSHINE".equals(platformName)) {
            // 朗新平台默认低于1元则下发停止充电指令，这里加0.5统一成低于0.5元则停止充电防止超金额消费（ChargingAmt单位是元）
            json.put("ChargingAmt", balance/100 + 0.5);
            return json.toJSONString();
        }
        return paramsJson;
    }


    /**
     * 将ConnectorID转化成本地格式
     *
     * @param connectorId
     * @return
     */
    public static String parse2LocalConnectorId(String connectorId) {
        if (connectorId.contains("_")) {
            return connectorId.replaceAll("_", "");
        }
        return connectorId;
    }

    /**
     * 转换成朗新格式的ConnectorID
     *
     * @param connectorId
     * @return
     */
    public static String convert2LongshineConnectorId(String connectorId) {
        // connectorId包含"_"并且"_"在倒数第二位
        if (connectorId.contains("_") && connectorId.indexOf("_") == connectorId.length() - 2) {
            // 在connectorId最后一位前添加字符"_"
            return connectorId;
        } else {
            return connectorId.substring(0, connectorId.length() - 1) + "_" + connectorId.substring(connectorId.length() - 1);
        }
    }

}
