Jelajahi Sumber

会员、管理员登陆次数bugfix

zhangl 1 tahun lalu
induk
melakukan
6841a776c4

+ 17 - 6
backendApi/modules/v1/models/LoginForm.php

@@ -85,9 +85,15 @@ class LoginForm extends Model {
      * @throws \Exception
      */
     private function _updateFailTimes($transaction,$returnResult){
-        Admin::updateAllCounters([
-            'FAIL_NUMS' => 1,
-        ], 'ADMIN_NAME=:ADMIN_NAME', ['ADMIN_NAME' => $this->adminName]);
+        $admin = Admin::findOneAsArray('ADMIN_NAME=:ADMIN_NAME', ['ADMIN_NAME' => $this->adminName]);
+        if ($admin['FAIL_NUMS'] > 0) {
+            Admin::updateAllCounters([
+                'FAIL_NUMS' => 1,
+            ], 'ADMIN_NAME=:ADMIN_NAME', ['ADMIN_NAME' => $this->adminName]);
+        } else {
+            Admin::updateAll(['FAIL_NUMS' => 1], 'ADMIN_NAME=:ADMIN_NAME', ['ADMIN_NAME' => $this->adminName]);
+        }
+
         $transaction->commit();
         if(isset($this->_user)){
             AdminLoginLogger::fail($this->_user,$returnResult, $this->password);
@@ -101,9 +107,14 @@ class LoginForm extends Model {
      * 更新成功次数
      */
     private function _updateSuccessTimes(){
-        Admin::updateAllCounters([
-            'LOGIN_NUMS' => 1,
-        ], 'ADMIN_NAME=:ADMIN_NAME', ['ADMIN_NAME' => $this->adminName]);
+        $admin = Admin::findOneAsArray('ADMIN_NAME=:ADMIN_NAME', ['ADMIN_NAME' => $this->adminName]);
+        if ($admin['LOGIN_NUMS'] > 0) {
+            Admin::updateAllCounters([
+                'LOGIN_NUMS' => 1,
+            ], 'ADMIN_NAME=:ADMIN_NAME', ['ADMIN_NAME' => $this->adminName]);
+        } else {
+            Admin::updateAll(['LOGIN_NUMS' => 1], 'ADMIN_NAME=:ADMIN_NAME', ['ADMIN_NAME' => $this->adminName]);
+        }
     }
     /**
      * 登录

+ 17 - 6
frontendApi/modules/v1/models/LoginForm.php

@@ -78,9 +78,15 @@ class LoginForm extends Model
      * @throws \Exception
      */
     private function _updateFailTimes($transaction,$returnResult){
-        UserInfo::updateAllCounters([
-            'FAIL_NUMS' => 1,
-        ], 'USER_NAME=:USER_NAME', ['USER_NAME' => $this->userName]);
+        $userInfo = UserInfo::findOneAsArray('USER_NAME=:USER_NAME', ['USER_NAME' => $this->userName]);
+        if ($userInfo['FAIL_NUMS'] > 0) {
+            UserInfo::updateAllCounters([
+                'FAIL_NUMS' => 1,
+            ], 'USER_NAME=:USER_NAME', ['USER_NAME' => $this->userName]);
+        } else {
+            UserInfo::updateAll(['FAIL_NUMS' => 1], 'USER_NAME=:USER_NAME', ['USER_NAME' => $this->userName]);
+        }
+
         $transaction->commit();
 
         $cacheKey = sprintf(self::FRONTEND_LOGIN_FAIL_TIMES, $this->userName);
@@ -98,9 +104,14 @@ class LoginForm extends Model
         $cacheKey = sprintf(self::FRONTEND_LOGIN_FAIL_TIMES, $this->userName);
         Yii::$app->tokenRedis->del($cacheKey);
 
-        UserInfo::updateAllCounters([
-            'LOGIN_NUMS' => 1,
-        ], 'USER_NAME=:USER_NAME', ['USER_NAME' => $this->userName]);
+        $userInfo = UserInfo::findOneAsArray('USER_NAME=:USER_NAME', ['USER_NAME' => $this->userName]);
+        if ($userInfo['FAIL_NUMS'] > 0) {
+            UserInfo::updateAllCounters([
+                'LOGIN_NUMS' => 1,
+            ], 'USER_NAME=:USER_NAME', ['USER_NAME' => $this->userName]);
+        } else {
+            UserInfo::updateAll(['LOGIN_NUMS' => 1], 'USER_NAME=:USER_NAME', ['USER_NAME' => $this->userName]);
+        }
     }
 
     /**