From 8e64276ec6ce8f667bc4bf13e83600551ed04161 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Wed, 22 Feb 2023 13:53:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E8=B5=A0=E9=80=81=E9=92=BB=E7=9F=B3=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E7=94=A8=E6=88=B7=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=BF=85=E9=A1=BB=E5=90=8C=E6=84=8F=E6=89=BF=E8=AF=BA=E4=B9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addon/fenxiao/model/Fenxiao.php | 14 +++--- addon/fenxiao/shop/view/config/basics.html | 2 +- app/api/controller/Login.php | 5 +- app/lang/zh-cn/model.php | 2 + app/model/member/Login.php | 53 ++++++++++++++++++++++ 5 files changed, 68 insertions(+), 8 deletions(-) diff --git a/addon/fenxiao/model/Fenxiao.php b/addon/fenxiao/model/Fenxiao.php index 28d6049a..94dd426f 100644 --- a/addon/fenxiao/model/Fenxiao.php +++ b/addon/fenxiao/model/Fenxiao.php @@ -15,6 +15,7 @@ use app\model\BaseModel; use app\model\member\Member; use app\model\order\OrderCommon; use app\model\system\Stat; +use think\facade\Db; /** * 分销 @@ -341,9 +342,8 @@ class Fenxiao extends BaseModel //如果有推荐人则要修改分享关系 $member_model = new Member(); $member_info = $member_model->getMemberInfo([ [ 'member_id', '=', $member_id ] ], 'source_member')[ 'data' ]; - if (!empty($member_info[ 'source_member' ])) { - $member_model->alterShareRelation($member_id, $member_info[ 'source_member' ], $site_id); - } + if (!empty($member_info[ 'source_member' ])) $member_model->alterShareRelation($member_id, $member_info[ 'source_member' ], $site_id); + // 自动成为分销商 $this->autoBecomeFenxiao($member_id, $site_id); } @@ -426,10 +426,12 @@ class Fenxiao extends BaseModel 'level_id' => $level_info[ 'data' ][ 'level_id' ], 'level_name' => $level_info[ 'data' ][ 'level_name' ] ]; - if (isset($config['newuser_points']) && $config['newuser_points'] > 0) {//增加新用户积分 - $data['points'] = $config['newuser_points']; - }; $res = $this->addFenxiao($data); + // 用户注册成功后 奖励信息 + if((int)$res['data'] > 0 && ((float)$config['newuser_points'] ?? 0) > 0){ + (new FenxiaoAccount())->addAccount((int)$res['data'], $data['fenxiao_name'], 'diamond', (float)$config['newuser_points'], 0,'diamond', '新用户注册赠送'); + } + return $res; } } diff --git a/addon/fenxiao/shop/view/config/basics.html b/addon/fenxiao/shop/view/config/basics.html index a204fe36..a7d50d31 100644 --- a/addon/fenxiao/shop/view/config/basics.html +++ b/addon/fenxiao/shop/view/config/basics.html @@ -13,7 +13,7 @@
- +
diff --git a/app/api/controller/Login.php b/app/api/controller/Login.php index a96cc48e..916a2936 100644 --- a/app/api/controller/Login.php +++ b/app/api/controller/Login.php @@ -63,7 +63,10 @@ class Login extends BaseApi{ */ public function auth(){ $login = new LoginModel(); - $res = $login->authLogin($this->params); + // 登录操作 + $isPromise = (int)input('is_promise',0); + if($isPromise) $res = $login->promiseLogin($this->params); + else $res = $login->authLogin($this->params); //生成 access_token if($res['code'] >= 0){ $token = $this->createToken($res['data']['member_id']); diff --git a/app/lang/zh-cn/model.php b/app/lang/zh-cn/model.php index 2bf2874d..7b8215c5 100644 --- a/app/lang/zh-cn/model.php +++ b/app/lang/zh-cn/model.php @@ -29,6 +29,8 @@ return [ 'EMAIL_EXISTED' => '邮箱已存在' , 'REGISTER_REFUND' => '未开放注册' , 'USERNAME_OR_PASSWORD_ERROR' => '用户名或密码错误' , + 'PLEASE_ENTER_THE_CORRECT_CONTENT_OF_THE_LETTER_OF_COMMITMENT' => '请输入正确的承诺书内容' , + 'MEMBER_NOT_EXIST_REQUEST_REGISTER' => '账号不存在,请先注册!' , //消息管理 'REQUEST_KEYWORDS' => '缺少必须消息关键字' , 'EMPTY_SMS_TYPE' => '没有可用的短信发送方式' , diff --git a/app/model/member/Login.php b/app/model/member/Login.php index e5af8324..cff29f49 100644 --- a/app/model/member/Login.php +++ b/app/model/member/Login.php @@ -126,6 +126,58 @@ class Login extends BaseModel{ return $this->success($info); } } + + // 承诺登录(需要同意承诺书后方可登录) + public function promiseLogin($data){ + // 获取用户信息 + $info = (array)Db::name('member') + ->field('member_id,username, nickname, mobile, email, status, last_login_time, can_receive_registergift') + ->where(function($query) use ($data){ + $query->where('weapp_openid',$data['weapp_openid']) + ->whereOr('wx_unionid',$data['wx_unionid']); + }) + ->where('site_id',$data['site_id']) + ->where('is_delete',0) + ->find(); + // 判断用户是否存在 进行对应的操作 + if(!$info){ + $config = new Config(); + $configInfo = $config->getRegisterConfig($data['site_id'])['data']; + $configInfo = $configInfo['value'] ?? []; + // 会员不存在 并且存在承诺书 进行承诺书判断 + if(trim($configInfo['promise']) && trim($data['promise_text']) != trim($configInfo['promise'])) { + if($data['request_type'] == 'login') return $this->error('','MEMBER_NOT_EXIST_REQUEST_REGISTER'); + else return $this->error('','PLEASE_ENTER_THE_CORRECT_CONTENT_OF_THE_LETTER_OF_COMMITMENT'); + } + // 会员不存在 第三方自动注册开启 未开启绑定手机 则进行自动注册 + if($configInfo['third_party'] && !$configInfo['bind_mobile']){ + $register = new Register(); + $register_res = $register->authRegister($data); + if($register_res['code'] == 0){ + $info = model("member")->getInfo([ + [ + 'member_id', + '=', + $register_res['data'] + ] + ],'member_id,username, nickname, mobile, email, status, last_login_time,can_receive_registergift'); + $info['is_register'] = 1; + } + } + } + // 根据登录结果进行返回操作 + if(!$info) return $this->error('','MEMBER_NOT_EXIST'); + elseif($info['status'] == 0) return $this->error('','MEMBER_IS_LOCKED'); + else{ + // 登录成功后信息处理 + $this->loginSuccessOperation($info,$data); + //用户第三方信息刷新 + if(!isset($info['is_register'])) $this->refreshAuth($info['member_id'],$data); + return $this->success($info); + } + } + + /** * 授权登录仅登录 * @param $data @@ -432,6 +484,7 @@ class Login extends BaseModel{ } + /** * Common: 支付宝小程序登录 —— 开始处理 * Author: wu-hui