Hash::make($value), ); } function checkPasswd($iUid,$sPasswd):bool { $oUser = $this->where('id',$iUid)->first(); if(empty($oUser)) return false; return Hash::check($sPasswd,$oUser->password); } function addUser($aItem): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder|array|null { $sDateTime = Carbon::now()->toDateTimeString(); $aItem['created_at'] = $sDateTime; $aItem['updated_at'] = $sDateTime; return $this->addItem($aItem); } function findItemByAccount($aData,$col=['*']): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder|array|null { if(!empty($aData['username'])){ return $this->findItemByUsername($aData['username'],$col); } if(!empty($aData['phone_area']) && !empty($aData['phone'])){ return $this->findItemByPhone($aData['phone_area'],$aData['phone'],$col); } if(!empty($aData['email'])){ return $this->findItemByEmail($aData['email'],$col); } return null; } function findItemByUsername($sUsername,$col=['*']): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder|array|null { return $this->newQuery()->where('username',$sUsername)->first($col); } function findItemByPhone($sPhoneArea,$sPhone,$col=['*']): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder|array|null { return $this->newQuery()->where('phone_area',$sPhoneArea)->where('phone',$sPhone)->first($col); } function findItemByEmail($sEmail,$col=['*']): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder|array|null { return $this->newQuery()->where('email',$sEmail)->first($col); } function findUserByUidWithCache($iUid): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Builder|array|null { return Cache::remember(RedisConst::ORM_CACHE_USER.$iUid,RedisConst::ORM_FIND_CACHE_SECOND,function ()use ($iUid){ return $this->findItem($iUid); }); } // function setUserInfo($iUid,$sNickname): bool|int // { // return $this->updateItem([ // 'id' => $iUid, // 'nickname' => $sNickname, // 'email' => $sNickname, // 'phone_area' => $sNickname, // ]); // } }