afa 6 ماه پیش
والد
کامیت
303b93cb38
2فایلهای تغییر یافته به همراه17 افزوده شده و 20 حذف شده
  1. 3 3
      application/api/controller/User.php
  2. 14 17
      application/common/model/UserModel.php

+ 3 - 3
application/api/controller/User.php

@@ -42,9 +42,9 @@ class User extends Api
     public function userInfo(UserArea $userArea,UserModel $userModel, LedgerWalletModel $ledgerWalletModel)
     {
         $user = $this->auth->getUser();
-        // if (!empty($user['is_super']) && empty($user['address_level'])) {
-        //     $user['address_level'] = $userModel::updateUserAddresLevel($user['id'], $user['parent_id']);
-        // }
+        if ($user['is_super'] == $userModel::Super && empty($user['address_level'])) {
+            $user['address_level'] = $userModel::updateUserAddresLevel($user['id'], $user['parent_id']);
+        }
         $resp = [
             'id'              => $user['id'],
             'nickname'        => $user['nickname'],

+ 14 - 17
application/common/model/UserModel.php

@@ -124,23 +124,20 @@ class UserModel extends Model
             {
                 $parent = self::where('id', $item)->find();
                 //更新等级
-                if (empty($parent->address_level)) {
-                    $parent->address_level = self::LevelOne;
-                }else{
-                    if ($parent->address_level < self::LevelFive) {
-                        $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelOne)->count();
-                        if($parentCount >= self::level[1]) $parent->address_level = self::LevelTwo;
-                        if($parentCount >= self::level[2]) $parent->address_level = self::LevelThre;
-                        if($parent->address_level == self::LevelThre){
-                            $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelThre)->count();
-                            if($parentCount >= self::level[3]) $parent->address_level = self::LevelFour;
-                        }
-                        if($parent->address_level == self::LevelFour) {
-                            $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
-                            if($parentCounts >= self::level[4]) $parent->address_level = self::LevelFive;
-                        }
+                if ($parent->address_level < self::LevelFive) {
+                    $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelOne)->count();
+                    if($parentCount >= self::level[1]) $parent->address_level = self::LevelTwo;
+                    if($parentCount >= self::level[2]) $parent->address_level = self::LevelThre;
+                    if($parent->address_level == self::LevelThre){
+                        $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelThre)->count();
+                        if($parentCount >= self::level[3]) $parent->address_level = self::LevelFour;
+                    }
+                    if($parent->address_level == self::LevelFour) {
+                        $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
+                        if($parentCounts >= self::level[4]) $parent->address_level = self::LevelFive;
                     }
                 }
+                
                 //更新直推领取人数
                 if($parentId == $item) $parent->direct_super +=  self::Normal;
                 $parent->save();
@@ -160,7 +157,7 @@ class UserModel extends Model
     //  [1=>3, 2=> 10, 3=>3, 4=>3];  //直推人数
     public static function updateUserAddresLevel(int $uid, int $parentId)
     {   
-        $addressLevel = self::LevelOne;
+        $addressLevel = 0;
         if (!empty($parentId)) {
             $paths = UserPathModel::where('user_id', $uid)->order('distance', 'asc')->column('parent_id');
             array_unshift($paths, $uid);
@@ -181,7 +178,7 @@ class UserModel extends Model
                     $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
                     if($parentCounts >= self::level[4]) $addressLevel = self::LevelFive;
                 }
-                self::where('id', $item)->setField('address_level', $addressLevel);
+                if($addressLevel > 0) self::where('id', $item)->setField('address_level', $addressLevel);
             }
         }
         return  $addressLevel;