| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\jobs;
- use app\constants\OptionSetting;
- use app\models\Order;
- use app\models\OrderDetail;
- use app\modules\admin\models\MerchantForm;
- use yii\base\BaseObject;
- use yii\queue\JobInterface;
- /**
- * 创建胜天半子订单
- */
- class CreatedStbzOrderTranJob extends BaseObject implements JobInterface
- {
- public $data;
- public function execute($queue)
- {
- try {
- $post_data = $this->data;
- $supplier_id = $post_data['supplier_id'];
- if (isset($post_data['pifa']) && $post_data['pifa']) {
- $address = json_decode($post_data['address_data'], true);
- $spu = [];
- foreach ($post_data['goods_list'] as $goods) {
- if (!is_array($goods['attr'])) {
- $goods['attr'] = json_decode($goods['attr'], true);
- }
- if ((int)$goods['stbz_goods_id'] !== 0) {
- $spu[] = [
- 'number' => $goods['num'],
- 'sku' => $goods['attr']['no'],
- ];
- }
- }
- $params = [
- 'spu' => $spu,
- 'address' => [
- 'consignee' => $post_data['name'],
- 'phone' => $post_data['mobile'],
- 'province' => $address['province'],
- 'city' => $address['city'],
- 'area' => $address['district'],
- 'street' => '',
- 'description' => $address['address'],
- ]
- ];
- } else {
- $address_data = [];
- $orderTransit = \app\models\OrderTransit::findOne(['cloud_order_id' => $post_data['id']]);
- if ($orderTransit) {
- $order = \app\models\Order::findOne($orderTransit->order_id);
- if ($order) {
- if ($order->is_offline && $order->md_id) {
- $province_name = '';
- $city_name = '';
- $district_name = '';
- $address = '';
- $md = \app\models\Md::findOne($order->md_id);
- if ($md) {
- $province_name = \app\models\District::findOne($md->province)->name;
- $city_name = \app\models\District::findOne($md->city)->name;
- $district_name = \app\models\District::findOne($md->district)->name;
- $address = $md->address;
- }
- } else {
- $province_name = \app\models\District::findOne($order->province_id)->name;
- $city_name = \app\models\District::findOne($order->city_id)->name;
- $district_name = \app\models\District::findOne($order->district_id)->name;
- $address = $order->address;
- }
- $address_data = [
- 'province' => $province_name,
- 'city' => $city_name ?? '',
- 'district' => $district_name ?? '',
- 'address' => $address ?? ''
- ];
- }
- }
- $spu = [];
- foreach ($post_data['goods_list'] as $goods) {
- if ((int)$goods['stbz_goods_id'] !== 0) {
- $spu[] = [
- 'number' => $goods['num'],
- 'sku' => $goods['attr']['no'],
- ];
- }
- }
- $params = [
- 'spu' => $spu,
- 'address' => [
- 'consignee' => $post_data['name'],
- 'phone' => $post_data['mobile'],
- 'province' => $post_data['province'] ?: ($address_data['province'] ?? ''),
- 'city' => $post_data['city'] ?: ($address_data['city'] ?? ''),
- 'area' => $post_data['district'] ?: ($address_data['district'] ?? ''),
- 'street' => '',
- 'description' => $post_data['address'] ?: ($address_data['address'] ?? ''),
- ]
- ];
- }
- debug_log('胜天半子商品信息' . json_encode($params));
- $checkData = \stbz_client()->getApiResponse('post', '/v2/order/beforeCheck', $params);
- $checkData = \json_decode($checkData, true);
- debug_log('胜天半子下单检测' . json_encode($checkData));
- if ($checkData['code'] != 1) {
- throw new \Exception($checkData['msg']);
- }
- $params['orderSn'] = $post_data['order_no'];
- $data = \stbz_client()->getApiResponse('post', '/v2/order', $params);
- $data = \json_decode($data, true);
- debug_log('胜天半子下单检测' . json_encode($data));
- if ($data['code'] != 1) {
- throw new \Exception($data['msg']);
- }
- //获取订单信息
- $order_url = "/cloud/supplier/supplierSetStbzOrderStatus";
- $order_data['order_id'] = $post_data['id'];
- $order_data['status'] = 1;
- $order_data['access_token'] = get_supplier_token($supplier_id);
- $orderNoHead = substr($post_data['order_no'], 0, 2);
- if ($orderNoHead === 'PO') {
- $order_data['order_type'] = 1;
- } elseif ($orderNoHead === 'OR') {
- $order_data['order_type'] = 2;
- }
- $order_data['status'] = 1;
- $domain = (new OptionSetting)->getCloudDomainName();
- $orderInfo = cloud_post($domain. $order_url,
- $order_data);
- debug_log('胜天半子更改订单状态' . json_encode($orderInfo));
- } catch (\Exception $e) {
- debug_log('胜天半子自动转单----'. json_encode($e->getFile() . $e->getMessage() . $e->getLine()));
- }
- }
- }
|