package com.mortals.xhx.feign.system.param;

import com.mortals.xhx.feign.IFeign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;

/**
 * @author karlhoo
 */
@FeignClient("${application.register.service-name:coops-manager}")
public interface IParamFeign extends IFeign {
    /**
     * 获取所有参数值
     * @return
     */
    @PostMapping("param/get/all/param/value")
    String getAllParamValue();
//
//    /**
//     * 获取参数值(如果数据库不存在该键值，则返回空串，如果存在，则返回相应值)
//     *
//     * @param key 键
//     * @return
//     */
//    @PostMapping("param/get/param/value/key")
//    String getParamValue(@RequestParam("key") String key);
//
//    /**
//     * 获取参数值（如果数据库不存在该键值，则返回传入的默认值，如果存在，则返回相应值）
//     *
//     * @param key          键
//     * @param defaultValue 默认值
//     * @return
//     */
//    @PostMapping("param/get/param/value/key/default")
//    String getParamValue(@RequestParam("key") String key, @RequestParam("defaultValue") String defaultValue);

//    /**
//     * 参数配置中是否包含指定键
//     *
//     * @param key
//     * @return
//     */
//    @PostMapping("param/contains/param/key")
//    boolean containsParamKey(@RequestParam("key") String key);
//
//    /**
//     * 获取参数配置信息
//     *
//     * @param key
//     * @return
//     */
//    @PostMapping("param/get/param/by/key")
//    IParam getParamByKey(@RequestParam("key") String key);
//
//    /**
//     * 获取int参数值(如果数据库不存在该键值，则返回空串，如果存在，且值可转换成int，则返回相应值，否则返回该键的默认值)
//     *
//     * @param key
//     * @return
//     */
//    @PostMapping("param/get/param/int/value/key")
//    int getParamIntValue(@RequestParam("key") String key);
//
//    /**
//     * 获取int参数值（如果数据库不存在该键值或该键对应的值不能转换成int时，则返回传入的默认值，如果存在，则返回相应值）
//     *
//     * @param key
//     * @param defaultValue
//     * @return
//     */
//    @PostMapping("param/get/param/int/value/key/default")
//    int getParamIntValue(@RequestParam("key") String key, @RequestParam("defaultValue") int defaultValue);
//
//    /**
//     * 获取long参数值(如果数据库不存在该键值，则返回空串，如果存在，且值可转换成long，则返回相应值，否则返回该键的默认值)
//     *
//     * @param key
//     * @return
//     */
//    @PostMapping("param/get/param/long/value/key")
//    long getParamLongValue(@RequestParam("key") String key);
//
//    /**
//     * 获取long参数值（如果数据库不存在该键值或该键对应的值不能转换成long时，则返回传入的默认值，如果存在，则返回相应值）
//     *
//     * @param key
//     * @param defaultValue
//     * @return
//     */
//    @PostMapping("param/get/param/long/value/key/default")
//    long getParamLongValue(@RequestParam("key") String key, @RequestParam("defaultValue") long defaultValue);
//
//    /**
//     * 获取boolean参数值(如果数据库不存在该键值，则返回空串，如果存在，且值可转换成boolean，则返回相应值，否则返回该键的默认值)
//     *
//     * @param key
//     * @return
//     */
//    @PostMapping("param/get/param/boolean/value/key")
//    boolean getParamBooleanValue(@RequestParam("key") String key);
//
//    /**
//     * 获取boolean参数值（如果数据库不存在该键值或该键对应的值不能转换成boolean时，则返回传入的默认值，如果存在，则返回相应值）
//     *
//     * @param key
//     * @param defaultValue
//     * @return
//     */
//    @PostMapping("param/get/param/boolean/value/key/default")
//    boolean getParamBooleanValue(@RequestParam("key") String key, @RequestParam("defaultValue") boolean defaultValue);
}
