使用1248码表示失败状态

/**
 * 教室用户失败状态
 */
@NoArgsConstructor
@AllArgsConstructor
@Getter
public enum RoomUserFailStatusEnum {
    /**
     * 正常
     */
    NORMAL(0, "正常"),
    /**
     * 音视频故障
     */
    FAIL_AUDIO_VIDEO(1, "音视频故障"),
    /**
     * 订阅失败
     */
    FAIL_SUBSCRIBE(2, "订阅失败"),
    /**
     * 课件加载失败
     */
    FAIL_COURSEWARE(4, "课件加载失败"),
    ;

    private Integer code;
    private String name;


    private static Map<Integer, RoomUserFailStatusEnum> MAP = Maps.newHashMap();

    static {
        Arrays.stream(values())
                .forEach(item -> MAP.put(item.getCode(), item));
    }

    /**
     * 根据异常code取异常描述
     * 包含组合(比如状态吗 3->音视频故障+订阅失败,5->音视频故障+课件加载失败,
     * 6->订阅失败+课件加载失败。。。 )
     * 参考:https://www.cnblogs.com/hbuuid/p/12580709.html
     * @return 故障描述
     */
    public static String getNameByCode(Integer code) {
        String description = StringUtils.EMPTY;

        if ((code & FAIL_AUDIO_VIDEO.getCode()) > 0) {
            description += FAIL_AUDIO_VIDEO.getName() + "/";
        }
        if ((code & FAIL_SUBSCRIBE.getCode()) > 0) {
            description += FAIL_SUBSCRIBE.getName() + "/";
        }
        if ((code & FAIL_COURSEWARE.getCode()) > 0) {
            description += FAIL_COURSEWARE.getName() + "/";
        }
        //去掉最后的"/"
        if (StringUtils.isNotBlank(description)) {
            description = description.substring(0, description.length() - 1);
        }
        return description;
    }

    /**
     * 给定状态码中 是否包含 音视频故障
     * @param code
     * @return
     */
    public static Boolean isExistAudioProblem(Integer code) {
        return (code & FAIL_AUDIO_VIDEO.getCode()) > 0;
    }
    /**
     * 给定状态码中 是否包含 订阅失败
     * @param code
     * @return
     */
    public static Boolean isExistSubscribeProblem(Integer code) {
        return (code & FAIL_SUBSCRIBE.getCode()) > 0;
    }
    /**
     * 给定状态码中 是否包含 课件加载失败
     * @param code
     * @return
     */
    public static Boolean isExistCourseWareProblem(Integer code) {
        return (code & FAIL_COURSEWARE.getCode()) > 0;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值