活动:修改30天任务的数据结构

This commit is contained in:
qiaoxin
2021-06-01 18:35:10 +08:00
parent c49e861209
commit 8195913389
11 changed files with 78 additions and 57 deletions
@@ -15,7 +15,7 @@ export class DailyRMBGiftsHandler {
constructor(private app: Application) {
}
/************************每日特惠礼包RMB购买4挡,一次性支付购买7天,每天只能领取当天的礼包奖励****************************/
/************************每日特惠礼包RMB购买4挡,有可能免费,一次性支付购买7天,每天只能领取当天的礼包奖励****************************/
/**
* @description 获取每日特惠礼包活动数据
@@ -1,7 +1,7 @@
import { Application, BackendSession } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { STATUS, ACTIVITY_TYPE } from '../../../consts';
import { getPlayerThirtyDaysData, playerThirtyDaysActivityDays, thirtyDaysActivity } from '../../../services/thirtyDaysService';
import { getPlayerThirtyDaysData, playerThirtyDaysActivityDays } from '../../../services/thirtyDaysService';
import { ThirtyDaysData, ThirtyDaysItem, ThirtyDaysPointItem } from '../../../domain/activityField/thirtyDaysField';
import { ActivityThirtyDaysModel } from '../../../db/ActivityThirtyDays';
import { ActivityThirtyDaysPointRewardModel } from '../../../db/ActivityThirtyDaysPointReward';
@@ -42,12 +42,12 @@ export class ThirtyDaysHandler {
/**
* @description 获取30天完成任务的奖励
* @param {{ activityId: number, pageIndex: number, cellIndex: number}} msg
* @param {{ activityId: number, pageIndex: number, cellIndex: number,tab: number}} msg
* @param {BackendSession} session
* @memberof ThirtyDaysHandler
*/
async getThirtyDaysCellReward(msg: { activityId: number, pageIndex: number, cellIndex: number }, session: BackendSession) {
const { activityId, pageIndex, cellIndex } = msg;
async getThirtyDaysCellReward(msg: { activityId: number, pageIndex: number, cellIndex: number, tab: number }, session: BackendSession) {
const { activityId, pageIndex, cellIndex, tab } = msg;
const roleId = session.get('roleId');
const serverId = session.get('serverId');
const sid = session.get('sid');
@@ -71,7 +71,7 @@ export class ThirtyDaysHandler {
let playerData = await getPlayerThirtyDaysData(activityId, serverId, roleId)
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
let thirtyDaysItemData: ThirtyDaysItem = playerData.findThirtyDaysItem(pageIndex, cellIndex);
let thirtyDaysItemData: ThirtyDaysItem = playerData.findThirtyDaysItem(pageIndex, cellIndex, tab);
if (!thirtyDaysItemData) {
return resResult(STATUS.ACTIVITY_DATA_ERROR);
}
@@ -93,11 +93,10 @@ export class ThirtyDaysHandler {
return resResult(STATUS.ACTIVITY_TIME_ERROR);
}
await ActivityThirtyDaysModel.addRecord(serverId, activityId, roleId, pageIndex, cellIndex);
await ActivityThirtyDaysModel.addRecord(serverId, activityId, roleId, pageIndex, cellIndex, tab);
let rewardParamArr: Array<RewardParam> = stringToRewardParam(thirtyDaysItemData.reward);
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
thirtyDaysItemData.isReceive = true;
return resResult(STATUS.SUCCESS, Object.assign(result, {
param: { activityId, pageIndex, cellIndex },
@@ -1,10 +1,8 @@
import { ACTIVITY_TYPE, REFRESH_TIME, STATUS, TASK_TYPE } from '../consts';
import { ACTIVITY_TYPE, STATUS } from '../consts';
import { ActivityModel, ActivityModelType } from '../db/Activity';
import { ActivityDailyRMBGiftsModel, ActivityDailyRMBGiftsModelType } from '../db/ActivityDailyRMBGifts';
import { DailyRMBGiftsData, DailyRMBGiftsItem } from '../domain/activityField/dailyRMBGiftsField';
import { RoleModel } from '../db/Role';
import { DailyRMBGiftsData } from '../domain/activityField/dailyRMBGiftsField';
import moment = require('moment');
import { UserOrderModel, UserOrderModelType } from '../db/UserOrder';
import { RewardParam } from '../domain/activityField/rewardField';
import { addReward, stringToRewardParam } from './giftPackageService';
import { ServerlistModel } from '../db/Serverlist';
@@ -42,15 +40,14 @@ export async function getPlayerDailyGiftsData(activityId: number, serverId: numb
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId);
let playerData = new DailyRMBGiftsData(activityData);
let productID = playerData.productID;
let playerOrders: UserOrderModelType[] = await UserOrderModel.findPlayerOrder(productID, roleId, activityId, 1);
let buyTime = moment(new Date()).startOf('d').toDate()
let endTime = null;
if (playerOrders.length > 0) {
buyTime = playerOrders[0].createdAt;//购买时候的日期
endTime = moment(buyTime).add(7, 'd').endOf('d').toDate()
}
// let productID = playerData.productID;
// let playerOrders: UserOrderModelType[] = await UserOrderModel.findPlayerOrder(productID, roleId, activityId, 1);
// let buyTime = moment(new Date()).startOf('d').toDate()
// let endTime = null;
// if (playerOrders.length > 0) {
// buyTime = playerOrders[0].createdAt;//购买时候的日期
// endTime = moment(buyTime).add(7, 'd').endOf('d').toDate()
// }
let playerRecord: ActivityDailyRMBGiftsModelType = await ActivityDailyRMBGiftsModel.findRecord(serverId, activityId, roleId, moment(playerData.beginTime).toDate());
let unReceiveRecord: ActivityDailyRMBGiftsModelType[] = await ActivityDailyRMBGiftsModel.findBuyRecord(serverId, activityId, roleId, moment(playerData.beginTime).toDate());
@@ -78,6 +75,11 @@ export async function makeDailyRMBGiftsReward(roleId: string, roleName: string,
let playerData = new DailyRMBGiftsData(activityData);
let bigGiftProductID = playerData.productID;
if (bigGiftProductID == productID) {//一次性购买7天礼包
let playerRecord: ActivityDailyRMBGiftsModelType = await ActivityDailyRMBGiftsModel.findRecord(serverId, activityId, roleId, moment(playerData.beginTime).toDate());
if (playerRecord && playerRecord.records && playerRecord.records.length > 0) {//今天已经购买过其他奖励
playerData.beginTime += 24 * 60 * 60 * 1000;
}
for (let i = 0; i < playerData.day; i++) {
let beginTime = playerData.beginTime + 24 * 60 * 60 * 1000 * i;
// let beginTime = moment(new Date()).startOf('d').add(i, 'day').add(REFRESH_TIME, 'h').toDate();
@@ -1,10 +1,8 @@
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
import { ActivityModel, ActivityModelType } from '../db/Activity';
import { ActivityThirtyDaysModel, ActivityThirtyDaysModelType } from '../db/ActivityThirtyDays';
import { ActivityBuyRecordsModel, ActivityBuyRecordsModelType } from '../db/ActivityBuyRecords';
import { ThirtyDaysData, ThirtyDaysItem } from '../domain/activityField/thirtyDaysField';
import { ThirtyDaysData } from '../domain/activityField/thirtyDaysField';
import { ActivityThirtyDaysPointRewardModel, ActivityThirtyDaysPointRewardModelType } from '../db/ActivityThirtyDaysPointReward';
import Role, { RoleModel } from '../db/Role';
import { RoleModel } from '../db/Role';
import moment = require('moment');
import { deltaDays } from '../pubUtils/util';
import { ServerlistModel } from '../db/Serverlist';