72 lines
1.7 KiB
PHP
Executable File
72 lines
1.7 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\traits\account;
|
|
|
|
use think\Model;
|
|
use app\model\Base;
|
|
use think\Collection;
|
|
use app\model\AccountAddress;
|
|
use think\db\exception\DbException;
|
|
use think\db\exception\DataNotFoundException;
|
|
use think\db\exception\ModelNotFoundException;
|
|
|
|
trait AccountAddressTrait
|
|
{
|
|
/**
|
|
* 获取地址详情
|
|
*
|
|
* @param int $id
|
|
* @param array $fields
|
|
* @return array|Model|null
|
|
* @throws DataNotFoundException
|
|
* @throws DbException
|
|
* @throws ModelNotFoundException
|
|
*/
|
|
public function findAddressById(int $id, array $fields = [])
|
|
{
|
|
return AccountAddress::findById($id, $fields);
|
|
}
|
|
|
|
/**
|
|
* 获取地址列表
|
|
*
|
|
* @param int $userId
|
|
* @param array $fields
|
|
* @return Collection
|
|
* @throws DataNotFoundException
|
|
* @throws DbException
|
|
* @throws ModelNotFoundException
|
|
*/
|
|
public function findAddressByUid(int $userId, array $fields = []): Collection
|
|
{
|
|
return AccountAddress::where('user_id', $userId)->order('id', 'desc')->field($fields)->select();
|
|
}
|
|
|
|
/**
|
|
* 保存地址
|
|
*
|
|
* @param array $data
|
|
* @return AccountAddress|Base|Model
|
|
*/
|
|
public function saveAddress(array $data)
|
|
{
|
|
if ($data['is_default'] == 1) {
|
|
AccountAddress::update(['is_default' => 0], ['user_id' => $data['user_id']]);
|
|
}
|
|
if (isset($data['id']) && !empty($data['id'])) {
|
|
return AccountAddress::updateById($data['id'], $data);
|
|
}
|
|
return AccountAddress::create($data);
|
|
}
|
|
|
|
/**
|
|
* 删除地址
|
|
*
|
|
* @param int $id
|
|
* @return bool
|
|
*/
|
|
public function delAddress(int $id): bool
|
|
{
|
|
return AccountAddress::deleteById($id);
|
|
}
|
|
} |