大家觉得积分变动,用户组应该变动么?


当前系统行为:积分减少会影响等级

user.func.php:437-464user_update_group() 函数:

  • 每次积分变动(增加或扣减),CreditsService 都会调用 user_update_group($uid)

  • 该函数根据当前积分与用户组的 creditsfrom/creditsto 范围匹配来决定 gid

  • 积分减少时,会降级到更低的用户组

关键逻辑:

foreach($grouplist as $group) {
    if($group['gid'] < 100) continue;  // 跳过系统组(***等)
    $n = $user['credits'];
    if($n >= $group['creditsfrom'] && $n < $group['creditsto']) {
        if($user['gid'] != $group['gid']) {
            user__update($uid, array('gid' => $group['gid']));
            // ...
        }
    }
}

一般论坛的做法

方案

代表

特点

积分降级(当前方案)

Discuz! 默认

积分减少 → 等级/用户组自动下降,严格对等

只升不降

多数现代论坛

积分减少不影响已达到的等级,等级是"成就"而非"状态"

延迟降级

部分Discuz!配置

积分低于阈值后不立即降级,设一个宽限期

独立等级

贴吧/知乎

等级和积分脱钩,等级基于累计获得积分(不减),当前积分仅用于消费

主流趋势是「只升不降」或「独立等级」,因为:

  1. 用户辛辛苦升级后被扣分导致降级,体验很差

  2. 积分是可消费的货币,把它同时当等级依据容易产生矛盾

  3. 累计获得积分(不减少)更能反映用户贡献


需要我改成「只升不降」的逻辑吗?大致思路是增加一个 credits_total(累计获得积分)字段,等级依据 credits_total 而非 credits 来计算。

最新回复

请先登录后再回复 登录

uid:1 管理
关注
随遇而安,随缘而行
发帖 44
评论 236
粉丝 9
关注 1
发新帖
目录

扫码手机打开本帖