package cn.hmsoft.frame.util;

import java.util.HashMap;
import java.util.Map;

import cn.hmsoft.application.AppHelper;
import cn.hmsoft.application.SpringHelper;
import cn.hmsoft.frame.data.model.FrameParam;
import cn.hmsoft.helper.BeanHelper;
import cn.hmsoft.helper.StringHelper;

/**************************
 * Frame参数定义
 * 
 * @author: YeFeng
 * @date: 2015-10-19 18:15:40
 * @version: 1.1.0
 * @email: revisit@126.com
 * @Company: www.hmsoft.cn
 */
public abstract class FrameParamUtil extends AppHelper {

	/*********************
	 * SESSION参数：操作员
	 */
	public static final String SessionName_FrameOptr = "SessionName_FrameOptr";
	/*********************
	 * SESSION参数：随机码
	 */
	public static final String SessionName_RandomCode = "SessionName_RandomCode";
	/******************
	 * 重载系统参数的密码
	 */
	public static String ParamReloadPasswd = "hmsoft2018";
	/*******************
	 * 公司全称
	 */
	public static String FrameCompanyName = "武汉合木网络科技有限公司";
	/**********************
	 * 公司简称
	 */
	public static String FrameName = "武汉合木";
	/****************
	 * 后台系统抬头
	 */
	public static String FrameTitle = "后台管理-武汉合木网络科技有限公司";
	/*********************
	 * 后台登录的title
	 */
	public static String FrameLoginTitle = "请登录";
	/******************
	 * 登录是否启用验证码
	 */
	public static boolean FrameLoginValidCode = false;
	/****************
	 * 版权信息
	 */
	public static String FrameCopyRight = "武汉合木";

	/********************
	 * 系统全局最多允许的线程数量
	 */
	public static int FrameThreadGobalMax = 0;
	/********************
	 * 单个用户最多允许的线程数量
	 */
	public static int FrameThreadOptrMax = 0;
	
	public static void ReloadFrameParams() {
		Class<?> clazz = null;
		if (StringHelper.isEmpty(FrameParamUtil.AppParamUtil))
			return;
		// Class<?> clazz = null;
		try {
			clazz = Class.forName(FrameParamUtil.AppParamUtil);
		} catch (ClassNotFoundException e) {
			return;
		}
		ReloadFrameParams(clazz);
	}

	public static void ReloadFrameParams(Class<?> clazz) {
		final Map<String, Object> paramMap = new HashMap<String, Object>();
		for (FrameParam t : SpringHelper.AppGobalDao.all(FrameParam.class))
			paramMap.put(t.getParam_name(), t.getParam_value());
		synchronized (FrameParamUtil.class) {
			BeanHelper.setStaticFields(clazz, paramMap);
		}
	}
}
