CreatedCloudGoodsUpdateLog.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\jobs;
  8. use app\models\CloudGoodsUpdateLog;
  9. use app\models\Goods;
  10. use app\models\Option;
  11. use yii\base\BaseObject;
  12. use yii\queue\JobInterface;
  13. /**
  14. * 用于平台修改商品后自动同步所有门店该商品属性
  15. */
  16. class CreatedCloudGoodsUpdateLog extends BaseObject implements JobInterface
  17. {
  18. public int $cloud_goods_id;
  19. public int $cloud_supplier_id;
  20. public int $price_open;
  21. public function execute($queue)
  22. {
  23. try {
  24. debug_log('CreatedCloudGoodsUpdateLog');
  25. $cloud_goods_id = $this->cloud_goods_id;
  26. $cloud_supplier_id = $this->cloud_supplier_id;
  27. $price_open = $this->price_open;
  28. $goods = Goods::find()->where(['cloud_goods_id' => $cloud_goods_id, 'is_delete' => 0])
  29. ->andWhere(['OR', ['is', 'is_wholesale', null], ['<=', 'is_wholesale', 0]])->asArray()->all();
  30. debug_log($cloud_goods_id);
  31. debug_log($cloud_supplier_id);
  32. foreach ($goods as $item) {
  33. //获取商城是否设置云仓产品自动更新
  34. // $cloud_is_update = Option::get('cloud_is_update', $item['store_id'], 'store')['value'];
  35. $log = CloudGoodsUpdateLog::findOne(['cloud_goods_id' => $cloud_goods_id, 'store_id' => $item['store_id']]) ?: new CloudGoodsUpdateLog();
  36. $log->cloud_supplier_id = $cloud_supplier_id;
  37. $log->cloud_goods_id = $cloud_goods_id;
  38. $log->store_id = $item['store_id'];
  39. $log->goods_id = $item['id'];
  40. $log->is_update = 0;
  41. $log->is_audit = $price_open;
  42. $log->status = (int)$item['status'];
  43. $log->created_at = time();
  44. $log->updated_at = '0';
  45. $res = $log->save();
  46. debug_log(json_encode($log->errors));
  47. }
  48. } catch (\Exception $e) {
  49. debug_log('创建云仓更新产品信息1'. json_encode($e->getFile() . $e->getMessage() . $e->getLine()));
  50. }
  51. }
  52. }