🐞 fix(活动): 高级签到购买逻辑
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 })
|
||||||
|
|||||||
Reference in New Issue
Block a user