🐞 fix(活动): 高级签到购买逻辑

This commit is contained in:
luying
2023-03-28 20:13:45 +08:00
parent f5d22d6d9a
commit 248f9159e1
4 changed files with 20 additions and 3 deletions

View File

@@ -84,7 +84,7 @@ export class SignInHandler {
return resResult(STATUS.ACTIVITY_SIGNIN_VIP_CONDITION); 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); let signinItemData: SignInItem = playerData.findDayItem(dayIndex);
if (!signinItemData) { if (!signinItemData) {

View File

@@ -98,7 +98,7 @@ export async function getPlayerSignInData(activityId: number, serverId: number,
export async function makeSignInVIP(roleId: string, roleName: string, sid: string, serverId: number, export async function makeSignInVIP(roleId: string, roleName: string, sid: string, serverId: number,
activityId: number, productID: string) { activityId: number, productID: string) {
let activityData: ActivityModelType = await getActivityById(activityId); 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; return STATUS.ACTIVITY_TYPE_ERROR;
} }
let createTime = await getRoleCreateTime(roleId); let createTime = await getRoleCreateTime(roleId);
@@ -127,3 +127,13 @@ export async function canBuyVip(lv: number) {
return true; 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
}

View File

@@ -4,7 +4,7 @@ import { dicRMB } from '../pubUtils/dictionary/DicRMB';
import { makeYuanbaoShopReward } from './activity/yuanbaoService'; import { makeYuanbaoShopReward } from './activity/yuanbaoService';
import { RoleModel } from '../db/Role'; import { RoleModel } from '../db/Role';
import { makeMonthlyTicketReward } from './activity/monthlyTicketService'; import { makeMonthlyTicketReward } from './activity/monthlyTicketService';
import { makeSignInVIP } from './activity/signInService'; import { checkSignInCanBuy, makeSignInVIP } from './activity/signInService';
import { makeDailyRMBGiftsReward } from './activity/dailyRMBGiftsService'; import { makeDailyRMBGiftsReward } from './activity/dailyRMBGiftsService';
import { checkPopUpShopCanBuy, makePopUpShopReward } from './activity/popUpShopService'; import { checkPopUpShopCanBuy, makePopUpShopReward } from './activity/popUpShopService';
import { ActivityModel, ActivityModelType } from '../db/Activity'; import { ActivityModel, ActivityModelType } from '../db/Activity';
@@ -42,6 +42,11 @@ export async function checkOrderCanBuy(roleId: string, serverId: number, activit
let activityId = activityData.activityId; let activityId = activityData.activityId;
switch(activityData.type) { 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: case ACTIVITY_TYPE.POP_UP_SHOP:
{ {
return await checkPopUpShopCanBuy(roleId, serverId, activityId, productID, paramStr) return await checkPopUpShopCanBuy(roleId, serverId, activityId, productID, paramStr)
@@ -89,6 +94,7 @@ export async function makeOrder(orderInfo: UserOrderModelType, sid: string) {
switch (productType) { switch (productType) {
case ACTIVITY_TYPE.SIGN_IN_VIP: 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) rewardResult = await makeSignInVIP(roleId, roleInfo.roleName, sid, orderInfo.serverId, orderInfo.activityId, orderInfo.productID)
break; break;

View File

@@ -21,6 +21,7 @@ class SignRecord {
} }
@index({ roleId: 1, activityId: 1 }) @index({ roleId: 1, activityId: 1 })
@index({ roundIndex: 1 })
export default class Activity_Monthly_Fund extends BaseModel { export default class Activity_Monthly_Fund extends BaseModel {
@prop({ required: true }) @prop({ required: true })