| | |
| | | use app\common\model\BaseModel; |
| | | use app\common\model\plus\bonus\Order as OrderModel; |
| | | use app\common\model\plus\bonus\Referee as RefereeModel; |
| | | use app\common\model\user\Grade as GradeModel; |
| | | use app\common\model\user\User as UserModel; |
| | | //use app\common\model\plus\bonus\Order as OrderModel; |
| | | use app\common\model\plus\bonus\Performance as PerformanceModel; |
| | |
| | | $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) |
| | | /*->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))) { |
| | |
| | | RefereeModel::createRelation($child_user_id, $new_user_id); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | public function addTheFirst4() |
| | | { |
| | | $model = new self; |
| | | $grade_id=GradeModel::getDefaultGradeId(); |
| | | if ($model->where('tree_level',4)->count()){ |
| | | return true; |
| | | } |
| | | //记录分红层级关系 |
| | | $i=4; |
| | | $userList=$model->where('tree_level',3)->select(); |
| | | $k=0; |
| | | foreach ($userList as $tree){ |
| | | $new_user_id=$tree['user_id']; |
| | | for ($j=1; $j <= 3; $j++) { |
| | | $k++; |
| | | $user = UserModel::create([ |
| | | 'open_id' => $i . '_' .$k, |
| | | 'reg_source' => 'sys', |
| | | 'nickName' => '预留' . $i . '_' . $k, |
| | | 'grade_id'=>$grade_id, |
| | | 'app_id' => 10142 |
| | | ]); |
| | | $child_user_id = $user->user_id; |
| | | $model->create([ |
| | | 'user_id' => $child_user_id, |
| | | 'is_delete' => 0, |
| | | 'app_id' => 10142, |
| | | 'parent_id' => $new_user_id, |
| | | 'order_num' => $j, |
| | | 'tree_level' => 4, |
| | | 'level_num' => $k |
| | | ]); |
| | | $model->where('user_id',$new_user_id)->save([ |
| | | 'user_id' => $new_user_id, |
| | | 'child_num' => $j |
| | | ]); |
| | | RefereeModel::createRelation($child_user_id, $new_user_id); |
| | | } |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | |
| | | // 复购n次:向上n级(最多不超过存在的层级) |
| | | $targetUserId = $user_id; |
| | | $levelsToGoUp = (new OrderModel)::getUserOrderCounti($user_id); |
| | | |
| | | // 逐级向上查找 |
| | | for ($i = 0; $i < $levelsToGoUp; $i++) { |
| | | $currentUser = static::detail($targetUserId); |