package com.oying.modules.pc.product.domain; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.oying.base.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.math.BigDecimal; /** * @author lzp * @date 2025-04-30 **/ @Getter @Setter @TableName("pc_product") public class Product extends BaseEntity implements Serializable { @TableId(value = "product_id") @ApiModelProperty(value = "ID") private Long productId; @NotBlank @ApiModelProperty(value = "店铺ID") private Long storeId; @NotBlank @ApiModelProperty(value = "条形码") private String barcode; @NotBlank @ApiModelProperty(value = "商品名称") private String name; @NotBlank @ApiModelProperty(value = "商品标题") private String title; @NotNull @ApiModelProperty(value = "一级分类ID") private Long categoryId; @NotNull @ApiModelProperty(value = "二级分类ID") private Long secondCategoryId; @NotNull @ApiModelProperty(value = "状态:1000-草稿 1001上架 1002下架") private Integer status; @NotBlank @ApiModelProperty(value = "主图片") private String mainImage; @ApiModelProperty(value = "详情图片") private String detailImage; @ApiModelProperty(value = "商品描述") private String description; @NotNull @ApiModelProperty(value = "销售价格") private BigDecimal price; @NotNull @ApiModelProperty(value = "库存数量") private Integer stockQuantity; @NotNull @ApiModelProperty(value = "起售数量") private Integer minPurchaseQuantity; @ApiModelProperty(value = "预警库存") private Integer warnStock; @ApiModelProperty(value = "重量(单位:g)") private Integer weight; @ApiModelProperty(value = "宽度(单位:厘米)") private Integer width; @ApiModelProperty(value = "长度(单位:厘米)") private Integer length; @ApiModelProperty(value = "高度(单位:厘米)") private Integer height; @NotNull @ApiModelProperty(value = "是否删除") private Integer deletedFlag; @NotNull @ApiModelProperty(value = "版本号") private Long version; public void copy(Product source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } }