Browse Source

超级福利

董荣正 1 month ago
parent
commit
ed3defacf0
1 changed files with 75 additions and 74 deletions
  1. 75 74
      application/common/model/UserModel.php

+ 75 - 74
application/common/model/UserModel.php

@@ -10,29 +10,30 @@ use app\common\model\LedgerWalletModel;
 use fast\Asset;
 use think\Model;
 use think\Log;
+
 /**
  * 会员模型
  */
 class UserModel extends Model
 {
 
-//    // 开启自动写入时间戳字段
-//    protected $autoWriteTimestamp = 'int';
-//    // 定义时间戳字段名
-//    protected $createTime = 'createtime';
-//    protected $updateTime = 'updatetime';
-//    // 追加属性
-//    protected $append = [
-//        'url',
-//    ];.
+    //    // 开启自动写入时间戳字段
+    //    protected $autoWriteTimestamp = 'int';
+    //    // 定义时间戳字段名
+    //    protected $createTime = 'createtime';
+    //    protected $updateTime = 'updatetime';
+    //    // 追加属性
+    //    protected $append = [
+    //        'url',
+    //    ];.
 
     //0未开始 1进行中 2已结束 Not started
     const Notstart       = 0;
     const Normal         = 1;
     const Stop           = 2;
 
-    const LevelConta     = [1=>2, 2=>9,  3=>3, 4=>3];  //包含自己
-    const LevelAll       = [1=>3, 2=>10, 3=>3, 4=>3];  //直推人数
+    const LevelConta     = [1 => 2, 2 => 9,  3 => 3, 4 => 3];  //包含自己
+    const LevelAll       = [1 => 3, 2 => 10, 3 => 3, 4 => 3];  //直推人数
 
     const LevelOne       = 1; //青铜
     const LevelTwo       = 2; //白银
@@ -45,7 +46,7 @@ class UserModel extends Model
     //超级福利标识
     const Hidden = 0;
     const NewPeo = 1;
-    const Super  = 2; 
+    const Super  = 2;
 
     protected $name = 'user';
 
@@ -60,15 +61,15 @@ class UserModel extends Model
         return $this->where("phone", $phone)->find();
     }
 
- 
+
 
     public static function getByUserCount(array $where)
     {
         return self::where($where)->count();
-
     }
 
-    public function getByUid($nickname){
+    public function getByUid($nickname)
+    {
         return self::where('nickname', $nickname)->find();
     }
 
@@ -78,12 +79,13 @@ class UserModel extends Model
     }
 
     public static function getByParentId(int $uid): int
