后台完成修复,初始化项目
This commit is contained in:
89
src/main/java/com/org/flashsalesystem/entity/FlashSale.java
Normal file
89
src/main/java/com/org/flashsalesystem/entity/FlashSale.java
Normal file
@@ -0,0 +1,89 @@
|
||||
package com.org.flashsalesystem.entity;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
import javax.validation.constraints.DecimalMin;
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 秒杀活动实体类
|
||||
* 对应数据库flash_sales表
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "flash_sales")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class FlashSale {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@NotNull(message = "商品ID不能为空")
|
||||
@Column(name = "product_id", nullable = false)
|
||||
private Long productId;
|
||||
|
||||
@NotNull(message = "秒杀价格不能为空")
|
||||
@DecimalMin(value = "0.01", message = "秒杀价格必须大于0")
|
||||
@Column(name = "flash_price", nullable = false, precision = 10, scale = 2)
|
||||
private BigDecimal flashPrice;
|
||||
|
||||
@Min(value = 1, message = "秒杀库存必须大于0")
|
||||
@Column(name = "flash_stock", nullable = false)
|
||||
private Integer flashStock;
|
||||
|
||||
@NotNull(message = "开始时间不能为空")
|
||||
@Column(name = "start_time", nullable = false)
|
||||
private LocalDateTime startTime;
|
||||
|
||||
@NotNull(message = "结束时间不能为空")
|
||||
@Column(name = "end_time", nullable = false)
|
||||
private LocalDateTime endTime;
|
||||
|
||||
/**
|
||||
* 活动状态:1-未开始,2-进行中,3-已结束
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
private Integer status = 1;
|
||||
|
||||
@Column(name = "created_at", nullable = false, updatable = false)
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "product_id", insertable = false, updatable = false)
|
||||
private Product product;
|
||||
|
||||
@PrePersist
|
||||
protected void onCreate() {
|
||||
createdAt = LocalDateTime.now();
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查活动是否已开始
|
||||
*/
|
||||
public boolean isStarted() {
|
||||
return LocalDateTime.now().isAfter(startTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查活动是否已结束
|
||||
*/
|
||||
public boolean isEnded() {
|
||||
return LocalDateTime.now().isAfter(endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查活动是否正在进行中
|
||||
*/
|
||||
public boolean isActive() {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
return now.isAfter(startTime) && now.isBefore(endTime) && status == 2;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user