public abstract class BaseTagBitMask {
public static int append(int add, Integer current) {
current = Optional.ofNullable(current).orElse(0) | add;
return current;
}
public static int delete(int delete, Integer current) {
current = Optional.ofNullable(current).orElse(0);
current &= ~delete;
return current;
}
public static boolean isOwnRecord(int mark, Integer current) {
return (Optional.ofNullable(current).orElse(0) & mark) > 0;
}
}
public class BusinessAuthTagBitMask extends BaseTagBitMask {
public static int HISTORY = 0;
public static int EDIT = 1;
public static int RECEIVE_PURCHASER_INFORM = 1 << 1;
public static int QUERY = 1 << 2;
public static int OTHER_QUERY = -1;
}
public class BusinessAuthTagBitMaskUtil {
private static final int ownerTag = 1 | 1 << 1 | 1 << 2;
private static final int majorMemberTag = 1 << 1 | 1 << 2;
private static final int observerTag = 1 << 2;
public static int mergeTag(Long operator, BusinessAuthModel businessAuthModel) {
int tag = SourceBusinessAuthConstant.NON_TAG;
if (CollectionUtils.isNotEmpty(businessAuthModel.getOwnerUserIds()) && businessAuthModel.getOwnerUserIds().contains(operator)) {
tag = tag | ownerTag;
}
if (CollectionUtils.isNotEmpty(businessAuthModel.getMajorMemberUserIds()) && businessAuthModel.getMajorMemberUserIds().contains(operator)) {
tag = tag | majorMemberTag;
}
if (CollectionUtils.isNotEmpty(businessAuthModel.getObserverUserIds()) && businessAuthModel.getObserverUserIds().contains(operator)) {
tag = tag | observerTag;
}
return tag;
}
}