-    {   
+    {
         return self::where('id', $uid)->value("parent_id");
     }
-   
+
     //根据用户昵称获取用户ID: 0 地址 1 昵称
-    public static function getUserByUid(string $nickname, int $type = 0){
+    public static function getUserByUid(string $nickname, int $type = 0)
+    {
         $map = $type == 1 ? ['nickname' => $nickname] : ['address' => $nickname];
         return self::where($map)->value('id');
     }
@@ -92,7 +94,7 @@ class UserModel extends Model
     {
         $all_list = $this->field('id,address')->select();
         $arr = [];
-        foreach ($all_list as $item){
+        foreach ($all_list as $item) {
             $arr[$item['address']] = $item['id'];
         }
         return $arr;
@@ -101,16 +103,16 @@ class UserModel extends Model
 
     //获取用户RWA
     public static function getUserRwaNum(int $uid): int
-    {   
+    {
         return self::where('id', $uid)->value("rwa_num");
     }
 
     //获取用户团队等级
     public static function getTeamLevelId(int $uid): int
-    {   
+    {
         return self::where('id', $uid)->value("team_level_id");
     }
-    
+
     /**
      * RWA更新数据
      * @param int $uid
@@ -119,12 +121,12 @@ class UserModel extends Model
      */
     public static function updateForRwaNum(int $uid, int $pid, string $score, string $action)
     {
-        if($action == '+'){
+        if ($action == '+') {
             //更新自己Rwa
             self::where('id', $uid)->setInc('rwa_num', $score);
             //更新直推Rwa
             return self::where('id', $pid)->setInc('direct_rwa', $score);
-        }else{
+        } else {
 
             //更新自己Rwa
             self::where('id', $uid)->setDec('rwa_num', $score);
@@ -148,52 +150,52 @@ class UserModel extends Model
      */
     public static function updateUserLevel(int $uid, int $parentId, $addressLevel)
     {
-        try {
-            
-        
+
+
+
         if (!empty($parentId)) {
             $model = new ProductOrder();
             $paths  = UserPathModel::where('user_id', $uid)->order('distance', 'asc')->column('parent_id');
             foreach ($paths as $item) {
-                $parent = self::where('id', $item)->find();
-                //更新等级
-                if ($parent->address_level < self::LevelFive) {
-                    //升级条件
-                    $level = ($parentId == $item)? self::LevelConta: self::LevelAll;
-                    //升级
-                    if($parent->address_level < self::LevelThre){
-                        $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelOne)->count();
-                        if($parentCount >= $level[1]) $parent->address_level = self::LevelTwo;
-                        if($parentCount >= $level[2]) $parent->address_level = self::LevelThre;
-
-                    }elseif($parent->address_level == self::LevelThre){
-                        $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelThre)->count();
-                        if($parentCount >= $level[3]) {
-                            $parent->address_level = self::LevelFour;
-                            //空投
-                            $welfare = config('super_welfare')[self::LevelFour];
-                            $model::setPopularNoAreaOrder($welfare['num'], 0, 0, $welfare['product_id'], $item, $model::Airdrop);
-                        }
-                    }elseif($parent->address_level == self::LevelFour){
-                        $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
-                        if($parentCounts >= $level[4]) {
-                            $parent->address_level = self::LevelFive;
-                            //空投
-                            $welfare = config('super_welfare')[self::LevelFive];
-                            $model::setPopularNoAreaOrder($welfare['num'], 0, 0, $welfare['product_id'], $item, $model::Airdrop);
+                try {
+                    $parent = self::where('id', $item)->find();
+                    //更新等级
+                    if ($parent->address_level < self::LevelFive) {
+                        //升级条件
+                        $level = ($parentId == $item) ? self::LevelConta : self::LevelAll;
+                        //升级
+                        if ($parent->address_level < self::LevelThre) {
+                            $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelOne)->count();
+                            if ($parentCount >= $level[1]) $parent->address_level = self::LevelTwo;
+                            if ($parentCount >= $level[2]) $parent->address_level = self::LevelThre;
+                        } elseif ($parent->address_level == self::LevelThre) {
+                            $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelThre)->count();
+                            if ($parentCount >= $level[3]) {
+                                $parent->address_level = self::LevelFour;
+                                //空投
+                                $welfare = config('super_welfare')[self::LevelFour];
+                                $model::setPopularNoAreaOrder($welfare['num'], 0, 0, $welfare['product_id'], $item, $model::Airdrop);
+                            }
+                        } elseif ($parent->address_level == self::LevelFour) {
+                            $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
+                            if ($parentCounts >= $level[4]) {
+                                $parent->address_level = self::LevelFive;
+                                //空投
+                                $welfare = config('super_welfare')[self::LevelFive];
+                                $model::setPopularNoAreaOrder($welfare['num'], 0, 0, $welfare['product_id'], $item, $model::Airdrop);
+                            }
                         }
                     }
+                    //更新直推领取人数
+                    if ($parentId == $item) $parent->direct_super += self::Normal;
+                    $parent->save();
+                } catch (\Exception $e) {
+                    Log::error($e->getMessage(), 'updateUserLevel,user_id'.$item);
                 }
-                //更新直推领取人数
-                if($parentId == $item) $parent->direct_super += self::Normal;
-                $parent->save();
             }
         }
         //
-        return self::where('id', $uid)->update(['address_level'=> $addressLevel+1, 'is_super'=>self::Super]);
-        } catch (\Exception $e) {
-            Log::error($e->getMessage(),'updateUserLevel');
-        }
+        return self::where('id', $uid)->update(['address_level' => $addressLevel + 1, 'is_super' => self::Super]);
     }
 
     /**
@@ -204,30 +206,29 @@ class UserModel extends Model
      * 有3个是黄金地址的 就变成翡翠地址
      * */
     public static function updateUserAddresLevel(int $uid, int $parentId)
-    {   
+    {
         $addressLevel = 0;
         if (!empty($parentId)) {
             $paths = UserPathModel::where('user_id', $uid)->order('distance', 'asc')->column('parent_id');
             array_unshift($paths, $uid);
-            foreach ($paths as $item) 
-            {
+            foreach ($paths as $item) {
                 //更新等级
                 $level =  self::LevelAll;
                 $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelOne)->count();
-                if($parentCount >= $level[1]) $addressLevel = self::LevelTwo;
-                if($parentCount >= $level[2]) $addressLevel = self::LevelThre;
+                if ($parentCount >= $level[1]) $addressLevel = self::LevelTwo;
+                if ($parentCount >= $level[2]) $addressLevel = self::LevelThre;
 
                 //是否升级翡翠
-                if($addressLevel == self::LevelThre) {
+                if ($addressLevel == self::LevelThre) {
                     $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelThre)->count();
-                    if($parentCounts >= $level[3]) $addressLevel = self::LevelFour;
+                    if ($parentCounts >= $level[3]) $addressLevel = self::LevelFour;
                 }
                 //彩宝
-                if($addressLevel == self::LevelFour) {
+                if ($addressLevel == self::LevelFour) {
                     $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
-                    if($parentCounts >= $level[4]) $addressLevel = self::LevelFive;
+                    if ($parentCounts >= $level[4]) $addressLevel = self::LevelFive;
                 }
-                if($addressLevel > 0) self::where('id', $item)->setField('address_level', $addressLevel);
+                if ($addressLevel > 0) self::where('id', $item)->setField('address_level', $addressLevel);
             }
         }
         return  $addressLevel;
@@ -239,12 +240,12 @@ class UserModel extends Model
         $paths  = UserPathModel::where('user_id', $uid)->where('distance', '<', 11)->order('distance', 'asc')->column('distance,parent_id');
         if (!empty($paths)) {
             $model = new LedgerWalletModel();
-            foreach ($paths as $kk=>$item) {
-                if($kk== 1){
+            foreach ($paths as $kk => $item) {
+                if ($kk == 1) {
                     $model->changeWalletAccount($item, $token, $pv, ledgerTokenChangeModel::Community, $uid);
-                }else{
+                } else {
                     //间接推荐有效会员大于层级
-                    if(self::where('parent_id', $item)->where('rwa_num','>', 0)->count() >= $kk){
+                    if (self::where('parent_id', $item)->where('rwa_num', '>', 0)->count() >= $kk) {
                         $model->changeWalletAccount($item, $token, $pv, ledgerTokenChangeModel::Community, $uid);
                     }
                 }