package neu.integration.ctic.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.annotation.Resource;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.omg.PortableInterceptor.SUCCESSFUL;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
//import neu.cse.ctic.supervise.service.BotnetService;
//import neu.cse.ctic.supervise.vo.WatcherlabBotnet;
import neu.integration.base.action.BaseListAction;
@SuppressWarnings("serial")
@ParentPackage("json-default")
@Results({ @Result(name = BaseListAction.SUCCESS, type = "json"),
		@Result(name = BaseListAction.ERROR, type = "json") })

public class BotnetAction extends BaseListAction{   
	@Resource(name = "botnetService")
	private BotnetService botnetService;
	private String beginTime;
	private String endTime;
	private String protocal1;
	private String protocal2;
	private String protocal3;
	private String nation1;
	private String nation2;
	private String nation3;
	private int page;
	private int rows;
	private List<Object> returnList = new ArrayList<Object>();// 存储返回的数据
	private HashMap<String, Object> returnMap = new HashMap<String, Object>();
	
	public List<Object> getReturnList() {
		return returnList;
	}
	public void setReturnList(List<Object> returnList) {
		this.returnList = returnList;
	}
	public HashMap<String, Object> getReturnMap() {
		return returnMap;
	}
	public void setReturnMap(HashMap<String, Object> returnMap) {
		this.returnMap = returnMap;
	}
	public int getPage() {
		return page;
	}
	public void setPage(int page) {
		this.page = page;
	}
	public int getRows() {
		return rows;
	}
	public void setRows(int rows) {
		this.rows = rows;
	}
	public String getBeginTime() {
		return beginTime;
	}
	public void setBeginTime(String beginTime) {
		this.beginTime = beginTime;
	}
	public String getEndTime() {
		return endTime;
	}
	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}
	public String getProtocal1() {
		return protocal1;
	}
	public void setProtocal1(String protocal1) {
		this.protocal1 = protocal1;
	}
	public String getProtocal2() {
		return protocal2;
	}
	public void setProtocal2(String protocal2) {
		this.protocal2 = protocal2;
	}
	public String getProtocal3() {
		return protocal3;
	}
	public void setProtocal3(String protocal3) {
		this.protocal3 = protocal3;
	}
	public String getNation1() {
		return nation1;
	}
	public void setNation1(String nation1) {
		this.nation1 = nation1;
	}
	public String getNation2() {
		return nation2;
	}
	public void setNation2(String nation2) {
		this.nation2 = nation2;
	}
	public String getNation3() {
		return nation3;
	}
	public void setNation3(String nation3) {
		this.nation3 = nation3;
	}

	private JSONObject returnCountryNum;
	//private JSONObject returnBotnetList;
	private JSONObject returnProtocalNum;
	private JSONObject returnBotnetList;
	private JSONObject conditionBotnetList;
	
	public JSONObject getReturnCountryNum() {
		return returnCountryNum;
	}
	public void setReturnCountryNum(JSONObject returnCountryNum) {
		this.returnCountryNum = returnCountryNum;
	}
	public BotnetService getBotnetService() {
		return botnetService;
	}
	public void setBotnetService(BotnetService botnetService) {
		this.botnetService = botnetService;
	}
	
	
	

	public JSONObject getConditionBotnetList() {
		return conditionBotnetList;
	}
	public void setConditionBotnetList(JSONObject conditionBotnetList) {
		this.conditionBotnetList = conditionBotnetList;
	}

	public JSONObject getReturnBotnetList() {
		return returnBotnetList;
	}
	public void setReturnBotnetList(JSONObject returnBotnetList) {
		this.returnBotnetList = returnBotnetList;
	}
	public JSONObject getReturnProtocalNum() {
		return returnProtocalNum;
	}
	public void setReturnProtocalNum(JSONObject returnProtocalNum) {
		this.returnProtocalNum = returnProtocalNum;
	}
	
	
	@Action(value = "getBotnetCountryNum", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnCountryNum" }) })

	public String botnetCountryNum(){
		long countcountry = botnetService.countAllCountry();
		String json = "{\"total\":\""+countcountry+"\","+"\"rows\":[";
		List<Object[]> botnetList = new ArrayList<Object[]>();
		botnetList = (List<Object[]>)botnetService.countryNum();
		for(int i = 0 ; i<botnetList.size();i++){
			Object[] temp = new Object[2];
			temp = botnetList.get(i);
			String Chinese = botnetService.convertNationToSimpChinese((String)temp[0]);
			if(i != botnetList.size()-1)
			json = json+"{" + "\"country\":\""+Chinese+"\",\"num\":\""+temp[1]+"\",\"code\":\""+temp[0]+"\"},";
			if(i == botnetList.size()-1)
				json = json+"{" + "\"country\":\""+Chinese+"\",\"num\":\""+temp[1]+"\",\"code\":\""+temp[0]+"\"}]}";
		}
		returnCountryNum = JSONObject.fromObject(json);
		return SUCCESS;
	}
	@Action(value = "countryAndCountScada", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String countryAndCountScada() {
		returnList.add(botnetService.countryAndCountScada());
		return SUCCESS;

	}
	@Action(value = "countryAndCountChinaHotScada", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String countryAndCountChinaHotScada() {
		returnList.add(botnetService.countryAndCountChinaHotScada());
		return SUCCESS;

	}
	
	@Action(value = "baseCountryAndLocationInfo", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnMap" }) })
	public String baseCountryAndLocationInfo() {
		returnMap = botnetService.baseCountryAndLocationInfo();

		return SUCCESS;

	}
}
