后台:删除武将修复bug
This commit is contained in:
@@ -26,6 +26,7 @@ import { RScriptRecordModel } from '../../../db/RScriptRecord';
|
|||||||
import { DicWar } from '../../../pubUtils/dictionary/DicWar';
|
import { DicWar } from '../../../pubUtils/dictionary/DicWar';
|
||||||
import { SchoolModel } from '../../../db/School';
|
import { SchoolModel } from '../../../db/School';
|
||||||
import { JewelModel } from '../../../db/Jewel';
|
import { JewelModel } from '../../../db/Jewel';
|
||||||
|
import { RoleCeModel } from '../../../db/RoleCe';
|
||||||
|
|
||||||
let timer: NodeJS.Timer;
|
let timer: NodeJS.Timer;
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
@@ -121,6 +122,7 @@ export class GmRoleHandler {
|
|||||||
await SkinModel.deleteByHero(roleId, hid);
|
await SkinModel.deleteByHero(roleId, hid);
|
||||||
let role = await RoleModel.findByRoleId(roleId);
|
let role = await RoleModel.findByRoleId(roleId);
|
||||||
await PvpDefenseModel.deleteHero(roleId, hid);
|
await PvpDefenseModel.deleteHero(roleId, hid);
|
||||||
|
await RoleCeModel.deleteHero(roleId, hid);
|
||||||
await RoleModel.updateRoleInfo(roleId, { topLineup: role.topLineup.filter(cur => cur.hid != hid), topLineupCe: role.topLineupCe - hero.ce, ce: role.ce - hero.ce });
|
await RoleModel.updateRoleInfo(roleId, { topLineup: role.topLineup.filter(cur => cur.hid != hid), topLineupCe: role.topLineupCe - hero.ce, ce: role.ce - hero.ce });
|
||||||
|
|
||||||
return resResult(STATUS.SUCCESS);
|
return resResult(STATUS.SUCCESS);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import BaseModel from './BaseModel';
|
import BaseModel from './BaseModel';
|
||||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||||
|
import { isArray } from 'underscore';
|
||||||
|
|
||||||
// 全局加成
|
// 全局加成
|
||||||
export class AttrCell {
|
export class AttrCell {
|
||||||
@@ -117,6 +118,19 @@ export default class RoleCe extends BaseModel {
|
|||||||
let result: RoleCeType = await RoleCeModel.findOneAndUpdate({ roleId }, { $set: update }, { new: true, upsert: true }).lean();
|
let result: RoleCeType = await RoleCeModel.findOneAndUpdate({ roleId }, { $set: update }, { new: true, upsert: true }).lean();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async deleteHero(roleId: string, hid: number) {
|
||||||
|
let roleCe: RoleCeType = await RoleCeModel.findByRoleId(roleId);
|
||||||
|
return await RoleCeModel.updateRoleCe(roleId, this.filterHid(roleCe, hid, ['heroAttrs', 'equipAttrs', 'schoolAttrs', 'scrollAttrs']));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static filterHid(roleCe: RoleCeType, hid: number, fields: string[]) {
|
||||||
|
let update: RoleCeUpdate = {};
|
||||||
|
for(let field of fields) {
|
||||||
|
if(roleCe[field] && isArray(roleCe[field])) update[field] = roleCe[field].filter(cur => cur.hid != hid);
|
||||||
|
}
|
||||||
|
return update;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const RoleCeModel = getModelForClass(RoleCe);
|
export const RoleCeModel = getModelForClass(RoleCe);
|
||||||
|
|||||||
Reference in New Issue
Block a user