106 lines
2.6 KiB
PHP
106 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace app\repository;
|
|
|
|
use app\exception\RepositoryException;
|
|
|
|
use app\model\Account;
|
|
use app\service\Repository;
|
|
use app\traits\account\ApplyStaffTrait;
|
|
use app\traits\account\BusinessFlowTrait;
|
|
use app\traits\CommentTrait;
|
|
use app\traits\CouponBillTrait;
|
|
use app\traits\CouponTrait;
|
|
use think\db\exception\DataNotFoundException;
|
|
use think\db\exception\DbException;
|
|
use think\db\exception\ModelNotFoundException;
|
|
use think\Model;
|
|
|
|
/**
|
|
* 账户域 相关操作(客户账号)
|
|
*
|
|
* Class AccountRepository
|
|
* @package app\repository
|
|
* @method self getInstance(Model $model = null) static
|
|
*/
|
|
class AccountRepository extends Repository
|
|
{
|
|
use CommentTrait;
|
|
use BusinessFlowTrait;
|
|
use CouponTrait;
|
|
use CouponBillTrait;
|
|
use ApplyStaffTrait;
|
|
/**
|
|
* 获取指定账户记录By手机号
|
|
*
|
|
* @param string $phone
|
|
* @param array $fields
|
|
* @return Model|null
|
|
* @throws DataNotFoundException
|
|
* @throws DbException
|
|
* @throws ModelNotFoundException
|
|
*/
|
|
public function infoByPhone(string $phone, array $fields = []): ?Model
|
|
{
|
|
$where[] = ['mobile', '=', $phone];
|
|
return $this->findOneByWhere($where, $fields);
|
|
}
|
|
|
|
/**
|
|
* 获取指定账户记录By用户名
|
|
*
|
|
* @param string $username
|
|
* @param array $fields
|
|
* @return Model|null
|
|
* @throws DataNotFoundException
|
|
* @throws DbException
|
|
* @throws ModelNotFoundException
|
|
*/
|
|
public function infoByUsername(string $username, array $fields = []): ?Model
|
|
{
|
|
$where[] = ['username', '=', $username];
|
|
return $this->findOneByWhere($where, $fields);
|
|
}
|
|
|
|
|
|
/**
|
|
* 通过微信小程序的openID查询
|
|
*
|
|
* @param string $openID
|
|
* @return array|Model|null
|
|
* @throws DataNotFoundException
|
|
* @throws DbException
|
|
* @throws ModelNotFoundException
|
|
*/
|
|
public function findByOpenID(string $openID)
|
|
{
|
|
return $this->model->where('open_id', $openID)->find();
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 修改密码
|
|
*
|
|
* @param int $accountId
|
|
* @param string $oldPwd
|
|
* @param string $newPwd
|
|
* @return bool
|
|
* @throws RepositoryException
|
|
*/
|
|
public function modifyPwd(int $accountId, string $oldPwd, string $newPwd): bool
|
|
{
|
|
if (!$user = $this->findById($accountId)) {
|
|
throw new RepositoryException('用户不存在');
|
|
}
|
|
|
|
if ($user['password'] != md5($oldPwd)) {
|
|
throw new RepositoryException('原密码错误');
|
|
}
|
|
|
|
$user->password = md5($newPwd);
|
|
|
|
return $user->save();
|
|
}
|
|
|
|
} |