parent
e86bb22367
commit
fbffb4cd35
@ -0,0 +1,120 @@ |
||||
<?php |
||||
// +---------------------------------------------------------------------- |
||||
// | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ] |
||||
// +---------------------------------------------------------------------- |
||||
// | Copyright (c) 2017~2023 https://www.yiovo.com All rights reserved. |
||||
// +---------------------------------------------------------------------- |
||||
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行 |
||||
// +---------------------------------------------------------------------- |
||||
// | Author: 萤火科技 <admin@yiovo.com> |
||||
// +---------------------------------------------------------------------- |
||||
declare (strict_types=1); |
||||
|
||||
namespace app\api\service; |
||||
|
||||
use app\api\model\Order as OrderModel; |
||||
use app\api\model\order\Delivery as DeliveryModel; |
||||
use app\api\model\OrderAddress as OrderAddressModel; |
||||
use app\common\service\BaseService; |
||||
use app\common\service\Order as OrderService; |
||||
use app\common\service\Express as ExpressService; |
||||
use app\common\enum\order\OrderStatus as OrderStatusEnum; |
||||
use cores\exception\BaseException; |
||||
|
||||
/** |
||||
* 调货服务类 |
||||
* Class Order |
||||
* @package app\common\service |
||||
*/ |
||||
class TransferRecord extends BaseService |
||||
{ |
||||
/** |
||||
* 获取物流信息 |
||||
* @param int $orderId 订单ID |
||||
* @return mixed |
||||
* @throws BaseException |
||||
* @throws \think\db\exception\DataNotFoundException |
||||
* @throws \think\db\exception\DbException |
||||
* @throws \think\db\exception\ModelNotFoundException |
||||
*/ |
||||
public function express(int $orderId) |
||||
{ |
||||
// 获取发货单列表 |
||||
$model = new DeliveryModel; |
||||
$list = $model->getList($orderId); |
||||
// echo "<pre>"; |
||||
// print_r($list->toArray()); |
||||
// exit(); |
||||
// 整理物流跟踪信息 |
||||
return $this->getExpressTraces($orderId, $list); |
||||
} |
||||
|
||||
/** |
||||
* 整理物流跟踪信息 |
||||
* @param int $orderId 订单ID |
||||
* @param $list |
||||
* @return mixed |
||||
* @throws BaseException |
||||
* @throws \think\db\exception\DataNotFoundException |
||||
* @throws \think\db\exception\DbException |
||||
* @throws \think\db\exception\ModelNotFoundException |
||||
*/ |
||||
private function getExpressTraces(int $orderId, $list) |
||||
{ |
||||
// 订单收货地址 |
||||
$address = OrderAddressModel::detail(['order_id' => $orderId]); |
||||
// 整理物流跟踪信息 |
||||
$Express = new ExpressService; |
||||
foreach ($list as $item) { |
||||
if (!empty($item['express'])) { |
||||
$item['traces'] = $Express->traces( |
||||
$item['express'], |
||||
$item['express_no'], |
||||
$address, |
||||
$this->getStoreId() |
||||
); |
||||
} |
||||
} |
||||
return $list; |
||||
} |
||||
|
||||
/** |
||||
* 获取某商品的购买件数 |
||||
* @param int $userId 用户ID |
||||
* @param int $goodsId 商品ID |
||||
* @param int $orderSource |
||||
* @return int |
||||
*/ |
||||
public static function getGoodsBuyNum(int $userId, int $goodsId, int $orderSource): int |
||||
{ |
||||
return (int) (new OrderModel)->setBaseQuery('order', [['order_goods', 'order_id']]) |
||||
->where('order_goods.user_id', '=', $userId) |
||||
->where('order_goods.goods_id', '=', $goodsId) |
||||
->where('order.order_source', '=', $orderSource) |
||||
->where('order.order_status', '<>', OrderStatusEnum::CANCELLED) |
||||
->where('order.is_delete', '=', 0) |
||||
->sum('order_goods.total_num'); |
||||
} |
||||
|
||||
/** |
||||
* 获取仓库物流信息 |
||||
* @param $expressNo |
||||
* @return \app\common\model\TransferRecord|array|mixed|\think\Model |
||||
* @throws BaseException |
||||
* @throws \think\db\exception\DataNotFoundException |
||||
* @throws \think\db\exception\DbException |
||||
* @throws \think\db\exception\ModelNotFoundException |
||||
*/ |
||||
public function getExpressByExpressNo($expressNo) { |
||||
$expressService = new ExpressService(); |
||||
$transferRecord = \app\common\model\TransferRecord::getList($expressNo); |
||||
//物流追踪 |
||||
$transferRecord['traces'] = $expressService->traces( |
||||
$transferRecord->express, |
||||
$expressNo, |
||||
$transferRecord['receiver_phone'], |
||||
$this::getStoreId() |
||||
); |
||||
return $transferRecord; |
||||
} |
||||
} |
Loading…
Reference in new issue