package com.oying.modules.sh.domain; import lombok.Data; import cn.hutool.core.bean.BeanUtil; import io.swagger.annotations.ApiModelProperty; import cn.hutool.core.bean.copier.CopyOptions; import java.math.BigDecimal; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Objects; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; /** * @author lixin * @description / * @date 2025-06-11 **/ @Data @TableName("sh_order_return_product_snapshot") public class OrderReturnProductSnapshot implements Serializable { @TableId(value = "snapshot_id", type = IdType.AUTO) @ApiModelProperty(value = "主键") private Long snapshotId; @NotBlank @ApiModelProperty(value = "退单号") private String returnNum; @NotNull @ApiModelProperty(value = "门店ID") private Long storeId; @NotNull @ApiModelProperty(value = "商品ID") private Long productId; @ApiModelProperty(value = "商品编号") private String productCode; @NotBlank @ApiModelProperty(value = "条形码") private String productBarcode; @NotBlank @ApiModelProperty(value = "商品名称") private String productName; @NotBlank @ApiModelProperty(value = "商品标题") private String productTitle; @NotBlank @ApiModelProperty(value = "主图片") private String productMainImage; @NotBlank @ApiModelProperty(value = "商品描述") private String productDescription; @ApiModelProperty(value = "参数快照 {\"保存方式\":\"冷藏\",\"品牌\":\"A牌\"}") private String paramData; @NotNull @ApiModelProperty(value = "单价") private BigDecimal unitPrice; @NotNull @ApiModelProperty(value = "数量") private Integer detailCount; @NotNull @ApiModelProperty(value = "原金额") private BigDecimal originalPrice; @NotNull @ApiModelProperty(value = "折扣价") private BigDecimal paidPrice; @NotNull @ApiModelProperty(value = "实付金额") private BigDecimal actuallyPayPrice; @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } OrderReturnProductSnapshot snapshot = (OrderReturnProductSnapshot) o; return Objects.equals(snapshotId, snapshot.snapshotId); } @Override public int hashCode() { return Objects.hash(snapshotId); } public void copy(OrderReturnProductSnapshot source) { BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); } }