军团:添加管理debug接口

This commit is contained in:
luying
2021-01-25 11:41:36 +08:00
parent d8d14283bf
commit 90e78bd967
6 changed files with 37 additions and 43 deletions

View File

@@ -2,7 +2,7 @@ import { Application, BackendSession, pinus, ChannelService } from 'pinus';
import { resResult, getRandEelm, reduceCe, getRefTime } from '../../../pubUtils/util';
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME, MAIL_TYPE } from '../../../consts';
import { UserGuildModel } from '../../../db/UserGuild';
import { checkAuth, joinGuild, getGuildWithRefActive, getUserGuildWithRefActive, addGuildActive, message, settleGuildWeekly } from '../../../services/guildService';
import { checkAuth, joinGuild, getGuildWithRefActive, getUserGuildWithRefActive, addActive, message, settleGuildWeekly } from '../../../services/guildService';
import { GuildModel, GuildType } from '../../../db/Guild';
import { RoleModel, RoleType } from '../../../db/Role';
import { ARMY } from '../../../pubUtils/dicParam';
@@ -181,7 +181,7 @@ export class GuildHandler {
return resResult(STATUS.GUILD_MANAGER_REACH_MAX);
}
const userGuild = await UserGuildModel.updateInfo(memberRoleId, { auth }, 'auth'); // 设置权限
const userGuild = await UserGuildModel.updateInfo(memberRoleId, { auth }, {}, 'auth'); // 设置权限
if(!userGuild) {
return resResult(STATUS.GUILD_MEMBER_NOT_FOUND);
}
@@ -656,8 +656,8 @@ export class GuildHandler {
// 交换
// TODO redlock
await UserGuildModel.updateInfo(leaderRoleId, { auth: GUILD_AUTH.MEMBER }, 'auth'); // 团长撤
await UserGuildModel.updateInfo(topUserGuild.roleId, { auth: GUILD_AUTH.LEADER }, 'auth'); // 最高功勋人升
await UserGuildModel.updateInfo(leaderRoleId, { auth: GUILD_AUTH.MEMBER }, {}, 'auth'); // 团长撤
await UserGuildModel.updateInfo(topUserGuild.roleId, { auth: GUILD_AUTH.LEADER }, {}, 'auth'); // 最高功勋人升
let managerCntInc = topUserGuild.auth == GUILD_AUTH.MANAGER ? -1 : 0; // 管理人数
const guild = await GuildModel.updateInfo(code, { leader: topUser._id }, { managerCnt: managerCntInc }, 'managerCnt name'); // 如果有转让团长设置leader
@@ -820,7 +820,7 @@ export class GuildHandler {
}
let goods = await addItems(roleId, roleName, sid, activeDayReward.reward);
userGuild = await UserGuildModel.updateInfo(roleId, { receivedActive: activeDayReward.activeDayPoint }, 'receivedActive');
userGuild = await UserGuildModel.updateInfo(roleId, { receivedActive: activeDayReward.activeDayPoint }, {}, 'receivedActive');
return resResult(STATUS.SUCCESS, { goods, receivedActive: userGuild.receivedActive });
}
@@ -833,20 +833,9 @@ export class GuildHandler {
const serverId = session.get('serverId');
const { code, active, id } = msg;
const guild = await addGuildActive(code, serverId, active);
if(!guild) return resResult(STATUS.GUILD_NOT_FOUND);
let userGuild = await UserGuildModel.getMyGuild(roleId, 'activeRecord receivedActive activeDaily activeWeekly');
let {activeRecord} = userGuild;
if(id != 0) {
let curActiveRecord = activeRecord.find(cur => cur.id == id);
if( curActiveRecord ) {
curActiveRecord.count ++;
} else {
activeRecord.push({id, count: 1});
}
}
userGuild = await UserGuildModel.updateInfo(roleId, { activeRecord, activeDaily: userGuild.activeDaily + active, activeWeekly: userGuild.activeWeekly + active})
const result = await addActive(roleId, serverId, id, active);
if(!result) return resResult(STATUS.GUILD_NOT_FOUND);
const { guild, userGuild } = result;
let { activeDaily, activeWeekly } = guild;
message.updateInfo(code, { activeDaily, activeWeekly });

View File

@@ -105,7 +105,7 @@ export class GuildTrainHandler {
// return resResult(STATUS.WRONG_PARMS);
// }
if (time > getTodayZeroPoint()) {
userGuild = await UserGuildModel.updateInfo(roleId, {trainCount: userGuild.trainCount - 1});
userGuild = await UserGuildModel.updateInfo(roleId, {}, { trainCount: -1 });
}
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
$set: { status: isSuccess?1:2 }

View File

@@ -9,9 +9,6 @@ import { SystemConfigModel } from "../db/SystemConfig";
import { nowSeconds } from "../pubUtils/timeUtil";
import { pinus } from "pinus";
import { GuildRecType } from "../db/GuildRec";
import { MailModel } from "../db/Mail";
import { RewardInter } from "../pubUtils/interface";
import { getRedis } from "./redisService";
import { ARMY } from "../pubUtils/dicParam";
import { sendMail } from "./mailService";
@@ -95,24 +92,28 @@ export async function getGuildWithRefActive(guildCode: string, serverId: number)
* @param serverId 区
* @param active 增加的活跃
*/
export async function addGuildActive(guildCode: string, serverId: number, active: number) {
// TODO 加写锁
let guild = await GuildModel.findByCode(guildCode, serverId, '+refTimeDaily');
export async function addActive(roleId: string, serverId: number, id: number, active: number) {
let userGuild = await getUserGuildWithRefActive(roleId, 'activeRecord receivedActive activeDaily activeWeekly guildCode');
if(!userGuild) return false;
let guildCode = userGuild.guildCode;
let guild = await getGuildWithRefActive(guildCode, serverId);
if(!guild) return false;
const now = new Date();
let { activeDaily, activeWeekly, refTimeDaily} = guild;
let isRefDaily = shouldRefresh(refTimeDaily, now, 0);
if(isRefDaily) {
activeDaily = 0; refTimeDaily = now;
let {activeRecord} = userGuild;
if(id != 0) { // 用于debug传0时直接增加活跃
let curActiveRecord = activeRecord.find(cur => cur.id == id);
if( curActiveRecord ) {
curActiveRecord.count ++;
} else {
activeRecord.push({id, count: 1});
}
}
userGuild = await UserGuildModel.updateInfo(roleId, { activeRecord }, { activeDaily: active, activeWeekly: active });
activeWeekly += active; activeDaily += active;
guild = await GuildModel.updateInfo(guildCode, { activeDaily, activeWeekly, refTimeDaily }, {});
return guild;
guild = await GuildModel.updateInfo(guildCode, { }, { activeDaily: active, activeWeekly: active });
return { guild, userGuild };
}
/**
@@ -130,7 +131,7 @@ export async function getUserGuildWithRefActive(roleId: string, select: string)
if(isRefDaily) {
receivedActive = 0; refTimeDaily = now; activeDaily = 0; activeRecord = [];
userGuild = await UserGuildModel.updateInfo(roleId, { receivedActive, refTimeDaily, activeDaily, activeRecord }, select);
userGuild = await UserGuildModel.updateInfo(roleId, { receivedActive, refTimeDaily, activeDaily, activeRecord }, {}, select);
if(!userGuild) return false;
}
@@ -157,14 +158,14 @@ export async function settleGuildWeekly() {
let active = false;
let job = 0;
if(activeWeekly > 100) {
if(activeWeekly > ARMY.ARMY_WEEKHONOUR_LIMIT) {
activeMemberCnt ++;
active = true;
}
if(auth == GUILD_AUTH.LEADER) {
job = GUILD_JOB.DAJIANGJUN;
} else if (activeWeekly <= 100) {
} else if (activeWeekly <= ARMY.ARMY_WEEKHONOUR_LIMIT) {
job = GUILD_JOB.SHIBING;
} else {
otherMemberNum++;

View File

@@ -145,7 +145,7 @@ export default class Guild extends BaseModel {
return result;
}
public static async updateInfo(code: string, update: GuildUpdateParam, incParam?: { managerCnt?: number, fund?: number }, select?: string) {
public static async updateInfo(code: string, update: GuildUpdateParam, incParam?: { managerCnt?: number, fund?: number, activeDaily?: number, activeWeekly?: number }, select?: string) {
const result: GuildType = await GuildModel.findOneAndUpdate({ code }, { $set: update, $inc: incParam }, { new: true }).select(select).lean();
return result;
}

View File

@@ -122,8 +122,8 @@ export default class UserGuild extends BaseModel {
return result;
}
public static async updateInfo(roleId: string, update: UserGuildUpdateParam, select?: string) {
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON }, { $set: update }, { new: true }).select(select).lean();
public static async updateInfo(roleId: string, update: UserGuildUpdateParam, incParam?: { activeDaily?: number, activeWeekly?: number, trainCount?: number }, select?: string) {
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON }, { $set: update, $inc: incParam }, { new: true }).select(select).lean();
return result;
}

View File

@@ -43,6 +43,10 @@ export const ARMY = {
ARMY_DEVELOPMENT_SPEED: 30, // 碎片研发单次加速时间(分钟)
ARMY_DEVELOPMENT_SPEEDCOST: 50, // 单次助力加速消耗的元宝
ARMY_DEVELOPMENT_SPEEDTMES: 10, // 单个碎片可助力加速的最大次数
ARMY_TRAIN_FREETIMES: 2, // 练兵场每日挑战次数
ARMY_TRAIN_BUYTIMES: 2, // 练兵场每日可购买次数
ARMY_TRAIN_TIMESCOST: 20, // 练兵场购买次数每日
ARMY_WEEKHONOUR_LIMIT: 1000, // 军团成员参与职位排名周功勋下限(包含)
};
export const TREASURE = {
CAPTAIN_DROP: 5, // 普通套装图纸队长必掉落次数