package com.xiaopeng.api.model.account; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.xiaopeng.common.core.web.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import javax.validation.constraints.DecimalMax; import javax.validation.constraints.DecimalMin; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import java.math.BigDecimal; import java.time.LocalDateTime; /** *
* 用户优惠券 *
* * @author mitao * @since 2026-02-03 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("xp_app_user_coupon") @ApiModel(value="XpAppUserCoupon对象", description="用户优惠券") public class XpAppUserCoupon extends BaseModel { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; @ApiModelProperty(value = "满减金额") @Min(0)@Max(9999) private BigDecimal fullMoney; @ApiModelProperty(value = "满减面额,对应couponType=1") @Min(0)@Max(9999) private BigDecimal money; @ApiModelProperty(value = "抹零后金额,对应couponType=3") @Min(0)@Max(9999) @TableField(exist = false) private BigDecimal money3; @ApiModelProperty(value = "折扣,对应couponType=2") @DecimalMin(value = "0.1", inclusive = true) @DecimalMax(value = "10", inclusive = true) @TableField(exist = false) private BigDecimal money2; @ApiModelProperty(value = "过期时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime expirationTime; @ApiModelProperty(value = "使用时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField(updateStrategy = FieldStrategy.IGNORED) private LocalDateTime useTime; @ApiModelProperty(value = "状态(1=未使用,2=已使用,3=已过期 0=待领取 4=占用中)") private Integer status; @ApiModelProperty(value = "优惠券类型(1=抵扣,2=满减,3=抹零)") private Integer couponType; @ApiModelProperty(value = "用户id") private Long appUserId; @ApiModelProperty(value = "手机号") @TableField(exist = false) private String phone; @ApiModelProperty(value = "优惠券发放id") private Long couponId; @ApiModelProperty(value = "活动id") private Long activityId; @ApiModelProperty(value = "活动类型(1=注册,2=邀请,3=红包)") private Integer activityType; @ApiModelProperty(value = "优惠券名称(快照)") private String couponName; @ApiModelProperty(value = "城市id集合") private String openCityId; @ApiModelProperty(value = "使用时间规则") private String timeJson; }