diff --git a/gm-server/app/service/users.ts b/gm-server/app/service/users.ts index b7544e31c..db0ad2de0 100644 --- a/gm-server/app/service/users.ts +++ b/gm-server/app/service/users.ts @@ -186,22 +186,16 @@ export default class GMUsers extends Service { if(isNaN(hid)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); } - let flag = 0, msg = '创建失败',heroInfos = new Array(); + let heroInfos = new Array(); for(let roleId of uids) { let role = await RoleModel.findByRoleId(roleId); if(role) { for(let hid of hids) { let hero = await HeroModel.findByHidAndRole(hid, roleId); - if(hero) { - flag = 1, msg = "角色" + roleId + "已拥有武将" + hid; - break; - } + if(hero) continue; const seqId = await CounterModel.getNewCounter('hid')||-1; let dicHero = ctx.service.utils.getHeroById(hid); - if(!dicHero) { - flag = 1, msg = "未找到武将" + hid; - break; - } + if(!dicHero) continue; let ce = ctx.service.utils.calculateCE({hid: hid, lv: hlv}); const heroInfo = { @@ -216,17 +210,18 @@ export default class GMUsers extends Service { heroInfos.push(heroInfo); } } else { - flag = 1, msg = '未找到角色' + roleId; + return ctx.service.utils.resResult(STATUS.GM_CREATE_ERROR, null, '未找到角色' + roleId) } } - if (flag) { - return ctx.service.utils.resResult(STATUS.GM_CREATE_ERROR, null, msg); - } else { + try { + console.log for(let heroInfo of heroInfos) { await HeroModel.createHero(heroInfo); } return ctx.service.utils.resResult(STATUS.SUCCESS, { uids }); + } catch(e) { + console.error(e.stack) } } diff --git a/shared/db/Hero.ts b/shared/db/Hero.ts index b2de6cd0e..1311e80db 100644 --- a/shared/db/Hero.ts +++ b/shared/db/Hero.ts @@ -77,6 +77,7 @@ export default class Hero extends BaseModel { public static async createHero(heroInfo: {roleId: string, roleName: string, hid: number, hName: string, seqId: number, lv?:number, ce: number}, lean = true) { const doc = new HeroModel(); const update = Object.assign(doc.toJSON(), heroInfo); + delete update._id; const hero = await HeroModel.findOneAndUpdate({roleId: heroInfo.roleId, hid: heroInfo.hid}, update, {upsert: true, new: true}).lean(lean); return hero; }