855 协议版本-调整完毕内容
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"""
|
||||
积分系统数据库操作类
|
||||
"""
|
||||
import logging
|
||||
from loguru import logger
|
||||
from datetime import datetime, timedelta
|
||||
from enum import Enum
|
||||
from typing import Dict, List, Optional, Tuple, Any
|
||||
@@ -27,7 +27,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
def __init__(self, db_manager=None):
|
||||
"""初始化积分数据库操作类"""
|
||||
super().__init__(db_manager or DBConnectionManager.get_instance())
|
||||
self.logger = logging.getLogger("PointsDBOperator")
|
||||
self.LOG = logger
|
||||
|
||||
# 确保数据库表存在,后续不需要处理了。
|
||||
# self._ensure_tables_exist()
|
||||
@@ -93,9 +93,9 @@ class PointsDBOperator(BaseDBOperator):
|
||||
) ENGINE=InnoDB CHARACTER SET utf8mb4;
|
||||
""")
|
||||
|
||||
self.logger.info("积分系统数据库表检查/创建完成")
|
||||
self.LOG.info("积分系统数据库表检查/创建完成")
|
||||
except Exception as e:
|
||||
self.logger.error(f"创建积分系统数据库表失败: {e}")
|
||||
self.LOG.error(f"创建积分系统数据库表失败: {e}")
|
||||
raise
|
||||
|
||||
def get_user_points(self, user_id: str, group_id: str) -> Dict:
|
||||
@@ -122,7 +122,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
# 如果新表没有数据,尝试从旧表迁移数据
|
||||
return self._migrate_user_points(user_id, group_id)
|
||||
except Exception as e:
|
||||
self.logger.error(f"获取用户积分失败: {e}")
|
||||
self.LOG.error(f"获取用户积分失败: {e}")
|
||||
return {
|
||||
"user_id": user_id,
|
||||
"group_id": group_id,
|
||||
@@ -188,7 +188,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
WHERE user_id = %s AND group_id = %s
|
||||
""", (user_id, group_id), fetch_one=True) or result
|
||||
except Exception as e:
|
||||
self.logger.error(f"迁移用户积分失败: {e}")
|
||||
self.LOG.error(f"迁移用户积分失败: {e}")
|
||||
return result
|
||||
|
||||
def add_points(self, user_id: str, group_id: str, points: int,
|
||||
@@ -261,7 +261,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
|
||||
return True, updated_points
|
||||
except Exception as e:
|
||||
self.logger.error(f"增加用户积分失败: {e}")
|
||||
self.LOG.error(f"增加用户积分失败: {e}")
|
||||
return False, {"error": str(e)}
|
||||
|
||||
def deduct_points(self, user_id: str, group_id: str, points: int,
|
||||
@@ -318,7 +318,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
|
||||
return True, updated_points
|
||||
except Exception as e:
|
||||
self.logger.error(f"扣除用户积分失败: {e}")
|
||||
self.LOG.error(f"扣除用户积分失败: {e}")
|
||||
return False, {"error": str(e)}
|
||||
|
||||
def transfer_points(self, from_user_id: str, to_user_id: str, group_id: str,
|
||||
@@ -368,7 +368,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
"to_user": to_result
|
||||
}
|
||||
except Exception as e:
|
||||
self.logger.error(f"转移用户积分失败: {e}")
|
||||
self.LOG.error(f"转移用户积分失败: {e}")
|
||||
return False, {"error": str(e)}
|
||||
|
||||
def get_user_transactions(self, user_id: str, group_id: str, limit: int = 10) -> List[Dict]:
|
||||
@@ -391,7 +391,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
LIMIT %s
|
||||
""", (user_id, group_id, limit))
|
||||
except Exception as e:
|
||||
self.logger.error(f"获取用户交易记录失败: {e}")
|
||||
self.LOG.error(f"获取用户交易记录失败: {e}")
|
||||
return []
|
||||
|
||||
def get_points_ranking(self, group_id: str, limit: int = 10) -> List[Dict]:
|
||||
@@ -414,7 +414,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
LIMIT %s
|
||||
""", (group_id, limit))
|
||||
except Exception as e:
|
||||
self.logger.error(f"获取积分排行榜失败: {e}")
|
||||
self.LOG.error(f"获取积分排行榜失败: {e}")
|
||||
return []
|
||||
|
||||
def get_plugin_config(self, plugin_name: str) -> Optional[Dict]:
|
||||
@@ -433,7 +433,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
WHERE plugin_name = %s
|
||||
""", (plugin_name,), fetch_one=True)
|
||||
except Exception as e:
|
||||
self.logger.error(f"获取插件积分配置失败: {e}")
|
||||
self.LOG.error(f"获取插件积分配置失败: {e}")
|
||||
return None
|
||||
|
||||
def set_plugin_config(self, plugin_name: str, points_required: int,
|
||||
@@ -462,7 +462,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
""", (plugin_name, points_required, is_enabled, description))
|
||||
return True
|
||||
except Exception as e:
|
||||
self.logger.error(f"设置插件积分配置失败: {e}")
|
||||
self.LOG.error(f"设置插件积分配置失败: {e}")
|
||||
return False
|
||||
|
||||
def get_all_plugin_configs(self) -> List[Dict]:
|
||||
@@ -475,7 +475,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
try:
|
||||
return self.execute_query("SELECT * FROM t_plugin_point_config")
|
||||
except Exception as e:
|
||||
self.logger.error(f"获取所有插件积分配置失败: {e}")
|
||||
self.LOG.error(f"获取所有插件积分配置失败: {e}")
|
||||
return []
|
||||
|
||||
def check_plugin_points(self, user_id: str, group_id: str, plugin_name: str) -> Tuple[bool, Dict]:
|
||||
@@ -515,7 +515,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
"required_points": plugin_config["points_required"]
|
||||
}
|
||||
except Exception as e:
|
||||
self.logger.error(f"检查插件积分失败: {e}")
|
||||
self.LOG.error(f"检查插件积分失败: {e}")
|
||||
return True, {"error": str(e)} # 出错时默认允许使用
|
||||
|
||||
def use_plugin(self, user_id: str, group_id: str, plugin_name: str) -> Tuple[bool, Dict]:
|
||||
@@ -547,7 +547,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
PointSource.PLUGIN, f"使用插件: {plugin_name}"
|
||||
)
|
||||
except Exception as e:
|
||||
self.logger.error(f"使用插件扣除积分失败: {e}")
|
||||
self.LOG.error(f"使用插件扣除积分失败: {e}")
|
||||
return False, {"error": str(e)}
|
||||
|
||||
def get_user_points_stats(self, group_id: str) -> Dict[str, Any]:
|
||||
@@ -591,7 +591,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
|
||||
return stats
|
||||
except Exception as e:
|
||||
self.logger.error(f"获取群组积分统计信息失败: {e}")
|
||||
self.LOG.error(f"获取群组积分统计信息失败: {e}")
|
||||
return stats
|
||||
|
||||
def imprison_user(self, user_id: str, group_id: str, hours: int = 24, reason: str = None) -> bool:
|
||||
@@ -612,7 +612,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
""", (user_id, group_id, end_time, reason, end_time, reason))
|
||||
return True
|
||||
except Exception as e:
|
||||
self.logger.error(f"关押用户失败: {e}")
|
||||
self.LOG.error(f"关押用户失败: {e}")
|
||||
return False
|
||||
|
||||
def check_prison_status(self, user_id: str, group_id: str) -> Optional[Dict]:
|
||||
@@ -630,7 +630,7 @@ class PointsDBOperator(BaseDBOperator):
|
||||
""", (user_id, group_id))
|
||||
return records[0] if records else None
|
||||
except Exception as e:
|
||||
self.logger.error(f"检查用户在押状态失败: {e}")
|
||||
self.LOG.error(f"检查用户在押状态失败: {e}")
|
||||
return None
|
||||
|
||||
def bailout_user(self, prisoner_id: str, bailout_user_id: str, group_id: str) -> Tuple[bool, str]:
|
||||
@@ -660,5 +660,5 @@ class PointsDBOperator(BaseDBOperator):
|
||||
|
||||
return True, "保释成功"
|
||||
except Exception as e:
|
||||
self.logger.error(f"保释用户失败: {e}")
|
||||
self.LOG.error(f"保释用户失败: {e}")
|
||||
return False, f"保释失败: {str(e)}"
|
||||
Reference in New Issue
Block a user