RiceCardGoods.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace app\store\model\card;
  3. use app\common\library\helper;
  4. use app\common\model\card\RiceCardGoods as RiceCardGoodsModel;
  5. use app\store\model\Goods;
  6. use app\store\model\GoodsSku;
  7. /**
  8. * 米卡商品模型
  9. * @package app\common\model
  10. */
  11. class RiceCardGoods extends RiceCardGoodsModel
  12. {
  13. public function add($cardId, $isExcept, $data)
  14. {
  15. // 先删除全部
  16. static::deleteAll(['card_id' => $cardId, 'is_except' => $isExcept]);
  17. if (!empty($data)) {
  18. // 添加
  19. $dataset = [];
  20. foreach ($data as $item) {
  21. // 商品信息
  22. $goodsInfo = Goods::detail($item['goods_id'], ['images' => ['file'], 'skuList' => ['image']]);
  23. if (empty($goodsInfo)) {
  24. $this->error = "商品信息错误";
  25. return false;
  26. }
  27. $goodsInfo['goods_images'] = helper::getArrayColumn($goodsInfo['images'], 'file');
  28. // 商品主图
  29. $goodsInfo['goods_image'] = current($goodsInfo['goods_images'])['preview_url'];
  30. $goodsInfo['image_id'] = current($goodsInfo['goods_images'])['file_id'];
  31. $goodsSku = GoodsSku::detail($item['goods_id'], $item['goods_sku_id']);
  32. if (empty($goodsSku)) {
  33. $this->error = "商品信息错误";
  34. return false;
  35. }
  36. $dataset[] = [
  37. 'card_id' => $cardId,
  38. 'goods_id' => $item['goods_id'],
  39. 'goods_sku_id' => $item['goods_sku_id'],
  40. 'goods_num' => $item['goods_num'] ?? 1,
  41. 'is_except' => $isExcept,
  42. 'goods_sku_no' => $goodsSku['goods_sku_no'],
  43. 'image_id' => $goodsInfo['image_id'],
  44. 'goods_name' => $goodsInfo['goods_name'],
  45. 'goods_props' => $goodsSku['goods_props'],
  46. 'goods_price' => $goodsSku['goods_price'] ?? '0.00',
  47. 'total_price' => helper::bcsub($goodsSku['goods_price'] * ($item['goods_num'] ?? 1), 0, 2),
  48. ];
  49. }
  50. (new static)->addAll($dataset);
  51. }
  52. }
  53. }