Procházet zdrojové kódy

add version and client type to member table

stanley-king před 7 roky
rodič
revize
e7da351a50
3 změnil soubory, kde provedl 76 přidání a 8 odebrání
  1. 10 6
      helper/account_helper.php
  2. 36 2
      helper/async/status.php
  3. 30 0
      helper/session_helper.php

+ 10 - 6
helper/account_helper.php

@@ -306,12 +306,16 @@ class account_helper
         relation_helper::onLogin($member_id);
 
         $member_info = Model('member')->getMemberInfoByID($member_id);
-        $update_info['member_login_num']  = $member_info['member_login_num'] + 1;
-        $update_info['member_login_time'] = time();
-        $update_info['member_old_login_time'] = $member_info['member_login_time'];
-        $update_info['member_login_ip'] = getIp();
-        $update_info['member_old_login_ip'] = $member_info['member_login_ip'];
-        Model('member')->editMember(['member_id' => $member_id], $update_info);
+        $update['member_login_num']  = $member_info['member_login_num'] + 1;
+        $update['member_login_time'] = time();
+        $update['member_old_login_time'] = $member_info['member_login_time'];
+        $update['member_login_ip'] = getIp();
+        $update['member_old_login_ip'] = $member_info['member_login_ip'];
+        if(session_helper::isapp()) {
+            $update['client_type'] = session_helper::client_type();
+            $update['client_version'] = session_helper::version_code();
+        }
+        Model('member')->editMember(['member_id' => $member_id], $update);
 
         $anotice  = new user_session\anotice();
         $anotice->onStatus();

+ 36 - 2
helper/async/status.php

@@ -35,6 +35,40 @@ class status extends IAsync
         if($this->check_fcode())   return;
     }
 
+    private function check_version()
+    {
+        $ver_code = $_SESSION['client_version'];
+        if($_SESSION['client_type'] == 'ios')
+        {
+            $cur_ver = $GLOBALS['setting_config']['mobile_ios_version'];
+
+            $cur_ver  = intval($cur_ver * 100 + 0.5);
+            $ver_code = intval($ver_code * 100 + 0.5);
+
+            if($ver_code < $cur_ver) {
+                $url  = $GLOBALS['setting_config']['mobile_ios'];
+                $tips = $GLOBALS['setting_config']['mobile_update_tips'];
+                $artips = explode('#',$tips);
+                $tips = implode("\n",$artips);
+            }
+        }
+        elseif($_SESSION['client_type'] == 'android')
+        {
+            $cur_ver = $GLOBALS['setting_config']['mobile_apk_version'];
+            $cur_ver  = intval($cur_ver * 100 + 0.5);
+            $ver_code = intval($ver_code * 100 + 0.5);
+
+            if($ver_code < $cur_ver) {
+                $url  = $GLOBALS['setting_config']['mobile_apk'];
+                $tips = $GLOBALS['setting_config']['mobile_update_tips'];
+                $artips = explode('#',$tips);
+                $tips = implode("\n",$artips);
+            }
+        }
+
+        return false;
+    }
+
     private function check_present()
     {
         if($this->mem_info->order_num() > 0) {
@@ -54,11 +88,11 @@ class status extends IAsync
 
     private function check_bonus()
     {
-        return true;
+        return false;
     }
 
     private function check_fcode()
     {
-        return true;
+        return false;
     }
 }

+ 30 - 0
helper/session_helper.php

@@ -19,6 +19,9 @@ class session_helper
     const wxopen_login = 2;
     const mobile_len = 11;
 
+    const device_ios = 1;
+    const device_android = 2;
+
     static public function mobile_valid($mobile)
     {
         if (!isset($mobile) || empty($mobile) || strlen($mobile) < self::mobile_len) {
@@ -401,4 +404,31 @@ class session_helper
             $_SESSION['relay_id'] = $relay_id;
         }
     }
+
+
+    static public function client_type()
+    {
+        if($_SESSION['client_type'] == 'android') {
+            return self::device_android;
+        }
+        elseif($_SESSION['client_type'] == 'ios') {
+            return self::device_ios;
+        }
+        else {
+            return 0;
+        }
+    }
+
+    static public function version_code()
+    {
+        if(self::client_type() == self::device_android) {
+            return $_SESSION['client_version'];
+        }
+        elseif(self::client_type() == self::device_ios) {
+            return $_SESSION['client_version'] * 100;
+        }
+        else {
+            return 0;
+        }
+    }
 }