mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-09-29 00:32:06 +08:00
first_commit .gitignore
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
|
||||
from services.db_context import db
|
||||
|
||||
|
||||
class GroupInfo(db.Model):
|
||||
__tablename__ = 'group_info'
|
||||
|
||||
group_id = db.Column(db.BigInteger(), nullable=False, primary_key=True)
|
||||
group_name = db.Column(db.Unicode(), nullable=False, default="")
|
||||
max_member_count = db.Column(db.Integer(), nullable=False, default=0)
|
||||
member_count = db.Column(db.Integer(), nullable=False, default=0)
|
||||
|
||||
_idx1 = db.Index('group_info_idx1', 'group_id', unique=True)
|
||||
|
||||
@classmethod
|
||||
async def get_group_info(cls, group_id: int) -> 'GroupInfo':
|
||||
query = cls.query.where(
|
||||
cls.group_id == group_id
|
||||
)
|
||||
return await query.gino.first()
|
||||
|
||||
@classmethod
|
||||
async def add_group_info(cls, group_id: int, group_name: str, max_member_count: int, member_count: int) -> bool:
|
||||
try:
|
||||
group = await cls.query.where(
|
||||
cls.group_id == group_id
|
||||
).with_for_update().gino.first()
|
||||
if group:
|
||||
await cls.update(
|
||||
group_id=group_id,
|
||||
group_name=group_name,
|
||||
max_member_count=max_member_count,
|
||||
member_count=member_count,
|
||||
).apply()
|
||||
else:
|
||||
await cls.create(
|
||||
group_id=group_id,
|
||||
group_name=group_name,
|
||||
max_member_count=max_member_count,
|
||||
member_count=member_count,
|
||||
)
|
||||
return True
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
@classmethod
|
||||
async def delete_group_info(cls, group_id: int) -> bool:
|
||||
try:
|
||||
await cls.delete.where(
|
||||
cls.group_id == group_id
|
||||
).gino.status()
|
||||
return True
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
|
||||
Reference in New Issue
Block a user