mirror of https://github.com/Mai-with-u/MaiBot.git
commit
d03eef21de
|
|
@ -6,6 +6,7 @@ from ...common.database import db
|
||||||
from .message_base import UserInfo
|
from .message_base import UserInfo
|
||||||
from .chat_stream import ChatStream
|
from .chat_stream import ChatStream
|
||||||
import math
|
import math
|
||||||
|
from bson.decimal128 import Decimal128
|
||||||
|
|
||||||
logger = get_module_logger("rel_manager")
|
logger = get_module_logger("rel_manager")
|
||||||
|
|
||||||
|
|
@ -113,6 +114,19 @@ class RelationshipManager:
|
||||||
if relationship:
|
if relationship:
|
||||||
for k, value in kwargs.items():
|
for k, value in kwargs.items():
|
||||||
if k == "relationship_value":
|
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
|
relationship.relationship_value += value
|
||||||
await self.storage_relationship(relationship)
|
await self.storage_relationship(relationship)
|
||||||
relationship.saved = True
|
relationship.saved = True
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue