GoodsSku.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. *
  4. * @copyright ©2020 点小铺
  5. * @author hanj
  6. * @link: https://dyuit.com
  7. * Created by VSCode
  8. */
  9. namespace app\store\model;
  10. use app\common\model\GoodsSku as GoodsSkuModel;
  11. /**
  12. * 商品规格模型
  13. * Class GoodsSku
  14. * @package app\store\model
  15. */
  16. class GoodsSku extends GoodsSkuModel
  17. {
  18. /**
  19. * 批量添加商品sku记录
  20. * @param $goods_id
  21. * @param $spec_list
  22. * @return array|false
  23. * @throws \Exception
  24. */
  25. public function addSkuList($goods_id, $spec_list)
  26. {
  27. $data = [];
  28. foreach ($spec_list as $item) {
  29. $data[] = array_merge($item['form'], [
  30. 'spec_sku_id' => $item['spec_sku_id'],
  31. 'goods_id' => $goods_id,
  32. 'wxapp_id' => self::$wxapp_id,
  33. ]);
  34. }
  35. return $this->allowField(true)->saveAll($data);
  36. }
  37. /**
  38. * 添加商品规格关系记录
  39. * @param $goods_id
  40. * @param $spec_attr
  41. * @return array|false
  42. * @throws \Exception
  43. */
  44. public function addGoodsSpecRel($goods_id, $spec_attr)
  45. {
  46. $data = [];
  47. array_map(function ($val) use (&$data, $goods_id) {
  48. array_map(function ($item) use (&$val, &$data, $goods_id) {
  49. $data[] = [
  50. 'goods_id' => $goods_id,
  51. 'spec_id' => $val['group_id'],
  52. 'spec_value_id' => $item['item_id'],
  53. 'wxapp_id' => self::$wxapp_id,
  54. ];
  55. }, $val['spec_items']);
  56. }, $spec_attr);
  57. $model = new GoodsSpecRel;
  58. return $model->saveAll($data);
  59. }
  60. /**
  61. * 移除指定商品的所有sku
  62. * @param $goods_id
  63. * @return int
  64. */
  65. public function removeAll($goods_id)
  66. {
  67. $model = new GoodsSpecRel;
  68. $model->where('goods_id','=', $goods_id)->delete();
  69. return $this->where('goods_id','=', $goods_id)->delete();
  70. }
  71. }