fix(shop-cart): 修复购物车后端查询及前后端字段名对齐问题

- 修复后端ShopCartMapper SQL,关联查询商品和SKU信息,返回完整商品详情字段
- 新增ShopCart实体非持久化字段,映射商品名称、图片、价格、库存等
- 调整后端Controller列表方法,自动过滤当前登录用户购物车数据
- 前端ShopCart接口新增salePrice、dealerPrice字段,CartContext映射新增字段
- 修正购物车数量和选中状态字段名,前端与后端统一使用cartNum和selected
- 统一更新购物车数量、选中状态的接口调用参数,避免因字段不匹配导致更新失败
- 购物车及结算页价格显示逻辑优先使用后端扁平dealerPrice字段,兼容VIP价格显示
- 各购物车相关页面调整添加购物车参数,确保字段名一致和正确传递
This commit is contained in:
2026-07-14 01:14:15 +08:00
parent 711db25093
commit 93a46bdae7
8 changed files with 67 additions and 25 deletions

View File

@@ -63,7 +63,7 @@ export async function addToCart(data: AddToCartParam) {
export async function updateCartNum(data: UpdateCartNumParam) {
const res = await request.put<ApiResult<unknown>>(
'/shop/shop-cart',
{ id: data.id, num: data.num }
{ id: data.id, cartNum: data.cartNum }
);
if (res.code === 0) {
return res.message || '更新成功';
@@ -77,7 +77,7 @@ export async function updateCartNum(data: UpdateCartNumParam) {
export async function updateCartChecked(id: number, checked: boolean) {
const res = await request.put<ApiResult<unknown>>(
'/shop/shop-cart',
{ id, checked }
{ id, selected: checked }
);
if (res.code === 0) {
return res.message || '更新成功';

View File

@@ -12,8 +12,8 @@ export interface ShopCart {
goodsId?: number;
// SKU ID
skuId?: number;
// 数量
num?: number;
// 数量(后端字段名 cartNum
cartNum?: number;
// 商品名称
goodsName?: string;
// 商品图片
@@ -24,6 +24,12 @@ export interface ShopCart {
skuSpec?: string;
// 库存
stock?: number;
// 市场价(划线价)
salePrice?: string | number;
// 经销商价(VIP专享)
dealerPrice?: string | number;
// 是否选中(后端字段名 selected
selected?: boolean;
// 租户id
tenantId?: number;
// 创建时间
@@ -52,8 +58,8 @@ export interface AddToCartParam {
goodsId: number;
// SKU ID单规格可不传
skuId?: number;
// 数量
num: number;
// 数量(后端字段名 cartNum
cartNum: number;
}
/**
@@ -62,8 +68,8 @@ export interface AddToCartParam {
export interface UpdateCartNumParam {
// 购物车ID
id: number;
// 数量
num: number;
// 数量(后端字段名 cartNum
cartNum: number;
}
/**