import { generateTySqlApiClient} from "../refs/nslib"
import { logger } from "mslib";





/**
 *获取规则配置
 * @date 2022-08-16 10:16:41
 * @author 侯洪莉
 */
class ChargingPileDal {

    /**
    * 获取使用规则配置信息
    * @param {*} parkId 
    * @param {string} pileId 充电桩appID
    * @param {*} opsConfig 统一平台配置
    */
    async getPileRule(parkId, pileId) {

        let sql = `
            select  
                id,
                name  as pileName,      -- 充电桩名称
                pileId,                 -- 充电桩ID
                isEnable,               -- 是否启用 0-禁用 1-启用
                discountSource,         -- 抵扣来源
                discountType,           -- 抵扣类型
                discountMethod,         -- 抵扣方法
                discountNumber,         -- 抵扣数量
                chargeTime,             -- 使用抵扣的最小充电时间要求
                onceMaxNum,             -- 单次停车抵扣次数上限
                dayMaxNum,              -- 单日停车抵扣次数上限
                onceMaxTime,            -- 单次停车抵扣时长上限
                onceMaxMoney,           -- 单次停车抵扣金额上限
                dayMaxTime,             -- 每日抵扣时长上限
                dayMaxMoney,            -- 每日抵扣金额上限
                isSpecialFeeRule,       -- 是否使用特殊规则
                carStyle                   -- 充电车辆类型
            from 
                t_${parkId}_ns_pile 
            where 
                isDelete  = 0 and isEnable = 1 and pileId='${pileId}'
            limit 1
        `;

        let sqlApiClient = generateTySqlApiClient(parkId);
        const res = await sqlApiClient.selectOne(sql);

        const info = res || null
        logger.info('规则配置',JSON.stringify(info))
        return info;
    }



    /**
     * 获取全局配置信息
     * 
     * @param {string}
     * @param {*} opsConfig 统一平台配置
     */
    async getPileConfig(parkId) {
        const session = '1103860'; //此值固定
        const sql = `
            select
            name, 
            value 
            from t_${parkId}_ns_pile_config where session='${session}';
        `
        let sqlApiClient = generateTySqlApiClient(parkId);
        const result = await sqlApiClient.list(sql);
        const info = result||[]
        logger.info('全局配置',JSON.stringify(info))
        let configInfo = {}
        if (info && info.length > 0) {
            for (let item of info) {
                Object.assign(configInfo,
                    {
                        [item.name]: item['value']
                    }
                )
            }
        }
        return configInfo;
    }




    

}

export { ChargingPileDal }