wildfirechat / im-server

即时通讯(IM)系统
http://docs.wildfirechat.cn
Other
7.85k stars 1.79k forks source link

调用sdk的updateUserInfo接口修改性别和手机号码不成功 #666

Closed bocaiJs closed 10 months ago

bocaiJs commented 10 months ago

问题描述:修改用户休息,头像字段可以修改成功,但是性别和手机号码修改不成功,值传的, 但是没有更新上去,

 @Override
    public IMResult updateUserInfo(IMUserVo vo) {
        InputOutputUserInfo ui = new InputOutputUserInfo();

            SysUser user = ThreadLocalUtils.getUser();
            ui.setUserId(String.valueOf(user.getId()));
            ui.setPortrait(vo.getPortrait());
            ui.setDisplayName(user.getName());
            ui.setGender(vo.getGender() == null?Integer.valueOf(user.getSex()):vo.getGender());
            ui.setMobile(StringUtils.isEmpty(vo.getMobile())?user.getPhone():vo.getMobile());
//        }
        IMResult<Void> userIdResult = null;

        try {
            userIdResult = UserAdmin.updateUserInfo(ui,0x03);
        } catch (Exception e) {
            logger.error(e.getMessage(),e);
        }

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@53a4508a] 2023-11-18 14:50:17.831 INFO 56292 --- [nio-9885-exec-2] c.w.sdk.utilities.AdminHttpUtils : http request content: {"flag" :3,"userInfo":{"userId":"60","displayName":"测测","portrait":"123456","gender":1,"mobile":"13888888888","type":0,"updateDt":0}} 2023-11-18 14:50:18.054 INFO 56292 --- [nio-9885-exec-2] c.w.sdk.utilities.AdminHttpUtils : http request response content : {"code":0,"msg":"success"}

image
heavyrain2012 commented 10 months ago

参数 updateUserFlag 不对,这个参数是指定更新用户的那些信息的,每一位对应的属性如下:

// 更新用户信息的字段信息,第0bit位为1时更新userInfo中的昵称信息,第1位更新头像,第2位更新性别,第3更新电话,第4位更新email,第5位更新地址,第6位更新公司,第7位更新社交信息,第8位更新extra信息,第9位更新name信息。比如更新用户头像和昵称,flag应该位 0x03

public interface UpdateUserInfoMask {
    int Update_User_DisplayName = 0x01;
    int Update_User_Portrait = 0x02;
    int Update_User_Gender = 0x04;
    int Update_User_Mobile = 0x08;
    int Update_User_Email = 0x10;
    int Update_User_Address = 0x20;
    int Update_User_Company = 0x40;
    int Update_User_Social = 0x80;
    int Update_User_Extra = 0x100;
    int Update_User_Name = 0x200;
}

所以如果要更新头像、昵称、性别和电话号码,这个 updateUserFlag 应该为 Update_User_DisplayName | Update_User_Portrait | Update_User_Gender | Update_User_Mobile 也就是 15。

请参考链接:

https://docs.wildfirechat.cn/server/admin_api/user_api.html#更新用户 https://docs.wildfirechat.cn/server/admin_api/models.html#UpdateUserInfoMask

bocaiJs commented 10 months ago

可以了 谢谢