上传文件至 /

This commit is contained in:
2025-10-13 18:15:05 +08:00
parent 2a198c3da6
commit c4e2150acf
18 changed files with 1178 additions and 1 deletions

73
ChargeTicket.py Normal file
View File

@@ -0,0 +1,73 @@
import rapidjson as json
import pytz
from datetime import datetime, timedelta
from Config import *
from API_TitleServer import apiSDGB
from HelperGetUserThing import implGetUser_
from loguru import logger
from HelperLogInOut import apiLogin, apiLogout, generateTimestamp
from HelperFullPlay import implFullPlayAction, generateMusicData
from HelperGetUserThing import implGetUser_
def implWipeTickets(userId: int, currentLoginTimestamp:int, currentLoginResult) -> str:
currentUserCharge = implGetUser_("Charge", userId)
currentUserChargeList = currentUserCharge['userChargeList']
for charge in currentUserChargeList:
charge['stock'] = 0
musicData = generateMusicData()
userAllPatches = {
"upsertUserAll": {
"userChargeList": currentUserChargeList,
"userMusicDetailList": [musicData],
"isNewMusicDetailList": "1"
}}
result = implFullPlayAction(userId, currentLoginTimestamp, currentLoginResult, musicData, userAllPatches)
return result
def apiQueryTicket(userId:int) -> str:
data = json.dumps({
"userId": userId
})
userdata_result = apiSDGB(data, "GetUserChargeApi", userId)
return userdata_result
def apiBuyTicket(userId:int, ticketType:int, price:int, playerRating:int, playCount:int) -> str:
nowTime = datetime.now(pytz.timezone('Asia/Shanghai'))
data = json.dumps({
"userId": userId,
"userChargelog": {
"chargeId": ticketType,
"price": price,
"purchaseDate": nowTime.strftime("%Y-%m-%d %H:%M:%S.0"),
"playCount": playCount,
"playerRating": playerRating,
"placeId": placeId,
"regionId": regionId,
"clientId": clientId
},
"userCharge": {
"chargeId": ticketType,
"stock": 1,
"purchaseDate": nowTime.strftime("%Y-%m-%d %H:%M:%S.0"),
"validDate": (nowTime + timedelta(days=90)).replace(hour=4, minute=0, second=0).strftime("%Y-%m-%d %H:%M:%S")
}
})
return apiSDGB(data, "UpsertUserChargelogApi", userId)
def implBuyTicket(userId:int, ticketType:int):
currentUserData = implGetUser_("Data", userId)
if currentUserData:
playerRating = currentUserData['userData']['playerRating']
playCount = currentUserData['userData'].get('playCount', 0)
else:
return False
getTicketResponseStr = apiBuyTicket(userId, ticketType, ticketType-1, playerRating, playCount)
return getTicketResponseStr