更新用户信息

莫语 2023-1-11 282

这个接口后面的flag字段该怎么传,UserAdmin.updateUserInfo(userInfo, 1);一直提示参数不合法,对文档中的描述表示不太理解 更新用户信息的字段信息,第0bit位为1时更新userInfo中的昵称信息,第1位更新头像,第2位更新性别,第3更新电话,第4位更新email,第5位更新地址,第6位更新公司,第7位更新社交信息,第8位更新extra信息,第9位更新name信息。比如更新用户头像和昵称,flag应该位 0x03

下面的是我代码中的更新操作 private void upDateImUserInfo(TUser tUser2) { InputOutputUserInfo userInfo = new InputOutputUserInfo(); if (tUser2.getUserName() != null) { userInfo.setDisplayName(tUser2.getNickName()); } if (tUser2.getUserPortrait() != null) { userInfo.setPortrait(tUser2.getUserPortrait()); } if (tUser2.getPhone() != null) { userInfo.setMobile(tUser2.getPhone()); } try { IMResult voidIMResult = UserAdmin.updateUserInfo(userInfo, 1); if (voidIMResult.getCode()!=0){ throw new RuntimeException("修改用户信息失败"); } } catch (Exception e) { throw new RuntimeException(e); } }

最新回复 (3)
  • x86 2023-1-12
    引用 2
    关于位运算,请参考下这儿:https://www.runoob.com/w3cnote/bit-operation.html

    比如,上面代码,你想修改 名字、头像、电话号码,那么应当传:

    0x01 & 0x02 & 0x08,即10进制的 11
  • 莫语 2023-1-13
    引用 3
    那我这边根据计算传的应该是11吧,但是我这边还是报错

        /**
         * 同步IM中的个人信息
         *
         * @param tUser2
         */
        private void upDateImUserInfo(TUser tUser2) {
            InputOutputUserInfo userInfo = new InputOutputUserInfo();
            if (tUser2.getUserName() != null) {
                userInfo.setDisplayName(tUser2.getNickName());
            }
            if (tUser2.getUserPortrait() != null) {
                userInfo.setPortrait(tUser2.getUserPortrait());
            }
            if (tUser2.getPhone() != null) {
                userInfo.setMobile(tUser2.getPhone());
            }
            try {
                IMResult<Void> voidIMResult = UserAdmin.updateUserInfo(userInfo, 11);
                if (voidIMResult.getCode()!=0){
                    throw new RuntimeException("修改用户信息失败");
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
  • x86 2023-1-13
    引用 4
    更新用户信息,需要指定用户的id
返回