ExpressController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace hd\controllers;
  3. use bizHd\express\classes\ExpressClass;
  4. use bizHd\express\classes\ExpressOrderClass;
  5. use bizHd\merchant\services\ExpressService;
  6. use bizHd\merchant\services\ShopService;
  7. use bizHd\order\classes\OrderClass;
  8. use bizHd\purchase\classes\PurchaseClass;
  9. use common\components\dict;
  10. use Yii;
  11. use common\components\util;
  12. class ExpressController extends BaseController
  13. {
  14. public $guestAccess = ['get-has-map'];
  15. //获取采购单物流运单的轨迹 ssh 20250705
  16. public function actionGetCgExpressTrack()
  17. {
  18. $get = Yii::$app->request->get();
  19. $id = $get['id'] ?? 0;
  20. $cg = PurchaseClass::getById($id, true);
  21. if (empty($cg)) {
  22. util::fail('没有找到订单');
  23. }
  24. if ($cg->mainId != $this->mainId) {
  25. util::fail('不是你的订单');
  26. }
  27. $bizIdMap = dict::getDict('expressBizIdMap');
  28. if (getenv('YII_ENV') == 'production') {
  29. $bizId = $bizIdMap[$mainId] ?? 0;
  30. if (empty($bizId)) {
  31. util::fail('没有找到月结账号');
  32. }
  33. //暂时只支持顺丰
  34. $deliveryId = 'SF';
  35. } else {
  36. $deliveryId = 'TEST';
  37. $bizId = 'test_biz_id';
  38. }
  39. $params = [
  40. 'deliveryId' => $deliveryId,
  41. ];
  42. $respond = ExpressClass::getTrack($params, $cg);
  43. util::success($respond);
  44. }
  45. //计算客户距离和运费 ssh 2020.5.14
  46. public function actionGetUserDistance()
  47. {
  48. //经度
  49. $lng = Yii::$app->request->get('lng', '');
  50. //纬度
  51. $lat = Yii::$app->request->get('lat', '');
  52. if (empty($lng) || empty($lat)) {
  53. util::fail('经度或纬度不能为空');
  54. }
  55. $shopId = ShopService::getDefaultShopId($this->sj);
  56. $respond = ExpressService::getUserDistance($lng, $lat, $shopId, $this->sjExtend);
  57. util::success($respond);
  58. }
  59. // 获取字典中的 hasMap
  60. public function actionGetHasMap()
  61. {
  62. $shop = $this->shop;
  63. util::success(['hasMap' => dict::getDict('hasMap'), 'shop' => $shop]);
  64. }
  65. // 配送详情
  66. public function actionDetail()
  67. {
  68. $get = Yii::$app->request->get();
  69. $orderId = $get['orderId'] ?? 0;
  70. $order = OrderClass::getById($orderId, false, 'id, mainId, sendStatus');
  71. if ($order['mainId'] != $this->mainId) {
  72. util::fail('不是你的订单');
  73. }
  74. $express = ExpressOrderClass::getByCondition(['orderId' => $orderId, 'status' => 1], true);
  75. if (empty($express)) {
  76. util::fail('没有找到配送信息呢');
  77. }
  78. util::success($express);
  79. }
  80. }