解决业务系统不限制手机号码重复时,根据手机号码获取用户列表的问题

This commit is contained in:
heavyrian2012
2026-04-10 21:53:24 +08:00
parent f1b62ad64a
commit da781180a7
7 changed files with 194 additions and 2 deletions
@@ -196,7 +196,7 @@ public class Main {
userInfo.setUserId("userId1");
//用户名,一般是用户登录帐号,也必须保证唯一性。也就是说所有用户的userId必须不能重复,所有用户的name必须不能重复,但可以同一个用户的userId和name是同一个,一般建议userId使用一个uuid,name是"微信号"且可以修改,
userInfo.setName("user1");
userInfo.setMobile("13900000000");
userInfo.setMobile("13900000001");
userInfo.setDisplayName("user 1");
// 调用SDK创建用户
@@ -277,6 +277,15 @@ public class Main {
System.exit(-1);
}
// 通过手机号获取用户信息,如果一个手机号码属于多个用户,这里都会返回。
IMResult<OutputUserInfoList> resultGetUsers = UserAdmin.getUsersByMobile("13900000001", false);
if (resultGetUsers != null && resultGetUsers.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
System.out.println("Get user success");
} else {
System.out.println("Create user failure");
System.exit(-1);
}
// 通过用户ID获取用户信息
IMResult<InputOutputUserInfo> resultGetUserInfo3 = UserAdmin.getUserByUserId(userInfo.getUserId());
if (resultGetUserInfo3 != null && resultGetUserInfo3.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
@@ -70,6 +70,7 @@ public class UserAdmin {
/**
* 根据手机号获取用户信息(不包含已删除用户)
* @deprecated 用户手机号码不要求唯一,正常应该业务系统保证电话号码唯一。如果业务系统不限制电话号码唯一,可能一个号码有多个用户,此方法只能返回一个,此时建议使用 {@link #getUsersByMobile(String mobile, boolean includeDeleted)}
* @param mobile 手机号
* @return 用户信息
* @throws Exception 请求失败时抛出异常
@@ -79,7 +80,8 @@ public class UserAdmin {
}
/**
* 根据手机号获取用户信息
* 根据手机号获取用户信息,
* @deprecated 用户手机号码不要求唯一,正常应该业务系统保证电话号码唯一。如果业务系统不限制电话号码唯一,可能一个号码有多个用户,此方法只能返回一个,此时建议使用 {@link #getUsersByMobile(String mobile, boolean includeDeleted)}
* @param mobile 手机号
* @param includeDeleted 是否包含已删除的用户
* @return 用户信息
@@ -91,6 +93,19 @@ public class UserAdmin {
return AdminHttpUtils.httpJsonPost(path, getUserInfo, InputOutputUserInfo.class);
}
/**
* 根据电话号码获取用户信息列表
* @param mobile 邮箱地址
* @param includeDeleted 是否包含已删除的用户
* @return 用户信息列表
* @throws Exception 请求失败时抛出异常
*/
public static IMResult<OutputUserInfoList> getUsersByMobile(String mobile, boolean includeDeleted) throws Exception {
String path = APIPath.User_Get_By_Mobile;
InputGetUserInfo getUserInfo = new InputGetUserInfo(null, null, mobile, includeDeleted);
return AdminHttpUtils.httpJsonPost(path, getUserInfo, OutputUserInfoList.class);
}
/**
* 根据邮箱获取用户信息列表
* @param email 邮箱地址