Active.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace app\supplier\model\plus\bargain;
  3. use app\common\model\plus\bargain\Active as ActiveModel;
  4. use app\common\model\plus\bargain\Product as BargainProductModel;
  5. use app\common\model\plus\bargain\BargainSku as BargainSkuModel;
  6. /**
  7. *
  8. */
  9. class Active extends ActiveModel
  10. {
  11. public function getList($data){
  12. // 获取数据列表
  13. return $this->order(['sort' => 'asc', 'create_time' => 'desc'])
  14. ->where('status','=', 1)
  15. ->where('is_delete','=', 0)
  16. ->paginate($data);
  17. }
  18. public function add($shop_supplier_id, $data){
  19. $this->startTrans();
  20. try {
  21. //添加商品
  22. $stock = array_sum(array_column($data['product']['spec_list'], 'bargain_stock'));
  23. $arr = [
  24. 'product_id' => $data['product_id'],
  25. 'bargain_activity_id' => $data['bargain_activity_id'],
  26. 'app_id' => self::$app_id,
  27. 'stock' => $stock,
  28. 'limit_num' => $data['limit_num'],
  29. 'shop_supplier_id' => $shop_supplier_id
  30. ];
  31. $model = new BargainProductModel();
  32. $model->save($arr);
  33. //商品规格
  34. $sku_model = new BargainSkuModel();
  35. $sku_data = [];
  36. foreach ($data['product']['spec_list'] as $sku) {
  37. $sku_data[] = [
  38. 'bargain_product_id' => $model['bargain_product_id'],
  39. 'product_id' => $data['product_id'],
  40. 'product_sku_id' => $sku['product_sku_id'],
  41. 'bargain_price' => $sku['bargain_price'],
  42. 'product_price' => $sku['product_price'],
  43. 'bargain_stock' => $sku['bargain_stock'],
  44. 'product_attr' => isset($sku['product_attr'])?$sku['product_attr']:'',
  45. 'bargain_activity_id' => $data['bargain_activity_id'],
  46. 'bargain_num' => $sku['bargain_num'],
  47. 'app_id' => self::$app_id,
  48. ];
  49. }
  50. $sku_model->saveAll($sku_data);
  51. // 事务提交
  52. $this->commit();
  53. return true;
  54. } catch (\Exception $e) {
  55. $this->error = $e->getMessage();
  56. $this->rollback();
  57. return false;
  58. }
  59. }
  60. }