Skus.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php namespace App\Models\Product;
  2. use App\Models\Traits\MultipUpdate;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. /**
  6. * 产品SKU
  7. *
  8. */
  9. class Skus extends Model
  10. {
  11. use HasFactory,MultipUpdate;
  12. // 与模型关联的表名
  13. protected $table = 'product_skus';
  14. // 是否主动维护时间戳
  15. public $timestamps = false;
  16. // 定义时间戳字段名
  17. // const CREATED_AT = 'insert_time';
  18. // const UPDATED_AT = 'update_time';
  19. /**
  20. * 添加数据
  21. *
  22. */
  23. public function add($data)
  24. {
  25. // 时间
  26. $data['insert_time'] = time();
  27. $data['update_time'] = time();
  28. // 写入数据表
  29. $id = $this->query()->insertGetId($data);
  30. // 如果操作失败
  31. if( !$id ) return $id;
  32. // 返回结果
  33. return $id;
  34. }
  35. /**
  36. * 添加数据
  37. *
  38. */
  39. public function edit($id,$data)
  40. {
  41. // 更新时间
  42. $data['update_time'] = time();
  43. // 写入数据表
  44. $result = $this->query()->where([['id','=',$id]])->update($data);
  45. // 如果操作失败
  46. if( !$result ) return 0;
  47. // 返回结果
  48. return $id;
  49. }
  50. /**
  51. * 添加数据
  52. *
  53. */
  54. public function getIdByAttrIds($attrIds,$productId)
  55. {
  56. // 写入数据表
  57. $id = $this->query()->where([['attr_ids','=',$attrIds],['product_id','=',$productId]])->value('id');
  58. // 如果操作失败
  59. if( !$id ) return 0;
  60. // 返回结果
  61. return $id;
  62. }
  63. /**
  64. * 添加数据
  65. *
  66. */
  67. public function getListByIds($skuIds)
  68. {
  69. // 写入数据表
  70. $data = $this->query()->whereIn('id',$skuIds)->where([['status','=',0]])->get(['id as sku_id','product_id','attr_names as sku_attr_names','quota','min_quota','price','market_price','stock','status'])->toArray();
  71. // 列表
  72. $list = [];
  73. // 循环处理
  74. foreach ($data as $value) {
  75. // 重组数据
  76. $list[$value['sku_id']]= $value;
  77. }
  78. // 返回结果
  79. return $list;
  80. }
  81. /**
  82. * 添加数据
  83. *
  84. */
  85. public function getListByProductId($productId)
  86. {
  87. // 写入数据表
  88. $list = $this->query()->where([['product_id','=',$productId]])->get(['id','attr_ids','attr_names','min_quota','quota','sku_thumb','price','market_price','stock','status'])->toArray();
  89. // 返回结果
  90. return $list;
  91. }
  92. }