ZaActivityGood.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. declare (strict_types=1);
  3. namespace app\common\model\za;
  4. use app\common\model\Goods;
  5. use app\common\model\GoodsSku;
  6. use app\common\model\BaseModel;
  7. /**
  8. * 活动中心 ▸ 买一赠一活动商品
  9. * Class Ad
  10. * @package app\common\model
  11. */
  12. class ZaActivityGood extends BaseModel
  13. {
  14. protected $name = 'za_activity_goods';
  15. // protected $append = ['status'];
  16. // //商品状态 即将开始或已结束
  17. // public function getStatusAttr() {
  18. // $now = date("Y-m-d H:i:s",time());
  19. // if ($now < $this->start_time) {
  20. // $d = Date("d",time());
  21. // // 2022-01-01 15:00:00;
  22. // if($d==substr($this->start_time,8,2)){
  23. // return [1,substr($this->start_time,11,5).'开始秒杀'];
  24. // }else{
  25. // return [2,'即将开始'];
  26. // }
  27. // }
  28. // if ($now > $this->end_time) {
  29. // return [3,'秒杀结束'];
  30. // }
  31. // if($now>$this->start_time&&$now<$this->end_time){
  32. // return [4,'秒杀中'];
  33. // }
  34. // return [0,''];
  35. // }
  36. /**
  37. * 一对多关联商品表
  38. */
  39. public function activity(){
  40. return $this->belongsTo('ZaActivity', 'id','za_activity_id');
  41. }
  42. public function add($activity_id, $data){
  43. // 先删除全部
  44. static::deleteAll(['za_activity_id' => $activity_id]);
  45. if (!empty($data)) {
  46. // 添加
  47. $dataset = [];
  48. foreach ($data as $item) {
  49. // 商品信息
  50. $goodsInfo = Goods::detail($item['goods_id'],['images.file']);
  51. if (empty($goodsInfo)) {
  52. $this->error = "商品信息错误";
  53. return false;
  54. }
  55. // $goodsSku = GoodsSku::detail($item['goods_id'], $item['goods_sku_id']);
  56. // if($item['ms_price']>$goodsInfo['goods_price_min']){
  57. // $this->error = '秒杀价不能大于商品价格';
  58. // return false;
  59. // }
  60. // $goodsSku = GoodsSku::detail($item['goods_id'], $item['goods_sku_id']);
  61. // if (empty($goodsSku)) {
  62. // $this->error = "商品sku信息错误";
  63. // return false;
  64. // }
  65. // $start_time = trim($item['start_time'], '&quot;');
  66. // $start_time = str2time_date_format($start_time);
  67. // $end_time = trim($item['end_time'], '&quot;');
  68. // $end_time = str2time_date_format($end_time);
  69. $dataset[] = [
  70. 'za_activity_id' => $activity_id,
  71. 'goods_id' => $item['goods_id'],
  72. 'goods_sku_id' => 0,//$goodsInfo['goods_sku_id'],
  73. 'goods_sku_no' => $goodsInfo['goods_no'],
  74. 'goods_price' => $goodsInfo['goods_price_min'],
  75. 'stock_num' => $item['limit_stock'],
  76. 'limit_stock'=>$item['limit_stock'],
  77. 'goods_name' => $goodsInfo['goods_name']??'',
  78. 'preview_url' => $goodsInfo['images'][0]['file']['preview_url']??'',
  79. ];
  80. }
  81. (new static)->addAll($dataset);
  82. return true;
  83. }
  84. }
  85. }