|
|
|
@ -0,0 +1,97 @@
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* https://www.mall4j.com/
|
|
|
|
|
*
|
|
|
|
|
* 未经允许,不可做商业用途!
|
|
|
|
|
*
|
|
|
|
|
* 版权所有,侵权必究!
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package com.yami.shop.bean.app.param;
|
|
|
|
|
|
|
|
|
|
import jakarta.validation.constraints.NotNull;
|
|
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
|
|
import lombok.Data;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* `ChangeShopCartParam`类是一个用于接收修改购物车相关操作参数的数据对象,在电商应用的业务逻辑处理中起着关键作用。
|
|
|
|
|
* 它主要用于在前端与后端进行交互时,承载用户发起的修改购物车操作所需的各项数据信息,以便后端能够依据这些参数准确地执行相应的业务逻辑,
|
|
|
|
|
* 比如更新购物车中商品的数量、更换商品的规格、处理与分销相关的业务逻辑等操作。
|
|
|
|
|
|
|
|
|
|
* @author LGH
|
|
|
|
|
*/
|
|
|
|
|
@Data
|
|
|
|
|
public class ChangeShopCartParam {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* `basketId`属性代表购物车中某条商品记录的唯一标识符,也就是购物车ID。
|
|
|
|
|
* 在购物车的业务场景中,购物车可以包含多条不同的商品记录,每条记录都有其独立的 `basketId`,
|
|
|
|
|
* 通过这个ID,后端服务能够精准地定位到用户想要修改的具体是哪一项商品记录,
|
|
|
|
|
* 无论是对商品数量进行调整、删除该商品,还是进行其他与该商品在购物车中相关的操作,都依赖这个唯一标识来确定操作对象。
|
|
|
|
|
* 同时,通过 `@Schema` 注解,在生成API文档(例如使用Swagger等工具时)时,为该属性添加“购物车ID”的描述信息,
|
|
|
|
|
* 并明确标记其为必填项(`required = true`),告知接口调用者在发起修改购物车操作时必须提供这个参数值,
|
|
|
|
|
* 以此保证后端接收到的数据完整性,便于准确执行后续业务逻辑。
|
|
|
|
|
*/
|
|
|
|
|
@Schema(description = "购物车ID", required = true)
|
|
|
|
|
private Long basketId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* `prodId`属性是商品的唯一标识符,即商品ID。
|
|
|
|
|
* 在整个电商系统中,每个商品都被赋予了一个唯一的 `prodId`,用于精确地指代该商品,
|
|
|
|
|
* 通过这个ID,后端可以关联到商品的详细信息,如商品名称、价格、规格详情、库存信息等,
|
|
|
|
|
* 进而在修改购物车操作中,准确知晓当前操作涉及的是哪个具体商品。
|
|
|
|
|
* 这里使用了 `@NotNull` 注解,并设置了相应的提示消息“商品ID不能为空”,
|
|
|
|
|
* 用于在数据校验阶段确保前端传递过来的参数中该商品ID不能为空值,若为空则会触发验证错误提示,
|
|
|
|
|
* 同时通过 `@Schema` 注解在API文档中表明其描述为“商品ID”且为必填项,确保接口调用时数据的规范性和完整性。
|
|
|
|
|
*/
|
|
|
|
|
@NotNull(message = "商品ID不能为空")
|
|
|
|
|
@Schema(description = "商品ID", required = true)
|
|
|
|
|
private Long prodId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* `skuId`属性表示商品库存保有单位(Stock Keeping Unit,简称SKU)的ID,即具体商品规格的唯一标识符。
|
|
|
|
|
* 在电商业务中,同一款商品往往会有多种不同的规格组合,例如一款手机可能有不同的颜色、内存容量等配置,
|
|
|
|
|
* 每个不同的规格组合就对应一个独特的SKU,通过这个 `skuId`,能够精准地定位到具体是哪一种规格的商品,
|
|
|
|
|
* 以便在修改购物车操作中准确处理与该商品规格相关的业务逻辑,比如更新对应规格商品的数量等。
|
|
|
|
|
* 同样,借助 `@NotNull` 注解保证该参数不能为空,若为空会给出“skuId不能为空”的错误提示,
|
|
|
|
|
* 且通过 `@Schema` 注解在API文档里明确其描述为“skuId”并标记为必填项,便于接口调用者正确传递参数。
|
|
|
|
|
*/
|
|
|
|
|
@NotNull(message = "skuId不能为空")
|
|
|
|
|
@Schema(description = "skuId", required = true)
|
|
|
|
|
private Long skuId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* `shopId`属性为店铺的唯一标识符,也就是店铺ID。
|
|
|
|
|
* 在多店铺的电商平台模式下,不同店铺可能会售卖相同的商品,但商品的库存数量、价格、优惠活动等信息可能各不相同,
|
|
|
|
|
* 所以需要通过这个 `shopId` 来明确当前修改购物车操作所涉及商品所属的具体店铺,
|
|
|
|
|
* 确保后端能够依据准确的店铺信息来处理诸如库存扣减、价格计算、店铺相关优惠应用等业务逻辑。
|
|
|
|
|
* 利用 `@NotNull` 注解强制要求该参数必须提供有效的店铺ID值,若缺失会触发验证错误,
|
|
|
|
|
* 并且通过 `@Schema` 注解在API文档中展示其描述为“店铺ID”以及必填属性,保证接口调用的准确性。
|
|
|
|
|
*/
|
|
|
|
|
@NotNull(message = "店铺ID不能为空")
|
|
|
|
|
@Schema(description = "店铺ID", required = true)
|
|
|
|
|
private Long shopId;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* `count`属性代表商品的数量,即用户期望在购物车中设置的该商品的个数。
|
|
|
|
|
* 在修改购物车操作里,用户常常会调整商品的购买数量,比如从原来购买1个增加到购买2个等情况,
|
|
|
|
|
* 这个属性就用于记录用户想要修改后的商品数量值,后端依据该值来更新购物车中对应商品的数量信息,
|
|
|
|
|
* 并进一步基于新的数量进行诸如总价重新计算、库存更新等相关业务逻辑处理。
|
|
|
|
|
* 通过 `@NotNull` 注解确保该参数不能为空,必须传递有效的数量数值,
|
|
|
|
|
* 同时借助 `@Schema` 注解在API文档中明确其描述为“商品个数”且为必填项,方便接口调用者知晓参数要求并正确传递数据。
|
|
|
|
|
*/
|
|
|
|
|
@NotNull(message = "商品个数不能为空")
|
|
|
|
|
@Schema(description = "商品个数", required = true)
|
|
|
|
|
private Integer count;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* `distributionCardNo`属性用于存放分销推广人卡号相关信息。
|
|
|
|
|
* 在电商平台的分销业务模式下,当用户通过某个分销推广人的链接进入购物并产生购买行为时,
|
|
|
|
|
* 这个卡号可以用于追踪该商品销售与推广人的关联关系,以便后续进行相应的分销收益计算、记录等业务操作。
|
|
|
|
|
* 该属性并非必填项,其描述信息通过 `@Schema` 注解在API文档中体现为“分销推广人卡号”,
|
|
|
|
|
* 告知接口调用者该参数的含义以及在有分销相关业务场景时可以选择性地提供相应卡号信息。
|
|
|
|
|
*/
|
|
|
|
|
@Schema(description = "分销推广人卡号")
|
|
|
|
|
private String distributionCardNo;
|
|
|
|
|
}
|