diff --git a/gm-server/app/controller/users.ts b/gm-server/app/controller/users.ts index 1085b3f32..9470353c4 100644 --- a/gm-server/app/controller/users.ts +++ b/gm-server/app/controller/users.ts @@ -86,6 +86,18 @@ export default class UserController extends Controller { ctx.body = await ctx.service.users.setHeroLv(roleIdAndHids, lv); } + public async setHeroParam() { + const { ctx } = this; + const { selectedRowKeys: roleIdAndHids, star, colorStar, quality } = ctx.request.body; + ctx.body = await ctx.service.users.setHeroParam(roleIdAndHids, star, colorStar, quality); + } + + public async setHeroJob() { + const { ctx } = this; + const { selectedRowKeys: roleIdAndHids, job } = ctx.request.body; + ctx.body = await ctx.service.users.setHeroJob(roleIdAndHids, job); + } + public async saveHeroToDefense() { const { ctx } = this; const { roleId, roleName, hid } = ctx.request.body; diff --git a/gm-server/app/router.ts b/gm-server/app/router.ts index 13a7a1b4c..4403fc434 100644 --- a/gm-server/app/router.ts +++ b/gm-server/app/router.ts @@ -35,6 +35,8 @@ export default (app: Application) => { router.post('/api/users/getherolist',tokenParser, controller.users.getHeroList); router.post('/api/users/deletehero', tokenParser, controller.users.deleteHero); router.post('/api/users/setherolv', tokenParser, controller.users.setHeroLv); + router.post('/api/users/setheroparam', controller.users.setHeroParam); + router.post('/api/users/setherojob', controller.users.setHeroJob); router.post('/api/users/saveherotodefense',tokenParser, controller.users.saveHeroToDefense); router.post('/api/users/removeherofromdefense',tokenParser, controller.users.removeHeroFromDefense); router.post('/api/users/getequiplist', tokenParser, controller.users.getEquipList); diff --git a/gm-server/app/service/users.ts b/gm-server/app/service/users.ts index 161efe115..e38c53ca0 100644 --- a/gm-server/app/service/users.ts +++ b/gm-server/app/service/users.ts @@ -35,6 +35,7 @@ import { FriendRelationModel } from '@db/FriendRelation'; import { createHero as pubCreateHero, addSkin } from '@pubUtils/itemUtils'; import { GiftCodeModel } from '@db/GiftCode'; import { GiftCodeDetailModel } from '@db/GiftCodeDetail'; +// import { resResult } from '@pubUtils/util'; // import * as fs from 'fs'; @@ -627,6 +628,53 @@ export default class GMUsers extends Service { } } + public async setHeroParam(roleIdAndHids: string[], star: number, colorStar: number, quality: number) { + try { + const ctx = this.ctx; + if (typeof star != 'number'||typeof colorStar != 'number'||typeof quality != 'number') return ctx.service.utils.resResult(STATUS.WRONG_PARMS); + + for (let roleIdAndHid of roleIdAndHids) { + let [roleId, hidStr] = roleIdAndHid.split('|'); + if (isNaN(parseInt(hidStr))) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); + + let hid = parseInt(hidStr); + + let hero = await HeroModel.findByHidAndRole(hid, roleId); + console.log(hid, roleId, !!hero); + if (!hero) continue; + await calPlayerCeAndSave(HERO_SYSTEM_TYPE.LVUP, roleId, hero, { star, colorStar, quality }); + } + + return ctx.service.utils.resResult(STATUS.SUCCESS); + } catch (e) { + console.error(e.stack) + } + } + + + public async setHeroJob(roleIdAndHids: string[], job: number) { + try { + const ctx = this.ctx; + if(!gameData.job.has(job)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); + + for (let roleIdAndHid of roleIdAndHids) { + let [roleId, hidStr] = roleIdAndHid.split('|'); + if (isNaN(parseInt(hidStr))) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); + + let hid = parseInt(hidStr); + + let hero = await HeroModel.findByHidAndRole(hid, roleId); + console.log(hid, roleId, !!hero); + if (!hero) continue; + await calPlayerCeAndSave(HERO_SYSTEM_TYPE.STAGEUP, roleId, hero, { job }); + } + + return ctx.service.utils.resResult(STATUS.SUCCESS); + } catch (e) { + console.error(e.stack) + } + } + /** * 根据类型等搜索装备 */