// Path: xbin-store-cloud-service-cart-api/src/main/java/cn/binux/cart/service/CartService.java
// @FeignClient(value = "xbin-store-cloud-service-cart",fallback = CartServiceHystrix.class)
// public interface CartService {
// 
//     @RequestMapping(value = "/addCart",method = RequestMethod.POST)
//     XbinResult addCart(
//             @RequestParam("pid")        Long pid,
//             @RequestParam("pcount")     Integer pcount,
//             @RequestParam("uuid")       String uuid
//     );
// 
//     @RequestMapping(value = "/getCartInfoListByCookiesId",method = RequestMethod.POST)
//     List<CartInfo> getCartInfoListByCookiesId(@RequestParam("cookieUUID") String cookieUUID);
// 
//     /**
//      *
//      * 根据商品id和数量对购物车增加商品或减少商品
//      *
//      * @param pid       商品id
//      * @param pcount    增加数量
//      * @param type      1 增加 2 减少
//      * @param index     商品位置   ps:用于直接定位商品 不用遍历整个购物车
//      * @return
//      */
//     @RequestMapping(value = "/decreOrIncre",method = RequestMethod.POST)
//     XbinResult decreOrIncre(
//             @RequestParam("pid")        Long pid,
//             @RequestParam("pcount")     Integer pcount,
//             @RequestParam("type")       Integer type,
//             @RequestParam("index")      Integer index,
//             @RequestParam("cookieUUID") String cookieUUID
//     );
// 
// 
// }
// 
// 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-common/src/main/java/cn/binux/utils/JedisClient.java
// public interface JedisClient {
// 
//     String get(String key);
// 
//     String set(String key, String value);
// 
//     String hget(String hkey, String key);
// 
//     long hset(String hkey, String key, String value);
// 
//     long incr(String key);
// 
//     long expire(String key, Integer second);
// 
//     long ttl(String key);
// 
//     long del(String key);
// 
//     long hdel(String hkey, String key);
// 
// 
// }


import cn.binux.cart.service.CartService;
import cn.binux.constant.Const;
import cn.binux.pojo.CartInfo;
import cn.binux.pojo.TbUser;
import cn.binux.pojo.XbinResult;
import cn.binux.utils.CookieUtils;
import cn.binux.utils.FastJsonConvert;
import cn.binux.utils.JedisClient;
import io.swagger.annotations.Api;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
package cn.binux.cart.controller;



/**
 * 购物车 Controller
 *
 * @author xubin.
 * @create 2017-05-05
 */

@Api(value = "API - CartController", description = "购物车 Controller")
@Controller
@RefreshScope
public class CartController {

    private static final Logger logger = LoggerFactory.getLogger(CartController.class);

    @Autowired
    private CartService cartService;

    @Autowired
// Path: xbin-store-cloud-service-cart-api/src/main/java/cn/binux/cart/service/CartService.java
// @FeignClient(value = "xbin-store-cloud-service-cart",fallback = CartServiceHystrix.class)
// public interface CartService {
// 
//     @RequestMapping(value = "/addCart",method = RequestMethod.POST)
//     XbinResult addCart(
//             @RequestParam("pid")        Long pid,
//             @RequestParam("pcount")     Integer pcount,
//             @RequestParam("uuid")       String uuid
//     );
// 
//     @RequestMapping(value = "/getCartInfoListByCookiesId",method = RequestMethod.POST)
//     List<CartInfo> getCartInfoListByCookiesId(@RequestParam("cookieUUID") String cookieUUID);
// 
//     /**
//      *
//      * 根据商品id和数量对购物车增加商品或减少商品
//      *
//      * @param pid       商品id
//      * @param pcount    增加数量
//      * @param type      1 增加 2 减少
//      * @param index     商品位置   ps:用于直接定位商品 不用遍历整个购物车
//      * @return
//      */
//     @RequestMapping(value = "/decreOrIncre",method = RequestMethod.POST)
//     XbinResult decreOrIncre(
//             @RequestParam("pid")        Long pid,
//             @RequestParam("pcount")     Integer pcount,
//             @RequestParam("type")       Integer type,
//             @RequestParam("index")      Integer index,
//             @RequestParam("cookieUUID") String cookieUUID
//     );
// 
// 
// }
// 
// 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-common/src/main/java/cn/binux/utils/JedisClient.java
// public interface JedisClient {
// 
//     String get(String key);
// 
//     String set(String key, String value);
// 
//     String hget(String hkey, String key);
// 
//     long hset(String hkey, String key, String value);
// 
//     long incr(String key);
// 
//     long expire(String key, Integer second);
// 
//     long ttl(String key);
// 
//     long del(String key);
// 
//     long hdel(String hkey, String key);
// 
// 
// }


// Path: xbin-store-cloud-web-cart/src/main/java/cn/binux/cart/controller/CartController.java
import cn.binux.cart.service.CartService;
import cn.binux.constant.Const;
import cn.binux.pojo.CartInfo;
import cn.binux.pojo.TbUser;
import cn.binux.pojo.XbinResult;
import cn.binux.utils.CookieUtils;
import cn.binux.utils.FastJsonConvert;
import cn.binux.utils.JedisClient;
import io.swagger.annotations.Api;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

package cn.binux.cart.controller;



/**
 * 购物车 Controller
 *
 * @author xubin.
 * @create 2017-05-05
 */

@Api(value = "API - CartController", description = "购物车 Controller")
@Controller
@RefreshScope
public class CartController {

    private static final Logger logger = LoggerFactory.getLogger(CartController.class);

    @Autowired
    private CartService cartService;

    @Autowired
    private JedisClient jedisClient;