军团:添加管理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
@@ -2,7 +2,7 @@ import { Application, BackendSession, pinus, ChannelService } from 'pinus';
import { resResult, getRandEelm, reduceCe, getRefTime } from '../../../pubUtils/util'; 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 { 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 { 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 { GuildModel, GuildType } from '../../../db/Guild';
import { RoleModel, RoleType } from '../../../db/Role'; import { RoleModel, RoleType } from '../../../db/Role';
import { ARMY } from '../../../pubUtils/dicParam'; import { ARMY } from '../../../pubUtils/dicParam';
@@ -181,7 +181,7 @@ export class GuildHandler {
return resResult(STATUS.GUILD_MANAGER_REACH_MAX); 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) { if(!userGuild) {
return resResult(STATUS.GUILD_MEMBER_NOT_FOUND); return resResult(STATUS.GUILD_MEMBER_NOT_FOUND);
} }
@@ -656,8 +656,8 @@ export class GuildHandler {
// 交换 // 交换
// TODO redlock // TODO redlock
await UserGuildModel.updateInfo(leaderRoleId, { auth: GUILD_AUTH.MEMBER }, 'auth'); // 团长撤 await UserGuildModel.updateInfo(leaderRoleId, { auth: GUILD_AUTH.MEMBER }, {}, 'auth'); // 团长撤
await UserGuildModel.updateInfo(topUserGuild.roleId, { auth: GUILD_AUTH.LEADER }, 'auth'); // 最高功勋人升 await UserGuildModel.updateInfo(topUserGuild.roleId, { auth: GUILD_AUTH.LEADER }, {}, 'auth'); // 最高功勋人升
let managerCntInc = topUserGuild.auth == GUILD_AUTH.MANAGER ? -1 : 0; // 管理人数 let managerCntInc = topUserGuild.auth == GUILD_AUTH.MANAGER ? -1 : 0; // 管理人数
const guild = await GuildModel.updateInfo(code, { leader: topUser._id }, { managerCnt: managerCntInc }, 'managerCnt name'); // 如果有转让团长设置leader 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); 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 }); return resResult(STATUS.SUCCESS, { goods, receivedActive: userGuild.receivedActive });
} }
@@ -833,20 +833,9 @@ export class GuildHandler {
const serverId = session.get('serverId'); const serverId = session.get('serverId');
const { code, active, id } = msg; const { code, active, id } = msg;
const guild = await addGuildActive(code, serverId, active); const result = await addActive(roleId, serverId, id, active);
if(!guild) return resResult(STATUS.GUILD_NOT_FOUND); if(!result) return resResult(STATUS.GUILD_NOT_FOUND);
const { guild, userGuild } = result;
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})
let { activeDaily, activeWeekly } = guild; let { activeDaily, activeWeekly } = guild;
message.updateInfo(code, { activeDaily, activeWeekly }); message.updateInfo(code, { activeDaily, activeWeekly });
@@ -105,7 +105,7 @@ export class GuildTrainHandler {
// return resResult(STATUS.WRONG_PARMS); // return resResult(STATUS.WRONG_PARMS);
// } // }
if (time > getTodayZeroPoint()) { if (time > getTodayZeroPoint()) {
userGuild = await UserGuildModel.updateInfo(roleId, {trainCount: userGuild.trainCount - 1}); userGuild = await UserGuildModel.updateInfo(roleId, {}, { trainCount: -1 });
} }
await BattleRecordModel.updateBattleRecordByCode(battleCode, { await BattleRecordModel.updateBattleRecordByCode(battleCode, {
$set: { status: isSuccess?1:2 } $set: { status: isSuccess?1:2 }
+21 -20
View File
@@ -9,9 +9,6 @@ import { SystemConfigModel } from "../db/SystemConfig";
import { nowSeconds } from "../pubUtils/timeUtil"; import { nowSeconds } from "../pubUtils/timeUtil";
import { pinus } from "pinus"; import { pinus } from "pinus";
import { GuildRecType } from "../db/GuildRec"; 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 { ARMY } from "../pubUtils/dicParam";
import { sendMail } from "./mailService"; import { sendMail } from "./mailService";
@@ -95,24 +92,28 @@ export async function getGuildWithRefActive(guildCode: string, serverId: number)
* @param serverId 区 * @param serverId 区
* @param active 增加的活跃 * @param active 增加的活跃
*/ */
export async function addGuildActive(guildCode: string, serverId: number, active: number) { export async function addActive(roleId: string, serverId: number, id: number, active: number) {
// TODO 加写锁 let userGuild = await getUserGuildWithRefActive(roleId, 'activeRecord receivedActive activeDaily activeWeekly guildCode');
let guild = await GuildModel.findByCode(guildCode, serverId, '+refTimeDaily'); if(!userGuild) return false;
let guildCode = userGuild.guildCode;
let guild = await getGuildWithRefActive(guildCode, serverId);
if(!guild) return false; if(!guild) return false;
const now = new Date(); let {activeRecord} = userGuild;
let { activeDaily, activeWeekly, refTimeDaily} = guild; if(id != 0) { // 用于debug,传0时直接增加活跃
let curActiveRecord = activeRecord.find(cur => cur.id == id);
let isRefDaily = shouldRefresh(refTimeDaily, now, 0); if( curActiveRecord ) {
if(isRefDaily) { curActiveRecord.count ++;
activeDaily = 0; refTimeDaily = now; } 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: active, activeWeekly: active });
return { guild, userGuild };
guild = await GuildModel.updateInfo(guildCode, { activeDaily, activeWeekly, refTimeDaily }, {});
return guild;
} }
/** /**
@@ -130,7 +131,7 @@ export async function getUserGuildWithRefActive(roleId: string, select: string)
if(isRefDaily) { if(isRefDaily) {
receivedActive = 0; refTimeDaily = now; activeDaily = 0; activeRecord = []; 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; if(!userGuild) return false;
} }
@@ -157,14 +158,14 @@ export async function settleGuildWeekly() {
let active = false; let active = false;
let job = 0; let job = 0;
if(activeWeekly > 100) { if(activeWeekly > ARMY.ARMY_WEEKHONOUR_LIMIT) {
activeMemberCnt ++; activeMemberCnt ++;
active = true; active = true;
} }
if(auth == GUILD_AUTH.LEADER) { if(auth == GUILD_AUTH.LEADER) {
job = GUILD_JOB.DAJIANGJUN; job = GUILD_JOB.DAJIANGJUN;
} else if (activeWeekly <= 100) { } else if (activeWeekly <= ARMY.ARMY_WEEKHONOUR_LIMIT) {
job = GUILD_JOB.SHIBING; job = GUILD_JOB.SHIBING;
} else { } else {
otherMemberNum++; otherMemberNum++;
+1 -1
View File
@@ -145,7 +145,7 @@ export default class Guild extends BaseModel {
return result; 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(); const result: GuildType = await GuildModel.findOneAndUpdate({ code }, { $set: update, $inc: incParam }, { new: true }).select(select).lean();
return result; return result;
} }
+2 -2
View File
@@ -122,8 +122,8 @@ export default class UserGuild extends BaseModel {
return result; return result;
} }
public static async updateInfo(roleId: string, update: UserGuildUpdateParam, select?: string) { 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 }, { new: true }).select(select).lean(); const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON }, { $set: update, $inc: incParam }, { new: true }).select(select).lean();
return result; return result;
} }
+4
View File
@@ -43,6 +43,10 @@ export const ARMY = {
ARMY_DEVELOPMENT_SPEED: 30, // 碎片研发单次加速时间(分钟) ARMY_DEVELOPMENT_SPEED: 30, // 碎片研发单次加速时间(分钟)
ARMY_DEVELOPMENT_SPEEDCOST: 50, // 单次助力加速消耗的元宝 ARMY_DEVELOPMENT_SPEEDCOST: 50, // 单次助力加速消耗的元宝
ARMY_DEVELOPMENT_SPEEDTMES: 10, // 单个碎片可助力加速的最大次数 ARMY_DEVELOPMENT_SPEEDTMES: 10, // 单个碎片可助力加速的最大次数
ARMY_TRAIN_FREETIMES: 2, // 练兵场每日挑战次数
ARMY_TRAIN_BUYTIMES: 2, // 练兵场每日可购买次数
ARMY_TRAIN_TIMESCOST: 20, // 练兵场购买次数每日
ARMY_WEEKHONOUR_LIMIT: 1000, // 军团成员参与职位排名周功勋下限(包含)
}; };
export const TREASURE = { export const TREASURE = {
CAPTAIN_DROP: 5, // 普通套装图纸队长必掉落次数 CAPTAIN_DROP: 5, // 普通套装图纸队长必掉落次数