package com.mortals.xhx.base.system.param.service;


import com.mortals.framework.service.ICRUDCacheService;
import com.mortals.framework.service.IParamService;
import com.mortals.xhx.base.system.param.model.ParamEntity;

import java.util.List;
import java.util.Map;

/**
 * <p>Title: 参数信息</p>
 * <p>Description: ParamService service接口 </p>
 * <p>Copyright: Copyright &reg;  </p>
 * <p>Company: </p>
 * @author
 * @version 1.0.0
 */

public interface ParamService extends ICRUDCacheService<ParamEntity, Long>, IParamService {
	
	/**
	 * 通过Key获取参数值
	 * @param key
	 * @return
	 */
    String getValueByKey(String key);

	/**
	 * 通过firstOrganize获取配置参数key-value
	 *
	 * @param firstOrganize
	 * @param excludeParamKeys 需要过虑掉的paramKey
	 * @return
	 */
	Map<String, String> getParamByFirstOrganize(String firstOrganize, String... excludeParamKeys);


	/**
	 * 通过firstOrganize获取配置参数key-value
	 *
	 * @param firstOrganize
	 * @param excludeParamKeys 需要过虑掉的paramKey
	 * @return
	 */
	Map<String, String> getParamBySecondOrganize(String firstOrganize,String secondOrganize, String... excludeParamKeys);


	/**
	 * 获取热词列表
	 * @return
	 */
	String getHotWords();
	/**
	 * 设置热词列表
	 * @return
	 */
	void setHotWords(String value);

	/**
	 * 空白打印材料展示数量
	 * @return
	 */
	int getPrintDisplayQuantity();
	/**
	 * 设置空白打印材料展示数量
	 * @return
	 */
	void setPrintDisplayQuantity(int value);

	/**
	 * 通过Key设置参数值 value
	 * @param key
	 * @param value
	 * @return
	 */
	void setValueByKey(String key,String value);

}