diff --git a/app/common/repositories/user/UserRepository.php b/app/common/repositories/user/UserRepository.php index b7047334..e5ed1ea4 100644 --- a/app/common/repositories/user/UserRepository.php +++ b/app/common/repositories/user/UserRepository.php @@ -698,6 +698,8 @@ class UserRepository extends BaseRepository public function registr(string $phone, ?string $pwd, $user_type = 'h5') { $pwd = $pwd ? $this->encodePassword($pwd) : $this->encodePassword($this->dao->defaultPwd()); + $ip=app('request')->ip(); + $code=Cache::get('promote_'.$ip); $data = [ 'account' => $phone, 'pwd' => $pwd, @@ -706,6 +708,14 @@ class UserRepository extends BaseRepository 'phone' => $phone, 'last_ip' => app('request')->ip() ]; + if($code){ + $data['promotion_code']=$code; + $shop=explode('shop_',$code); + if(count($shop)==2){ + $data['spread_uid']=$shop[1]; + } + Cache::delete('promote_'.$ip); + } return $this->create($user_type, $data); } diff --git a/app/controller/api/Auth.php b/app/controller/api/Auth.php index d5a87d94..c56ed754 100644 --- a/app/controller/api/Auth.php +++ b/app/controller/api/Auth.php @@ -378,8 +378,10 @@ class Auth extends BaseController if ($auth && !$user['wechat_user_id']) { $repository->syncBaseAuth($auth, $user); } + + $spreadId = empty($data['spread']) ? $user['spread_uid'] : $data['spread']; $user = $repository->mainUser($user); - $repository->bindSpread($user, intval($data['spread'])); + $repository->bindSpread($user, intval($spreadId)); $tokenInfo = $repository->createToken($user); $repository->loginAfter($user); diff --git a/app/controller/api/Common.php b/app/controller/api/Common.php index aad5e0eb..53718b2d 100644 --- a/app/controller/api/Common.php +++ b/app/controller/api/Common.php @@ -662,4 +662,14 @@ class Common extends BaseController return app('json')->success($list); } + /** + * 推广写入 + */ + public function promote_writing() + { + $code = $this->request->param('code'); + Cache::set('promote_' . app('request')->ip(), $code, 86400); + return app('json')->success(); + } + } diff --git a/route/api.php b/route/api.php index 90f2d7b3..76bf2163 100644 --- a/route/api.php +++ b/route/api.php @@ -21,6 +21,7 @@ use think\facade\Route; Route::group('api/', function () { Route::any('test', 'api.Auth/test'); + Route::any('promote_writing', 'api.Common/promote_writing'); Route::any('applet', 'api.Common/applet'); Route::any('promote_writing', 'api.Common/promoteWriting'); //强制登录