|  |  | 
 |  |  | package com.matrix.system.shopXcx.api.action; | 
 |  |  |  | 
 |  |  | import com.matrix.biz.bean.BizUser; | 
 |  |  | import com.matrix.component.redis.RedisUserLoginUtils; | 
 |  |  | import com.matrix.system.hive.bean.SysVipInfo; | 
 |  |  | import com.matrix.system.common.init.UserCacheManager; | 
 |  |  | import com.matrix.core.constance.SystemErrorCode; | 
 |  |  | import com.matrix.core.constance.SystemMessageCode; | 
 |  |  | import com.matrix.core.exception.GlobleException; | 
 |  |  | import com.matrix.core.pojo.AjaxResult; | 
 |  |  | import com.matrix.core.tools.StringUtils; | 
 |  |  | import com.matrix.system.common.constance.AppConstance; | 
 |  |  | import com.matrix.system.common.interceptor.HostInterceptor; | 
 |  |  | import com.matrix.system.shopXcx.api.service.OrderCouponGroupService; | 
 |  |  | import com.matrix.system.shopXcx.api.service.ShoppingCartService; | 
 |  |  | import com.matrix.system.shopXcx.api.service.WxShopCouponService; | 
 |  |  | import com.matrix.system.shopXcx.api.vo.ShopCartBillVo; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ShopShoppingCartDao shoppingCartDao; | 
 |  |  |     @Autowired | 
 |  |  |     private RedisUserLoginUtils redisUserLoginUtils; | 
 |  |  |     private UserCacheManager userCacheManager; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     WxShopCouponService shopCouponService; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     ShopSkuDao skuDao; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     OrderCouponGroupService orderCouponGroupService; | 
 |  |  |  | 
 |  |  |     @ApiOperation(value = "根据ID删除购物车", notes = "") | 
 |  |  |     @PostMapping("/deleteByCartId/{cartId}") | 
 |  |  | 
 |  |  |     @PostMapping("/findShoppingCart") | 
 |  |  |     @ResponseBody | 
 |  |  |     public AjaxResult getShoppingCartByUserId(@RequestBody ShopShoppingCart shoppingCart) { | 
 |  |  |         List<ShopCartVo> cartList = shoppingCartService.findUserCartList(shoppingCart.getShopId(),ShopShoppingCart.CAR_TYPE_MICRO); | 
 |  |  |         AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, cartList, cartList.size()); | 
 |  |  |         ShopCartBillVo shopCartBill = shoppingCartService.buildShopCartBillVo(cartList); | 
 |  |  |         SysVipInfo loginUser = userCacheManager.getLoginUser(); | 
 |  |  |         List<ShopShoppingCart> list = shoppingCartDao.selectByCartUserId(shoppingCart.getShopId(),loginUser.getId()); | 
 |  |  |         List<ShopCartVo> shopCartVoList = shoppingCartService.buildShopCart(list); | 
 |  |  |         AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, shopCartVoList, shopCartVoList.size()); | 
 |  |  |         ShopCartBillVo shopCartBill = shoppingCartService.buildShopCartBillVo(shopCartVoList); | 
 |  |  |         result.putInMap("billTotal", shopCartBill.getBillTotal().stripTrailingZeros().toPlainString()); | 
 |  |  |         result.putInMap("selectCount", shopCartBill.getSelectCount()); | 
 |  |  |         result.putInMap("cartCount", shopCartBill.getCartCount()); | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @ApiOperation(value = "查询微商城购物车数量", notes = "") | 
 |  |  |     @PostMapping(value = "/getUserCartCount/{shopId}/{cartType}") | 
 |  |  |     @PostMapping(value = "/getUserCartCount/{shopId}") | 
 |  |  |     public | 
 |  |  |     @ResponseBody | 
 |  |  |     AjaxResult getUserCartCount(@PathVariable("shopId") Long shopId,@PathVariable("cartType") Integer cartType) { | 
 |  |  |         BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); | 
 |  |  |         Integer userCartCount = shoppingCartDao.selectUserCartCount(shopId, loginUser.getOpenId(),cartType); | 
 |  |  |     AjaxResult getUserCartCount(@PathVariable("shopId") Long shopId) { | 
 |  |  |         SysVipInfo loginUser = userCacheManager.getLoginUser(); | 
 |  |  |         Integer userCartCount = shoppingCartDao.selectUserCartCount(shopId, loginUser.getId()); | 
 |  |  |         if (userCartCount == null) { | 
 |  |  |             userCartCount = 0; | 
 |  |  |         } | 
 |  |  | 
 |  |  |     AjaxResult saveShoppingCart(@RequestBody ShopShoppingCart shoppingCart) { | 
 |  |  |  | 
 |  |  |         //查询到sku设置对应的产品id | 
 |  |  |         ShopSku sku= skuDao.selectById(shoppingCart.getCartSkuId()); | 
 |  |  |         if(sku==null){ | 
 |  |  |             return new AjaxResult(AjaxResult.STATUS_FAIL,"无效的产品id"); | 
 |  |  |         ShopSku sku = skuDao.selectById(shoppingCart.getCartSkuId()); | 
 |  |  |         if (sku == null) { | 
 |  |  |             return new AjaxResult(AjaxResult.STATUS_FAIL, "无效的产品id"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         shoppingCart.setCartProductId(sku.getpId()); | 
 |  |  |  | 
 |  |  |         BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); | 
 |  |  |         SysVipInfo loginUser = userCacheManager.getLoginUser(); | 
 |  |  |         shoppingCart.setCreateBy(loginUser.getOpenId()); | 
 |  |  |         shoppingCart.setUpdateBy(loginUser.getOpenId()); | 
 |  |  |         shoppingCart.setCartUserId(loginUser.getOpenId()); | 
 |  |  |         shoppingCart.setCartUserId(loginUser.getId()); | 
 |  |  |         shoppingCart.setCompanyId(HostInterceptor.getCompanyId()); | 
 |  |  |         ShopShoppingCart shoppCartLimt = shoppingCartDao.selectBuyLimit(shoppingCart.getCartProductId(), | 
 |  |  |                 shoppingCart.getCartSkuId()); | 
 |  |  |         // Integer buyLimitNum = 0; | 
 |  |  | 
 |  |  |         ShopShoppingCart shopShoppingCart = new ShopShoppingCart(); | 
 |  |  |         shopShoppingCart.setCartProductId(cartProductId); | 
 |  |  |         shopShoppingCart.setCartSkuId(cartSkuId); | 
 |  |  |         shopShoppingCart.setCartUserId(loginUser.getOpenId()); | 
 |  |  |         shopShoppingCart.setCartUserId(loginUser.getId()); | 
 |  |  |         shopShoppingCart.setShopId(shoppingCart.getShopId()); | 
 |  |  |         List<ShopShoppingCart> shopShoppingCarts = shoppingCartDao.selectByModel(shopShoppingCart); | 
 |  |  |         int i = 0; | 
 |  |  | 
 |  |  |             return new AjaxResult(AjaxResult.STATUS_FAIL, "保存失败"); | 
 |  |  |         } | 
 |  |  |         int userCartCount = shoppingCartDao.selectUserCartCount(shoppingCart.getShopId(), | 
 |  |  |                 loginUser.getOpenId(),shoppingCart.getCartType()); | 
 |  |  |                 loginUser.getId()); | 
 |  |  |         AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, "保存成功"); | 
 |  |  |         result.putInMap("userCartCount", userCartCount); | 
 |  |  |         return result; | 
 |  |  | 
 |  |  |      * @param | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PostMapping("/updateCartAllSelected/{shopId}/{isSelected}/{cartType}") | 
 |  |  |     @PostMapping("/updateCartAllSelected/{shopId}/{isSelected}") | 
 |  |  |     @ResponseBody | 
 |  |  |     public AjaxResult updateCartAllSelected(@PathVariable("isSelected") Integer isSelected, | 
 |  |  |                                             @PathVariable("shopId") Long shopId,@PathVariable("cartType") Integer cartType) { | 
 |  |  |         BizUser user = redisUserLoginUtils.getLoginUser(BizUser.class); | 
 |  |  |         shoppingCartDao.updateAllSelected(user.getOpenId(),shopId, isSelected,cartType); | 
 |  |  |                                             @PathVariable("shopId") Long shopId) { | 
 |  |  |         SysVipInfo user = userCacheManager.getLoginUser(); | 
 |  |  |         shoppingCartDao.updateAllSelected(user.getOpenId(), shopId, isSelected); | 
 |  |  |         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功"); | 
 |  |  |     } | 
 |  |  | } |