| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <?php
- namespace App\Servers;
- use App\Models\Member;
- /**
- * 会员
- */
- class MemberServer
- {
- /**
- * 错误信息
- * @var string
- */
- private $errorMsg = '';
- static private $server = '';
- private function __construct()
- {
- }
- /**
- * 创建对象
- * @return MemberServer
- */
- static function creatServer()
- {
- if (empty(self::$server)) {
- self::$server = new MemberServer();
- }
- return self::$server;
- }
- /**
- * 注册会员
- * @param $mobile
- * @param string $nickname
- * @param string $password
- * @return array|false
- * @throws \Exception
- */
- function register($mobile = '', $nickname = '', $password = '',$head_img = '')
- {
- $member_info = [];
- if ($password) {
- $pass_server = PassServer::creatServer($password);
- $member_info = $pass_server->creatPassword();
- }
- $member_info['phone'] = $mobile;
- $nickname = $this->emojiFilter($nickname);
- $member_info['nickname'] = empty($nickname) ? '君子校园'.CommonServer::creatServer()->getRandChar(6) : $nickname;
- $member_info['head_img'] = empty($head_img) ? 'https://jhnewshop.oss-cn-chengdu.aliyuncs.com/storage/attest/20210927/949e48fb7c286836097efdd4ba4d0bd9.jpg' : $head_img;
- // $member_info['status'] = 1;
- $member = Member::create($member_info);
- if (empty($member)) {
- return false;
- }
- //用户token
- $token_str = PassServer::creatServer()->getMemberToken($member->{'id'});
- Member::where('id', $member->{'id'})->update(['token_str' => $token_str]);
- return ['m_id' => $member->{'id'}, 'token' => $token_str];
- }
- /**
- * 截取掉微信表情
- * @param $str
- * @return mixed|string
- */
- function emojiFilter($str)
- {
- if ($str) {
- $nickname = $str;
- $nickname = preg_replace('/[\x{1F600}-\x{1F64F}]/u', '', $nickname);
- $nickname = preg_replace('/[\x{1F300}-\x{1F5FF}]/u', '', $nickname);
- $nickname = preg_replace('/[\x{1F680}-\x{1F6FF}]/u', '', $nickname);
- $nickname = preg_replace('/[\x{2600}-\x{26FF}]/u', '', $nickname);
- $nickname = preg_replace('/[\x{2700}-\x{27BF}]/u', '', $nickname);
- $nickname=CommonServer::creatServer()->utf8_filter($nickname);
- return addslashes(trim($nickname));
- } else {
- $return = '';
- }
- return $return;
- }
- /**
- * 更新用户信息
- * @param $m_id
- * @param $data
- * @return int
- */
- function updateMember($m_id,$data)
- {
- return Member::where('id',$m_id)->update($data);
- }
- /**
- * 清除会员缓存
- * @param $m_id
- */
- function delMemberCache($m_id)
- {
- RedisDataServer::creatServer()->delData('member_' . $m_id);
- RedisDataServer::creatServer()->delData('login_' . $m_id);
- }
- }
|