package cn.lili.modules.distribution.entity.dos; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.mybatis.BaseIdEntity; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.Max; import javax.validation.constraints.NotNull; import java.util.Date; import java.util.Map; /** * 分销商品 * * @author pikachu * @since 2020-03-14 23:04:56 */ @Data @ApiModel(value = "分销商品") @TableName("li_distribution_goods") @NoArgsConstructor public class DistributionGoods extends BaseIdEntity { private static final long serialVersionUID = 1L; @CreatedBy @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "创建者", hidden = true) private String createBy; @CreatedDate @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "创建时间", hidden = true) private Date createTime; @NotNull(message = "商品ID不能为空") @ApiModelProperty(value = "商品ID", required = true) private String goodsId; @ApiModelProperty(value = "商品名称") private String goodsName; @NotNull(message = "规格ID不能为空") @ApiModelProperty(value = "规格ID", required = true) private String skuId; @ApiModelProperty(value = "规格信息json", hidden = true) @JsonIgnore private String specs; @NotNull(message = "店铺ID不能为空") @ApiModelProperty(value = "店铺ID") private String storeId; @NotNull(message = "店铺名称不能为空") @ApiModelProperty(value = "店铺名称") private String storeName; @NotNull(message = "佣金金额") @ApiModelProperty(value = "佣金金额", required = true) private Double commission = 0D; @Max(value = 99999999, message = "价格不能超过99999999") @ApiModelProperty(value = "商品价格") private Double price; @ApiModelProperty(value = "缩略图路径") private String thumbnail; @Max(value = 99999999, message = "库存不能超过99999999") @ApiModelProperty(value = "库存") private Integer quantity; public DistributionGoods(GoodsSku goodsSku, Double commission) { this.goodsId = goodsSku.getGoodsId(); this.goodsName = goodsSku.getGoodsName(); this.skuId = goodsSku.getId(); this.specs = ""; JSONObject jsonObject = JSONUtil.parseObj(goodsSku.getSpecs()); for (Map.Entry entry : jsonObject.entrySet()) { if (!"images".equals(entry.getKey())) { this.specs = this.specs + entry.getKey() + ":" + entry.getValue() + " "; } } this.storeId = goodsSku.getStoreId(); this.storeName = goodsSku.getStoreName(); this.price = goodsSku.getPrice(); this.thumbnail = goodsSku.getThumbnail(); this.quantity = goodsSku.getQuantity(); this.commission = commission; } }