findList(); } /** * 获取指定账户记录By手机号 * * @param string $phone * @param array $fields * @return Model|null * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public function findByPhone(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 findByUsername(string $username, array $fields = []): ?Model { $where[] = ['username', '=', $username]; return $this->findOneByWhere($where, $fields); } /** * 混合查找记录 * * @param string $username 混合查询 手机号或用户名 * @return array|Model|null * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public function findByHybrid(string $username) { return $this->model->whereOr('username', $username)->whereOr('mobile', $username)->find(); } /** * 通过微信小程序的openID查询 * * @param string $openID * @return array|Model|null * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public function findByOpenID(string $openID) { return $this->model->where('openid', $openID)->find(); } /** * 通过个人邀请码查询用户信息 * * @param string $inviteCode * @return array|Model|null * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public function findByInviteCode(string $inviteCode) { if (empty($inviteCode)) { return null; } return $this->model->where('invite_code', $inviteCode)->find(); } /** * 通过个人编号查询用户信息 * * @param string $coding * @return array|Model|null * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public function findByUserCoding(string $coding) { if (empty($coding)) { return null; } return $this->model->where('coding', $coding)->find(); } /********************************************** * TODO 分割线,上述与本项目无关的代码需要清除 *********************************************/ /** * 获取并处理用户列表 【后台用户列表】 * * @param array $where * @param array $field 必传字段coin_total * @param int $page * @param int $size * @param callable|null $call * @return array|null * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException * @throws RepositoryException */ public function getAndHandleAccountList(array $where, array $field, int $page = 1, int $size = 20, callable $call = null): ?array { return self::findList($where, $field, $page, $size, function ($q) use ($call) { if ($call !== null) { $q = $call($q); } return $q->order('id', 'desc'); }); } }