855 协议版本-调整完毕内容

This commit is contained in:
liuwei
2025-04-30 13:22:33 +08:00
parent 869bce8a18
commit 454d084715
88 changed files with 1565 additions and 7816 deletions

View File

@@ -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)}"