forked from Hay1tsme/artemis
chuni: add missing net battle funcs
This commit is contained in:
@ -0,0 +1,27 @@
|
|||||||
|
"""chuni_add_net_battle_uk
|
||||||
|
|
||||||
|
Revision ID: 1e150d16ab6b
|
||||||
|
Revises: b23f985100ba
|
||||||
|
Create Date: 2024-06-21 22:57:18.418488
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy.dialects import mysql
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '1e150d16ab6b'
|
||||||
|
down_revision = 'b23f985100ba'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.create_unique_constraint(None, 'chuni_profile_net_battle', ['user'])
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
op.drop_constraint(None, 'chuni_profile_net_battle', type_='unique')
|
||||||
|
# ### end Alembic commands ###
|
@ -261,7 +261,7 @@ cmission_progress = Table(
|
|||||||
"chuni_item_cmission_progress",
|
"chuni_item_cmission_progress",
|
||||||
metadata,
|
metadata,
|
||||||
Column("id", Integer, primary_key=True, nullable=False),
|
Column("id", Integer, primary_key=True, nullable=False),
|
||||||
Column("user", ForeignKey("aime_user.id", ondelete="cascade"), nullable=False),
|
Column("user", ForeignKey("aime_user.id", ondelete="cascade", onupdate="cascade"), nullable=False),
|
||||||
Column("missionId", Integer, nullable=False),
|
Column("missionId", Integer, nullable=False),
|
||||||
Column("order", Integer),
|
Column("order", Integer),
|
||||||
Column("stage", Integer),
|
Column("stage", Integer),
|
||||||
|
@ -416,7 +416,7 @@ net_battle = Table(
|
|||||||
"chuni_profile_net_battle",
|
"chuni_profile_net_battle",
|
||||||
metadata,
|
metadata,
|
||||||
Column("id", Integer, primary_key=True, nullable=False),
|
Column("id", Integer, primary_key=True, nullable=False),
|
||||||
Column("user", ForeignKey("aime_user.id", ondelete="cascade", onupdate="cascade")),
|
Column("user", Integer, ForeignKey("aime_user.id", ondelete="cascade", onupdate="cascade"), nullable=False, unique=True),
|
||||||
Column("isRankUpChallengeFailed", Boolean),
|
Column("isRankUpChallengeFailed", Boolean),
|
||||||
Column("highestBattleRankId", Integer),
|
Column("highestBattleRankId", Integer),
|
||||||
Column("battleIconId", Integer),
|
Column("battleIconId", Integer),
|
||||||
@ -771,20 +771,33 @@ class ChuniProfileData(BaseData):
|
|||||||
|
|
||||||
return result.lastrowid
|
return result.lastrowid
|
||||||
|
|
||||||
async def get_net_battle(self, aime_id: int) -> Optional[Row]:
|
async def put_net_battle(self, user_id: int, net_battle_data: Dict) -> Optional[int]:
|
||||||
sql = select(net_battle).where(net_battle.c.user == aime_id)
|
sql = insert(net_battle).values(
|
||||||
result = await self.execute(sql)
|
user=user_id,
|
||||||
|
isRankUpChallengeFailed=net_battle_data['isRankUpChallengeFailed'],
|
||||||
|
highestBattleRankId=net_battle_data['highestBattleRankId'],
|
||||||
|
battleIconId=net_battle_data['battleIconId'],
|
||||||
|
battleIconNum=net_battle_data['battleIconNum'],
|
||||||
|
avatarEffectPoint=net_battle_data['avatarEffectPoint'],
|
||||||
|
)
|
||||||
|
|
||||||
if result is None:
|
conflict = sql.on_duplicate_key_update(
|
||||||
return None
|
isRankUpChallengeFailed=net_battle_data['isRankUpChallengeFailed'],
|
||||||
return result.fetchone()
|
highestBattleRankId=net_battle_data['highestBattleRankId'],
|
||||||
|
battleIconId=net_battle_data['battleIconId'],
|
||||||
async def put_net_battle(self, aime_id: int, net_battle_data: Dict) -> Optional[int]:
|
battleIconNum=net_battle_data['battleIconNum'],
|
||||||
net_battle_data["user"] = aime_id
|
avatarEffectPoint=net_battle_data['avatarEffectPoint'],
|
||||||
|
)
|
||||||
sql = insert(net_battle).values(**net_battle_data)
|
|
||||||
conflict = sql.on_duplicate_key_update(**net_battle_data)
|
|
||||||
|
|
||||||
result = await self.execute(conflict)
|
result = await self.execute(conflict)
|
||||||
if result is None:
|
|
||||||
return None
|
if result:
|
||||||
|
return result.inserted_primary_key['id']
|
||||||
|
|
||||||
|
self.logger.error(f"Failed to put net battle data for user {user_id}")
|
||||||
|
|
||||||
|
async def get_net_battle(self, user_id: int, net_battle_data: Dict) -> Optional[Row]:
|
||||||
|
result = await self.execute(net_battle.select(net_battle.c.user == user_id))
|
||||||
|
|
||||||
|
if result:
|
||||||
|
return result.fetchone()
|
||||||
|
Reference in New Issue
Block a user