Collection.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package com.izouma.nineth.domain;
  2. import com.izouma.nineth.annotations.Searchable;
  3. import com.izouma.nineth.annotations.SearchableOne;
  4. import com.izouma.nineth.converter.FileObjectConverter;
  5. import com.izouma.nineth.converter.FileObjectListConverter;
  6. import com.izouma.nineth.converter.PrivilegeListConverter;
  7. import com.izouma.nineth.converter.PropertyListConverter;
  8. import com.izouma.nineth.enums.CollectionSource;
  9. import com.izouma.nineth.enums.CollectionType;
  10. import io.swagger.annotations.ApiModel;
  11. import io.swagger.annotations.ApiModelProperty;
  12. import lombok.AllArgsConstructor;
  13. import lombok.Builder;
  14. import lombok.Data;
  15. import lombok.NoArgsConstructor;
  16. import org.hibernate.annotations.Formula;
  17. import javax.persistence.*;
  18. import java.math.BigDecimal;
  19. import java.time.LocalDateTime;
  20. import java.util.List;
  21. @Data
  22. @Entity
  23. @Table(name = "collection_info", indexes = {
  24. @Index(columnList = "type"),
  25. @Index(columnList = "source"),
  26. @Index(columnList = "minterId"),
  27. @Index(columnList = "onShelf"),
  28. @Index(columnList = "ownerId"),
  29. @Index(columnList = "assetId"),
  30. @Index(columnList = "salable"),
  31. @Index(columnList = "del"),
  32. @Index(columnList = "name")
  33. })
  34. @AllArgsConstructor
  35. @NoArgsConstructor
  36. @Builder
  37. @ApiModel("藏品")
  38. public class Collection extends BaseEntity {
  39. @ApiModelProperty("名称")
  40. @Searchable
  41. private String name;
  42. @ApiModelProperty("图片")
  43. @Column(columnDefinition = "TEXT")
  44. @Convert(converter = FileObjectListConverter.class)
  45. private List<FileObject> pic;
  46. @Column(columnDefinition = "TEXT")
  47. @Convert(converter = FileObjectConverter.class)
  48. private FileObject model3d;
  49. @ApiModelProperty("铸造者")
  50. @SearchableOne
  51. private String minter;
  52. @ApiModelProperty("铸造者ID")
  53. private Long minterId;
  54. @ApiModelProperty("铸造者头像")
  55. private String minterAvatar;
  56. @ApiModelProperty("持有者")
  57. @SearchableOne
  58. private String owner;
  59. @ApiModelProperty("持有者者ID")
  60. private Long ownerId;
  61. @ApiModelProperty("铸造者头像")
  62. private String ownerAvatar;
  63. @ApiModelProperty("详情")
  64. @Column(columnDefinition = "TEXT")
  65. private String detail;
  66. @ApiModelProperty("类型")
  67. @Enumerated(EnumType.STRING)
  68. private CollectionType type;
  69. @Column(columnDefinition = "TEXT")
  70. @Convert(converter = PropertyListConverter.class)
  71. @ApiModelProperty("特性")
  72. private List<CollectionProperty> properties;
  73. @Column(columnDefinition = "TEXT")
  74. @Convert(converter = PrivilegeListConverter.class)
  75. @ApiModelProperty("特权")
  76. private List<Privilege> privileges;
  77. @ApiModelProperty("编号")
  78. private Integer number;
  79. @ApiModelProperty("是否可转售")
  80. private boolean canResale;
  81. @ApiModelProperty("版税比例")
  82. private int royalties;
  83. @ApiModelProperty("手续费比例")
  84. private int serviceCharge;
  85. @ApiModelProperty("分类")
  86. private String category;
  87. @ApiModelProperty("来源")
  88. @Enumerated(EnumType.STRING)
  89. private CollectionSource source;
  90. @ApiModelProperty("已售")
  91. private int sale;
  92. @ApiModelProperty("库存")
  93. private int stock;
  94. @ApiModelProperty("发行数量")
  95. private int total;
  96. @ApiModelProperty("点赞")
  97. private int likes;
  98. @ApiModelProperty("上架")
  99. private boolean onShelf;
  100. @ApiModelProperty("可售")
  101. private boolean salable;
  102. @ApiModelProperty("价格")
  103. @Column(precision = 10, scale = 2)
  104. private BigDecimal price;
  105. @ApiModelProperty("盲盒开售时间")
  106. private LocalDateTime startTime;
  107. private boolean scheduleSale;
  108. private int sort;
  109. private Long assetId;
  110. private BigDecimal originalPrice;
  111. private Integer currentNumber;
  112. @Formula(value = "if(stock <= 0, 1, 0)")
  113. private int soldOut;
  114. @ApiModelProperty("限购数量")
  115. private int maxCount;
  116. @ApiModelProperty("限购识别码")
  117. private String countId;
  118. private boolean scanCode;
  119. /*
  120. true: 没售罄
  121. false: 已售罄
  122. */
  123. @ApiModelProperty("手动售罄")
  124. private boolean noSoldOut;
  125. @ApiModelProperty("拉新任务指标")
  126. private int assignment;
  127. @ApiModelProperty("优惠券支付")
  128. private boolean couponPayment;
  129. @ApiModelProperty("分享背景")
  130. private String shareBg;
  131. @ApiModelProperty("注册背景")
  132. private String registerBg;
  133. @ApiModelProperty("总额度")
  134. private Integer totalQuota;
  135. @ApiModelProperty("剩余额度")
  136. private Integer vipQuota;
  137. @ApiModelProperty("延迟销售")
  138. private Boolean timeDelay;
  139. @ApiModelProperty("销售时间")
  140. private LocalDateTime saleTime;
  141. @ApiModelProperty("持有几天")
  142. private Integer holdDays;
  143. @ApiModelProperty("开启抢白名单")
  144. private Boolean openQuota;
  145. @ApiModelProperty("最低消费")
  146. private BigDecimal minimumCharge;
  147. }