| | |
| | | $referee_id = agentRefereeModel::getRefereeUserId($user_id, 1); |
| | | //获取直推上级推荐的人数 |
| | | $direct_child_num = $referee_id ? self::getDirectNum($referee_id) : 0; |
| | | if ($referee_id && $direct_child_num < 2) { |
| | | /*if ($referee_id && $direct_child_num < 2) { |
| | | $parent = static::detail($referee_id); |
| | | //如果自己名下已经被排满,继续往下找 |
| | | if ($parent['child_num'] == 3) { |
| | |
| | | $level_num_first = ($parent['level_num'] - 1) * 3 + 1; |
| | | $parent = self::checkUserChild($level_num_first, 3, $parent['tree_level'] + 1); |
| | | } |
| | | } else { |
| | | } else {*/ |
| | | //规则2:查找有空缺的三叉树 |
| | | $parent = (new static())->where('child_num', '<', 3) |
| | | ->where('user_id', "<>", $referee_id) |
| | | ->order(['tree_level' => 'asc', 'level_num' => 'asc'])->find(); |
| | | } |
| | | //} |
| | | $data['parent_id'] = $parent['user_id']; |
| | | $data['order_num'] = $parent['child_num'] + 1; //三叉树内的位置 |
| | | $data['tree_level'] = $parent['tree_level'] + 1; //竖向层级 |
| | |
| | | 'child_num' => $parent['child_num'] + 1 |
| | | ]); |
| | | } |
| | | $user=UserModel::detail($user_id); |
| | | if ($model->save(array_merge([ |
| | | 'user_id' => $user_id, |
| | | 'is_delete' => 0, |
| | | 'purchase_count' => $user['purchase_count'], |
| | | 'grade_id' => Grade::getDefaultGradeId(), |
| | | 'app_id' => $data['app_id'] |
| | | ], $data))) { |
| | |
| | | // 复购n次:向上n级(最多不超过存在的层级) |
| | | $targetUserId = $user_id; |
| | | $levelsToGoUp = (new OrderModel)::getUserOrderCounti($user_id); |
| | | |
| | | // 逐级向上查找 |
| | | for ($i = 0; $i < $levelsToGoUp; $i++) { |
| | | $currentUser = static::detail($targetUserId); |