优化用户id搜索逻辑

This commit is contained in:
heavyrian2012
2023-11-30 19:44:06 +08:00
parent b774e0d423
commit 93b6e70804
3 changed files with 15 additions and 6 deletions
@@ -188,7 +188,7 @@ public class DatabaseStore {
sql += " where `_mobile` = ? ";
} else if(searchType == SearchUserType_UserId) {
sql += " where `_uid` = ? ";
} else if(searchType == SearchUserType_Name_Mobile) {
} else if(searchType == SearchUserType_Name_Mobile || searchType == SearchUserType_Name_Mobile_DisplayName) {
sqlParaCount = 2;
sql += " where (`_name` = ? or `_mobile` = ?) ";
} else {
@@ -200,7 +200,7 @@ public class DatabaseStore {
if(searchType == SearchUserType_Name || searchType == SearchUserType_Mobile || searchType == SearchUserType_UserId) {
sql += " limit 1";
} else if(searchType == SearchUserType_Name_Mobile) {
} else if(searchType == SearchUserType_Name_Mobile || searchType == SearchUserType_Name_Mobile_DisplayName) {
sql += " limit 2";
} else {
sql += " limit 3";
@@ -291,7 +291,7 @@ public class DatabaseStore {
if (searchType == SearchUserType_Name) {
filter.add(user);
continue;
} else if(searchType == SearchUserType_Name_Mobile) {
} else if(searchType == SearchUserType_Name_Mobile || searchType == SearchUserType_Name_Mobile_DisplayName) {
if(keyword.equals(user.getName())) {
if(!keyword.equals(user.getMobile())) {
filter.add(user);
@@ -331,7 +331,7 @@ public class DatabaseStore {
if (searchType == SearchUserType_Mobile) {
filter.add(user);
continue;
} else if(searchType == SearchUserType_Name_Mobile) {
} else if(searchType == SearchUserType_Name_Mobile || searchType == SearchUserType_Name_Mobile_DisplayName) {
if(keyword.equals(user.getMobile())) {
if(!keyword.equals(user.getName())) {
filter.add(user);
@@ -517,7 +517,7 @@ public class DatabaseStore {
out.addAll(nameOrIdMatched);
}
if(searchType == SearchUserType_General) {
if(searchType == SearchUserType_General || searchType == SearchUserType_Name_Mobile_DisplayName) {
List<WFCMessage.User> general = searchUserByDisplayName(keyword, page, nameOrIdMatched);
general.removeAll(nameOrIdMatched);
out.addAll(general);
@@ -2877,10 +2877,18 @@ public class MemoryMessagesStore implements IMessagesStore {
searchType = ProtoConstants.SearchUserType.SearchUserType_Name_Mobile_UserId;
}
if(mDisableUserIdSearch && (searchType == ProtoConstants.SearchUserType.SearchUserType_General || searchType == ProtoConstants.SearchUserType.SearchUserType_Name_Mobile_UserId)) {
if(mDisableUserIdSearch && searchType == ProtoConstants.SearchUserType.SearchUserType_Name_Mobile_UserId) {
searchType = ProtoConstants.SearchUserType.SearchUserType_Name_Mobile;
}
if(mDisableUserIdSearch && searchType == ProtoConstants.SearchUserType.SearchUserType_General) {
searchType = ProtoConstants.SearchUserType.SearchUserType_Name_Mobile_DisplayName;
}
if(mDisableUserIdSearch && searchType == ProtoConstants.SearchUserType.SearchUserType_UserId) {
return new ArrayList<>();
}
return databaseStore.searchUserFromDB(keyword, searchType, page);
}
@@ -220,6 +220,7 @@ public class ProtoConstants {
int SearchUserType_Mobile = 3;
int SearchUserType_UserId = 4;
int SearchUserType_Name_Mobile_UserId = 5;
int SearchUserType_Name_Mobile_DisplayName = 100;
}
public interface DisableSearchMask {