From 34db7035c9c7880e00b9328d022be65a29c62cb2 Mon Sep 17 00:00:00 2001
From: zhaojs <349234519@qq.com>
Date: 星期一, 31 七月 2023 10:40:56 +0800
Subject: [PATCH] Merge branch 'feature/v1.1.5接口' into develop

---
 application/api/controller/User.php |  176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 166 insertions(+), 10 deletions(-)

diff --git a/application/api/controller/User.php b/application/api/controller/User.php
index 76934e4..1b1171f 100644
--- a/application/api/controller/User.php
+++ b/application/api/controller/User.php
@@ -18,12 +18,17 @@
 use app\api\logic\UserWithdrawal as LogicUserWithdrawal;
 use app\api\logic\SettlementRecord as LogicSettlementRecord;
 use app\api\logic\UserMoneyLog as LogicUserMoneyLog;
+use think\log;
+use app\api\logic\ActivityInfo as InfoActivityInfo;
+use app\common\model\UserExtend as ModelUserExtend;
+use think\Db;
+use EasyWeChat\Kernel\Support\AES;
 /**
  * 浼氬憳鎺ュ彛
  */
 class User extends Api
 {
-    protected $noNeedLogin = ['login', 'mobilelogin', 'resetpwd', 'changemobile', 'wxapplogin','bind_mobile_login','register'];
+    protected $noNeedLogin = ['GetDfgToken','GetRecomInviter','login', 'mobilelogin', 'resetpwd', 'changemobile', 'wxapplogin','bind_mobile_login','register'];
     protected $noNeedRight = '*';
 
     public function _initialize()
@@ -47,6 +52,35 @@
         $userInfo['token'] = $this->auth->getToken();
         $data = ['userinfo' => $userInfo];
         $this->success('鑾峰彇鎴愬姛', $data);
+    }
+
+
+    public function GetDfgToken()
+    {
+        $userId=$this->request->post('userid');
+        if (!$userId) {
+            $this->error(__('Invalid parameters'));
+        }
+        //aes鍔犲瘑
+        $enKey="wp4hs3bvu7wq2mud";
+        $iv = 'fedcba9876543210';
+        $decrypted = base64_encode(AES::encrypt($userId,$enKey, $iv));
+        $this->success($decrypted);
+    }
+
+
+
+    /**
+     * 鏇存柊appclientid
+     */
+    public function UpdateClientId()
+    {
+        $pushCid=$this->request->post('pushcid');
+        $ModelUser = new ModelUser();
+        $userInfo = $ModelUser->where(['id'=>USERID]);
+        if(empty($userInfo)) $this->success('鎴愬姛',true);
+        $userInfo->update(['push_cid'=>$pushCid]);
+        $this->success('鎴愬姛', true);
     }
 
     /**
@@ -84,6 +118,7 @@
         $mobile = $this->request->post('mobile');
         $captcha = $this->request->post('captcha');
         $ismobouth=$this->request->post('ismobouth',false);
+        $pushCid=$this->request->post('pushCid',false);
         if (!$mobile || !$captcha) {
             $this->error(__('Invalid parameters'));
         }
@@ -101,7 +136,7 @@
             //濡傛灉宸茬粡鏈夎处鍙峰垯鐩存帴鐧诲綍
             $ret = $this->auth->direct($user->id);
         } else {
-            $ret = $this->auth->register($mobile, Random::alnum(), '', $mobile, []);
+            $ret = $this->auth->register($mobile, Random::alnum(), '', $mobile, [],'',[],$pushCid);
         }
         if ($ret) {
             Sms::flush($mobile, 'login');
@@ -211,7 +246,8 @@
         $user = $this->auth->getUser();
         $mobile = $this->request->post('mobile');
         $captcha = $this->request->post('captcha');
-        if (!$mobile || !$captcha) {
+        $isyj=$this->request->post('isyj',false);
+        if (!$mobile || (!$isyj&&!$captcha)) {
             $this->error(__('Invalid parameters'));
         }
         if (!Validate::regex($mobile, "^1\d{10}$")) {
@@ -278,20 +314,26 @@
     public function bind_mobile_login()
     {
         $wxUser = request()->param('wxUser','','urldecode');
+        $pushCid= request()->param('pushCid','');
         $wxUser = json_decode($wxUser,true);
         if(empty($wxUser)) $this->error('寰俊鎺堟潈淇℃伅鑾峰彇澶辫触');
         $mobile = $this->request->post('mobile');
         $captcha = $this->request->post('captcha');
-        if (!$mobile || !$captcha) {
+        $isyj=$this->request->post('isyj',false);
+        if (!$mobile || (!$isyj&&!$captcha)) {
             $this->error(__('Invalid parameters'));
         }
         if (!Validate::regex($mobile, "^1\d{10}$")) {
             $this->error('璇疯緭鍏ユ纭墜鏈哄彿');
         }
-        $result = Sms::check($mobile, $captcha, 'changemobile');
-        if (!$result) {
-            $this->error(__('Captcha is incorrect'));
+        if(!$isyj)
+        {
+            $result = Sms::check($mobile, $captcha, 'changemobile');
+            if (!$result) {
+                $this->error(__('Captcha is incorrect'));
+            }
         }
+        
         $ModelThird = new ModelThird();
         $LogicUser = new LogicUser();
         //鍒ゆ柇褰撳墠鎵嬫満鍙锋槸鍚﹀凡缁忕粦瀹氬井淇�
@@ -299,11 +341,11 @@
         $is_phone_bind = $ModelUser->where(['mobile'=> $mobile])->find();
         if(!empty($is_phone_bind)){
             $LogicUser->bindWechat($is_phone_bind['id'],$wxUser['headimgurl'],$wxUser['sex'],$wxUser['nickname'],$wxUser['openid']);
-            $ret = $this->auth->direct($is_phone_bind['id']);
+            $ret = $this->auth->direct($is_phone_bind['id'],$pushCid);
         }else{ //鍒ゆ柇寰俊鏄惁宸茬粡缁戝畾
             $find_third = $ModelThird->where(['openid'=>$wxUser['openid']])->find();
             if(!empty($find_third)) $this->error('褰撳墠寰俊鍙峰凡缁戝畾鍏朵粬璐﹀彿');
-            $ret = $this->auth->register('', Random::alnum(), '', $mobile, [],'wechat',$wxUser);
+            $ret = $this->auth->register('', Random::alnum(), '', $mobile, [],'wechat',$wxUser,$pushCid);
         }
         Sms::flush($mobile, 'changemobile');
         if ($ret) {
@@ -428,6 +470,48 @@
         if($res === false) $this->error($LogicUserBrowse->getError());
 
         $this->success([],'鍒犻櫎鎴愬姛');
+    }
+
+
+    /**
+     * 鏍囪娴忚0鍏冭喘鍟嗗搧璁板綍
+     *
+     * @return void
+     */
+    public function update_first_free_browse()
+    {
+        $ids = request()->param('goodsid','');
+
+        $new_goodsId = request()->param('new_goodsId','');
+
+        $plateform= request()->param('plateform','');
+
+        $LogicUserBrowse = new LogicUserBrowse();
+
+        $res = $LogicUserBrowse->updatefirstfreelog(USERID,$ids,$new_goodsId,$plateform);
+
+        if($res === false) $this->error($LogicUserBrowse->getError());
+
+        $this->success([],'娣诲姞鎴愬姛');
+    }
+
+    /**
+     * 妫�娴嬫槸鍚﹂鍗�
+     *
+     * @return void
+     */
+
+    public function check_isfirst_free()
+    {
+
+        $LogicUserBrowse = new LogicUserBrowse();
+
+        $res = $LogicUserBrowse->checkIsFirstFree(USERID);
+
+        if($res === false) $this->error($LogicUserBrowse->getError());
+        Log::write('妫�娴嬫槸鍚﹂鍗曪細'.json_encode($res));
+        if(empty($res)) $this->success(['info'=>1],'棣栧崟瀹㈡埛');
+        $this->success(['info'=>0],'闈為鍗曞鎴�');
     }
 
 
