添加保存R剧本接口

This commit is contained in:
luying
2020-10-22 11:05:49 +08:00
parent 3d031088b7
commit 318d45e50e
8 changed files with 202 additions and 37 deletions
+46
View File
@@ -0,0 +1,46 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
@index({ roleId: 1, battleId: 1 })
export default class RScriptRecord extends BaseModel {
@prop({ required: true, default: '' })
roleId: string; // 角色 id
@prop({ required: true, default: 0 })
battleId: number; // 关卡 id
@prop({ required: true, default: 0 })
warType: number; // 关卡 id
@prop({ required: true, default: '' })
scriptBefore: string; // 战场前剧本
@prop({ required: true, default: '' })
scriptAfter: string; // 战场后剧本
public static async setScript(roleId: string, battleId: number, warType: number, type: number, script: string, lean = true) {
let update = { warType };
if(type == 1) {
update['scriptBefore'] = script;
} else if (type == 2) {
update['scriptAfter'] = script;
}
const items = await RScriptRecordModel.findOneAndUpdate({ roleId, battleId }, update, {upsert: true, new: true}).lean(lean);
return items;
}
public static async findbyRoleAndBattle(roleId: string, battleId: number, lean = true) {
const items = await RScriptRecordModel.findOne({ roleId, battleId }).select('battleId scriptBefore scriptAfter').sort({battleId: 1}).lean(lean);
return items;
}
public static async findbyRole(roleId: string, warType: number, lean = true) {
const items = await RScriptRecordModel.find({ roleId, warType }).select('battleId scriptBefore scriptAfter').lean(lean);
return items;
}
}
export const RScriptRecordModel = getModelForClass(RScriptRecord);
+15 -1
View File
@@ -86,6 +86,7 @@ export default class Role extends BaseModel {
@prop({ required: true, default: [] })
warStar: [{ // 关卡星级
id: number; // 关卡 id
warType: number; // 关卡类型
star: number; // 星级
}];
@@ -197,7 +198,6 @@ export default class Role extends BaseModel {
let update = {};
update[`${field}.$.cnt`] = cnt;
console.log(JSON.stringify(condition), update)
let result = await RoleModel.findOneAndUpdate(condition, { $inc: update }, { "new": true, "upsert": true}).lean(lean);
return result;
}
@@ -211,6 +211,20 @@ export default class Role extends BaseModel {
let result = await RoleModel.findOneAndUpdate({roleId}, { $inc: { gold: cnt, giftGold: cnt } }, { "new": true, "upsert": true}).lean(lean);
return result;
}
public static async pushWarStar(roleId: string, battleId: number, warType: number, star: number, lean = true) {
let result = await RoleModel.findOneAndUpdate({roleId}, { $addToSet: { warStar: {id: battleId, warType, star }} }, { "new": true, "upsert": true}).lean(lean);
return result;
}
public static async updateWarStar(roleId: string, battleId: number, star: number, lean = true) {
let result = await RoleModel.findOneAndUpdate(
{roleId, 'warStar.id': battleId},
{ $set: { 'warStar.$.star': star } },
{ "new": true, "upsert": true}
).lean(lean);
return result;
}
}
export const RoleModel = getModelForClass(Role);