package com.cmos.msgframe.admin.action;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cmos.msgframe.admin.service.IBrokerService;
import com.cmos.msgframe.common.util.OutPutParameter;

/**
 * 项目名称：cmos-msg-admin 类名称：BrokerAction 类描述： broker监控和配置功能控制层 创建人：guozq5
 * 创建时间：2016-11-11 上午10:29:43 修改人：guozq5 修改时间：2016-11-11 上午10:29:43 修改备注：
 * 
 * @version
 * 
 */
@Controller
@RequestMapping("/broker")
public class BrokerController {
	@Resource
	private IBrokerService brokerService;

	/**
	 * @Title: getBrokerPropertyList
	 * @Description: 获取broker端的所有属性信息
	 * @param @param brokerAddr
	 * @param @param property
	 * @param @param start
	 * @param @param end
	 * @param @return
	 * @param @throws Exception
	 * @return List<?> 返回类型
	 * @throws
	 */
	@RequestMapping(value = "/proList", method = RequestMethod.POST)
	@ResponseBody
	public OutPutParameter getBrokerPropertyList(HttpServletRequest request)
			throws Exception {
			int start = Integer.parseInt(request.getParameter("start"));		
			int end = Integer.parseInt(request.getParameter("limit"));
			String property = request.getParameter("property");
			String brokerAddr = request.getParameter("brokerAddr");
		return brokerService.getBrokerPropertyList(brokerAddr, property, start,
				end+start);
	}

	/**
	 * @Title: getBrokerList
	 * @Description: 获取broker的列表信息
	 * @param @param brokerAddr
	 * @param @param clusterName
	 * @param @param start
	 * @param @param end
	 * @param @return
	 * @param @throws Exception
	 * @return List<?> 返回类型
	 * @throws
	 */
	@RequestMapping(value = "/broList", method = RequestMethod.POST)
	@ResponseBody
	public OutPutParameter getBrokerList(HttpServletRequest request)
			throws Exception {
		int start = Integer.parseInt(request.getParameter("start"));		
		int end = Integer.parseInt(request.getParameter("limit"));
		String brokerAddr = request.getParameter("brokerAddr");
		String clusterName = request.getParameter("clusterName");
		return brokerService.getBrokerList(brokerAddr, clusterName, start, end+start);
	}
	
	@RequestMapping(value = "/list", method = RequestMethod.POST)
	@ResponseBody
	public OutPutParameter getAllBroker(HttpServletRequest request)
			throws Exception {
		return brokerService.getAllBroker();
	}
	/**
	 * @Title: updateBrokerProperty
	 * @Description: 修改broker端的属性信息
	 * @param @param brokerAddr
	 * @param @param clusterName
	 * @param @param key
	 * @param @param value
	 * @param @return
	 * @param @throws Exception
	 * @return boolean 返回类型
	 * @throws
	 */
	@RequestMapping(value = "/update", method = RequestMethod.POST)
	@ResponseBody
	public OutPutParameter updateBrokerProperty(HttpServletRequest request)
			throws Exception {
		String brokerAddr = request.getParameter("brokerAddr");
		String clusterName = request.getParameter("clusterName");
		String key = request.getParameter("key");
		String value = request.getParameter("value");
		return brokerService.updateBrokerProperty(brokerAddr, clusterName, key,
				value);
	}

	/**
	 * @Title: addBrokerProperty
	 * @Description: 添加broker端的属性信息
	 * @param @param brokerAddr
	 * @param @param clusterName
	 * @param @param key
	 * @param @param value
	 * @param @return
	 * @param @throws Exception
	 * @return boolean 返回类型
	 * @throws
	 */
	@RequestMapping(value = "/add", method = RequestMethod.POST)
	@ResponseBody
	public OutPutParameter addBrokerProperty(HttpServletRequest request)
			throws Exception {
		String brokerAddr = request.getParameter("brokerAddr");
		String clusterName = request.getParameter("clusterName");
		String key = request.getParameter("key");
		String value = request.getParameter("value");
		return brokerService.addBrokerProperty(brokerAddr, clusterName,key,
				value);
	}

	/**
	 * @Title: getBrokerDetail
	 * @Description: 获取broker的详细信息
	 * @param @param brokerAddr
	 * @param @return
	 * @param @throws Exception
	 * @return Map 返回类型
	 * @throws
	 */
	@RequestMapping(value = "/detail", method = RequestMethod.GET)
	@ResponseBody
	public OutPutParameter getBrokerDetail(HttpServletRequest request) throws Exception {
		String brokerAddr = request.getParameter("brokerAddr");
		return brokerService.getBrokerDetail(brokerAddr);
	}
}
