package neu.integration.ctic.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.annotation.Resource;

import neu.integration.base.dao.BaseDao;
import neu.integration.base.service.impl.BaseServiceImpl;
import neu.integration.ctic.dao.BotnetDao;
import neu.integration.ctic.vo.WatcherlabBotnet;

import org.springframework.stereotype.Service;

//import neu.cse.ctic.base.dao.BaseDao;
//import neu.cse.ctic.base.service.impl.BaseServiceImpl;
//import neu.cse.ctic.supervise.dao.BotnetDao;
//import neu.cse.ctic.supervise.service.BotnetService;
//import neu.cse.ctic.supervise.vo.WatcherlabBotnet;

@Service(value="botnetService")
public class BotnetServiceImpl extends BaseServiceImpl<WatcherlabBotnet, Integer> implements
BotnetService {

	@Resource(name="botnetDao")
	private BotnetDao botnetDao;

	@Override
	public BaseDao<WatcherlabBotnet, Integer> getBaseDao() {
		// TODO Auto-generated method stub
		return botnetDao;
	}

	@Override
	public List countryNum() {
		// TODO Auto-generated method stub
		List<Object[]> cnList = new ArrayList<Object[]>();
		cnList = (List<Object[]>)botnetDao.countryNum();
		return cnList;
	}

	@Override
	public String convertNationToSimpChinese(String English) {
		// TODO Auto-generated method stub
				String Chinese = "无任何信息";
				if(English != null){
				switch(English){
				case "AD":Chinese = "安道尔共和国"; break;
				case "AE":Chinese = "阿联酋"; break;
				case "AF":Chinese = "阿富汗"; break;
				case "AG":Chinese = "安提瓜和巴布达"; break;
				case "AL":Chinese = "阿尔巴尼亚"; break;
				case "AM":Chinese = "亚美尼亚"; break;
				case "AO":Chinese = "安哥拉"; break;
				case "AR":Chinese = "阿根廷"; break;
				case "AT":Chinese = "奥地利"; break;
				case "AU":Chinese = "澳大利亚"; break;
				case "AW":Chinese = "阿鲁巴"; break;
				case "AZ":Chinese = "阿塞拜疆"; break;
				case "BA":Chinese = "波斯尼亚和黑塞哥维那"; break;
				case "BB":Chinese = "巴巴多斯"; break;
				case "BD":Chinese = "孟加拉"; break;
				case "BE":Chinese = "比利时"; break;
				case "BF":Chinese = "布基纳法索"; break;
				case "BG":Chinese = "保加利亚"; break;
				case "BH":Chinese = "巴林"; break;
				case "BI":Chinese = "布隆迪"; break;
				case "BJ":Chinese = "贝宁"; break;
				case "BM":Chinese = "百慕大群岛"; break;
				case "BN":Chinese = "文莱"; break;
				case "BO":Chinese = "玻利维亚"; break;
				case "BR":Chinese = "巴西"; break;
				case "BS":Chinese = "巴哈马"; break;
				case "BT":Chinese = "不但"; break;
				case "BW":Chinese = "博茨瓦纳"; break;
				case "BY":Chinese = "白俄罗斯"; break;
				case "BZ":Chinese = "伯利兹"; break;
				case "CA":Chinese = "加拿大"; break;
				case "CD":Chinese = "扎伊尔"; break;
				case "CG":Chinese = "刚果"; break;
				case "CH":Chinese = "瑞士"; break;
				case "CI":Chinese = "开曼群岛"; break;
				case "CL":Chinese = "智利"; break;
				case "CM":Chinese = "喀麦隆"; break;
				case "CN":Chinese = "中国"; break;
				case "CO":Chinese = "哥伦比亚"; break;
				case "CR":Chinese = "哥斯达黎加"; break;
				case "CU":Chinese = "古巴"; break;
				case "CV":Chinese = "维德岛"; break;
				case "CW":Chinese = "库拉索"; break;
				case "CY":Chinese = "塞浦路斯"; break;
				case "CZ":Chinese = "捷克"; break;
				case "DE":Chinese = "德国"; break;
				case "DJ":Chinese = "吉布地"; break;
				case "DK":Chinese = "丹麦"; break;
				case "DM":Chinese = "多米尼加"; break;
				case "DO":Chinese = "多米尼加共和国"; break;
				case "DZ":Chinese = "阿尔及利亚"; break;
				case "EC":Chinese = "厄瓜多尔"; break;
				case "EE":Chinese = "爱沙尼亚"; break;
				case "EG":Chinese = "埃及"; break;
				case "ES":Chinese = "西班牙"; break;
				case "ET":Chinese = "埃塞俄比亚"; break;
				case "EU":Chinese = "欧盟"; break;
				case "FI":Chinese = "芬兰"; break;
				case "FJ":Chinese = "斐济"; break;
				case "FM":Chinese = "密克罗尼西亚"; break;
				case "FR":Chinese = "法国"; break;
				case "GA":Chinese = "加蓬"; break;
				case "GB":Chinese = "英国"; break;
				case "GE":Chinese = "格鲁吉亚州"; break;
				case "GH":Chinese = "加纳"; break;
				case "GI":Chinese = "直布罗陀"; break;
				case "GM":Chinese = "冈比亚"; break;
				case "GN":Chinese = "几内亚"; break;
				case "GQ":Chinese = "赤道几内亚"; break;
				case "GR":Chinese = "希腊"; break;
				case "GT":Chinese = "危地马拉"; break;
				case "GW":Chinese = "几内亚比绍共和国"; break;
				case "HK":Chinese = "香港"; break;
				case "HN":Chinese = "洪都拉斯"; break;
				case "HR":Chinese = "克罗埃西亚"; break;
				case "HT":Chinese = "海地"; break;
				case "HU":Chinese = "匈牙利"; break;
				case "ID":Chinese = "印度尼西亚"; break;
				case "IE":Chinese = "爱尔兰"; break;
				case "IL":Chinese = "以色列"; break;
				case "IN":Chinese = "印度"; break;
				case "IQ":Chinese = "伊拉克"; break;
				case "IR":Chinese = "伊朗"; break;
				case "IS":Chinese = "冰岛"; break;
				case "IT":Chinese = "意大利"; break;
				case "JM":Chinese = "牙买加"; break;
				case "JO":Chinese = "约旦"; break;
				case "JP":Chinese = "日本"; break;
				case "KE":Chinese = "肯尼亚"; break;
				case "KG":Chinese = "吉尔吉斯斯坦"; break;
				case "KH":Chinese = "柬埔寨"; break;
				case "KN":Chinese = "圣吉斯和尼维斯"; break;
				case "KR":Chinese = "韩国"; break;
				case "KW":Chinese = "科威特"; break;
				case "KY":Chinese = "开曼群岛"; break;
				case "KZ":Chinese = "哈萨克斯坦"; break;
				case "LA":Chinese = "老挝"; break;
				case "LB":Chinese = "黎巴嫩"; break;
				case "LK":Chinese = "斯里兰卡"; break;
				case "LR":Chinese = "利比里亚"; break;
				case "LS":Chinese = "莱索托"; break;
				case "LT":Chinese = "立陶宛"; break;
				case "LU":Chinese = "卢森堡"; break;
				case "LV":Chinese = "拉脱维亚"; break;
				case "LY":Chinese = "利比亚"; break;
				case "MA":Chinese = "摩洛哥"; break;
				case "MD":Chinese = "摩尔多瓦"; break;
				case "ME":Chinese = "黑山共和国"; break;
				case "MG":Chinese = "马达加斯加"; break;
				case "MH":Chinese = "马尔绍群岛"; break;
				case "MK":Chinese = "马其顿"; break;
				case "ML":Chinese = "马里"; break;
				case "MM":Chinese = "缅甸"; break;
				case "MN":Chinese = "蒙古"; break;
				case "MO":Chinese = "澳门"; break;
				case "MP":Chinese = "北马里亚纳群岛"; break;
				case "MR":Chinese = "毛里塔尼亚"; break;
				case "MT":Chinese = "马耳他"; break;
				case "MU":Chinese = "毛里求斯"; break;
				case "MV":Chinese = "马尔代夫"; break;
				case "MW":Chinese = "马拉维"; break;
				case "MX":Chinese = "墨西哥"; break;
				case "MY":Chinese = "马来西亚"; break;
				case "MZ":Chinese = "莫桑比克"; break;
				case "NA":Chinese = "纳米比亚"; break;
				case "NC":Chinese = "新加勒多尼亚"; break;
				case "NE":Chinese = "尼日尔"; break;
				case "NG":Chinese = "尼日利亚"; break;
				case "NI":Chinese = "尼加拉瓜"; break;
				case "NL":Chinese = "荷兰"; break;
				case "NO":Chinese = "挪威"; break;
				case "NP":Chinese = "尼泊尔"; break;
				case "NZ":Chinese = "新西兰"; break;
				case "OM":Chinese = "阿曼"; break;
				case "PA":Chinese = "巴拿马"; break;
				case "PE":Chinese = "秘鲁"; break;
				case "PH":Chinese = "菲律宾"; break;
				case "PK":Chinese = "巴基斯坦"; break;
				case "PL":Chinese = "波兰"; break;
				case "PR":Chinese = "波多黎各"; break;
				case "PS":Chinese = "巴勒斯坦"; break;
				case "PT":Chinese = "葡萄牙"; break;
				case "PW":Chinese = "帕劳"; break;
				case "PY":Chinese = "巴拉圭"; break;
				case "QA":Chinese = "卡塔尔"; break;
				case "RO":Chinese = "罗马尼亚"; break;
				case "RS":Chinese = "塞尔维亚"; break;
				case "RU":Chinese = "俄罗斯"; break;
				case "RW":Chinese = "卢旺达"; break;
				case "SA":Chinese = "沙特阿拉伯"; break;
				case "SC":Chinese = "塞西尔群岛"; break;
				case "SD":Chinese = "苏丹"; break;
				case "SE":Chinese = "瑞典"; break;
				case "SG":Chinese = "新加坡"; break;
				case "SI":Chinese = "斯洛文尼亚"; break;
				case "SK":Chinese = "斯洛伐克"; break;
				case "SM":Chinese = "圣马力诺"; break;
				case "SN":Chinese = "塞内加尔"; break;
				case "SO":Chinese = "索马里"; break;
				case "SR":Chinese = "苏里南"; break;
				case "SV":Chinese = "萨尔瓦多"; break;
				case "SX":Chinese = "荷属圣马丁"; break;
				case "SY":Chinese = "叙利亚"; break;
				case "TG":Chinese = "多哥"; break;
				case "TH":Chinese = "泰国"; break;
				case "TJ":Chinese = "塔吉克斯坦"; break;
				case "TL":Chinese = "东帝汶"; break;
				case "TM":Chinese = "土库曼斯坦"; break;
				case "TN":Chinese = "突尼斯"; break;
				case "TR":Chinese = "土耳其"; break;
				case "TT":Chinese = "特立尼达和多巴哥"; break;
				case "TW":Chinese = "台湾"; break;
				case "TZ":Chinese = "坦桑尼亚"; break;
				case "UA":Chinese = "乌克兰"; break;
				case "UG":Chinese = "乌干达"; break;
				case "Unknow":Chinese = "未知"; break;
				case "US":Chinese = "美国"; break;
				case "UY":Chinese = "乌拉圭"; break;
				case "UZ":Chinese = "乌兹别克斯坦"; break;
				case "VE":Chinese = "委内瑞拉"; break;
				case "VG":Chinese = "维京群岛（英国）"; break;
				case "VI":Chinese = "维京群岛（美国）"; break;
				case "VN":Chinese = "越南"; break;
				case "VU":Chinese = "瓦努阿图"; break;
				case "WS":Chinese = "美属萨摩那"; break;
				case "YE":Chinese = "也门"; break;
				case "ZA":Chinese = "南非"; break;
				case "ZM":Chinese = "赞比亚"; break;
				case "ZW":Chinese = "津巴布韦"; break;
				default:Chinese = "无任何信息";
				
				
				}
				}
				return Chinese;
	}

	@Override
	public long countAllCountry() {
		// TODO Auto-generated method stub
		long count = botnetDao.countAllCountry();
		return count;
	}


	@Override
	public HashMap<String,Object> baseCountryAndLocationInfo() {
		// TODO Auto-generated method stub
		List<Object[]> cnList = new ArrayList<Object[]>();
//		ArrayList<Object> returnList = new ArrayList<Object>();
		HashMap<String, Object> tempMap = new HashMap<String, Object>();
		cnList = (List<Object[]>)botnetDao.baseCountryAndLocationInfo();
		for (Object[] obj : cnList) {
			Object[] objArray = new Object[2];
			objArray[0] = obj[1];
			objArray[1] = obj[2];
			tempMap.put(obj[0].toString(), objArray);
		}
		return tempMap;
	}

	@Override
	public List<Object> countryAndCountScada() {
		// TODO Auto-generated method stub
		List<Object[]> cnList = new ArrayList<Object[]>();
		ArrayList<Object> returnList = new ArrayList<Object>();
		cnList = (List<Object[]>)botnetDao.countryAndCountScada();
		for (Object[] obj : cnList) {
			HashMap<String, Object> tempMap = new HashMap<String, Object>();
			tempMap.put("name",obj[0].toString());
			tempMap.put("value", Integer.parseInt(obj[1].toString()));
			returnList.add(tempMap);
		}
		return returnList;
	}

	@Override
	public List<Object> countryAndCountChinaHotScada() {
		// TODO Auto-generated method stub
		List<Object[]> cnList = new ArrayList<Object[]>();
		ArrayList<Object> returnList = new ArrayList<Object>();
		cnList = (List<Object[]>)botnetDao.countryAndCountChinaHotScada();
		for (Object[] obj : cnList) {
			HashMap<String, Object> tempMap = new HashMap<String, Object>();
			tempMap.put("name",obj[0].toString());
			tempMap.put("value", Integer.parseInt(obj[1].toString()));
			returnList.add(tempMap);
		}
		return returnList;
	}
		






	}

