afa преди 8 месеца
родител
ревизия
acad897a03
променени са 2 файла, в които са добавени 27 реда и са изтрити 15 реда
  1. 4 0
      application/api/controller/User.php
  2. 23 15
      application/common/model/UserModel.php

+ 4 - 0
application/api/controller/User.php

@@ -40,6 +40,10 @@ class User extends Api
     public function userInfo(UserArea $userArea,UserModel $userModel, LedgerWalletModel $ledgerWalletModel)
     {
         $user = $this->auth->getUser();
+
+        $req = $userModel::updateUserLevel(1288, 1275);
+
+        dump($req );die;
         $resp = [
             'id'              => $user['id'],
             'nickname'        => $user['nickname'],

+ 23 - 15
application/common/model/UserModel.php

@@ -110,29 +110,37 @@ class UserModel extends Model
     public static function updateUserLevel(int $uid, int $parentId)
     {
         if (!empty($parentId)) {
-            $parent = self::where('id', $parentId)->find();
-            //更新等级
-            if (empty($parent->address_level)) {
-                $parent->address_level = self::levelOne;
-            }else{
-                if ($parent->address_level < self::levelFour) {
-                    $parentCount = self::where('parent_id', $parentId)->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;
+            $paths  = UserPathModel::where('user_id', $parentId)->order('distance', 'asc')->column('parent_id');
+            $paths[]= $parentId;
+            foreach ($paths as $item) 
+            {
+                $parent = self::where('id', $item)->find();
+                //更新等级
+                if (empty($parent->address_level)) {
+                    $parent->address_level = self::levelOne;
+                }else{
+                    if ($parent->address_level < self::levelFour) {
+                        $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::levelThre){
-                    $parentCount = self::where('parent_id', $parentId)->where('address_level', '>=', self::levelThre)->count();
-                    if($parentCount > self::level[3]) $parent->address_level = self::levelFour;
+                //更新直推领取人数
+                if($parentId == $item){
+                    $parent->direct_super +=  self::NORMAL;
+                    $parent->save();
                 }
             }
-            $parent->direct_super +=  self::NORMAL; //更新直推领取人数
-            $parent->save();
         }
         return self::where('id', $uid)->setInc('address_level', self::NORMAL);
     }
 
      /**
-     * 获取直推用户黄金标识人数  direct_super >= 10
+     * 获取直推用户黄金标识人数
      * @param int $uid
      * @return void
      */