/**
* 教室用户失败状态
*/
@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;
}
}
使用1248码表示失败状态
最新推荐文章于 2021-02-20 10:59:44 发布