package com.ps.visualization.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 com.ps.base.action.BaseListAction;
import com.ps.visualization.service.ProtocolProgressService;

@SuppressWarnings("serial")
@ParentPackage("json-default")
@Results({ @Result(name = BaseListAction.SUCCESS, type = "json"),
		@Result(name = BaseListAction.ERROR, type = "json") })
public class ProtocolProgressAction extends BaseListAction {

	@Resource(name = "protocolProgressService")
	private ProtocolProgressService protocolProgressService;
	private Map<String, Object> returnMap = new HashMap<String, Object>();
	private List<Object> returnList = new ArrayList<Object>();
	public boolean isIndustrialProtocol;

	public boolean isIndustrialProtocol() {
		return isIndustrialProtocol;
	}

	public void setIndustrialProtocol(boolean isIndustrialProtocol) {
		this.isIndustrialProtocol = isIndustrialProtocol;
	}

	public ProtocolProgressService getProtocolProgressService() {
		return protocolProgressService;
	}

	public void setProtocolProgressService(
			ProtocolProgressService protocolProgressService) {
		this.protocolProgressService = protocolProgressService;
	}

	public Map<String, Object> getReturnMap() {
		return returnMap;
	}

	public void setReturnMap(Map<String, Object> returnMap) {
		this.returnMap = returnMap;
	}

	public List<Object> getReturnList() {
		return returnList;
	}

	public void setReturnList(List<Object> returnList) {
		this.returnList = returnList;
	}

	@Action(value = "getProtocolScanProgress", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getProtocolScanProgress() {
		String countryName = "all";
		returnList = protocolProgressService.getScanProgress(countryName);

		return SUCCESS;
	}

	@Action(value = "getProtocolScanTopKey", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getProtocolScanTopKey() {
		String countryName = "all";
		if (isIndustrialProtocol) {
			returnList = protocolProgressService.getScanTopKey(countryName,
					this.getNotIndustrialProtocol());
		} else {
			returnList = protocolProgressService.getScanTopKey(countryName,
					this.getNotIndustrialProtocolNull());
		}

		return SUCCESS;
	}

	@Action(value = "getProtocolInfo", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getProtocolInfo() {
		// String countryName = "all";
		returnList = protocolProgressService.getProtocolInfo();
		return SUCCESS;
	}

	@Action(value = "getAllScanRoundLog", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getAllScanRoundLog() {
		// String countryName = "all";
		if (isIndustrialProtocol) {
			returnList = protocolProgressService.getAllScanRoundLog(this
					.getNotIndustrialProtocol());
		} else {
			returnList = protocolProgressService.getAllScanRoundLog(this
					.getNotIndustrialProtocolNull());
		}

		return SUCCESS;
	}

	@Action(value = "getProtocolRate", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getProtocolRate() {
		// String countryName = "all";
		returnList = protocolProgressService.getProtocolRate();
		return SUCCESS;
	}

	/**
	 * 每轮扫描多协议折线图
	 * 
	 * @return
	 */
	@Action(value = "getProtocolNumRounds", results = { @Result(name = SUCCESS, type = "json", params = {
			"root", "returnList" }) })
	public String getProtocolNumRounds() {
		// String countryName = "all";
		returnList = protocolProgressService.getProtocolNumRounds();
		return SUCCESS;
	}
}
