CreatedCloudGoodsUpdate.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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 app\models\StoreCloud;
  12. use app\modules\admin\models\GoodsForm;
  13. use app\modules\admin\models\MerchantForm;
  14. use yii\base\BaseObject;
  15. use yii\queue\JobInterface;
  16. /**
  17. * 用于平台修改商品后自动同步所有门店该商品属性
  18. */
  19. class CreatedCloudGoodsUpdate extends BaseObject implements JobInterface
  20. {
  21. public int $cloud_goods_id;
  22. public function execute($queue)
  23. {
  24. try {
  25. $cloud_goods_id = $this->cloud_goods_id;
  26. $form = new GoodsForm();
  27. //找出商品未审核或者未更新的产品
  28. $CloudGoodsUpdateLog = CloudGoodsUpdateLog::find()->where(['cloud_goods_id' => $cloud_goods_id])->asArray()->all();
  29. foreach ($CloudGoodsUpdateLog as $value) {
  30. //直接通过审核(目前只有点击审核通过时才会调用此事件)
  31. $item = CloudGoodsUpdateLog::findOne($value['id']);
  32. $item->is_audit = 1;
  33. $item->updated_at = time();
  34. $item->save();
  35. //判断是否开启自动更新
  36. $cloud_is_update = Option::get('cloud_is_update', $value['store_id'], 'store')['value'];
  37. if ((int)$cloud_is_update > 0) {
  38. //TODO 更新产品逻辑
  39. if ($value['cloud_goods_id']) {
  40. $StoreCloud = StoreCloud::findOne(['store_id' => $value['store_id'], 'is_delete' => 0]);
  41. $form->id = $value['cloud_goods_id'];
  42. $form->store_id =$value['store_id'];
  43. $goodsInfo = $form->saveCloudGoods();
  44. $merchantForm = new MerchantForm();
  45. $merchantForm->token_stroe_cloud_id = $StoreCloud->id;
  46. $goodsInfo['cloudBindInfo']['store_id'] = $value['store_id'];
  47. $result = $merchantForm->mchGoodsImport($goodsInfo['cloudBindInfo'],$goodsInfo['goods_id']);
  48. if ((int)$result['code'] !== 0) {
  49. return $result;
  50. }
  51. }
  52. }
  53. }
  54. } catch (\Exception $e) {
  55. debug_log('创建云仓更新产品信息2'. json_encode($e->getFile() . $e->getMessage() . $e->getLine()));
  56. }
  57. }
  58. }