update 0.0.6.0

This commit is contained in:
HibiKier
2021-11-04 16:11:50 +08:00
parent 21c1950898
commit 19d650c35d
217 changed files with 8213 additions and 5697 deletions
+38 -11
View File
@@ -1,5 +1,6 @@
from services.db_context import db
from typing import List
from services.log import logger
from typing import List, Optional
class GroupInfo(db.Model):
@@ -9,6 +10,7 @@ class GroupInfo(db.Model):
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)
group_flag = db.Column(db.Integer(), nullable=False, default=0)
_idx1 = db.Index("group_info_idx1", "group_id", unique=True)
@@ -25,7 +27,12 @@ class GroupInfo(db.Model):
@classmethod
async def add_group_info(
cls, group_id: int, group_name: str, max_member_count: int, member_count: int
cls,
group_id: int,
group_name: str,
max_member_count: int,
member_count: int,
group_flag: Optional[int] = None,
) -> bool:
"""
说明:
@@ -35,6 +42,7 @@ class GroupInfo(db.Model):
:param group_name: 群名称
:param max_member_count: 群员最大数量
:param member_count: 群员数量
:param group_flag: 群认证,0为未认证,1为认证
"""
try:
group = (
@@ -43,36 +51,35 @@ class GroupInfo(db.Model):
.gino.first()
)
if group:
await cls.update(
group_id=group_id,
await group.update(
group_name=group_name,
max_member_count=max_member_count,
member_count=member_count,
).apply()
if group_flag is not None:
await group.update(group_flag=group_flag).apply()
else:
await cls.create(
group_id=group_id,
group_name=group_name,
max_member_count=max_member_count,
member_count=member_count,
group_flag=group_flag,
)
return True
except Exception:
except Exception as e:
logger.info(f"GroupInfo 调用 add_group_info 发生错误 {type(e)}:{e}")
return False
@classmethod
async def delete_group_info(cls, group_id: int) -> bool:
async def delete_group_info(cls, group_id: int):
"""
说明:
删除群信息
参数:
:param group_id: 群号
"""
try:
await cls.delete.where(cls.group_id == group_id).gino.status()
return True
except Exception:
return False
await cls.delete.where(cls.group_id == group_id).gino.status()
@classmethod
async def get_all_group(cls) -> List["GroupInfo"]:
@@ -82,3 +89,23 @@ class GroupInfo(db.Model):
"""
query = await cls.query.gino.all()
return query
@classmethod
async def set_group_flag(cls, group_id: int, group_flag: int) -> bool:
"""
设置群认证
:param group_id: 群号
:param group_flag: 群认证,0为未认证,1为认证
"""
group = (
await cls.query.where(cls.group_id == group_id)
.with_for_update()
.gino.first()
)
if group:
if group.group_flag != group_flag:
await group.update(
group_flag=group_flag,
).apply()
return True
return False