0ebd1e21a20c38c15e39eab2d93f211272f42c08.svn-base 5.7 KB
package yxy.timer.service.impl;

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

import yxy.timer.dao.YxySysParamaterDao;
import yxy.timer.dao.YxySysParamatersValueDao;
import yxy.timer.pojo.YxySysParamaters;
import yxy.timer.pojo.YxySysParamatersValue;
import yxy.timer.service.YxySysParamaterService;
/**
 * 程序名称:    	EspeedMail_时速邮箱
 * 程序版本:    	V1.0
 * 作    者:    	深圳市科飞时速网络技术有限公司(0755-88843776)
 * 版权所有:    	深圳市科飞时速网络技术有限公司
 * 技术支持:    	Tech@21gmail.com
 * 单元名称:     	控制参数Service实现类(营销游)
 * 开始时间:    	2013.12.09
 * 程 序 员:    	谢勇
 * 最后修改:    
 * 备    注:		如需修改请通知程序员    
 */
public class YxySysParamaterServiceImpl implements YxySysParamaterService{
	
	/**通过level查询控制参数*/
	public Map<String,String> findParamaterByLevel(int level,String loginid,String domain) throws Exception {
		//返回一个map集合
		Map<String,String> paraMap=new HashMap<String,String>();		
		//查询控制参数(所有level的默认参数)
		String parahql="from YxySysParamaters where owner_type="+level;
		List<YxySysParamaters> paras=yxysysparamaterdao.findByHql(parahql);
		if(level==1){//系统级
			for(int j=0;j<paras.size();j++){
				paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
			}
		}else if(level==2){//企业级
			//查询控制参数值(所有用户控制参数的配置值)
			String paravaluehql="from YxySysParamatersValue where company_domain='"+domain+"' and owner_type=2";
			List<YxySysParamatersValue> paraValue=yxysysparamatersvaluedao.findByHql(paravaluehql);
			//循环赋值
			int isexits=0;
			for(int j=0;j<paras.size();j++){
				isexits=0;
				if(paraValue.size()>0){
					our:for(int i=0;i<paraValue.size();i++){
						if(paras.get(j).getPara_id()==paraValue.get(i).getPara_id()){
							isexits++;
							if(paraValue.get(i).getPara_value()!=null||paraValue.get(i).getPara_value().equals("")){
								paraMap.put(paras.get(j).getPara_code(), paraValue.get(i).getPara_value());
							}else{
								paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
							}
							break our;
						}
					}
					if(isexits==0){
						paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
					}
				}else{
					paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
				}
			}
		}else if(level==4){//用户级
			//查询控制参数值(所有用户控制参数的配置值)
			String paravaluehql="from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and owner_type=4";
			List<YxySysParamatersValue> paraValue=yxysysparamatersvaluedao.findByHql(paravaluehql);
			//循环赋值
			int isexits=0;
			for(int j=0;j<paras.size();j++){
				isexits=0;
				if(paraValue.size()>0){
					our:for(int i=0;i<paraValue.size();i++){
						if(paras.get(j).getPara_id()==paraValue.get(i).getPara_id()){
							isexits++;
							if(paraValue.get(i).getPara_value()!=null||paraValue.get(i).getPara_value().equals("")){
								paraMap.put(paras.get(j).getPara_code(), paraValue.get(i).getPara_value());
							}
							break our;
						}
					}
					if(isexits==0){
						paraMap.put(paras.get(j).getPara_code(), paras.get(j).getDefault_value());
					}
				}
			}
		}
		
		return paraMap;
	}

	/**通过code查询控制参数,如果用户参数不存在则查企业控制参数,企业控制参数不存在则查询企业默认参数(用户级)*/
	public String findUserParamValue(String loginid,String domain,String usercode,String syscode)throws Exception{
		//根据code查询paraid
		String usercodehql="from YxySysParamaters where para_code='"+usercode+"'";
		List<YxySysParamaters> paramlist=yxysysparamaterdao.findByHql(usercodehql);
		int paramid=paramlist.get(0).getPara_id();
		//根据paramid查询值
		String paravaluehql="from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id="+paramid;
		List<YxySysParamatersValue> paramvlist=yxysysparamatersvaluedao.findByHql(paravaluehql);
		if(paramvlist.size()>0){
			return paramvlist.get(0).getPara_value();
		}else{
			//查询系统参数
			String syscodehql="from YxySysParamaters where para_code='"+syscode+"'";
			List<YxySysParamaters> sysparamlist=yxysysparamaterdao.findByHql(syscodehql);
			int sysparamid=sysparamlist.get(0).getPara_id();
			//根据paramid查询值
			String sysparavaluehql="from YxySysParamatersValue where owner_loginid='"+loginid+"' and company_domain='"+domain+"' and para_id="+sysparamid;
			List<YxySysParamatersValue> sysparamvlist=yxysysparamatersvaluedao.findByHql(sysparavaluehql);
			if(sysparamvlist.size()>0){
				return sysparamvlist.get(0).getPara_value();
			}else{
				return sysparamlist.get(0).getDefault_value();
			}
		}
	}
	
	
	/**查询用户总分配量*/
	public int findTolFenPeiCount(String loginid,String domain)throws Exception{
		String hql="select count(*) from YxySysParamatersValue where para_id=34 and owner_loginid='"+loginid+"' and company_domain='"+domain+"'";
		return yxysysparamatersvaluedao.findByHqlCount(hql);
	}
	
	private YxySysParamaterDao yxysysparamaterdao;
	private YxySysParamatersValueDao yxysysparamatersvaluedao;
	
	public YxySysParamaterDao getYxysysparamaterdao() {
		return yxysysparamaterdao;
	}
	public void setYxysysparamaterdao(YxySysParamaterDao yxysysparamaterdao) {
		this.yxysysparamaterdao = yxysysparamaterdao;
	}
	public YxySysParamatersValueDao getYxysysparamatersvaluedao() {
		return yxysysparamatersvaluedao;
	}
	public void setYxysysparamatersvaluedao(
			YxySysParamatersValueDao yxysysparamatersvaluedao) {
		this.yxysysparamatersvaluedao = yxysysparamatersvaluedao;
	}

	
	
}