102 lines
4.3 KiB
Python
102 lines
4.3 KiB
Python
from framework.main_framework import Response, main_function
|
|
from framework.requests_dataclass import SampleRequests
|
|
from dataclasses import dataclass
|
|
from flask import Blueprint
|
|
from flask import request
|
|
from framework.mysql_cli import MysqlCliV3
|
|
from framework.response_code import RequestMethods
|
|
import json as JSON
|
|
|
|
|
|
@dataclass
|
|
class OverrideSampleRequestParams(SampleRequests):
|
|
gameId: int
|
|
uid: int
|
|
|
|
def __init__(self):
|
|
if request.method == "GET":
|
|
super(OverrideSampleRequestParams, self).__init__(json_data=request.args, methods=RequestMethods.GET)
|
|
if request.method == "POST":
|
|
super(OverrideSampleRequestParams, self).__init__(json_data=request.get_data(), methods=RequestMethods.POST)
|
|
self.gameId = self.json_data.get("gameId")
|
|
self.uid = self.json_data.get("uid")
|
|
if not self.gameId or not self.uid:
|
|
self.make_exception(self.response_code_enum.RESPONSE_PARAMS_IS_NULL)
|
|
|
|
|
|
class OverrideMysqlCli(MysqlCliV3):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.table_name = "game_kf_configure_table" # default table
|
|
|
|
def search_game_configuration_table(self, game_id: int, uid: int, table: str | None = None) -> dict:
|
|
if table is not None:
|
|
self.table_name = table
|
|
sql = f"""
|
|
SELECT `base` , `uid` , `gameId`, `free`, `id`, `normalIcons`, `multiplier`
|
|
FROM {self.table_name} WHERE 1 = 1 AND `gameId` = {game_id} AND `uid` = {uid}
|
|
"""
|
|
mysql_result: dict = self.execute_sql(sql=sql, fetch_all=False, close_connect=False)
|
|
self.check_mysql_exception(mysql_result)
|
|
return mysql_result
|
|
|
|
def delete_game_configuration_table_with_read_once(self, m_id: int, table: str | None = None) -> None:
|
|
if table is not None:
|
|
self.table_name = table
|
|
sql = f"""
|
|
DELETE FROM {self.table_name} WHERE 1 = 1 AND `id` = {m_id}
|
|
"""
|
|
mysql_result: dict = self.execute_sql(sql=sql, fetch_all=False, close_connect=True, commit_all=True)
|
|
self.check_mysql_exception(mysql_result)
|
|
|
|
|
|
class OverriderMainResponse(Response):
|
|
def __init__(self):
|
|
super(OverriderMainResponse, self).__init__()
|
|
self.mysql_cli: OverrideMysqlCli = OverrideMysqlCli()
|
|
self.set_connect_mysql(mysql_cli=self.mysql_cli)
|
|
|
|
def core(self) -> None:
|
|
params: OverrideSampleRequestParams = OverrideSampleRequestParams()
|
|
mysql_result: dict = self.mysql_cli.search_game_configuration_table(game_id=params.gameId, uid=params.uid)
|
|
result: tuple = mysql_result.get("Result")
|
|
if result is None:
|
|
response_message: str = "code"
|
|
else:
|
|
base_message_from_mysql: str = result[0]
|
|
code_content: int = 1
|
|
content_id: int = result[4]
|
|
not_use_base_field_game_id: list[str] = ['3000503', '3000524']
|
|
|
|
if str(params.gameId) in not_use_base_field_game_id:
|
|
normal_icons_from_mysql: str = result[5]
|
|
normal_icons_content: list[str] = normal_icons_from_mysql.split(",")
|
|
normal_icons_content_to_int: list[int] = [int(i) for i in normal_icons_content]
|
|
multiplier: int = result[6]
|
|
response_message: str = JSON.dumps({
|
|
"code": code_content,
|
|
"data": {"normalIcons": normal_icons_content_to_int, "multiplier": multiplier}
|
|
})
|
|
else:
|
|
base_content: list[str] = base_message_from_mysql.split(",")
|
|
base_content_to_int: list[int] = [int(i) for i in base_content]
|
|
free_content: str = result[3]
|
|
response_message: str = JSON.dumps({
|
|
"code": code_content,
|
|
"data": {"base": base_content_to_int, "free": free_content}
|
|
})
|
|
# self.mysql_cli.delete_game_configuration_table_with_read_once(m_id=content_id)
|
|
self.set_response_data(data=response_message)
|
|
|
|
def before_response(self) -> dict:
|
|
return self.make_response(use_custom_context=True)
|
|
|
|
|
|
search_gm_data_bp = Blueprint("search_gm_data_bp", __name__)
|
|
|
|
|
|
@search_gm_data_bp.route("/test/result", methods=["GET"])
|
|
def main():
|
|
override_main_response = OverriderMainResponse()
|
|
return main_function(override_main_response)
|