This commit is contained in:
luying
2021-10-15 16:03:28 +08:00
parent a6763f690d
commit 84b7334df1
6 changed files with 20 additions and 16 deletions

View File

@@ -217,7 +217,7 @@ export class CityActivityHandler {
const sid = session.get('sid');
let { cityId, code, damage, hid, round } = msg;
if (!damage || damage < 0) return resResult(STATUS.WRONG_PARMS);
if (damage == undefined || damage < 0) return resResult(STATUS.WRONG_PARMS);
const dicCity = gameData.cityActivity.get(cityId);
let obj = getCityActivityObj();
@@ -234,7 +234,7 @@ export class CityActivityHandler {
let tomorrow = <number>getTimeFun().getAfterDayWithHour();
// 更新redis数据
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode });
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode }, true);
let myScore = await myR.setRankWithRoleInfo(roleId, damage, Date.now(), null, true);
await myR.setExpire(tomorrow);
@@ -285,7 +285,7 @@ export class CityActivityHandler {
// 发放活跃
await addActive(roleId, serverId, GUILD_POINT_WAYS.ACTIVITY); //获得活跃值
// 返回当前军团总军功
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode });
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode }, true);
let myScore = await myR.getMyScore({ roleId });
let r = new Rank(REDIS_KEY.CITY_ACTIVITY, { serverId, cityId }, true);
let guildScore = await r.getMyScore({ guildCode });

View File

@@ -140,7 +140,7 @@ export class GateActivityHandler {
let tomorrow = <number>getTimeFun().getAfterDayWithHour();
// 更新redis数据
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, false);
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
let myScore = await myR.setRankWithRoleInfo(roleId, score, Date.now(), null, true);
await myR.setExpire(tomorrow);
@@ -186,7 +186,7 @@ export class GateActivityHandler {
pinus.app.rpc.chat.guildRemote.pushGateHp.toServer(chatSid, guildCode, gateHp);
// 返回当前军团总军功
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode });
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
let myScore = await myR.getMyScore({ roleId });
let r = new Rank(REDIS_KEY.GATE_ACTIVITY, { serverId }, true);
let guildScore = await r.getMyScore({ guildCode });
@@ -231,7 +231,7 @@ export class GateActivityHandler {
}
}
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode });
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
let r = new Rank(REDIS_KEY.GATE_ACTIVITY, { serverId }, true);
if (isSuccess) {
let score = gameData.gateActivityPoint.get(GET_POINT_WAYS.DEFENSE_SUCCESS);

View File

@@ -185,7 +185,7 @@ export async function getGateActivityRank(guildCode: string, serverId: number, r
myGuildRank = await r.generMyRankWithGuild(guildCode, 0, 0);
}
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode });
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
myR.setGenerFieldsFun(generGuildActivityMemberRankField);
let { ranks: memberRank, myRank: myMemberRank } = await myR.getRankListWithMyRank({ roleId });
if (roleName && !myMemberRank) {
@@ -204,7 +204,7 @@ export async function getCityActivityRank(guildCode: string, serverId: number, c
myGuildRank = await r.generMyRankWithGuild(guildCode, 0, 0);
}
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode });
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode }, true);
myR.setGenerFieldsFun(generGuildActivityMemberRankField);
let { ranks: memberRank, myRank: myMemberRank } = await myR.getRankListWithMyRank({ roleId });
if (roleName && !myMemberRank) {
@@ -403,7 +403,7 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb
// 结算功勋等奖励
let dic = gameData.guildActivity.get(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY);
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode });
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
let ranks = <RoleRankInfo[]>await myR.getRankByRange();
for (let { rank, roleId, num: myScore } of ranks) {
@@ -468,7 +468,7 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
await genAuction(guildCode, AUCTION_SOURCE.CITY, rec.code, serverId, rewards);
let dic = gameData.guildActivity.get(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY);
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode });
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
let ranks = <RoleRankInfo[]>await myR.getRankByRange();
let userRank = 0;
for (let { rank, roleId, num: myScore } of ranks) {

View File

@@ -400,7 +400,7 @@ export class Rank {
let key = this.keyName.getNameWithPlus(config.name);
if(config.isTimestamp) score = this.handleTimestamp(score, config.len);
if(config.reverse) {
let pow = Math.pow(10, config.len + 1);
let pow = Math.pow(10, config.len);
score = pow - 1 - score;
}
await redisClient().zaddAsync(key, score, this.composeFields(this.key, myId));

View File

@@ -348,6 +348,14 @@ export async function guildActivitySchedule() {
if (guildActStartJobId) {
guildActStartJobId.cancel();
}
if (guildActSecondsJobId) {
guildActSecondsJobId.cancel();
guildActSecondsJobId = undefined;
}
if (guildActEndJobId) {
guildActEndJobId.cancel();
guildActEndJobId = undefined;
}
let dicGuildActivity = getTodayGuildActivity();
await delGuildActivityRank(dicGuildActivity.id);
@@ -367,10 +375,6 @@ export async function guildActivityStart(dicGuildActivity?: DicGuildActivity) {
if (!dicGuildActivity) dicGuildActivity = getTodayGuildActivity();
if (!dicGuildActivity) return;
if (guildActSecondsJobId || guildActEndJobId) {
return false
}
console.log('********', dicGuildActivity.id, Date.now() + dicGuildActivity.duringTime * 1000)
let servers = await getAllServers(); // 玩家serverId列表
if (dicGuildActivity.id == GUILD_ACTIVITY_TYPE.GATE_ACTIVITY) {

View File

@@ -71,7 +71,7 @@ export default class GuildActivityRecord extends BaseModel {
let update = Object.assign(docs, { code, guildCode, serverId, aid, createdAt: new Date() });
if(events) update = Object.assign(update, { events });
let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate(
{ guildCode, createdAt: { $gte: today }, status: 1},
{ aid, guildCode, createdAt: { $gte: today }, status: 1},
{ $setOnInsert: update },
{new: true, upsert: true}).lean();
return rec;