CreateOrderSendTrait.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace addons\WangDianTong\common\traits;
  3. use addons\WangDianTong\common\expand\sdk\wangdian\model\OrderCreate;
  4. use addons\WangDianTong\common\expand\sdk\wangdian\src\CreateOrder;
  5. use addons\WangDianTong\common\service\CreateOrderService;
  6. use common\enums\StatusEnum;
  7. use yii\helpers\Json;
  8. trait CreateOrderSendTrait
  9. {
  10. /**
  11. * @param array $config
  12. * @param array $trade_list
  13. * @return mixed|string|true
  14. */
  15. protected function send(array $config, array $trade_list)
  16. {
  17. $req = new CreateOrder($config);
  18. $orderCreate = new OrderCreate();
  19. $orderCreate->switch = StatusEnum::ENABLED;
  20. $orderCreate->shop_no = $config['shop_no'];
  21. $orderCreate->trade_list = Json::encode($trade_list);
  22. $resp = $req->send($orderCreate);
  23. if ($resp->getError()) return $resp->getError();
  24. // 执行其他操作
  25. try {
  26. $res = $resp->toArray();
  27. if (!isset($res['code']) || $res['code'] != StatusEnum::DISABLED) return $res['message'] ?? var_export($res, true);
  28. } catch (\Exception $e) {
  29. return $e->getMessage();
  30. }
  31. return true;
  32. }
  33. /**
  34. * @param array $config
  35. * @param array $order
  36. * @return void
  37. * @throws \Exception
  38. */
  39. protected function enterprise(array $config, array $order)
  40. {
  41. $trade_list[] = (new CreateOrderService())->assembleData($order);
  42. if (!empty($trade_list)) {
  43. $flag = $this->retry(function () use ($config, $trade_list) {
  44. return $this->send($config, $trade_list);
  45. });
  46. if (is_string($flag)) throw new \Exception($flag);
  47. }
  48. }
  49. }