Product.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. using ZR.Mall.Enum;
  2. using ZR.Model.System;
  3. namespace ZR.Mall.Model
  4. {
  5. /// <summary>
  6. /// 商品管理
  7. /// </summary>
  8. [SugarTable("mms_product", "商品管理")]
  9. [Tenant("1")]
  10. public class Product : SysBase
  11. {
  12. /// <summary>
  13. /// 商品ID
  14. /// </summary>
  15. [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
  16. public long ProductId { get; set; }
  17. /// <summary>
  18. /// 商品名
  19. /// </summary>
  20. [SugarColumn(ExtendedAttribute = ProteryConstant.NOTNULL)]
  21. public string ProductName { get; set; }
  22. /// <summary>
  23. /// 商品编码
  24. /// </summary>
  25. public string ProductCode { get; set; }
  26. /// <summary>
  27. /// 介绍
  28. /// </summary>
  29. public string Introduce { get; set; }
  30. /// <summary>
  31. /// 品牌Id
  32. /// </summary>
  33. public long? BrandId { get; set; }
  34. /// <summary>
  35. /// 商品分类
  36. /// </summary>
  37. public int? CategoryId { get; set; }
  38. /// <summary>
  39. /// sku最低价格(自动根据sku计算)
  40. /// </summary>
  41. public decimal Price { get; set; }
  42. /// <summary>
  43. /// 最高价格(用于前端搜索价格区间)自动根据sku计算
  44. /// </summary>
  45. public decimal MaxPrice { get; set; }
  46. /// <summary>
  47. /// 商品原件(划线价)
  48. /// </summary>
  49. public decimal OriginalPrice { get; set; }
  50. /// <summary>
  51. /// 单位 (如:件,瓶,斤)
  52. /// </summary>
  53. public string Unit { get; set; }
  54. /// <summary>
  55. /// 轮播图片
  56. /// </summary>
  57. [SugarColumn(Length = 2000)]
  58. public string ImageUrls { get; set; }
  59. /// <summary>
  60. /// 商品主图
  61. /// </summary>
  62. public string MainImage { get; set; }
  63. /// <summary>
  64. /// 视频介绍
  65. /// </summary>
  66. public string VideoUrl { get; set; }
  67. /// <summary>
  68. /// 销量统计(可加缓存)
  69. /// </summary>
  70. public int TotalSalesVolume { get; set; }
  71. /// <summary>
  72. /// 排序ID (越大排序越靠前)
  73. /// </summary>
  74. [SugarColumn(DefaultValue = "0")]
  75. public int SortId { get; set; } = 0;
  76. /// <summary>
  77. /// 显示状态 1.在售 0.下架
  78. /// </summary>
  79. [SugarColumn(DefaultValue = "0", ExtendedAttribute = ProteryConstant.NOTNULL)]
  80. public SaleStatus SaleStatus { get; set; }
  81. /// <summary>
  82. /// 添加时间
  83. /// </summary>
  84. [SugarColumn(InsertServerTime = true)]
  85. public DateTime? AddTime { get; set; }
  86. /// <summary>
  87. /// 详情页富文本
  88. /// </summary>
  89. [SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString)]
  90. public string DetailsHtml { get; set; }
  91. /// <summary>
  92. /// 是否删除
  93. /// </summary>
  94. [SugarColumn(DefaultValue = "0")]
  95. public int IsDelete { get; set; }
  96. /// <summary>
  97. /// 规格简介(只读,存档使用)
  98. /// </summary>
  99. public string SpecSummary { get; set; }
  100. /// <summary>
  101. /// 规格类型
  102. /// </summary>
  103. public SpecType SpecType { get; set; } = SpecType.Multiple;
  104. /// <summary>
  105. /// 限购
  106. /// </summary>
  107. [SugarColumn(IsJson = true)]
  108. public PurchaseLimit PurchaseLimit { get; set; } = new PurchaseLimit();
  109. /// <summary>
  110. /// sku
  111. /// </summary>
  112. [Navigate(NavigateType.OneToMany, nameof(ProductId), nameof(Model.Skus.ProductId))] //自定义关系映射
  113. public List<Skus> Skus { get; set; }
  114. /// <summary>
  115. /// 分类
  116. /// </summary>
  117. [Navigate(NavigateType.OneToOne, nameof(CategoryId), nameof(Model.Category.CategoryId))] //自定义关系映射
  118. public Category Category { get; set; }
  119. /// <summary>
  120. /// 品牌
  121. /// </summary>
  122. [Navigate(NavigateType.OneToOne, nameof(BrandId), nameof(Model.Brand.Id))] //自定义关系映射
  123. public Brand Brand { get; set; }
  124. }
  125. public class PurchaseLimit
  126. {
  127. public bool Limit { get; set; }
  128. /// <summary>
  129. /// 总限购件数
  130. /// </summary>
  131. public int TotalLimit { get; set; }
  132. /// <summary>
  133. /// 每单限购
  134. /// </summary>
  135. public int SingleLimit { get; set; }
  136. }
  137. }