Merge pull request #551 from chenflxs/main-fix
修复relationship_value类型错误时的异常
This commit is contained in:
@@ -6,6 +6,7 @@ from ...common.database import db
|
||||
from .message_base import UserInfo
|
||||
from .chat_stream import ChatStream
|
||||
import math
|
||||
from bson.decimal128 import Decimal128
|
||||
|
||||
logger = get_module_logger("rel_manager")
|
||||
|
||||
@@ -113,6 +114,19 @@ class RelationshipManager:
|
||||
if relationship:
|
||||
for k, value in kwargs.items():
|
||||
if k == "relationship_value":
|
||||
# 检查relationship.relationship_value是否为double类型
|
||||
if not isinstance(relationship.relationship_value, float):
|
||||
try:
|
||||
# 处理 Decimal128 类型
|
||||
if isinstance(relationship.relationship_value, Decimal128):
|
||||
relationship.relationship_value = float(relationship.relationship_value.to_decimal())
|
||||
else:
|
||||
relationship.relationship_value = float(relationship.relationship_value)
|
||||
logger.info(f"[关系管理] 用户 {user_id}({platform}) 的关系值已转换为double类型: {relationship.relationship_value}")
|
||||
except (ValueError, TypeError):
|
||||
# 如果不能解析/强转则将relationship.relationship_value设置为double类型的0
|
||||
relationship.relationship_value = 0.0
|
||||
logger.warning(f"[关系管理] 用户 {user_id}({platform}) 的关系值无法转换为double类型,已设置为0")
|
||||
relationship.relationship_value += value
|
||||
await self.storage_relationship(relationship)
|
||||
relationship.saved = True
|
||||
|
||||
Reference in New Issue
Block a user