ExpressController.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. util::success(['hasMap' => dict::getDict('hasMap')]);
  63. }
  64. // 配送详情
  65. public function actionDetail()
  66. {
  67. $get = Yii::$app->request->get();
  68. $orderId = $get['orderId'] ?? 0;
  69. $order = OrderClass::getById($orderId, false, 'id, mainId, sendStatus');
  70. if ($order['mainId'] != $this->mainId) {
  71. util::fail('不是你的订单');
  72. }
  73. $express = ExpressOrderClass::getByCondition(['orderId' => $orderId, 'status' => 1], true);
  74. if (empty($express)) {
  75. util::fail('没有找到配送信息呢');
  76. }
  77. util::success($express);
  78. }
  79. }