| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- namespace hd\controllers;
- use bizHd\express\classes\ExpressClass;
- use bizHd\express\classes\ExpressOrderClass;
- use bizHd\merchant\services\ExpressService;
- use bizHd\merchant\services\ShopService;
- use bizHd\order\classes\OrderClass;
- use bizHd\purchase\classes\PurchaseClass;
- use common\components\dict;
- use common\components\IntraCityExpress;
- use common\components\noticeUtil;
- use Yii;
- use common\components\util;
- use yii\db\Query;
- class ExpressController extends BaseController
- {
- public $guestAccess = ['get-has-map'];
- //获取采购单物流运单的轨迹 ssh 20250705
- public function actionGetCgExpressTrack()
- {
- $get = Yii::$app->request->get();
- $id = $get['id'] ?? 0;
- $cg = PurchaseClass::getById($id, true);
- if (empty($cg)) {
- util::fail('没有找到订单');
- }
- if ($cg->mainId != $this->mainId) {
- util::fail('不是你的订单');
- }
- $bizIdMap = dict::getDict('expressBizIdMap');
- if (getenv('YII_ENV') == 'production') {
- $bizId = $bizIdMap[$mainId] ?? 0;
- if (empty($bizId)) {
- util::fail('没有找到月结账号');
- }
- //暂时只支持顺丰
- $deliveryId = 'SF';
- } else {
- $deliveryId = 'TEST';
- $bizId = 'test_biz_id';
- }
- $params = [
- 'deliveryId' => $deliveryId,
- ];
- $respond = ExpressClass::getTrack($params, $cg);
- util::success($respond);
- }
- //计算客户距离和运费 ssh 2020.5.14
- public function actionGetUserDistance()
- {
- //经度
- $lng = Yii::$app->request->get('lng', '');
- //纬度
- $lat = Yii::$app->request->get('lat', '');
- if (empty($lng) || empty($lat)) {
- util::fail('经度或纬度不能为空');
- }
- $shopId = ShopService::getDefaultShopId($this->sj);
- $respond = ExpressService::getUserDistance($lng, $lat, $shopId, $this->sjExtend);
- util::success($respond);
- }
- // 获取字典中的 hasMap
- public function actionGetHasMap()
- {
- util::success(['hasMap' => dict::getDict('hasMap')]);
- }
- // 配送详情
- public function actionDetail()
- {
- $post = Yii::$app->request->post();
- $orderId = intval($post['orderId']);
- $order = OrderClass::getById($orderId, false, 'id, mainId, sendStatus');
- if ($order['mainId'] != $this->mainId) {
- util::fail('订单未找到');
- }
- // 检查是否存在重复的订单:如果存在,则使用最后一个订单的 store_order_id
- $storeOrderId = $orderId; // ------------------------------------- 注意区分:$storeOrderId , $orderId 。它们有可能不相同
- $query = (new Query())
- ->from('xhExpressOrder')
- ->where(['and',
- new \yii\db\Expression('storeOrderId LIKE CONCAT(:prefix, "%")', [':prefix' => $orderId]),
- ['mainId' => $this->mainId]
- ])->orderBy('addTime DESC');
- $esDatas = $query->all();
- $count = count($esDatas);
- $es = null;
- if ($count > 0) {
- $es = $esDatas[0];
- //$storeOrderId = $es['storeOrderId'];
- if ($count > 1) {
- //noticeUtil::push('一个订单有多个配送订单');
- }
- }
- if (!empty($es)) {
- util::success($es, "查询成功");
- } else {
- util::complete();
- }
- }
- }
|