团购:基础接口
This commit is contained in:
41
game-server/app/services/activity/groupShopService.ts
Normal file
41
game-server/app/services/activity/groupShopService.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { GROUP_SHOP_PRICE_STATUS } from "../../consts";
|
||||
import { ActivityGroupShopRecModel } from "../../db/ActivityGroupShopRec";
|
||||
import { ActivityGroupShopUserRecModel } from "../../db/ActivityGroupShopUserRec";
|
||||
import { GroupShopData } from "../../domain/activityField/groupShopField";
|
||||
import { getRoleCreateTime, getServerCreateTime } from "../redisService";
|
||||
import { getActivityById } from "./activityService";
|
||||
|
||||
/**
|
||||
* 玩家活动数据
|
||||
*
|
||||
* @param {number} serverId 区Id
|
||||
* @param {number} activityId 活动Id
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function getGroupShopData(activityId: number, roleId: string) {
|
||||
let activityData = await getActivityById(activityId);
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
|
||||
let playerData = new GroupShopData(activityData, createTime, 0);
|
||||
let serverRecords = await ActivityGroupShopRecModel.findByActivity(activityId);
|
||||
playerData.setRecords(serverRecords);
|
||||
let playerRecords = await ActivityGroupShopUserRecModel.findByActivityAndRoleId(activityId, roleId);
|
||||
playerData.setPlayerRecord(playerRecords);
|
||||
|
||||
return playerData;
|
||||
}
|
||||
|
||||
export async function getGroupShopDataShow(activityId: number, roleId: string) {
|
||||
let playerData = await getGroupShopData(activityId, roleId);
|
||||
if(playerData && playerData.canShow && playerData.canShow()) {
|
||||
return playerData.getShowResult();
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user