| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- package com.izouma.nineth.domain;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.izouma.nineth.annotations.Searchable;
- import com.izouma.nineth.converter.FileObjectListConverter;
- import com.izouma.nineth.converter.StringArrayConverter;
- import com.izouma.nineth.enums.CollectionSource;
- import com.izouma.nineth.enums.CollectionType;
- import io.swagger.annotations.ApiModel;
- import io.swagger.annotations.ApiModelProperty;
- import lombok.AllArgsConstructor;
- import lombok.Builder;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import org.apache.commons.lang3.StringUtils;
- import javax.persistence.*;
- import java.math.BigDecimal;
- import java.time.LocalDateTime;
- import java.util.List;
- @Data
- @Entity
- @Table(name = "collection_info")
- @AllArgsConstructor
- @NoArgsConstructor
- @Builder
- @ApiModel("藏品")
- public class Collection extends BaseEntity {
- @ApiModelProperty("名称")
- @Searchable
- private String name;
- @ApiModelProperty("图片")
- @Column(columnDefinition = "TEXT")
- @Convert(converter = FileObjectListConverter.class)
- private List<FileObject> pics;
- @ApiModelProperty("铸造者")
- @Searchable
- private String minter;
- @ApiModelProperty("铸造者ID")
- private Long minterId;
- @ApiModelProperty("铸造者头像")
- private String minterAvatar;
- @ApiModelProperty("铸造者")
- @Searchable
- private String owner;
- @ApiModelProperty("铸造者ID")
- private Long ownerId;
- @ApiModelProperty("铸造者头像")
- private String ownerAvatar;
- @ApiModelProperty("详情")
- @Column(columnDefinition = "TEXT")
- private String detail;
- @ApiModelProperty("类型")
- @Enumerated(EnumType.STRING)
- private CollectionType type;
- @Column(columnDefinition = "TEXT")
- @Convert(converter = PropertyListConverter.class)
- @ApiModelProperty("特性")
- private List<CollectionProperty> properties;
- @ApiModelProperty("是否可转售")
- private boolean canResale;
- @ApiModelProperty("版税比例")
- private int royalties;
- @ApiModelProperty("手续费比例")
- private int serviceCharge;
- @ApiModelProperty("分类")
- private String category;
- @ApiModelProperty("来源")
- @Enumerated(EnumType.STRING)
- private CollectionSource source;
- @ApiModelProperty("已售")
- private int sale;
- @ApiModelProperty("库存")
- private int stock;
- @ApiModelProperty("发行数量")
- private int total;
- @ApiModelProperty("点赞")
- private int likes;
- @ApiModelProperty("上架")
- private boolean onShelf;
- @ApiModelProperty("可售")
- private boolean salable;
- @ApiModelProperty("价格")
- @Column(precision = 10, scale = 2)
- private BigDecimal price;
- @ApiModelProperty("盲盒开售时间")
- private LocalDateTime startTime;
- private boolean scheduleSale;
- @Data
- public static class CollectionProperty {
- private String name;
- private String value;
- }
- public static class PropertyListConverter implements AttributeConverter<List<CollectionProperty>, String> {
- @Override
- public String convertToDatabaseColumn(List<CollectionProperty> collectionProperties) {
- if (collectionProperties == null) {
- return null;
- }
- return JSON.toJSONString(collectionProperties);
- }
- @Override
- public List<CollectionProperty> convertToEntityAttribute(String s) {
- if (StringUtils.isEmpty(s)) {
- return null;
- }
- try {
- return JSONArray.parseArray(s, CollectionProperty.class);
- } catch (Exception ignored) {
- }
- return null;
- }
- }
- }
|