This commit is contained in:
2026-04-06 03:10:44 +08:00
parent 7b5d43f0e8
commit dd6745fe24
16 changed files with 402 additions and 637 deletions
+2 -65
View File
@@ -33,7 +33,7 @@ class User{
'id' => $_user['parent_id'],
'username' => Db::name('user')->where('id',$_user['parent_id'])->value('username')
]);
$this->buildTeam($_user);
build_user_team($_user);
//直属团队人数
Db::name('user_extend')->where('user_id',$_user['parent_id'])
->data([
@@ -66,26 +66,6 @@ class User{
$data['imToken'] = $imToken['token'];
return $data;
}
protected function level_up($user_id,$count=0){
$levels = [
0,
50,
100,
1000,
5000,
20000,
];
$level = 0;
foreach($levels as $k=>$v){
if($count>=$v){
$level= $k;
}else{
break;
}
}
Db::name('user')->where('id',$user_id)->data(['level'=>$level])->save();
}
function profile($user=[]){
$data = $user;
if(!is_array($data)){
@@ -140,7 +120,7 @@ class User{
$list = Db::name('user_extend')->whereIn('user_id',$team_user_ids)->field('user_id,vip_total')->select();
foreach($list as $v){
cache('team_vip_total_'.$v['user_id'],$v['vip_total']);
$this->level_up($v['user_id'],$v['vip_total']);
update_user_level($v['user_id'],$v['vip_total']);
}
// if(!$user->active){
@@ -162,49 +142,6 @@ class User{
//addJob($data,'Settlement');
}
function buildTeam($user){
// 插入自己的团队关系 (自己是自己的后代)
$teamData = [
[
'ancestor_id' => $user['id'],
'descendant_id' => $user['id'],
'depth' => 0,
'status' => 0,
]
];
// 2. 处理团队关系(如果有推荐人)
if ($user['parent_id']) {
parent_info( $user['id'],[
'id' => $user['parent_id'],
'username' => Db::name('user')->where('id',$user['parent_id'])->value('username')
]);
// 获取推荐人所有的上级关系,生成新用户的团队关系
$ancestors = Db::name('user_team')
->where('descendant_id', $user['parent_id'])
->select();
/** @var \app\model\UserTeam $ancestor */
// 插入新用户与祖先的关系
foreach ($ancestors as $ancestor) {
$teamData[] = [
'ancestor_id' => $ancestor['ancestor_id'],
'descendant_id' => $user['id'],
'depth' => $ancestor['depth'] + 1,
'status' => 1, // 默认状态为 0,表示无效
];
}
}
// 批量插入关系
try {
if($teamData){
Db::name('user_team')->insertAll($teamData);
}
} catch (\Exception $e) {
cp($e->getMessage());
}
}
/**
* 分润逻辑