fix 联系人搜索bug

This commit is contained in:
xaoyaoo 2024-09-03 15:16:30 +08:00
parent f698e4d348
commit 0314cf4107
3 changed files with 13 additions and 4 deletions

View File

@ -90,7 +90,7 @@ def user_labels_dict():
@rs_api.post('/user_list')
@error9999
def user_list(word: str = "", wxids: List[str] = None, labels: List[str] = None):
def user_list(word: str = Body("", embed=True), wxids: List[str] = Body(None), labels: List[str] = Body(None)):
"""
获取联系人列表可用于搜索
:return:
@ -102,7 +102,7 @@ def user_list(word: str = "", wxids: List[str] = None, labels: List[str] = None)
if not my_wxid: return ReJson(1001, body="my_wxid is required")
db_config = gc.get_conf(my_wxid, "db_config")
db = DBHandler(db_config, my_wxid=my_wxid)
users = db.get_user(word, wxids, labels)
users = db.get_user(word=word, wxids=wxids, labels=labels)
return ReJson(0, users)

View File

@ -95,6 +95,8 @@ class MicroHandler(DatabaseBase):
"WHERE S.strUsrName!='@publicUser' "
"ORDER BY S.nTime DESC;"
)
db_loger.info(f"get_session_list sql: {sql}")
ret = self.execute(sql)
if not ret:
return sessions
@ -139,6 +141,8 @@ class MicroHandler(DatabaseBase):
"ON A.Username = SubQuery.Username AND LastReadedCreateTime = SubQuery.MaxLastReadedCreateTime "
"ORDER BY A.LastReadedCreateTime DESC;"
)
db_loger.info(f"get_recent_chat_wxid sql: {sql}")
result = self.execute(sql)
if not result:
return []
@ -194,6 +198,7 @@ class MicroHandler(DatabaseBase):
sql_label = " OR ".join(sql_label)
sql = sql.replace(";", f"AND ({sql_label}) ;")
db_loger.info(f"get_user_list word: {word} sql: {sql}")
result = self.execute(sql)
if not result:
return users
@ -214,7 +219,10 @@ class MicroHandler(DatabaseBase):
"wxid": UserName, "nickname": NickName, "remark": Remark, "account": Alias,
"describe": describe, "headImgUrl": bigHeadImgUrl if bigHeadImgUrl else "",
"ExtraBuf": ExtraBuf, "LabelIDList": tuple(LabelIDList),
"extra": self.get_room_list(roomwxids=[UserName]).get(UserName, None)}
"extra": None}
extras = self.get_room_list(roomwxids=filter(lambda x: "@" in x, users.keys()))
for UserName in users:
users[UserName]["extra"] = extras.get(UserName, None)
return users
@db_error
@ -244,6 +252,7 @@ class MicroHandler(DatabaseBase):
if roomwxids:
sql = sql.replace(";", f"AND A.ChatRoomName IN ('" + "','".join(roomwxids) + "') ;")
db_loger.info(f"get_room_list sql: {sql}")
result = self.execute(sql)
if not result:
return rooms

View File

@ -114,7 +114,7 @@ class DatabaseBase(DatabaseSingletonBase):
if isinstance(required_tables, str):
required_tables = [required_tables]
rbool = all(table.lower() in self.existed_tables for table in (required_tables or []))
if not rbool: db_loger.warning(f"{required_tables=}\n{self.existed_tables=}\n{rbool=}\n")
if not rbool: db_loger.warning(f"{required_tables=}\n{self.existed_tables=}\n{rbool=}")
return rbool
def execute(self, sql, params=None):