美文网首页
利用占位符方式记录状态demo

利用占位符方式记录状态demo

作者: fufufufuli | 来源:发表于2019-01-07 12:00 被阅读0次
     * 用户状态类,记录用户在平台使用系统中所有的状态。
     */
    public class BitStateUtil {
        public final static Integer OP_BIND_PHONE = 1 << 0; // 用户绑定手机状态码
        public final static Integer OP_BIND_EMAIL = 1 << 1; // 用户绑定邮箱
        public final static Integer OP_BASIC_INFO = 1 << 2;// 用户是否填写基本资料
        public final static Integer OP_REAL_AUTH = 1 << 3;// 用户是否实名认证
        public final static Integer OP_VIDEO_AUTH = 1 << 4;// 用户是否视频认证
        public final static Integer OP_HAS_BIDREQUEST_PROCESS = 1 << 5;// 用户是否有一个借款正在处理流程当中
        public final static Integer OP_BIND_BANKINFO = 1 << 6;// 用户是否绑定银行卡
        public final static Integer OP_HAS_MONEYWITHDRAW_PROCESS = 1 << 7;// 用户是否有一个提现申请在处理中
    
        /**
         * @param states 所有状态值
         * @param value  需要判断状态值
         * @return 是否存在
         */
        public static boolean hasState(Integer states, Integer value) {
            
            return (states & value) != 0;
        }
    
        /**
         * @param states 已有状态值
         * @param value  需要添加状态值
         * @return 新的状态值
         */
        public static Integer addState(Integer states, Integer value) {
            if (hasState(states, value)) {
                return states;
            }
            return (states | value);
        }
    
        /**
         * @param states 已有状态值
         * @param value  需要删除状态值
         * @return 新的状态值
         */
        public static Integer removeState(Integer states, Integer value) {
            if (!hasState(states, value)) {
                return states;
            }
            return states ^ value;
        }
    }

    相关文章

      网友评论

          本文标题:利用占位符方式记录状态demo

          本文链接:https://www.haomeiwen.com/subject/iiturqtx.html