package com.webmanage.service; import com.webmanage.dto.CartItemDTO; import com.webmanage.dto.CartQueryDTO; import com.webmanage.vo.CartVO; import com.webmanage.vo.CartItemVO; import java.util.List; /** * 购物车服务接口 */ public interface CartService { /** * 添加商品到购物车(Redis + 数据库) */ boolean addToCart(Long userId, Long unitId, CartItemDTO cartItemDTO); /** * 从购物车移除商品(Redis + 数据库) */ boolean removeFromCart(Long userId, Long unitId, Long pricingId); /** * 更新购物车商品数量(Redis + 数据库) */ boolean updateCartItemQuantity(Long userId, Long unitId, Long pricingId, Integer quantity); /** * 清空购物车(Redis + 数据库) */ boolean clearCart(Long userId, Long unitId); /** * 获取购物车信息(优先Redis,失败则从数据库加载) */ CartVO getCart(Long userId, Long unitId); /** * 获取购物车商品列表(优先Redis,失败则从数据库加载) */ List getCartItems(Long userId, Long unitId); /** * 检查购物车商品库存 */ boolean checkCartItemStock(Long userId, Long unitId, Long pricingId); /** * 批量删除购物车商品(Redis + 数据库) */ boolean batchRemoveFromCart(Long userId, Long unitId, List pricingIds); /** * 获取购物车商品数量(优先Redis,失败则从数据库加载) */ Integer getCartItemCount(Long userId, Long unitId); /** * 从数据库加载购物车数据到Redis */ boolean loadCartFromDatabase(Long userId, Long unitId); /** * 同步Redis数据到数据库 */ boolean syncCartToDatabase(Long userId, Long unitId); /** * 检查购物车数据一致性 */ boolean checkCartConsistency(Long userId, Long unitId); }