用户等级升级

当经验值达到配置的值,自动升级等级

方法

public void upLevel(CustomerInfo customerInfo) {
        //确定当前经验所达到的等级
        List<CustomerLevelEntity> list = customerLevelMapper.getUsableList();
        if (CollUtil.isEmpty(list)) {
            log.error("系统会员等级未配置,请配置对应数据");
            return;
        }

        CustomerLevelEntity userLevelConfig = null;
        for (CustomerLevelEntity customerLevelEntity : list) {
            if (customerInfo.getExperience() > customerLevelEntity.getExperience()) {
                userLevelConfig = customerLevelEntity;
                continue;
            }
            break;
        }

        if (ObjectUtil.isNull(userLevelConfig)) {
            log.warn("未找到用户对应的会员等级,userId = " + customerInfo.getUserId());
            return;
        }

        // 判断用户是否还在原等级
        if (customerInfo.getLevel().equals(userLevelConfig.getGrade())) {
            return;
        }

        // 判断用户等级经过向上调整
        List<CustomerLevelEntity> collect = list.stream().filter(e -> e.getGrade().equals(customerInfo.getLevel())).collect(Collectors.toList());
        if (CollUtil.isNotEmpty(collect)) {
            if (collect.get(0).getGrade() > userLevelConfig.getGrade()) {
                return;
            }
        }
        customerInfo.setLevel(userLevelConfig.getGrade());
        //更新会员等级
        customerInfoMapper.updateByPrimaryKeySelective(customerInfo);
    }
}

数据库设计

在这里插入图片描述

大佬勿喷,欢迎提意见建议评论!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值