package com.matrix.system.hive.action; 
 | 
  
 | 
import com.matrix.core.pojo.AjaxResult; 
 | 
import com.matrix.core.tools.WebUtil; 
 | 
import com.matrix.system.constance.Dictionary; 
 | 
import com.matrix.system.constance.SystemConstance; 
 | 
import com.matrix.system.hive.bean.ShoppingGoods; 
 | 
import com.matrix.system.hive.bean.ShoppingGoodsAssemble; 
 | 
import com.matrix.system.hive.dao.ShoppingGoodsAssembleDao; 
 | 
import com.matrix.system.hive.pojo.ShoppingCarItem; 
 | 
import com.matrix.system.hive.service.*; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Controller; 
 | 
import org.springframework.web.bind.annotation.RequestMapping; 
 | 
import org.springframework.web.bind.annotation.ResponseBody; 
 | 
  
 | 
import javax.annotation.Resource; 
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
  
 | 
  
 | 
/** 
 | 
 * 线下订单 
 | 
 * 
 | 
 * @author jiangyouyao 
 | 
 * @date 2016-09-08 
 | 
 */ 
 | 
@Controller 
 | 
@RequestMapping(value = "admin/shoppingCar") 
 | 
public class ShoppingCarController extends BaseController { 
 | 
    @Resource 
 | 
    private SysOrderService currentService; 
 | 
    @Resource 
 | 
    private MoneyCardUseService cardUseService; 
 | 
    @Resource 
 | 
    private SysOrderService orderService; // 订单信息Service 
 | 
  
 | 
  
 | 
  
 | 
    @Resource 
 | 
    private SysProjUseService projUseService; // 产品使用Service 
 | 
  
 | 
    @Resource 
 | 
    private ShoppingGoodsService shoppingGoodsService; 
 | 
  
 | 
    @Resource 
 | 
    private ShoppingGoodsAssembleService shoppingGoodsAssembleService; 
 | 
  
 | 
    @Autowired 
 | 
    private ShoppingGoodsAssembleDao shoppingGoodsAssembleDao; 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 在购物车中添加一个产品 
 | 
     * 
 | 
     * @author jiangyouyao 
 | 
     */ 
 | 
    @RequestMapping(value = "/addItemToCar") 
 | 
    @SuppressWarnings("unchecked") 
 | 
    public @ResponseBody 
 | 
    AjaxResult findProject(ShoppingCarItem carItem) { 
 | 
        List<ShoppingCarItem> carItems = null; 
 | 
        // 查看购物车是否存在 
 | 
        if (WebUtil.getSession().getAttribute(SystemConstance.SHOPPING_CAR) == null) { 
 | 
            WebUtil.getSession().setAttribute(SystemConstance.SHOPPING_CAR, new ArrayList<>()); 
 | 
        } 
 | 
        carItems = (List<ShoppingCarItem>) WebUtil.getSession().getAttribute( 
 | 
                SystemConstance.SHOPPING_CAR); 
 | 
        // 根据类型不同设置不同的实体对象,并且去重 
 | 
        toAdd(carItem, carItems); 
 | 
  
 | 
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "添加成功!"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 原来存在的商品则只是增加数量,原来存在在购物车则只改变数量 
 | 
     * 
 | 
     * @param carItem 
 | 
     * @param carItems 
 | 
     * @author jiangyouyao 
 | 
     */ 
 | 
    private void toAdd(ShoppingCarItem carItem, List<ShoppingCarItem> carItems) { 
 | 
        ShoppingGoods shopGoods = shoppingGoodsService.findById(carItem.getGoodsId()); 
 | 
        carItem.setShoppingGoods(shopGoods); 
 | 
        boolean flag = true; 
 | 
        //  去重 
 | 
        for (ShoppingCarItem shoppingCarItem : carItems) { 
 | 
            Long existId = shoppingCarItem.getGoodsId(); 
 | 
            Long getId = carItem.getGoodsId(); 
 | 
            boolean idIsSame = existId.equals(getId); 
 | 
            boolean bothIsFree = shoppingCarItem.getIsFree().equals(carItem.getIsFree()); 
 | 
            if (idIsSame && bothIsFree) { 
 | 
                shoppingCarItem.setCount(shoppingCarItem.getCount() + carItem.getCount()); 
 | 
                flag = false; 
 | 
                break; 
 | 
            } 
 | 
        } 
 | 
        if (flag) { 
 | 
            carItems.add(carItem); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 清空购物车 
 | 
     */ 
 | 
    @RequestMapping(value = "/clearShoppingCar") 
 | 
    public @ResponseBody 
 | 
    AjaxResult clearShoppingCar() { 
 | 
        WebUtil.getSession().removeAttribute(SystemConstance.SHOPPING_CAR); 
 | 
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "购物车已清空"); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 查询购物车产品 
 | 
     * 
 | 
     * @author 姜友瑶 
 | 
     */ 
 | 
    @RequestMapping(value = "/showCar") 
 | 
    public @ResponseBody 
 | 
    AjaxResult showCar() { 
 | 
        @SuppressWarnings("unchecked") 
 | 
        List<ShoppingCarItem> carItems = (List<ShoppingCarItem>) WebUtil.getSession().getAttribute( 
 | 
                SystemConstance.SHOPPING_CAR); 
 | 
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, carItems, 0); 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |