🐞 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);
}
}
if(playerData.price > 0 && !playerData.isVip) return resResult(STATUS.ACTIVITY_SIGNIN_VIP_CONDITION);
let signinItemData: SignInItem = playerData.findDayItem(dayIndex);
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,
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
}

View File

@@ -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;

View File

@@ -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 })