🐞 fix(订单): 各种类型的订单在支付之前校验次数

This commit is contained in:
luying
2023-04-06 13:32:40 +08:00
parent f7ccc14f74
commit 08d5ebedeb
18 changed files with 224 additions and 29 deletions

View File

@@ -124,25 +124,19 @@ export async function makeSelfServerShop(roleId: string, roleName: string, sid:
let activityData: ActivityModelType = await getActivityById(activityId);
if (!activityData) {
return {
code: STATUS.ACTIVITY_MISSING,
}
return STATUS.ACTIVITY_MISSING
}
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
let playerData = new SelfServiceShopData(activityData, createTime, serverTime);
let item: SelfServiceShopItem = playerData.getItemByProductID(productID);
if (!item) {
return {
code: STATUS.ACTIVITY_DATA_ERROR,
}
return STATUS.ACTIVITY_DATA_ERROR
}
if (item.countMax > 0) {//限制购买次数
let playerRecords: ActivitySelfServiceShopModelType[] = await ActivitySelfServiceShopModel.findDataByIndex(serverId, activityId, roleId, playerData.roundIndex, item.index);
if (playerRecords.length >= item.countMax) {
return {
code: STATUS.ACTIVITY_MAX_COUNT,
}
return STATUS.ACTIVITY_MAX_COUNT
}
}
let result = await addSelfServiceShopGiftReward(roleId, roleName, sid, serverId, activityId, playerData.roundIndex, item.index, item);
@@ -152,3 +146,18 @@ export async function makeSelfServerShop(roleId: string, roleName: string, sid:
data: Object.assign(result, { item })
}
}
export async function checkSelfServiceShop(roleId: string, serverId: number, activityData: ActivityModelType, productID: string) {
if(!activityData) return false;
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
let playerData = new SelfServiceShopData(activityData, createTime, serverTime);
let item: SelfServiceShopItem = playerData.getItemByProductID(productID);
if (!item) return false
if (item.countMax > 0) {//限制购买次数
let playerRecords = await ActivitySelfServiceShopModel.findDataByIndex(serverId, activityData.activityId, roleId, playerData.roundIndex, item.index);
if (playerRecords.length >= item.countMax) return false;
}
return true;
}