🐞 fix(gvg): gvg遗迹联军奖励领取问题
This commit is contained in:
@@ -430,7 +430,7 @@ export class GVGProduceHandler {
|
|||||||
const { ranks: memberRank, myRank: myMemberRank } = await getVestigeRank(REDIS_KEY.GVG_VESTIGE_MEMBER_ALL, false, { groupKey, day: getDayKeyInfo() }, { roleId }, serverNames);
|
const { ranks: memberRank, myRank: myMemberRank } = await getVestigeRank(REDIS_KEY.GVG_VESTIGE_MEMBER_ALL, false, { groupKey, day: getDayKeyInfo() }, { roleId }, serverNames);
|
||||||
|
|
||||||
let yesterdayRank = await GVGVestigeLeagueRankModel.getYesterdayRank(myLeague.leagueCode);
|
let yesterdayRank = await GVGVestigeLeagueRankModel.getYesterdayRank(myLeague.leagueCode);
|
||||||
let canReceiveLeagueRanks = await GVGVestigeLeagueRankModel.getCanReceiveRanks(configId, myLeague.leagueCode);
|
let canReceiveLeagueRanks = await GVGVestigeLeagueRankModel.getCanReceiveRanks(configId, myLeague.leagueCode, roleId);
|
||||||
let canReceivePlayerRanks = await GVGVestigeSumRankModel.getCanReceiveRanks(configId, roleId);
|
let canReceivePlayerRanks = await GVGVestigeSumRankModel.getCanReceiveRanks(configId, roleId);
|
||||||
let { canReceiveBox, boxPreview } = calVestigeLeagueBoxRewards(canReceiveLeagueRanks, canReceivePlayerRanks);
|
let { canReceiveBox, boxPreview } = calVestigeLeagueBoxRewards(canReceiveLeagueRanks, canReceivePlayerRanks);
|
||||||
|
|
||||||
@@ -495,13 +495,13 @@ export class GVGProduceHandler {
|
|||||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||||
|
|
||||||
let { configId } = getGVGPeriodData();
|
let { configId } = getGVGPeriodData();
|
||||||
let canReceiveLeagueRanks = await GVGVestigeLeagueRankModel.getCanReceiveRanks(configId, myLeague.leagueCode);
|
let canReceiveLeagueRanks = await GVGVestigeLeagueRankModel.getCanReceiveRanks(configId, myLeague.leagueCode, roleId);
|
||||||
let canReceivePlayerRanks = await GVGVestigeSumRankModel.getCanReceiveRanks(configId, roleId);
|
let canReceivePlayerRanks = await GVGVestigeSumRankModel.getCanReceiveRanks(configId, roleId);
|
||||||
if(canReceiveLeagueRanks.length <= 0 && canReceivePlayerRanks.length <= 0) return resResult(STATUS.GVG_RECEIVE_NO_RANK_REWARD);
|
if(canReceiveLeagueRanks.length <= 0 && canReceivePlayerRanks.length <= 0) return resResult(STATUS.GVG_RECEIVE_NO_RANK_REWARD);
|
||||||
|
|
||||||
let { leagueReward, rewards } = calVestigeLeagueBoxRewards(canReceiveLeagueRanks, canReceivePlayerRanks);
|
let { leagueReward, rewards } = calVestigeLeagueBoxRewards(canReceiveLeagueRanks, canReceivePlayerRanks);
|
||||||
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, rewards, ITEM_CHANGE_REASON.GVG_VESTIGE_RECEIVE_RANK)
|
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, rewards, ITEM_CHANGE_REASON.GVG_VESTIGE_RECEIVE_RANK)
|
||||||
await GVGVestigeLeagueRankModel.receiveRanks(canReceiveLeagueRanks.map(cur => cur._id));
|
await GVGVestigeLeagueRankModel.receiveRanks(canReceiveLeagueRanks.map(cur => cur._id), roleId);
|
||||||
await GVGVestigeSumRankModel.receiveRanks(canReceivePlayerRanks.map(cur => cur._id));
|
await GVGVestigeSumRankModel.receiveRanks(canReceivePlayerRanks.map(cur => cur._id));
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS, {
|
return resResult(STATUS.SUCCESS, {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import { getActivitiesByType, getActivityById } from './activityService';
|
|||||||
export async function getBindPhoneData(activityId: number, roleId: string, serverId: number, uid: number) {
|
export async function getBindPhoneData(activityId: number, roleId: string, serverId: number, uid: number) {
|
||||||
|
|
||||||
let activityData: ActivityModelType = await getActivityById(activityId);
|
let activityData: ActivityModelType = await getActivityById(activityId);
|
||||||
if(activityData.type != ACTIVITY_TYPE.BIND_PHONE) return null;
|
if(!activityData || activityData.type != ACTIVITY_TYPE.BIND_PHONE) return null;
|
||||||
|
|
||||||
let createTime = await getRoleCreateTime(roleId);
|
let createTime = await getRoleCreateTime(roleId);
|
||||||
let serverTime = await getServerCreateTime(serverId);
|
let serverTime = await getServerCreateTime(serverId);
|
||||||
|
|||||||
@@ -24,14 +24,14 @@ export default class GVGVestigeLeagueRank extends BaseModel {
|
|||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
rank: number; // 最后的排名,每天22点定格
|
rank: number; // 最后的排名,每天22点定格
|
||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true, type: String })
|
||||||
isReceived: boolean; // 是否领取过
|
receiveMembers: string[]; // 是否领取过
|
||||||
|
|
||||||
public static async incScore(configId: number, leagueCode: string, groupKey: string, inc: number) {
|
public static async incScore(configId: number, leagueCode: string, groupKey: string, inc: number) {
|
||||||
let today = getZeroPoint();
|
let today = getZeroPoint();
|
||||||
let result: GVGVestigeLeagueRankType = await GVGVestigeLeagueRankModel.findOneAndUpdate({
|
let result: GVGVestigeLeagueRankType = await GVGVestigeLeagueRankModel.findOneAndUpdate({
|
||||||
day: today, groupKey, leagueCode
|
day: today, groupKey, leagueCode
|
||||||
}, { $inc: { score: inc }, $set: { configId }, $setOnInsert: { rank: 0, isReceived: false } }, { new: true, upsert: true }).lean();
|
}, { $inc: { score: inc }, $set: { configId }, $setOnInsert: { rank: 0, receiveMembers: [] } }, { new: true, upsert: true }).lean();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,13 +61,13 @@ export default class GVGVestigeLeagueRank extends BaseModel {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async getCanReceiveRanks(configId: number, leagueCode: string) {
|
public static async getCanReceiveRanks(configId: number, leagueCode: string, roleId: string) {
|
||||||
let result: GVGVestigeLeagueRankType[] = await GVGVestigeLeagueRankModel.find({ configId, leagueCode, rank: { $gt: 0 }, isReceived: false }).lean();
|
let result: GVGVestigeLeagueRankType[] = await GVGVestigeLeagueRankModel.find({ configId, leagueCode, rank: { $gt: 0 }, receiveMembers: { $nin: [roleId] } }).lean();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async receiveRanks(_ids: string[]) {
|
public static async receiveRanks(_ids: string[], roleId: string) {
|
||||||
await GVGVestigeLeagueRankModel.updateMany({ _id: { $in: _ids } }, { $set: { isReceived: true } });
|
await GVGVestigeLeagueRankModel.updateMany({ _id: { $in: _ids } }, { $push: { receiveMembers: roleId } });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user