From 04f29ccfc23f594324b0a33a1e2fd7861b3d97b9 Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 13 Jul 2020 15:03:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=9A=E5=91=98=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/data/controller/api/Login.php | 77 ++++++++++++++++++++++++++++++ app/data/service/MemberService.php | 11 +++-- 2 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 app/data/controller/api/Login.php diff --git a/app/data/controller/api/Login.php b/app/data/controller/api/Login.php new file mode 100644 index 000000000..4b13c0cf0 --- /dev/null +++ b/app/data/controller/api/Login.php @@ -0,0 +1,77 @@ +_vali([ + 'code.require' => '验证码不能为空!', + 'phone.mobile' => '手机号码格式错误!', + 'phone.require' => '手机号码不能为空!', + 'password.require' => '登录密码不能为空!', + ]); + $map = ['deleted' => 0, 'phone' => $data['phone']]; + $user = $this->app->db->name('DataMember')->where($map)->find(); + if (empty($user)) $this->error('该手机号还没有注册哦!'); + if (empty($user['status'])) $this->error('该会员账号状态异常!'); + if (md5($data['password']) !== $user['password']) { + $this->success('手机登录成功!', MemberService::instance()->token($user['id'])); + } else { + $this->error('账号登录失败,请稍候再试!'); + } + } + + /** + * 会员统一注册入口 + * @throws \think\Exception + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public function register() + { + $data = $this->_vali([ + 'username.default' => '', + 'region_area.default' => '', + 'region_city.default' => '', + 'region_province.default' => '', + 'phone.mobile' => '手机号码格式错误!', + 'phone.require' => '手机号码不能为空!', + 'password.require' => '登录密码不能为空!', + ]); + $map = ['phone' => $data['phone'], 'deleted' => 0]; + if ($this->app->db->name($this->table)->where($map)->count() > 0) { + $this->error('手机号已注册,请使用其它手机号!'); + } + $data['password'] = md5($data['password']); + if (($mid = $this->app->db->name($this->table)->insertGetId($data)) !== false) { + $this->success('会员注册成功!', MemberService::instance()->token($mid)); + } else { + $this->error('手机注册失败!'); + } + } + +} \ No newline at end of file diff --git a/app/data/service/MemberService.php b/app/data/service/MemberService.php index 63c74222e..f10476fcb 100644 --- a/app/data/service/MemberService.php +++ b/app/data/service/MemberService.php @@ -30,9 +30,9 @@ class MemberService extends Service */ public function get($openid, $data = []) { - $map = ['id|openid' => $openid]; - $query = $this->app->db->name($this->table)->where(['deleted' => 0]); - $member = $query->withoutField('status,deleted')->where($map)->find(); + $map = ['id|openid' => $openid, 'deleted' => 0]; + $query = $this->app->db->name($this->table)->where($map); + $member = $query->withoutField('status,deleted')->find(); if (empty($member)) throw new \think\Exception('会员查询失败'); return array_merge($member, $data); } @@ -49,7 +49,8 @@ class MemberService extends Service */ public function token($openid, $data = []) { - $this->app->db->name($this->table)->where(['id|openid' => $openid])->update([ + $map = ['id|openid' => $openid, 'deleted' => 0]; + $this->app->db->name($this->table)->where($map)->update([ 'token' => CodeExtend::random(20, 3, 't'), ]); return $this->get($openid, $data); @@ -63,7 +64,7 @@ class MemberService extends Service public function total($mid) { return [ - 'myinvited' => $this->app->db->name('DataMember')->where(['from' => $mid])->count(), + 'myinvited' => $this->app->db->name($this->table)->where(['from' => $mid])->count(), ]; }