@@ -625,6 +709,7 @@
     public function bind_invitation()
     {
         $invite_code = request()->param('invite_code','');
+        $deviceid=request()->param('deviceid','');
         if(empty($invite_code)) $this->error('閭�璇风爜涓嶈兘涓虹┖');
         $is_official = false;
         $isOpenOfficialCode = config('site.isOpenOfficialCode');
@@ -645,6 +730,13 @@
             if($f_user['status'] != 'normal')$this->error('閭�璇蜂汉甯愬彿宸茶閿佸畾锛屾殏鏃舵棤娉曢個璇�');
             if($user['invitation_id'] != 0)$this->error('褰撳墠宸茬粦瀹氫笂绾х敤鎴�');
             $save_data['invitation_id'] = $f_user['id'];
+            if(!empty($deviceid))
+            {//璁惧id
+                $save_data['login_deviceid'] = $deviceid;
+            }
+            else{
+                $save_data['login_deviceid'] = 'cus'.self::guid();
+            }
             if($f_user['invitation_id'] != 0)$save_data['f_invitation_id'] = $f_user['invitation_id'];
             $res2 = $ModelUser->where(['id'=>$f_user['id']])->setInc('fans',1);
             if(!$res2){
@@ -658,7 +750,31 @@
             $this->error('缁戝畾澶辫触');
         } 
         $ModelUser->commit();
+        //鏇存柊鎷涘嫙娲诲姩淇℃伅
+        $activityInfo=new InfoActivityInfo();
+        $activityInfo->updateRecruitCount($save_data['invitation_id'] );
         $this->success('缁戝畾鎴愬姛',[]);    
+    }
+
+   public function guid()
+    {
+
+        if (function_exists('com_create_guid')) {
+
+            return com_create_guid();
+
+        } else {
+
+            mt_srand((double)microtime() * 10000);
+            $charid = strtoupper(md5(uniqid(rand(), true)));
+            $uuid = substr($charid, 0, 8)
+                . substr($charid, 8, 4)
+                . substr($charid, 12, 4)
+                . substr($charid, 16, 4)
+                . substr($charid, 20, 12);
+            return $uuid;
+
+        }
     }
 
     /**
@@ -743,6 +859,7 @@
         $user_jjcj_num = $ModelUser->where(['f_invitation_id'=>USERID,'level'=>1])->count(); //闂存帴鍒濈骇浜烘暟
         $user_zszj_num = $ModelUser->where(['invitation_id'=>USERID,'level'=>2])->count(); //鐩村睘涓骇浜烘暟
         $user_jjzj_num = $ModelUser->where(['f_invitation_id'=>USERID,'level'=>2])->count(); //闂存帴涓骇浜烘暟
+        $user_zong_num = $ModelUser->where(['invitation_id'=>USERID])->count(); //鎬婚個璇蜂汉鏁�
         $user_monthly_commission = LogicUser::getUserCommission($user['id'],'month'); //鑾峰彇杩�30浣i噾
         $user_total_commission = LogicUser::getUserCommission($user['id'],'total'); //鑾峰彇绱浣i噾
         $data = [
@@ -751,6 +868,7 @@
                 'user_jjcj_num' => $user_jjcj_num,
                 'user_zszj_num' => $user_zszj_num,
                 'user_jjzj_num' => $user_jjzj_num,
+                'user_zong_num'=>$user_zong_num,
                 'user_monthly_commission' => $user_monthly_commission,
                 'total_commission' => $user_total_commission
             ],
@@ -934,6 +1052,10 @@
         if($user->level<2){
             $this->error('褰撳墠绛夌骇涓嶈兘淇敼閭�璇风爜');
         }
+        //鍒ゆ柇鏄惁鏈変慨鏀硅褰�
+        if (\app\common\model\user\CodeChangeHistory::getByUserId($user->id)) {
+            $this->error('閭�璇风爜鍙兘淇敼涓�娆″摝');
+        }
         $invitation_code =  request()->param('invite_code','');
         if (!$invitation_code ) {
             $this->error(__('璇疯緭鍏ラ個璇风爜'));
@@ -950,10 +1072,44 @@
         }
         $user->invitation_code = $invitation_code;
         $user->save();
-
+        //淇濆瓨淇敼璁板綍
+        \app\common\model\user\CodeChangeHistory::create([
+                    'user_id' => $user->id,
+                    'before_code' => $user->invitation_code,
+                    'after_code' =>$invitation_code,
+                    'create_time' => time()
+                ]);
         $this->success();
 
     }
+    /**
+    *
+    *鑾峰彇鎺ㄨ崘閭�璇蜂汉
+    */
+    public function getRecomInviter()
+    {
+        $ModelUser=new ModelUser();
+        $user = $ModelUser->join('recommend_inviter', 't_user.id=t_recommend_inviter.user_id')
+        ->field('t_user.id,t_user.avatar,t_user.invitation_code,t_user.nickname')
+        ->order('recommend_inviter.order_inde asc')
+        ->select();
+        $this->success('鑾峰彇鎴愬姛',$user);     
+    }
 
+    /**
+     * 妫�娴嬫槸鍚︽湁鍋忓ソ鍟嗗搧
+     *
+     * @return void
+     */
+
+    public function check_preference_goods()
+    {
+        //鑾峰彇褰撳墠鐧诲綍浜虹敤鎴蜂俊鎭�
+        $user = $this->auth->getUser();
+        $ModelUserExtend=new ModelUserExtend();
+        $preference_goods=$ModelUserExtend->where(['id'=>$user['id']])->field('p_cids,p_platefrom')->find();
+        if(empty($preference_goods)||empty($preference_goods['p_cids'])) $this->error('鏆傛棤鍋忓ソ鍟嗗搧');
+        $this->success('鑾峰彇鎴愬姛',$preference_goods);
+    }
 
 }

--
Gitblit v1.9.3