get_group_user($uid); //Todo 获取在$group_users内所有用户的消费情况 $achievement = 0; //获取该用户购买过的礼包商品的全部订单 $achievement = StoreOrder::where('uid','in', $group_users)->where('paid', 1)->where('product_type',2)->whereNotIn('status',-1)->sum('pay_price'); @file_put_contents('quanju2.txt', $achievement."-总业绩\r\n", 8); $old_level = self::where('id', $user['level'])->find(); if (!$old_level) $old_level = [ 'grade' => 0, 'name' => '普通会员' ]; $level = self::where('grade', '>', $old_level['grade'])->where('achievement', '<=', $achievement) ->order('grade', 'desc')->find(); if ($level) { $user->level = $level['id']; $user->save(); } $pass[] = $uid; $spread = User::where('uid', $user['spread_uid'])->find(); if ($spread) return $this->checkLevel($spread['id'], $pass); return true; } public function get_group_user($id, $init = true, $members = null){ if ($init) { $us = \app\common\model\user\User::column('spread_uid', 'uid'); $members = []; foreach ($us as $k => $v) { if ($v > 0) $members[$v][] = $k; } $id = [$id]; } $arr = array(); foreach ($id as $v) { $child = $members[$v] ?? []; $arr = array_merge($arr, $child); } if (count($arr)) { return array_merge($arr, $this->get_group_user($arr, false, $members)); } else { return $arr; } } }