// Path: xbin-store-cloud-common/src/main/java/cn/binux/pojo/XbinResult.java
// public class XbinResult {
// 
//     // 响应业务状态
//     private Integer status;
// 
//     // 响应消息
//     private String msg;
// 
//     // 响应中的数据
//     private Object data;
// 
//     public static XbinResult build(Integer status, String msg, Object data) {
//         return new XbinResult(status, msg, data);
//     }
// 
//     public static XbinResult ok(Object data) {
//         return new XbinResult(data);
//     }
// 
//     public static XbinResult ok() {
//         return new XbinResult(null);
//     }
// 
//     public XbinResult() {
// 
//     }
// 
//     public static XbinResult build(Integer status, String msg) {
//         return new XbinResult(status, msg, null);
//     }
// 
//     public XbinResult(Integer status, String msg, Object data) {
//         this.status = status;
//         this.msg = msg;
//         this.data = data;
//     }
// 
//     public XbinResult(Object data) {
//         this.status = 200;
//         this.msg = "OK";
//         this.data = data;
//     }
// 
//     public Boolean isOK() {
//         return this.status == 200;
//     }
// 
//     public Integer getStatus() {
//         return status;
//     }
// 
//     public void setStatus(Integer status) {
//         this.status = status;
//     }
// 
//     public String getMsg() {
//         return msg;
//     }
// 
//     public void setMsg(String msg) {
//         this.msg = msg;
//     }
// 
//     public Object getData() {
//         return data;
//     }
// 
//     public void setData(Object data) {
//         this.data = data;
//     }
// 
// 
// 
// }
// 
// Path: xbin-store-cloud-service-search-api/src/main/java/cn/binux/search/service/hystrix/SearchServiceHystrix.java
// @Component
// public class SearchServiceHystrix implements SearchService {
// 
// 
//     /**
//      * 导入全部商品索引
//      *
//      * @return
//      */
//     @Override
//     public XbinResult importAllItems() {
//         return null;
//     }
// 
//     /**
//      * 查询商品
//      *
//      * @param queryString 查询条件
//      * @param page        第几页
//      * @param rows        每页几条
//      * @return 返回商品Json
//      * @throws Exception
//      */
//     @Override
//     public SearchResult search(String queryString, Integer page, Integer rows) {
//         return null;
//     }
// }


import cn.binux.pojo.SearchResult;
import cn.binux.pojo.XbinResult;
import cn.binux.search.service.hystrix.SearchServiceHystrix;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
package cn.binux.search.service;



/**
 * Solr Service
 *
 * @author xubin.
 * @create 2017-05-03
 */

@FeignClient(value = "xbin-store-cloud-service-search",fallback = SearchServiceHystrix.class)
public interface SearchService {

    //http://localhost:8512/search/SolrService/importAllItems/TztyomXxDyi92
    /**
     * 导入全部商品索引
     *
     * @return
     */
    @RequestMapping(value = "/importAllItems",method = RequestMethod.POST)
    XbinResult importAllItems();

    //http://localhost:8512/search/SolrService/search/查询条件/1/60
    /**
     * 查询商品
     * @param queryString 查询条件
     * @param page 第几页
     * @param rows 每页几条
     * @return 返回商品Json
     * @throws Exception
     */
    @RequestMapping(value = "/search",method = RequestMethod.POST)
    SearchResult search(
// Path: xbin-store-cloud-common/src/main/java/cn/binux/pojo/XbinResult.java
// public class XbinResult {
// 
//     // 响应业务状态
//     private Integer status;
// 
//     // 响应消息
//     private String msg;
// 
//     // 响应中的数据
//     private Object data;
// 
//     public static XbinResult build(Integer status, String msg, Object data) {
//         return new XbinResult(status, msg, data);
//     }
// 
//     public static XbinResult ok(Object data) {
//         return new XbinResult(data);
//     }
// 
//     public static XbinResult ok() {
//         return new XbinResult(null);
//     }
// 
//     public XbinResult() {
// 
//     }
// 
//     public static XbinResult build(Integer status, String msg) {
//         return new XbinResult(status, msg, null);
//     }
// 
//     public XbinResult(Integer status, String msg, Object data) {
//         this.status = status;
//         this.msg = msg;
//         this.data = data;
//     }
// 
//     public XbinResult(Object data) {
//         this.status = 200;
//         this.msg = "OK";
//         this.data = data;
//     }
// 
//     public Boolean isOK() {
//         return this.status == 200;
//     }
// 
//     public Integer getStatus() {
//         return status;
//     }
// 
//     public void setStatus(Integer status) {
//         this.status = status;
//     }
// 
//     public String getMsg() {
//         return msg;
//     }
// 
//     public void setMsg(String msg) {
//         this.msg = msg;
//     }
// 
//     public Object getData() {
//         return data;
//     }
// 
//     public void setData(Object data) {
//         this.data = data;
//     }
// 
// 
// 
// }
// 
// Path: xbin-store-cloud-service-search-api/src/main/java/cn/binux/search/service/hystrix/SearchServiceHystrix.java
// @Component
// public class SearchServiceHystrix implements SearchService {
// 
// 
//     /**
//      * 导入全部商品索引
//      *
//      * @return
//      */
//     @Override
//     public XbinResult importAllItems() {
//         return null;
//     }
// 
//     /**
//      * 查询商品
//      *
//      * @param queryString 查询条件
//      * @param page        第几页
//      * @param rows        每页几条
//      * @return 返回商品Json
//      * @throws Exception
//      */
//     @Override
//     public SearchResult search(String queryString, Integer page, Integer rows) {
//         return null;
//     }
// }


// Path: xbin-store-cloud-service-search-api/src/main/java/cn/binux/search/service/SearchService.java
import cn.binux.pojo.SearchResult;
import cn.binux.pojo.XbinResult;
import cn.binux.search.service.hystrix.SearchServiceHystrix;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

package cn.binux.search.service;



/**
 * Solr Service
 *
 * @author xubin.
 * @create 2017-05-03
 */

@FeignClient(value = "xbin-store-cloud-service-search",fallback = SearchServiceHystrix.class)
public interface SearchService {

    //http://localhost:8512/search/SolrService/importAllItems/TztyomXxDyi92
    /**
     * 导入全部商品索引
     *
     * @return
     */
    @RequestMapping(value = "/importAllItems",method = RequestMethod.POST)
    XbinResult importAllItems();

    //http://localhost:8512/search/SolrService/search/查询条件/1/60
    /**
     * 查询商品
     * @param queryString 查询条件
     * @param page 第几页
     * @param rows 每页几条
     * @return 返回商品Json
     * @throws Exception
     */
    @RequestMapping(value = "/search",method = RequestMethod.POST)
    SearchResult search(
            @RequestParam("q")                  String queryString,