后台:跳主线功能
This commit is contained in:
@@ -41,7 +41,7 @@ export default class UserController extends Controller {
|
||||
|
||||
public async createRoleData() {
|
||||
const { ctx } = this;
|
||||
const { hid, hlv, eid, ecount, itemid, itemcount, count, lv, skinid, selectedRowKeys: uids, optType, ehid } = ctx.request.body;
|
||||
const { hid, hlv, eid, ecount, itemid, itemcount, count, lv, skinid, selectedRowKeys: uids, optType, ehid, war } = ctx.request.body;
|
||||
if(optType == 'hero') {
|
||||
ctx.body = await ctx.service.users.createHero(uids, hid, hlv);
|
||||
} else if(optType == 'equip') {
|
||||
@@ -56,6 +56,8 @@ export default class UserController extends Controller {
|
||||
ctx.body = await ctx.service.users.levelUp(uids, lv);
|
||||
} else if (optType == 'skin') {
|
||||
ctx.body = await ctx.service.users.addSkin(uids, skinid);
|
||||
} else if (optType == 'war') {
|
||||
ctx.body = await ctx.service.users.setWarRecord(uids, war);
|
||||
} else {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
|
||||
@@ -100,6 +100,7 @@ import { UserTaskModel } from '@db/UserTask';
|
||||
import { UserTaskHistoryModel } from '@db/UserTaskHistory';
|
||||
import { UserTaskRecModel } from '@db/UserTaskRec';
|
||||
import { WishPoolReportModel } from '@db/WishPoolReport';
|
||||
import { DicWar } from '@pubUtils/dictionary/DicWar';
|
||||
|
||||
// import { resResult } from '@pubUtils/util';
|
||||
|
||||
@@ -949,4 +950,59 @@ export default class GMUsers extends Service {
|
||||
|
||||
return Buffer.from(codes.join('\n'));
|
||||
}
|
||||
|
||||
public async setWarRecord(roleIds: string[], _warId: string) {
|
||||
const { ctx } = this;
|
||||
let warId = parseInt(_warId);
|
||||
if(warId < 104) return ctx.service.utils.resResult(STATUS.WRONG_PARMS, null, '不可跳到序章以前')
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if(!dicWar) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
for(let roleId of roleIds) {
|
||||
await this.setSingleWarRecord(roleId, dicWar);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
private async setSingleWarRecord(roleId: string, dicWar: DicWar) {
|
||||
let { warStar } = await RoleModel.findByRoleId(roleId);
|
||||
let deleteIds: number[] = [], myMaxWarId = 0, insertParams: DicWar[] = [];
|
||||
for(let i = 0; i < warStar.length; i++) {
|
||||
let { id, warType } = warStar[i];
|
||||
if(warType == dicWar.warType) {
|
||||
if(id >= dicWar.war_id) {
|
||||
deleteIds.push(id);
|
||||
}
|
||||
if(id > myMaxWarId) {
|
||||
myMaxWarId = id;
|
||||
}
|
||||
}
|
||||
}
|
||||
let newWarStar = warStar.filter(cur => {
|
||||
return deleteIds.indexOf(cur.id) == -1;
|
||||
});
|
||||
if(myMaxWarId < dicWar.war_id) {
|
||||
for(let id = myMaxWarId + 1; id < dicWar.war_id; id++) {
|
||||
let _dicWar = gameData.war.get(id)
|
||||
if(_dicWar && _dicWar.warType == dicWar.warType) {
|
||||
newWarStar.push({ id, warType: _dicWar.warType, star: 0 });
|
||||
insertParams.push(_dicWar);
|
||||
}
|
||||
}
|
||||
}
|
||||
let preGkIndex = newWarStar.findIndex(cur => cur.id == dicWar.previousGk);
|
||||
console.log(dicWar.previousGk)
|
||||
if(dicWar.previousGk && preGkIndex == -1) {
|
||||
let _dicWar = gameData.war.get(dicWar.previousGk);
|
||||
newWarStar.push({ id: _dicWar.war_id, warType: _dicWar.warType, star: 3 });
|
||||
}
|
||||
if(insertParams.length > 0) {
|
||||
await RScriptRecordModel.insertScripts(roleId, insertParams);
|
||||
}
|
||||
if(deleteIds.length > 0) {
|
||||
await RScriptRecordModel.deleteByWarId(roleId, deleteIds);
|
||||
}
|
||||
let role = await RoleModel.updateRoleInfo(roleId, { warStar: newWarStar });
|
||||
return role;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user