96 lines
2.1 KiB
PHP
Executable File
96 lines
2.1 KiB
PHP
Executable File
<?php
|
|
namespace app\traits\order;
|
|
|
|
use app\model\Express;
|
|
use think\Collection;
|
|
use think\db\exception\DataNotFoundException;
|
|
use think\db\exception\DbException;
|
|
use think\db\exception\ModelNotFoundException;
|
|
use think\Model;
|
|
use think\Paginator;
|
|
|
|
/**
|
|
* 物流相关
|
|
*
|
|
* Trait ShoppingCartTrait
|
|
* @package app\traits\order
|
|
*/
|
|
trait ExpressTrait
|
|
{
|
|
/**
|
|
* 添加快递公司
|
|
*
|
|
* @param array $data
|
|
* @return Model
|
|
*/
|
|
public function addExpress(array $data): Model
|
|
{
|
|
return Express::create($data);
|
|
}
|
|
|
|
/**
|
|
* 删除快递
|
|
*
|
|
* @param array $where
|
|
* @return bool
|
|
*/
|
|
public function delExpress(array $where): bool
|
|
{
|
|
return Express::where($where)->delete();
|
|
}
|
|
|
|
/**
|
|
* 快递公司列表 [带分页]
|
|
*
|
|
* @param array $where
|
|
* @param array $pageParams
|
|
* @param callable|null $callable $callable
|
|
* @return Paginator
|
|
* @throws DbException
|
|
*/
|
|
public function express(array $where = [], array $pageParams = [], callable $callable = null): Paginator
|
|
{
|
|
return Express::findListWithPaginate($where, $pageParams, $callable);
|
|
}
|
|
|
|
/**
|
|
* 物流信息
|
|
*
|
|
* @param int $id
|
|
* @return array|Model|null
|
|
* @throws DataNotFoundException
|
|
* @throws DbException
|
|
* @throws ModelNotFoundException
|
|
*/
|
|
public function expressInfo(int $id)
|
|
{
|
|
return Express::findById($id);
|
|
}
|
|
|
|
/**
|
|
* 获取所有快递公司
|
|
*
|
|
* @param array $where
|
|
* @return Collection
|
|
* @throws DataNotFoundException
|
|
* @throws DbException
|
|
* @throws ModelNotFoundException
|
|
*/
|
|
public function allExpress(array $where = []): Collection
|
|
{
|
|
return Express::where($where)->order('is_default', 'desc')->select();
|
|
}
|
|
|
|
/**
|
|
* 获取默认快递
|
|
*
|
|
* @return Express|array|Model|null
|
|
* @throws DataNotFoundException
|
|
* @throws DbException
|
|
* @throws ModelNotFoundException
|
|
*/
|
|
public function getDefaultExpress()
|
|
{
|
|
return Express::where('is_default', Express::COMMON_ON)->find();
|
|
}
|
|
} |