From 248f9159e185369f5a1a54fddda4d0d9e9166086 Mon Sep 17 00:00:00 2001 From: luying Date: Tue, 28 Mar 2023 20:13:45 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E6=B4=BB=E5=8A=A8):=20?= =?UTF-8?q?=E9=AB=98=E7=BA=A7=E7=AD=BE=E5=88=B0=E8=B4=AD=E4=B9=B0=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/activity/handler/signInHandler.ts | 2 +- game-server/app/services/activity/signInService.ts | 12 +++++++++++- game-server/app/services/orderService.ts | 8 +++++++- shared/db/ActivityMonthlyFund.ts | 1 + 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/game-server/app/servers/activity/handler/signInHandler.ts b/game-server/app/servers/activity/handler/signInHandler.ts index 208e833f5..86c2ac86f 100644 --- a/game-server/app/servers/activity/handler/signInHandler.ts +++ b/game-server/app/servers/activity/handler/signInHandler.ts @@ -84,7 +84,7 @@ export class SignInHandler { return resResult(STATUS.ACTIVITY_SIGNIN_VIP_CONDITION); } } - + if(playerData.price > 0 && !playerData.isVip) return resResult(STATUS.ACTIVITY_SIGNIN_VIP_CONDITION); let signinItemData: SignInItem = playerData.findDayItem(dayIndex); if (!signinItemData) { diff --git a/game-server/app/services/activity/signInService.ts b/game-server/app/services/activity/signInService.ts index 5a0b97549..225640647 100644 --- a/game-server/app/services/activity/signInService.ts +++ b/game-server/app/services/activity/signInService.ts @@ -98,7 +98,7 @@ export async function getPlayerSignInData(activityId: number, serverId: number, export async function makeSignInVIP(roleId: string, roleName: string, sid: string, serverId: number, activityId: number, productID: string) { let activityData: ActivityModelType = await getActivityById(activityId); - if (activityData.type !== ACTIVITY_TYPE.SIGN_IN_VIP) { + if (activityData.type !== ACTIVITY_TYPE.SIGN_IN_VIP && activityData.type !== ACTIVITY_TYPE.COMMON_SIGN_IN) { return STATUS.ACTIVITY_TYPE_ERROR; } let createTime = await getRoleCreateTime(roleId); @@ -127,3 +127,13 @@ export async function canBuyVip(lv: number) { return true; } + +export async function checkSignInCanBuy(roleId: string, serverId: number, activityId: number, productID: string) { + + let playerData = await getPlayerSignInData(activityId, serverId, roleId); + if (!playerData || playerData.isVip) { + return false; + } + + return true +} \ No newline at end of file diff --git a/game-server/app/services/orderService.ts b/game-server/app/services/orderService.ts index 142e2eb36..0cb18997d 100644 --- a/game-server/app/services/orderService.ts +++ b/game-server/app/services/orderService.ts @@ -4,7 +4,7 @@ import { dicRMB } from '../pubUtils/dictionary/DicRMB'; import { makeYuanbaoShopReward } from './activity/yuanbaoService'; import { RoleModel } from '../db/Role'; import { makeMonthlyTicketReward } from './activity/monthlyTicketService'; -import { makeSignInVIP } from './activity/signInService'; +import { checkSignInCanBuy, makeSignInVIP } from './activity/signInService'; import { makeDailyRMBGiftsReward } from './activity/dailyRMBGiftsService'; import { checkPopUpShopCanBuy, makePopUpShopReward } from './activity/popUpShopService'; import { ActivityModel, ActivityModelType } from '../db/Activity'; @@ -42,6 +42,11 @@ export async function checkOrderCanBuy(roleId: string, serverId: number, activit let activityId = activityData.activityId; switch(activityData.type) { + case ACTIVITY_TYPE.SIGN_IN_VIP: + case ACTIVITY_TYPE.COMMON_SIGN_IN: + { + return await checkSignInCanBuy(roleId, serverId, activityId, productID) + } case ACTIVITY_TYPE.POP_UP_SHOP: { return await checkPopUpShopCanBuy(roleId, serverId, activityId, productID, paramStr) @@ -89,6 +94,7 @@ export async function makeOrder(orderInfo: UserOrderModelType, sid: string) { switch (productType) { case ACTIVITY_TYPE.SIGN_IN_VIP: + case ACTIVITY_TYPE.COMMON_SIGN_IN: { rewardResult = await makeSignInVIP(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID) break; diff --git a/shared/db/ActivityMonthlyFund.ts b/shared/db/ActivityMonthlyFund.ts index bc45f4f2d..33fdab05d 100644 --- a/shared/db/ActivityMonthlyFund.ts +++ b/shared/db/ActivityMonthlyFund.ts @@ -21,6 +21,7 @@ class SignRecord { } @index({ roleId: 1, activityId: 1 }) +@index({ roundIndex: 1 }) export default class Activity_Monthly_Fund extends BaseModel { @prop({ required: true })