MedicalCareProduct.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace app\admin\model;
  3. use support\Db;
  4. use support\Model;
  5. /**
  6. * 医疗产品
  7. * Class Users
  8. * @package app\admin\model
  9. */
  10. class MedicalCareProduct extends Model
  11. {
  12. /**
  13. * The table associated with the model.
  14. *
  15. * @var string
  16. */
  17. protected $table = 'medical_care_product';
  18. public $timestamps = false;
  19. /**
  20. * Notes:获取产品列表
  21. * @param string $keywords
  22. * @param int $page
  23. * @param int $limit
  24. * @return array
  25. * User: QJF
  26. * Date: 2022/9/23
  27. */
  28. public static function getProductList(int $page, int $limit,$keywords)
  29. {
  30. $list = static::select('*')
  31. ->when($keywords != '', function ($query) use ($keywords){
  32. $query->where('product_name', 'like', '%' . $keywords . '%');
  33. })
  34. ->where('product_is_del',0)
  35. ->orderBy('product_create_time','DESC')
  36. ->forPage($page, $limit)
  37. ->get();
  38. $count = static::when($keywords != '', function ($query) use ($keywords){
  39. $query->where('product_name', 'like', '%' . $keywords . '%');
  40. })->where('product_is_del',0)->count();
  41. return [$list, $count];
  42. }
  43. //修改器销量+虚拟销量
  44. public function getProductSalesAttribute($value)
  45. {
  46. return $value + $this->product_ficti . "(销量:".$value ." + 虚拟:".$this->product_ficti.")";
  47. }
  48. public function getProductCreateTimeAttribute($value)
  49. {
  50. return date('Y-m-d H:i:s', $value);
  51. }
  52. public function getProductUpdateTimeAttribute($value)
  53. {
  54. return date('Y-m-d H:i:s', $value);
  55. }
  56. //审核时间
  57. public function getProductAutoTimeAttribute($value)
  58. {
  59. return date('Y-m-d H:i:s', $value);
  60. }
  61. public function Attr(){
  62. return $this->hasMany(MedicalCareProductAttrValue::class,'attr_value_product_id','product_id')->where(['attr_value_is_delete'=>0]);
  63. }
  64. /**
  65. * Notes:产品sku关联模型
  66. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  67. * User: QJF
  68. * Date: 2022/10/10
  69. */
  70. public function sku()
  71. {
  72. return $this->hasMany(MedicalCareProductAttrValue::class, 'attr_value_product_id', 'product_id')->where(['attr_value_is_delete' => 0]);
  73. }
  74. /**
  75. * Notes:产品sku类别关联模型
  76. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  77. * User: QJF
  78. * Date: 2022/10/10
  79. */
  80. public function sku_type()
  81. {
  82. return $this->hasMany(MedicalCareProductAttr::class, 'attr_product_id', 'product_id');
  83. }
  84. //关联店铺
  85. public function Shop(){
  86. return $this->belongsTo(MerchantShop::class,'product_shop_id','shop_id');
  87. }
  88. //关联运费模板
  89. public function Postage(){
  90. return $this->belongsTo(MedicalCarePostage::class,'product_postage_id','postage_id');
  91. }
  92. //获取器修改产品标签
  93. public function getProductLabelsAttribute($value)
  94. {
  95. return explode('|', $value);
  96. }
  97. //获取器修改图片
  98. public function getProductSliderImageAttribute($value)
  99. {
  100. return explode(',', $value);
  101. }
  102. }