定时器
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
import { GROUP_SHOP_PRICE_STATUS } from "../../consts";
|
||||
import { ACTIVITY_TYPE, GROUP_SHOP_PRICE_STATUS, PUSH_ROUTE } from "../../consts";
|
||||
import { ActivityModel, ActivityModelType } from "../../db/Activity";
|
||||
import { ActivityGroupShopRecModel } from "../../db/ActivityGroupShopRec";
|
||||
import { ActivityGroupShopUserRecModel } from "../../db/ActivityGroupShopUserRec";
|
||||
import { GroupShopData } from "../../domain/activityField/groupShopField";
|
||||
import { RewardInter } from "../../pubUtils/interface";
|
||||
import { sendMessageToGroupShopWithSuc } from "../pushService";
|
||||
import { getRoleCreateTime, getServerCreateTime } from "../redisService";
|
||||
import { getActivityById } from "./activityService";
|
||||
|
||||
@@ -38,4 +41,48 @@ export function getGroupShopPriceStatus(clientPrice: number, price: number) {
|
||||
if(clientPrice == price) return GROUP_SHOP_PRICE_STATUS.NORMAL;
|
||||
if(clientPrice < price) return GROUP_SHOP_PRICE_STATUS.NOT_ENOUGH;
|
||||
return GROUP_SHOP_PRICE_STATUS.OVER;
|
||||
}
|
||||
|
||||
export async function getGroupShopServerData(activityData: ActivityModelType) {
|
||||
let playerData = new GroupShopData(activityData, 0, 0);
|
||||
let serverRecords = await ActivityGroupShopRecModel.findByActivity(activityData.activityId);
|
||||
playerData.setRecords(serverRecords);
|
||||
|
||||
return playerData;
|
||||
}
|
||||
|
||||
export async function getGroupShopTimers(activity: ActivityModelType) {
|
||||
if(!activity) return [];
|
||||
let playerData = await getGroupShopServerData(activity);
|
||||
return playerData?.timer||[];
|
||||
}
|
||||
|
||||
export async function setGroupShopToSetSum(arr: { activityId: number, itemId: number, sum: number }[]) {
|
||||
for(let { activityId, itemId, sum } of arr) {
|
||||
let serverRecord = await ActivityGroupShopRecModel.setSum(activityId, itemId, sum);
|
||||
if(serverRecord) {
|
||||
let activityData = await getActivityById(activityId);
|
||||
let playerData = new GroupShopData(activityData, 0, 0);
|
||||
playerData.setRecords([serverRecord]);
|
||||
|
||||
let item = playerData.findItemById(itemId);
|
||||
let nextDiscount = item.getCurDiscount();
|
||||
// 推送频道
|
||||
await sendMessageToGroupShopWithSuc(PUSH_ROUTE.GROUP_SHOP_UPDATE, { activityId, id: itemId, curDiscount: nextDiscount });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function refundGroupShop() {
|
||||
let activities = await ActivityModel.findActivityByType(ACTIVITY_TYPE.GROUP_SHOP);
|
||||
|
||||
let recs = new Map<string, { activityId: number, itemId: number, reward: RewardInter[] }[]>();
|
||||
for(let activityData of activities) {
|
||||
let playerData = await getGroupShopServerData(activityData);
|
||||
let items = playerData.items||[];
|
||||
for(let item of items) {
|
||||
let playerRecords = await ActivityGroupShopUserRecModel.findByPrice(activityData.activityId, item.id, item.getCurDiscount().price);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user